Course code InfT5039

Credit points 6

Fundamental Algorithms

Total Hours in Course162

Number of hours for lectures24

Number of hours for seminars and practical classes24

Independent study hours114

Date of course confirmation06.09.2022

Responsible UnitInstitute of Computer Systems and Data Science

Course developer

author lect.

Mārtiņš Štāls

Mg. sc. ing.

Prior knowledge

DatZ1009, Introduction to Programming I

DatZ1010, Introduction to Programming II

Course abstract

The purpose of the study subject is to introduce students with methods for creating and representing data structures and algorithms for working with widely used data structures. Different algorithms descriptions are connected to practical realization. The different programs fragments of code are foreseen, which is possible to use in the complicated applications.

Learning outcomes and their assessment

• Students know about creating and analysing algorithms and data structures;
• have skills in choosing correct algorithms and data structures;
• are able to use algorithms and data structures for solving specific problems and analyse obtained results.

Course Content(Calendar)

1. Arrays – 1h
2. Singly linked list – 2h
3. Doubly linked list - 4h
4. Cyclic linked list – 2h
5. Stack and Queue – 2h
6. Binary search – 2h
7. Construction of binary search tree – 4h
8. Search with binary search tree – 2h
9. Graph traversal: depth-first search – 4h
10. Graph traversal: breadth-first search - 4h
11. Dijkstra’s shortest path – 6h
12. Classification with kNN – 6h
13. Classification with kNN and naive Bayes – 4h
14. Levenshtein distance 2h
15. Bitcoin: A Peer-to-Peer Electronic Cash System - 2h
16. Smart Contract and Decentralized Application Platform 1h

Requirements for awarding credit points

Practical works and project have to be developed and presented.

Description of the organization and tasks of students’ independent work

Practical works:
1. Doubly linked list or Cyclic linked list.
2. Binary search tree.
3. Graph traversal: depth-first search.
4. Dijkstra’s fastest path.
5. Levenshtein distance.
6. Project.

Criteria for Evaluating Learning Outcomes

1.practiacal works (60%);
2.project (40%).

Compulsory reading

1. Skiena S.S. The Algorithm Design Manual. London: Springer-Verlag, 2008. 730 p.
2. Goodrich M.T., Tamassia R. Algorithm Design and Applications. John Wiley & Sons, Inc, 2015.
3. Nakamoto S. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008. Pieejams: https://bitcoin.org/bitcoin.pdf
4. Buterin V. A Next-Generation Smart Contract and Decentralized Application Platform. 2015. Pieejams: https://people.cs.georgetown.edu/~clay/classes/fall2017/835/papers/Etherium.pdf



Notes

ITF Master's Academic Study Program "Information Technologies".