Faculty of Technical Sciences

Subject: Introduction to Algorithms (17.ESI053)

Native organizations units: No data
General information:
 
Category Scientific-professional
Scientific or art field Primenjeno softversko inženjerstvo
Interdisciplinary No
ECTS 9
Educational goal:

Acquiring basic knowledge about algorithms and data structures. Understanding complexities of algorithms and learning numerous algorithms for common problems in software development.

Educational outcome:

Knowledge of common algorithms and data structures. These algorithms will be implemented and their complexities will be understand in real examples.

Course content:

Basic of algorithms (definitions, features, algorithm analysis, algorithm description, pseudo-code, basic algorithmic problems, algorithm complexity, asymptotic notations, etc.). Search problem (linear searching, binary search). Sorting problem and sorting algorithms (selection sort, insertion sort, recursion and divide-and-conquer algorithm, merge sort, quicksort, heap structure and heapsort, priority queue, etc.). Linear-time sorting algorithms (counting sort, radix sort, bucket sort). Order statistics (problem description, minimum and maximum, medians, and algorithm). Elementary data structures (stacks and queues, linked lists, operations, implementations, trees, binary trees, BST, AVL, etc.). Hash tables (dictionaries, operations, hashing functions, collisions and linked lists, open addressing, asymptotic algorithm complexity, etc.). Graphs (definition, examples and graph types, directed acyclic graphs, representations of graphs, etc.). Graph algorithms (topological sort, graph search, breadth-first search, depth-first search, etc.). Shortest paths graphs (shortest paths in DAG, Dijkstra’s algorithm, Bellman-Ford algorithm, etc.). Complex problems (P and NP problems, NP-complete problems, NP-hard problems, exponential problems, examples). Dynamic programming (elements, examples, etc.). Parallel algorithms (sequential and parallel execution, Amdahl's law, implementation complexities, examples). Examples of algorithms implemented in cryptography, data compression, string operations, etc.)

Teaching methods:

Lectures; Auditory and computer practice; Consultations.

Literature:
Authors Title Year Publisher Language
Hotomski Petar, Malbaški Dušan Matematička logika i principi programiranja 2000 Univerzitet, Novi Sad Serbian language
Knuth, D.E. The Art of Computer Programming 1998 Addison-Wesley, Upper Saddle River English
Stojaković Mirko Algoritmi i automati 1972 Radnički univerzitet "Radivoj Ćirpanov", Novi Sad Serbian language
A. Erdeljan Štampani materijal koji pokriva izlaganja i vežbe 2016 Serbian language
Thomas H. Cormen Algorithms Unlocked 2013 MIT Press English
Yatsko, A., Suslow, W. Insight into Theoretical and Applied Informatics : Introduction to Information Technologies and Computer Science 2015 De Gruyter Open, Berlin English
Cormen, T.H. et al. Introduction to Algorithms 2009 MIT Press, Cambridge English
Wirth, N. Algorithms and data structures 1986 Prentice-Hall, Englewood Cliffs English
Uhr, Leonard Algorithm-Structured Computer Arrays and Networks 1984 Academic Press English
Knowledge evaluation:
Course activity Pre-examination Obligations Number of points
Test Yes Yes 10.00
Test Yes Yes 10.00
Project Yes Yes 30.00
Oral part of the exam No Yes 30.00
Test Yes Yes 10.00
Test Yes Yes 10.00
Lecturers:

Asistent Kovačević Ivana

Assistant - Master

Computational classes

prof. dr Erdeljan Aleksandar

Full Professor

Lectures

Saradnik u nastavi Brkić Sandra

Teaching Associate

Computational classes

Asistent Sekulić Jelena

Assistant - Master

Computational classes
API Image

doc. Stoja Sebastijan

Assistant Professor

Computational classes

Faculty of Technical Sciences

© 2024. Faculty of Technical Sciences.

Contact:

Address: Trg Dositeja Obradovića 6, 21102 Novi Sad

Phone:  (+381) 21 450 810
(+381) 21 6350 413

Fax : (+381) 21 458 133
Emejl: ftndean@uns.ac.rs

© 2024. Faculty of Technical Sciences.