URL study guide

https://studiegids.vu.nl/en/courses/2025-2026/XB_0151

Course Objective

After taking this course, you:have basic knowledge of data structures and algorithms,know that different data structures are suitable for different computational problems, andare able to analyze the performance of algorithms, with regard to their time and space requirements.The following list presents the course objectives according to Dublin Descriptors.Learn the notations and the language of data structures and algorithms. (Knowledge and understanding.)Learn some basic data structures including linear data structures (e.g., arrays, linked lists, queues, and stacks) and several efficient dictionary data structures (e.g., binary search trees, AVL trees, and hash tables). Also, familiarize with performances of the different data structures with regard to their query and storage requirements. (Knowledge and understanding.)Learn algorithms for solving some basic problems including sorting, searching, and a few graph-related algorithms like BFS and DFS.Be able to use the data structures and the algorithms learned from the course to solve an algorithmic problem. (Applying knowledge.)Given an algorithmic problem, pick the most appropriate data structure in order to speed up a designed algorithm for the problem and analyze its performances. (Making judgements.)Familiarize with few real-life problems that can be modeled as an algorithmic problem and can be thus studied using algorithms and data structures. (Communication.)

Course Content

You will be acquainted with some basic linear data structures (e.g. arrays, lists, queues, and stacks), and several efficient dictionary data structures (e.g., binary search trees, AVL trees, hash tables). Although our lectures and discussions will be from a theoretical perspective, we will also discuss their implementation details whenever needed. Some fundamental algorithms will be discussed to solve basic problems: sorting, searching, and a few graph algorithms like BFS and DFS. It will be also explained how the time and space complexity of algorithms can be analyzed.

Teaching Methods

There will be two lectures and one exercise sessions per week. Attendance is not mandatory, but it is strongly recommended.

Method of Assessment

There will be one midterm exam (50%),and one final exam (50%). Roughly speaking, the midterm exam covers the first half of the course and the final exam covers the second half of the course. Your final grade is simply the sum of the grades you have obtained for the two exams. There is no minimum grade requirements for two exams in order to pass the course, except that their sum has to be at least 55. The resit of the course covers the entire course and it replaces both the midterm exam and the final exam.

Literature

Introduction to Algorithms (3rd edition), by Thomas H. Cormen, Charles, E. Leiserson, Ronald L. Rivest, and Clifford Stein, MIT Press 2009.

Entry Requirements

Officially speaking, the course does not have any entry requirements, but the knowledge of the following topics is strongly advised in order to be able to follow the course.calculus and in particular geometric and arithmetic series, anddiscrete mathematics, and in particular mathematical induction.

Recommended background knowledge

As mentioned earlier, a good knowledge in calculus and discrete math is strongly advised in order to be able to follow the course.

Explanation Canvas

We will use Canvas for our communications, posting announcements, publishing materials of the course (e.g., course slides, weekly exercises, and any other additional related materials).
Academic year1/09/2531/08/26
Course level6.00 EC

Language of Tuition

  • English

Study type

  • Premaster
  • Bachelor