Course ObjectiveThe goal of the course is to get acquainted with basic data structures
and the the design and analysis of algorithms.
For the data structures part:
At the end of the course, the student is familiar with data structures
such as stacks, queues, linked lists, binary trees, binary search trees,
balanced binary search trees, heaps, graphs, hash tables, The student is
able to give (in pseudo-code) and analyze querying and updating
operations on the data structures, and to express a data structure using
one or more other data structures.
For the algorithms part:
At the end of the course, the student is familiar with several sorting
algorithms, string matching algorithms, some graph algorithms, with the
paradigms of divide-and-conquer, dynamic programming, and greedy
algorithms, and with several concrete algorithms of every paradigm. The
student is able to give (in pseudo-code) algorithms with an appropriate
and to analyze algorithms in terms of worst-case time complexity, and in
some case also with respect to space complexity and correctness.
Course ContentThe course is concerned with data structures and the design and analysis
of algorithms. We study several subjects from the book by Cormen et al:
linear data structures such as stacks, queues, linked lists, tree-like
data structures such as binary trees, binary search trees, balanced
binary search trees, heaps, graph-like data structures, and hash tables.
Further we study several sorting algorithms. some graph algorithms.
and the programming paradigms divide-and-conquer, dynamic programming,
and greedy algorithms. We consider the worst-case time complexity and in
some cases the correctness of algorithms.
Teaching MethodsThere are 2 lectures per week and 2 exercise classes per week.
Method of AssessmentThere is a non-obligatory written mid-term exam that is concerned with
the material of roughly the first three weeks.
There is a written final exam that is concerned with all material,
If the grade for the mid-term exam is higher than the grade for the
final exam, then the mid-term exam contributes for 25% to the final
grade and the final exam contributes for 75% to the final grade. In the
other cases, the final grade is the grade for the final exam.
LiteratureIntroduction to Algorithms
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford
Stein, MIT Press 2009.
Target Audience2CS, 2BA, 3IMM, 3LI, 3W, 3Ect
Custom Course RegistrationThe registration procedure is the standard one.
Explanation CanvasThe schedule, slides for the lectures, and material for the exercise
classes are available via the Canvas page of the course.
Recommended background knowledgeIt is helpful to know recursive procedures and arrays such as for
example taught in the course Computer Programming (XB_40011).
It is helpful to know graphs and elementary graph algorithms as for
example taught in the course Networks and Graphs (X_401010).
|Language of Tuition||English|
|Faculty||Faculty of Science|
|Course Coordinator||dr. F. van Raamsdonk|
|Examiner||dr. F. van Raamsdonk|
dr. F. van Raamsdonk
You need to register for this course yourself
Last-minute registration is available for this course.
|Teaching Methods||Seminar, Lecture|
This course is also available as: