GPU Programming

6 EC

Semester 2, periode 4, 5

5083GPPR6Y

Eigenaar Bachelor Kunstmatige Intelligentie
Coördinator Bas Terwijn
Onderdeel van Bachelor Kunstmatige Intelligentie, jaar 3
Links Zichtbare leerlijnen

Studiewijzer 2025/2026

Globale inhoud

This course introduces students with prior programming experience (mainly in Python) to the C++ programming language and the basics of GPU programming with CUDA. In the first part of the course, students learn the fundamentals of C++, including syntax, control structures, memory management, and object-oriented programming. These topics are practiced through a series of three progressively challenging assignments. The final assignment focuses on writing parallel code using CUDA that runs on a GPU. By the end of the course, students will have gained hands-on experience with both C++ and CUDA, preparing them for performance-critical and parallel computing applications.

Studiemateriaal

Literatuur

  • Absolute C++, International or fifth edition, by Walter Savitch

  • CUDA by Example: An Introduction to General-Purpose GPU Programming, 1st Edition, by Jason Sanders, Edward Kandrot

Leerdoelen

  • Student is able to create programs in the imperative programming language C++.
  • The student is able to use C++ features such as pointers, references, dynamic memory management, and templates.
  • The student is able to design and implement C++ classes, including the use of encapsulation, inheritance, and polymorphism.
  • Student is able to use techniques from software engineering and professional tools like an IDE and debugging environments.
  • The student is able to write parallel programs using CUDA and execute them on a GPU.

Onderwijsvormen

  • Werkcollege
  • Laptopcollege

Week 6 werkcolleges: discussing slides about Assignment 1

Week 8 laptopcolleges: working on Assignment 1, with the opportunity to ask questions

Week 10 werkcolleges: discussing slides about Assignment 2

Week 12 laptopcolleges: working on Assignment 2, with the opportunity to ask questions

Week 13 deeltoets:

Week 14 werkcolleges: discussing slides about Assignment 3

Week 16 laptopcolleges: working on Assignment 3, with the opportunity to ask questions

Week 19 werkcolleges: discussing slides about Assignment 4

Week 21 laptopcolleges: working on Assignment 4, with the opportunity to ask questions

Week 22 deeltoets:

Verdeling leeractiviteiten

Activiteit

Uren

Deeltoets

4

Laptopcollege

16

Werkcollege

16

Zelfstudie

132

Totaal

168

(6 EC x 28 uur)

Aanwezigheid

Aanwezigheidseisen opleiding (OER-B Artikel B-4.10):

  • Voor sommige studieonderdelen geldt een aanwezigheidsplicht. Indien er een aanwezigheidsplicht geldt, dan staat dit aangegeven in de studiegids. De onderbouwing voor, en invulling van, deze aanwezigheidsplicht kan per vak verschillen, en is opgenomen in de studiewijzer. Wanneer studenten niet voldoen aan deze aanwezigheidsplicht kan het onderdeel niet met een voldoende worden afgerond.

Toetsing

Onderdeel en weging Details

Eindcijfer

1 (50%)

Deeltoets 1

1 (50%)

Deeltoets 2

To pass the course, all assignments must be graded as a pass (6 or higher). If you receive a failing grade, there is an option to do a compensation assignment to make up for it. Each assignment must be submitted before the deadline stated on Canvas.

The deeltoetsen cover the material taught up to that point (in the slides and the book) as well as the assignments. They are open-book exams: you may use a laptop to read the book and slides. The exam itself is written, using pen and paper.

Inzage toetsing

In werkcolleges and laptopcolleges, there is an opportunity to review the grading of assignments and deeltoetsen. For the final deeltoets, an appointment can be made by email to review the grading.

Opdrachten

  • assignment1: Implementation in C++ code of algorithms involving dates (validity and difference), as an introduction to this programming language.

  • assignment2: Implementation in C++ code of an encryption algorithm.

  • assignment3: Implementation in C++ of your own computer game.

  • assignment4: Implementation in C++ of algorithms that can be executed on a GPU.

The assignment are made individually a graded in a scale 0 through 10. Grade and feedback will be given in Canvas.

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

WeeknummerOnderwerpenStudiestof
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Contactinformatie

Coördinator

  • Bas Terwijn