#### Faculty of Technical Sciences

Subject: Introduction to Algorithms (17 - ESI053)

Basic Information

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

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
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

Lectures

#### Dejanović StefanAssistant - Master

Computational classes

#### Stoja SebastijanAssistant Professor

Computational classes

#### Marjanović JelenaAssistant - Master

Computational classes

#### Stanojević MarinaAssistant - Master

Computational classes

#### Kovačević IvanaAssistant - Master

Computational classes

#### Sekulić JelenaAssistant - Master

Computational classes