nl en

Computer Graphics


Admission requirements

Not applicable.


The goal of this course is to create a foundation (theory and programming) for understanding the current and future technology underlying computer graphics. Our intention is to create a synergistic mixture of theory and practice. The first part of the class begins with introductory lectures into the mathematical fundamentals and workshops in programming 3D graphics. In the second half of the semester, the class moves to current state of the art methods which are presented by the students. Examples of typical subjects which will be covered are:

  • 3D modeling

  • 3D lighting & effects

  • Real time rendering

  • Advanced applications and systems

Table of contents

  • Introduction to computer graphics and OpenGL

  • Mathematical fundamentals

  • Transformations: Translation, Rotation, Scaling

  • Homogeneous transformations

  • Viewports

  • Parallel, oblique, and perspective Projections

  • Line and surface representations

  • Hermite and Bezier modeling

  • Diffuse and Specular Shading

  • Ray Tracing

  • Hidden surface removal

  • Radiosity

  • Particle systems

  • High performance rendering algorithms

  • Important research directions (e.g. SIGGRAPH, ACM TOG)

The student must be fluent in C/C++ programming.

Course objectives

At the end of the Computer Graphics course, the student should be able to

  • understand the theoretical/mathematical fundamentals in computer graphics

  • understand the programming fundamentals in computer graphics

  • understand the current strengths and weaknesses of 3D graphics algorithms

  • have insight into ray tracing algorithms

  • have insight into illumination and rendering

  • have insight into interactive line and surface models

  • have insight into high performance computer graphics software systems

  • have insight into theoretical and practical problems in computer graphics

  • build a computer graphics program


The most updated version of the timetables can be found on the students' website and the main course website (link at the bottom of this webpage below):

You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudyMap will automatically be displayed in MyTimeTable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.

MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).

For more information, watch the video or go the the 'help-page' in MyTimetable. Please note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.

Mode of instruction

lectures seminar student discussions presentations software assignments

Assessment method

The final grade will depend on student's participation in discussions/presentations, programming assignments and the final project.

Reading List

  • All necessary educational materials are supplied digitally.

  • Optional reading: Computer Graphics Using Open GL by F. S. Hill, Jr. (Prentice-Hall, 2001 or later, ISBN: 0-02-354856-8) 2006 – 3rd Edition: ISBN-13: 978-0131496705

  • Research papers from recent ACM conferences and journals


From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudyMap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information.

Please note that it is compulsory to both preregister and confirm your participation for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course. Confirming your exam participation is possible until ten days before the exam.
Extensive FAQ's on MyStudymap can be found here.


Onderwijscoördinator Informatica, Education coordinator LIACS bachelors


Attendance is mandatory (for special situations, please consult with the teacher). Absence (without permission beforehand) will result in not passing the course.

Computer Graphics Main Website