Search for contacts, projects,
courses and publications

Algorithms & Complexity

Description

 

COURSE OBJECTIVES
Algorithms are fundamental to computer science and they lie at the core of any software system. This course will cover fundamental techniques for designing efficient computer algorithms, proving their correctness, and analyzing their performance. It will also cover several application problems that use these techniques. Students will encounter a variety of problems aiming at acquiring the ability to design correct algorithms on their own as well as learning algorithmic foundations of computer science. COURSE DESCRIPTION The course contents include graph traversals, greedy algorithms, divide and conquer algorithms, dynamic programming, network flow, bipartite matching, circulation, NP completeness and computational intractability, approximation algorithms, and (time permitting) randomized algorithms. Techniques on algorithm design and analysis will be developed by drawing on problems from across many areas of computer science and related fields.

 

LEARNING METHODS
Lectures, lab sessions, homework assignments involving algorithmic problem solving

 

EXAMINATION INFORMATION
The course grade is determined by the results of homework assignments, a midterm exam, and a final exam.

 

REFERENCES

  • Algorithm Design; J. Kleinberg and E. Tardos, Addison-Wesley 2005.
  • Useful reference (not required): Introduction to Algorithms, (3rd Edition), by T. Cormen, C. Leiserson, R. Rivest, and C. Stein, McGraw Hill,

People

 

Papadopoulou E.

Course director

Suderland M.

Assistant

Verzelli P.

Assistant

Additional information

Semester
Fall
Academic year
2020-2021
ECTS
6
Language
English
Education
Master of Science in Artificial Intelligence, Core course, Lecture, 1st year
Master of Science in Financial Technology and Computing, Elective course, Lecture, 2nd year
Master of Science in Informatics, Foundation course, Lecture, 1st year
Master of Science in Informatics, Foundation course, Lecture, 2nd year