Algoritmen en Datastructuren

Werkvormen

  • 32 uur hoorcollege
  • 32 uur werkcollege
  • 104 uur zelfstudie

Toelichting werkvormen

There will be lectures, problem sessions with pen-paper exercises and a practical assignment. 

Vereiste voorkennis

Basic programming experience and basic math knowledge (induction, sets, logic, proofs).

Leerdoelen

To provide the intellectual tools for designing and analyzing algorithms.

Inleiding

This course is about the design and analysis of algorithms: how to design correct and efficient algorithms. The main goal of this course is to provide the intellectual tools for designing and analyzing your own algorithms for problems you need to solve in the future. Some design tools that we will discuss are: data structures (e.g. hash tables, AVL trees, red-black trees), divide-and-conquer, dynamic programming, greedy algorithms, network flows, and linear programming. A significant part of the course will be devoted to a discussion of various graph algorithms.

Onderwerpen

List of topics includes: 
- models of computation;
- basic O-notation to analyze algorithms;
- divide and conquer;
- greedy algorithms;
- data structures: heaps, AVL trees, red-black trees, ...;
- graph algorithms;
- dynamic programming;
- linear programming;

Toetsvorm

0.6 * T  + 0.4 * P, where T is the result of the test and P the result of the practical assignment. 

Literatuur

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
Introduction to Algorithms, third edition, The MIT Press 2009.

A standard monograph on algorithms, including their complexity.

Website


Vakcode
NWI-IBC027
Studiepunten
6 ec
Periode
eerste semester
Collegerooster opvragen
SWS / PersoonlijkRooster

Docenten

Opgenomen in