Subject: Theory of Algorithms (17 - IFE211)


Basic Information

CategoryTheoretical-methodological
Scientific or art field:Applied Computer Science and Informatics
InterdisciplinaryNo
ECTS5
Native organizations units

Chair of Applied Computer Science
Course specification

Course is active from 16.05.2014..


Precondition courses

Course idMandatoryMandatory
Fundamentals of Programming and Programming LanguagesYesNo

Course which have preconditioned courses Theory of Algorithms

Course idMandatoryMandatory
Advanced Programming and Programming LanguagesYesYes
Databases 1YesYes
The overall education goal of course is development of algorithmic culture in todays engineers, as an important part of general engineering culture. The particular education goals are development of student’s ability to ?) understand basic concepts from Theory of Algorithms and Computational Complexity disciplines, b) determine algorithmic hardness of the problems, c) chose algorithmic technique which is adequate to the hardness of the problem at hand and d) apply adequate algorithms in solving problem of interest.
The basic education outcomes are understanding and determination of algorithmic hardness of the problem and the complexity of algorithms, as well as independent algorithmic solving of engineering problems of interest.
Introduction to the Theory of Algorithms and Computational Complexity. Determination of algorithmic hardness of the problem. Reductions among problems. Asymptotic notation, time and space complexity. Basic complexity classes. Types of algorithms. Greedy, divide-and-conquer algorithms, breadth and depth first search, dynamic programming, branch-and-bound algorithms. Randomized and probabilistic algorithms. Parameterized and approximation algorithms. Algorithmic heuristics and meta-heuristics. ??thematical programming. Single- and multi-objective optimization algorithms. Parallel and distributed algorithms.
Lectures. Exercises and computer lab exercises. Consultation. On lectures, students become familiar with general algorithmic techniques, which are adequate in solving problems of different algorithmic hardness. Lectures are followed with adequate example problems on exercises and in computer lab, which helps in understanding course topics and material. Besides lectures and exercises, consultations with students are regularly held.
AuthorsNameYearPublisherLanguage
Christos H. PapadimitriouComputational Complexity1995Addison Wesley LongmanEnglish
G. Ausiello, P. Crescenzi, V. Kann, Marchetti-sp, Giorgio Gambosi, Alberto M. SpaccamelaComplexity and Approximation: Combinatorial Optimization Problems and Their Approximability Properties1999SpringerEnglish
Cormen, T.H. et al.Introduction to Algorithms2009MIT Press, CambridgeEnglish
Zbigniew Michalewicz, David B. FogelHow to Solve It: Modern Heuristics2010Springer, 2nd Rev&Ext. editionEnglish
R. Sedgewick, K. WayneAlgorithms (4th Edition)2011Pearson Education, Inc.English
Kozen, Dexter, CTheory of computation2006SpringerEnglish
Course activity Pre-examination ObligationsNumber of points
Complex exercisesYesYes30.00
Complex exercisesYesYes20.00
TestYesYes10.00
TestYesYes10.00
Oral part of the examNoYes30.00
Name and surnameForm of classes
Missing picture!

Dragan Dinu
Associate Professor

Lectures
Missing picture!

Petrović Veljko
Assistant Professor

Lectures
Missing picture!

Ivković Vladimir
Assistant - Master

Computational classes
Missing picture!

Todorović Nikola
Assistant - Master

Computational classes
Missing picture!

Simić Svetislav
Assistant - Master

Computational classes
Missing picture!

Jovanović Jovana
Assistant - Master

Computational classes