Subject: Introduction to Algorithms (17 - ESI053)


Basic Information

CategoryScientific-professional
Scientific or art field:Primenjeno softversko inženjerstvo
InterdisciplinaryNo
ECTS9
Native organizations units

Course native organizational units not found!
Course specification

Course is active from 23.07.2017..

Acquiring basic knowledge about algorithms and data structures. Understanding complexities of algorithms and learning numerous algorithms for common problems in software development.
Knowledge of common algorithms and data structures. These algorithms will be implemented and their complexities will be understand in real examples.
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.)
Lectures; Auditory and computer practice; Consultations.
AuthorsNameYearPublisherLanguage
A. ErdeljanŠtampani materijal koji pokriva izlaganja i vežbe2016Serbian language
Cormen, T.H. et al.Introduction to Algorithms2009MIT Press, CambridgeEnglish
Thomas H. CormenAlgorithms Unlocked2013MIT PressEnglish
Wirth, N.Algorithms and data structures1986Prentice-Hall, Englewood CliffsEnglish
Hotomski Petar, Malbaški DušanMatematička logika i principi programiranja2000Univerzitet, Novi SadSerbian language
Uhr, LeonardAlgorithm-Structured Computer Arrays and Networks1984Academic PressEnglish
Yatsko, A., Suslow, W.Insight into Theoretical and Applied Informatics : Introduction to Information Technologies and Computer Science2015De Gruyter Open, BerlinEnglish
Stojaković MirkoAlgoritmi i automati1972Radnički univerzitet "Radivoj Ćirpanov", Novi SadSerbian language
Knuth, D.E.The Art of Computer Programming1998Addison-Wesley, Upper Saddle RiverEnglish
Course activity Pre-examination ObligationsNumber of points
ProjectYesYes30.00
TestYesYes10.00
TestYesYes10.00
TestYesYes10.00
TestYesYes10.00
Oral part of the examNoYes30.00
Name and surnameForm of classes
Missing picture!

Erdeljan Aleksandar
Full Professor

Lectures
Missing picture!

Dejanović Stefan
Assistant - Master

Computational classes
Missing picture!

Stoja Sebastijan
Assistant - Master

Computational classes
Missing picture!

Dalčeković Ivana
Assistant - Master

Computational classes
Missing picture!

Marjanović Jelena
Assistant - Master

Computational classes
Missing picture!

Stanojević Marina
Assistant - Master

Computational classes
Missing picture!

Kovačević Ivana
Assistant - Master

Computational classes
Missing picture!

Sekulić Jelena
Teaching Associate

Computational classes