Course manual 2025/2026

Course content

Abstracte datatypen, algoritmen en hun complexiteit.

Een keuze uit de klassieke datastructuren, o.m. arrays, stapels, wachtrijen, geschakelde lijsten, heaps en hashtabellen. Het college behandel toperaties en algoritmes op deze datastructuren. Ook wordt aandacht besteed aan het gebruik van datastructuren in concrete toepassingen voor de AI.

Objectives

  • The student can compare the appropriateness of different data structures (lists, trees, graphs, sets, ...) depending on the problem.
  • The student can implement the data structures and algorithms presented in class (linked lists, sorting algorithms, binary trees, heaps, hash tables, graph algorithms, dynamic programming, among others)
  • The student is able to analyze the complexity (time and space) of an algorithm in terms of big-O notation, best- and worst-case performance.
  • Differentiate between built-in Python standard library data structures by recognizing how they work behind the scenes.
  • Recognize applications of fundamental structures and algorithms, particularly in AI applications
  • Assess correctness of algorithms, and identify bugs using tests.
  • Design new tests by thinking about assertions and invariants.
  • Develop new variants of studied data structures or algorithms, adapted to application requirements.
  • The student is able to write legible code, confirming to style standards set by peers and documenting their design in clear and concise language.

Teaching methods

  • Hoorcollege
  • Laptopcollege
  • Begeleiding/feedbackmoment
  • Zelfstudie

In the lectures we cover all necessary theoretical concepts.

In the labs, the students can work on their programming assignments and the quizzes and get help and feedback.

During selfstudy, students recap the material from lectures and work on assignments and quizzes.

Each assignment is graded in a one on one grading sessions where further feedback is given.

Learning activities

Activiteit

Aantal uur

Hoorcolleges

28

Laptopcollege

28

Code review

1

Toets

2

Zelfstudie

109

Attendance

Programme's requirements concerning attendance (TER-B Article B-4.10):

  • For some course component attendance is obligatory. If attendance is required, this is stated in the course catalogue. The reasons for, and the implementation of, this attendance requirement may vary by course and are included in the course manual. Students who do not meet this attendance requirement cannot complete the course with a passing grade.

Additional requirements for this course:

Attendance is mandatory for the grading sessions where the assignments are evaluated (each student must be present for their scheduled slot). For the rest of the labs and lectures we do not monitor attendance.

Assessment

Item and weight Details

Final grade

0.4 (40%)

21-10-2025 Tentamen

Must be ≥ 5

0.6 (60%)

Assignments

Must be ≥ 5

0.3 (30%)

Assignment 1 Testing, Lists, and Trees

0.3 (30%)

Assignment 2 Sorting and Hash Tables

0.3 (30%)

Assignment 3 Graphs

0.1 (10%)

Quiz grade [ from ans.app! ]

In addition to the standard threshold on the final grade (per OER),  we also require

  • minimum of 5 required for the exam (theoretical component).
  • minimum average of 5 for the assignments component.

Inspection of assessed work

The manner of inspection will be communicated via the digitial learning environment.

Assignments

Three assignments, graded. Feedback is given via codegrade as well as during a one-on-one grading session.

All three assignments have to be made individually.

Fraud and plagiarism

The 'Regulations governing fraud and plagiarism for UvA students' applies to this course. This will be monitored carefully. Upon suspicion of fraud or plagiarism the Examinations Board of the programme will be informed. For the 'Regulations governing fraud and plagiarism for UvA students' see: www.student.uva.nl

Course structure

Weeknummer Onderwerpen
1 Collection data types
2 Algorithmic complexity, Sorting
3 Quicksort, Sets, dictionaries, and hash tables
4 Trees, Priority queues and heaps
5 Graphs: shortest paths
6 maximum spanning trees, dynamic programming
7 Advanced topics & Recap

Contact information

Coordinator

  • dr. Vlad Niculae

Senior TAs

dr. Thomas Loots

Darius Barsony

Other Staff

  • Lucas Groot BSc
  • Faissal El Kayouhi
  • Mike Reiziger