Studiewijzer 2023/2024

Globale inhoud

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.

Leerdoelen

  • 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 code, 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.

Onderwijsvormen

  • 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.

Verdeling leeractiviteiten

Activiteit

Aantal uur

Hoorcolleges

28

Laptopcollege

28

Code review

1

Digitale Toets

2

Zelfstudie

109

Aanwezigheid

Aanwezigheidseisen opleiding (OER-B):

  • Voor practica en werkgroepbijeenkomsten met opdrachten geldt een aanwezigheidsplicht. De invulling van deze aanwezigheidsplicht kan per vak verschillen en staat aangegeven in de studiewijzer. Wanneer studenten niet voldoen aan deze aanwezigheidsplicht kan het onderdeel niet met een voldoende worden afgerond.

Aanvullende eisen voor dit vak:

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

Toetsing

Onderdeel en weging Details

Eindcijfer

40%

Tentamen

Moet ≥ 5 zijn, Vereist

60%

Assignments

Moet ≥ 5 zijn, Vereist

3 (30%)

Assignment 1 Testing, Lists, and Trees

3 (30%)

Assignment 2 Sorting and Hash Tables

3 (30%)

Assignment 3 Graphs

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.
  • minimum average of 5 for the assignments component.

Inzage toetsing

De manier van inzage wordt via de digitale leeromgeving gecommuniceerd.

Opdrachten

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.

Fraude en plagiaat

Dit vak hanteert de algemene 'Fraude- en plagiaatregeling' van de UvA. Hier wordt nauwkeurig op gecontroleerd. Bij verdenking van fraude of plagiaat wordt de examencommissie van de opleiding ingeschakeld. Zie de Fraude- en plagiaatregeling van de UvA: http://student.uva.nl

Weekplanning

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

Contactinformatie

Coördinator

  • dr. Vlad Niculae

Senior TAs

Toon van Gelderen
Sergey Troshin