PROG2002 - Graphics Programming


Examination arrangement

Examination arrangement: Home exam
Grade: Letter grades

Evaluation Weighting Duration Grade deviation Examination aids
Home exam 100/100 72 hours

Course content

Core Topics:

- The OpenGL Graphics Pipeline (2D/3D).

- Geometric Transformations (2D/3D).

- Colors, Textures, Blending and Sprites.

- Shaders Programming with GLSL.

- Illumination Techniques.

- C++ Programming with CMake and Git.

Optional Topics:

- Advanced surface descriptions.

- Shadowing.

- Animations.

Learning outcome

On completion of this course the students will have the following.


- Listing and describing the components of the OpenGL graphics pipeline.

- Understanding the mathematical foundations of geometric transformations in computer graphics.

- Handling textures to display image-based content.

- Applying Illumination in 2D/3D scenes.

- OpenGL API programming.

- GLSL Shaders programming.


- Creating procedural animations.

- Utilizing 3D models (loading, onscreen display).

- Creating and manipulating lighting in a 3D scene.

- Using OpenGL for rendering 3D environments.

General Competences:

- Finding solutions to a defined problem orally, and answer question about the solution.

- Using academic material from various online sources in an independent way.

- Improved software development ability.

- Reinforce version control, programming and code analysis.

Learning methods and activities

- Lectures with theoretical content.

- Labs and Assignments where the students will work in a problem-based learning setting using C++, OpenGL, CMake and Git, as well as some other relevant C++ libraries.

Compulsory assignments

  • Mandatory programming assignments

Further on evaluation

Re-sit examination is possible in agreement with the course responsible.


Home exam (100%)

Mandatory programming assignments that needs to be approved to be able to take the home exam.

Specific conditions

Compulsory activities from previous semester may be approved by the department.

Admission to a programme of study is required:
Computer Science (BIDATA)
Programming (BPROG)

Required previous knowledge

- PROG1001 Fundamental Programming (or equivalent).

Course materials

Computing Resources:

- This course requires a computer with a GPU and an operating system capable of running OpenGL 4.3 or superior. It is the responsibility of the student to set up the operating system and drivers to work properly for the course.

- The material of the course has been prepared and tested in GNU/Linux systems. MS Windows users should be able to run this material as well. Mac OS does not support OpenGL > 4.1 and we discourage its use for this course. Students who decide to take the course with Mac OS can do it using OpenGL 4.1, however, the student will take full responsibility of adapting the material of the course to Mac OS, as well as making sure the deliverables work properly in Windows/Linux with OpenGL 4.3 or superior ("but it works on my machine" won't be accepted).

Online Resources:

- Anton's OpenGL 4 Tutorials (

- Learn OpenGL Tutorials (

Recommended Texts:

- OpenGL Programming Guide: The Official Guide to Learning OpenGL, 9th Edition.

- OpenGL SuperBible: Comprehensive Tutorial and Reference, 7th Edition.

- Mathematics for 3D game programming and computer graphics, 3rd Edition.

More on the course



Version: 1
Credits:  7.5 SP
Study level: Intermediate course, level II


Term no.: 1
Teaching semester:  AUTUMN 2022

Language of instruction: English

Location: Gjøvik

Subject area(s)
  • Computer Science
Contact information
Course coordinator: Lecturer(s):

Department with academic responsibility
Department of Computer Science


Examination arrangement: Home exam

Term Status code Evaluation Weighting Examination aids Date Time Examination system Room *
Autumn ORD Home exam 100/100





Room Building Number of candidates
  • * The location (room) for a written examination is published 3 days before examination date. If more than one room is listed, you will find your room at Studentweb.

For more information regarding registration for examination and examination procedures, see "Innsida - Exams"

More on examinations at NTNU