Course code DatZ3019

Credit points 6

Algorithms and Structures

Total Hours in Course162

Number of hours for lectures32

Number of hours for laboratory classes32

Independent study hours98

Date of course confirmation25.10.2022

Responsible UnitInstitute of Computer Systems and Data Science

Course developers

author lect.

Jekaterina Smirnova

Mg. sc. ing.

author lect.

Ingus Šmits

Mg. sc. ing.

Prior knowledge

DatZ1009, Introduction to Programming I

DatZ1010, Introduction to Programming II

Course abstract

The aim of the study course is to familiarize students with the principles of algorithms development, their basic elements and methods of performance analysis. During practical lessons, students create data structures, study algorithms related to their use, as well as analyse the realizations of data structures and algorithms included in the .NET platform.

Learning outcomes and their assessment

As a result of the study course students:
• know the basic principles of programming (laboratory work, independent work);
• know how to code and debug programs, use good programming style, design algorithms and data structures (laboratory work, independent work);
• are able to independently code and debug programs, compile and analyse ready-made algorithms and data structures (independent work).

Course Content(Calendar)

1. Data types, conversion of data types conversion - 4 hours
2. Classes, relationships between classes, inheritance - 4 hours
3. List types: ArrayList, Queue, Stack - 4 hours
4. Developing a singly linked list - 8 hours
5. Developing a doubly linked lists - 4 hours
6. Using a parameterized list List - 4 hours
7. Use of Hashtable and Dictionary collections. Work with keys and values - 4 hours
8. Elementary sorting algorithms - 4 hours
9. Recursive sorting algorithms - 4 hours
10. Development of the wooden structure - 8 hours
11. Development of the binary search tree structure - 4 hours
12. Development of a simple graph structure - 8 hours
13. Development of Dijkstra's algorithm for graph structure - 4 hours

Requirements for awarding credit points

Completed laboratory works and passed exam.

Description of the organization and tasks of students’ independent work

During the semester, the student must complete the laboratory works using the assignment descriptions using consultation with the head of the laboratory work and the lecturer.
The student must independently develop an application on the chosen topic, study literature and Internet resources.

Criteria for Evaluating Learning Outcomes

The exam grade is formed as an accumulative assessment from two parts - assessment of laboratory work (40%), assessment of exam (60%).

Compulsory reading

1. Srivastava A.K. A Practical Approach to Data Structure and Algorithm with Programming in C. Oakville, ON: Arcler Press, 2020. 474 p. Pieejams: datubāzē EBSCO e-book academic collection https://search-ebscohost-com.ezproxy.llu.lv/login.aspx?direct=true&db=e000xww&AN=2324349&site=ehost-live&scope=site
2. Bums S. Hands-On Network Programming with C# and .NET Core: Build Robust Network Applications with C# and .NET Core. Birmingham: Packt Publishing, 2019. 473 p. Pieejams: datubāzē EBSCO e-book academic collection https://search-ebscohost-com.ezproxy.llu.lv/login.aspx?direct=true&db=e000xww
3. Malhotra D., Malhotra N. Data Structures and Program Design Using C: A Self-Teaching Introduction. Dulles, Virginia: Mercury Learning & Information, 2019. 553 p. Pieejams: datubāzē EBSCO e-book academic collection https://search-ebscohost-com.ezproxy.llu.lv/login.aspx?direct=true&db=e000xww
4. C# Tutorial [tiešsaiste]. Pieejams: https://www.w3schools.com/cs/index.php

Further reading

1. Matzinger C. Hands-On Data Structures and Algorithms with Rust: Learn Programming Techniques to Build Effective, Maintainable, and Readable Code in Rust 2018. Birmingham, UK: Packt Publishing, 2019. 306 p. Pieejams: datubāzē https://search-ebscohost-com.ezproxy.llu.lv/login.aspx?direct=true&db=e000xww&AN=2012512&site=ehost-live&scope=siteEBSCO e-book academic collection
2. Chopra R., Raheja S. Design and Analysis of Algorithms. [S.l.]: NEW AGE International Publishers, 2020. 641 p. Pieejams: datubāzē EBSCO e-book academic collection https://search-ebscohost-com.ezproxy.llu.lv/login.aspx?direct=true&db=e000xww&AN=2706813&site=ehost-live&scope=site

Periodicals and other sources

• EBSCO e-book academic collection. Pieejams: https://web-p-ebscohost-com.ezproxy.llu.lv/ehost/search/selectdb?vid=0&sid=8715372b-5e1d-4646-9ecc-530bf329861f%40redis

Notes

For students of ITF professional higher education bachelor study programs Information Technologies for Sustainable Development and ITF academic bachelor study programs Computer Management and Computer Science.