Subject: Algorithms and data structures (17 - SIT049)


Basic Information

CategoryProfessional-applicative
Scientific or art field:Applied Computer Science and Informatics
InterdisciplinaryNo
ECTS8
Native organizations units

Course native organizational units not found!
Course specification

Course is active from 25.07.2017..

Teaching students about data structures in the operating memory and development of programs that use them.
The aim of the course is to develop an algorithmic way of thinking. Students will master the basic algorithms used in the implementation of computer programs and the methods of analyzing their complexity, correctness and performance. In addition, students will learn the types and characteristics of the basic data structures, as well as how to use and implement mentioned principles. After successful completion of the course, students will know the concepts of abstract data types; how to handle linear data structures such as arrays, sets, maps, lists, stacks, queue; how to use basic concepts for analysing efficiency of algorithms; how to use procedures for searching and sorting data; how use recursion mechanism in software development process; will learn why and how to use hash tables and trees.
Abstract data types: concept of abstract data type; Defining new types. Arrays: basics of arrays; Operations over arrays; Analysis of the efficiency of operations over arrays; concept of matrix; Operations over matrices. Sets and maps: concept of a set; Implementation of the set; Concept of the map; Map implementation; Multidimensional arrays and operations over them. Analysis of algorithms: O-notation; Analysis of the concept Python list. Search and sorting: linear and binary search; Sorting algorithms; Operations over sorted arrays. List, Stack and Queue: Single-Linked Lists: Basics, Operations, Application and Implementation ; Double-linked Lists; Stack - concept and operations; Queue - concept and operations; Implementation of stack and queue; Multi-linked lists. Recursion. Concept and characteristics of recursion; Recursion implementation; Application of recursion. Hash table: the concept of a hash function; Hash table - concept and operations; Application of hashing. Trees: binary trees - concept and operations; N-ary tree trees; Search tree.
Lectures; Computer exercises; Consultations. The exam is oral. The final evaluation of the exam is based on the result from the computer laboratory exercises and the oral exam.
AuthorsNameYearPublisherLanguage
R.D. NecaiseData Structures and Algorithms Using Python2010WileyEnglish
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford SteinIntroduction to Algorithms, 3rd Edition2009MIT PressEnglish
Cormen, T.H. et al.Introduction to Algorithms2009MIT Press, CambridgeEnglish
Жељко Кановић, Милан Рапаић, Зоран ЈеличићЕволутивни оптимизациони алгоритми у инжењерској пракси2017ФТНSerbian language
Ford, W.Numerical Linear Algebra with Applications2014ElsevierEnglish
Course activity Pre-examination ObligationsNumber of points
ProjectYesYes50.00
Theoretical part of the examNoYes50.00
Name and surnameForm of classes
Missing picture!

Marković Marko
Assistant Professor

Lectures
Missing picture!

Nikolić Siniša
Assistant Professor

Lectures
Missing picture!

Stojkov Milan
Assistant Professor

Lectures
Missing picture!

Stojkov Milan
Assistant Professor

Computational classes
Missing picture!

Tošić Saša
Assistant - Master

Computational classes
Missing picture!

Marković Petar
Assistant - Master

Computational classes
Missing picture!

Lukić Aleksandar
Assistant - Master

Computational classes