Subject

Algorithms and Data Structures

1. Course Title Algorithms and Data Structures
Algorithms and data structures
2. Code F23L2W001
3. Study Programme Software Engineering and Information Systems, Computer Science, Computer Engineering, Bioinformatics
4. Organizer of the study programme (unit, institute, department or division) Faculty of Computer Science and Engineering
5. Degree level (first, second, third cycle) First Cycle
6. Academic year / semester 3 / Winter
7. Number of ECTS credits 6
8. Teacher Ana Madevska Bogdanova, Bojana Koteska, Efrem Zdravevski, Hristina Mihajloska Trpcheska, Ilinka Ivanoska, Slobodan Kajaldjiski, Vladimir Trajkovic
9. Prerequisites for enrolling in the course Structured programming
10. Objectives of the course programme (competences) Familiarization with the basic data structures and algorithms that are further necessary for working with databases.
data as well as for other applications. The student will be able to use and develop structures and algorithms.
with linear lists, stacks, queues, as well as search indexes. It will also be capable of
Implementation of the various archetypes of algorithms used in the practical implementation of many
Software solutions.
11. Course content Lectures:
1. Introduction to Data Structures
2. Analysis of Algorithms and Algorithmic Complexity
3. Representation of data with fundamental data structures (arrays and lists)
4. Introduction to Algorithms and Algorithm Design Techniques
5. One-dimensional data structures (stack, queue)
6. Sorting Algorithms
7. Hash structures
8. Hierarchical structures - trees
9. Counts

Practical Classes:
1. Introduction to Data Structures
2. Analysis of Algorithms and Algorithmic Complexity
3. Representation of data with fundamental data structures (arrays and lists)
4. Introduction to Algorithms and Algorithm Design Techniques
5. One-dimensional data structures (stack, queue)
6. Sorting Algorithms
7. Hash structures
8. Hierarchical structures - trees
9. Counts
12. Learning methods Lectures supported by slide presentations, interactive lectures, exercises (using equipment and software packages), team work, case studies, guest lecturers, independent completion of homework assignments, and learning in an electronic environment (forums, consultations).
13. Total available time 6 ECTS x 30 hours = 180 hours
14. Distribution of available time 30 + 60 + 10 + 10 + 70 = 180 hours
15. Forms of teaching activities
15.1. Lectures - theoretical instruction 30 hours
15.2. Exercises (laboratory, auditory), seminars, teamwork 60 hours
16. Other forms of activities
16.1. Project assignments 10 hours
16.2. Independent assignments 10 hours
16.3. Home study 70 hours
17. Assessment method
17.1. Tests 10 points
17.2. Seminar paper / project (presentation: written and oral) 10 points
17.3. Activities and learning 10 points
17.4. Final exam 70 points
18. Grading criteria (points / grade)
up to 50 points5 (five) (F)
from 51 to 60 points6 (six) (E)
from 61 to 70 points7 (seven) (D)
from 71 to 80 points8 (eight) (C)
from 81 to 90 points9 (nine) (B)
from 91 to 100 points10 (ten) (A)
19. Requirement for obtaining a signature and taking the final exam Laboratory exercises were conducted.
20. Language of instruction Macedonian and English
21. Method for monitoring the quality of teaching internal evaluation and survey mechanism
22. Literature
22.1. Required literature
1. Steven S. Skiena | The Algorithm Design Manual | Springer | 2008
2. Robert Sedgewick and Kevin Wayne | Algorithms | Addison-Wesley Professional | 2011
3. Jon Kleinberg, Éva Tardos | Algorithm Design | Addison Wesley | 2005
4. Alfred V. Aho, Jeffrey D. Ullman, John E. Hopcroft | Data structures and algorithms | Addison Wesley | 1983
5. Donald Knuth | The Art of Computer Programming | Addison Wesley | 2002
22.2. Additional literature
No. Author Title Publisher Year