Algorithm design

1.Course titleAlgorithm design
2.CodeF23L2S097
3.Study programme—
4.Organizer of the study programme (unit, institute, department)Faculty of Computer Science and Engineering
5.Degree level (first, second, third cycle)First cycle
6.Academic year / semester4 / Summer
7.Number of ECTS credits6
8.Teacher
9.Prerequisites for enrolling in the courseДискретна математика или Дискретни структури 2 или Математика 2 или Избрани теми од математика
10.Course objectives (competences)In this course, you will learn more algorithms and methods for solving computer problems, as well as certain data structures for their implementation. The student will gain programming experience, understand the principles of algorithm design, algorithm performance analysis, and learn the fundamental ideas of designing an efficient algorithm and combining it with an appropriate data structure. Ideas will be put into practice through laboratory exercises.
11.Course contentWhat is an algorithm? Algorithm Design Techniques and Complexity Computing Techniques. Multidimensional Dynamic and Greedy Programming. Memoization in DP. Graph search (classification of edges and vertices, visit time and properties related to them). Algorithms for shortest paths from each to each vertex and their application. Algorithms that use surveying techniques. Union find, fibonacci pile and other more advanced structures and pimena. Flow through network and min-cut max-flow. Search trees (segmented, interval indexed). Algorithms for patterns in strings. Geometric algorithms.
12.Learning methodsLectures supported by slide presentations, interactive lectures, exercises (using equipment and software packages), teamwork, case studies, guest lecturers, independent completion of homework assignments, and learning in an electronic environment (forums, consultations).
13.Total available time6 ECTS x 30 hours = 180 hours
14.Distribution of the available time30 + 45 + 15 + 15 + 75 = 180 hours
15.Forms of teaching activities
15.1.Lectures – theoretical teaching30 hours
15.2.Exercises (laboratory, auditory), seminars, team work45 hours
16.Other forms of activities
16.1.Project assignments15 hours
16.2.Individual assignments15 hours
16.3.Home study75 hours
17.Grading
17.1.Tests10 points
17.2.Seminar paper / project (presentation: written and oral)15 points
17.3.Activity and participation10 points
17.4.Final exam70 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.Requirements for signature and taking the final examcompleted activities 15.1 and 15.2
20.Language of instructionMacedonian and English
21.Method of monitoring teaching qualityinternal evaluation and survey mechanism
22.Literature
22.1.Required literature
1. Thomas H. Carmen et all | Introduction to algorithms | MIT Press | 2009
2. Jon Cleindberg, Eva Targos | Algorithm design | Pearson Education, Inc | 2006
3. Марија Михова, Бојан Илијоски | Дизајн на алгоритми од динамичко програмирање | УКИМ | 2019
4. codefu.mk
5. www.topcoder.com
6. http://mendo.mk/Welcome.do
22.2.Additional literature
No. Author Title Publisher Year