0% found this document useful (0 votes)
31 views3 pages

Data Structures & Algorithms for AI Course

The course 'Data Structures and Algorithms for AI' at Vrije Universiteit Amsterdam aims to introduce Bachelor students to fundamental concepts of data structures and algorithms, focusing on complexity analysis and problem-solving techniques. It includes weekly lectures, lab sessions for practical programming challenges, and assessments through assignments and exams. Students are required to have a good knowledge of Python and some background in discrete mathematics and calculus to succeed in the course.

Uploaded by

dlpkrshna
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views3 pages

Data Structures & Algorithms for AI Course

The course 'Data Structures and Algorithms for AI' at Vrije Universiteit Amsterdam aims to introduce Bachelor students to fundamental concepts of data structures and algorithms, focusing on complexity analysis and problem-solving techniques. It includes weekly lectures, lab sessions for practical programming challenges, and assessments through assignments and exams. Students are required to have a good knowledge of Python and some background in discrete mathematics and calculus to succeed in the course.

Uploaded by

dlpkrshna
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Vrije Universiteit Amsterdam - 2024-2025

Data Structures and Algorithms for AI


Course Code XB_0043
Credits 6
Period P1
Course Level 200
Language Of Tuition English
Faculty Faculty of Science
Course Coordinator dr. K. Tuma
Examiner dr. K. Tuma
L.H. Rekker MSc, mr. A.M. Muresan MSc, dr. K. Tuma, prof. dr. ir. F. Massacci, dr. F.
Teaching Staff
Madeiral Delfim
Teaching method(s) Written partial exam, Seminar, Lecture

Course Objective

The goal of this course is to introduce Bachelor students enrolled in the target audience program to the basic
concepts of data structures and algorithms. After taking this course, students will have gained (i) basic knowledge
of data structures and algorithms, (ii) ability to analyse complexity of algorithms, and (iii) recognize trade-offs and
choose an appropriate data structure and algorithm to solve a particular problem. Specifically, the student will have
reached the following learning outcomes:

Describe the basic data structures and algorithms that are used for common computational problems. [Dublin
Descriptors]: Knowledge and understanding, Communication
Explain the role of algorithm complexity (time and space) in addressing problems and make complexity
judgements on simple programs. [Dublin Descriptors]: Applying knowledge and understanding,
Communication
Explain the rationale of the proposed solution and possibly apply appropriate techniques on a concrete
problem instance. [Dublin Descriptors]: Applying knowledge and understanding, Communication
Identify and review pros and cons of proposed techniques for solving problems. [Dublin Descriptors]:
Knowledge and understanding, Lifelong learning skills

Course Content

The content of the course is organised in weekly lectures, where the lecturer will cover the concepts of linear data
structures (e.g., linked list, trees, graphs), basic notion of time and space complexity, which will be discussed on
simple programs (e.g., sorting), and basic algorithms for traversing trees and graphs (e.g., search or decision
trees). The introduced concepts will be accompanied by an explanation of the difference between solving the same
problem by using a different method. More advanced topics will be covered towards the end of the course. The
students will work on individual assignments during the weekly lab sessions which consist of practical programming
challenges aimed to deepen their understanding of the topics covered during the lectures. The programming
assignments will be automatically tested for correctness and efficiency, the latter being a determinant
characteristic.

Additional Information Teaching Methods

The course is based on the following teaching methods:

Weekly lectures introducing new topics


Weekly lab sessions where student TAs will supervise students working on practical exercises
Assignments in the form of programing challenges including analytical tasks describing the implemented
solution to an algorithmic problem

Method of Assessment

Assignments: 30%
Theory + Practicum A: 35%
Theory + Practicum B: 35%
Assignments:

Points will be assigned with the following grading scheme:

5% assessment of the first lab assignment (A1)


5% assessment of the second lab assignment (A2)
10% assessment of the third lab assignment (A3)
10% assessment of the fourth lab assignment (A4)

Theory + Practicum:

Part A (35%): There is a first exam (in person) assessing the material covered in the first half of the lectures
and the first two assignments. This examination takes place at the end of September.
Part B (35%): There is a second exam (in person) assessing the material covered in the second half of the
lectures and the third and fourth assignments. This examination takes place at the end of the course.

For multiple choice tests the university standard method of correction for the chances of random answers is
applied.

Resit:
There is a single resit for the examinations Part A and Part B but not the assignments.

Passing requirement:
To pass the course, a student needs to pass (>5.5) on all components (assignments, theory, practicum)

Plagiarism:
The assignment submissions are automatically evaluated for plagiarism. If the submitted code (and not the boiler
plate) is flagged for plagiarism the student will be reported to the Examination Board.

Literature

Roughgarden, Tim. Algorithms Illuminated (selected chapters of Part I, Part II and Part III). Soundlikeyourself
publishing, 2017.

Additional Information Target Audience

Bachelor Artificial Intelligence (Year 2)

Recommended background knowledge

Introduction to programming (Python) (X_401096). Good working knowledge of Python is strongly advised
and if not present, the student should be prepared to put extra effort for programming in Python.
Some background in discrete mathematics and calculus is advised (polynomial and exponentials functions,
logarithmic function, function compositions, simple series, factorial calculus, etc.)

Common questions

Powered by AI

The course aims to teach students about algorithm complexity by explaining the role of time and space complexity in addressing problems and making complexity judgments on simple programs .

The programming assignments are automatically tested for correctness and efficiency, with efficiency being a crucial determinant characteristic, ensuring that students not only solve problems correctly but also efficiently .

A recommended background includes an introduction to programming with Python, discrete mathematics, and calculus, with a strong working knowledge of Python advised .

The course includes weekly lectures introducing new topics, weekly lab sessions supervised by student TAs for practical exercises, and assignments consisting of programming challenges to deepen understanding .

Students may need to resit Theory + Practicum A and B exams if they fail. There is one resit opportunity, but assignments cannot be resubmitted. All course components must be passed individually to pass the course .

Assignments are automatically evaluated for plagiarism, and if detected, the student will be reported to the Examination Board. The plagiarism checks exclude boilerplate code .

Students will gain basic knowledge of data structures and algorithms, the ability to analyze algorithm complexity, and the skill to choose appropriate data structures and algorithms for solving specific problems .

The suggested literature is 'Algorithms Illuminated' by Tim Roughgarden, which supports the course objectives by covering selected topics that align with the course's topics on data structures and algorithm analysis .

Assessment consists of assignments (30%), Theory + Practicum A (35%), and Theory + Practicum B (35%). Each assignment has specific weightings: A1 (5%), A2 (5%), A3 (10%), A4 (10%).

The course includes explaining rationale with hands-on practice in weekly lab sessions and problem sets, which involves applying appropriate techniques to concrete problem instances, reinforcing theoretical knowledge with practical experience .

You might also like