CGRA251 (2019) - Computer Graphics


This course addresses the central algorithms, mathematical knowledge and programming for Computer Graphics. It will include topics such as geometry manipulation and computing, curvature and graphics applications of linear algebra and numerical integration. Students will implement algorithms using scripting tools and develop simple plugins for 3D computer graphics tools.

Course learning objectives

Students who pass this course should be able to:

  1. Implement a basic OpenGL application in C++ when given an appropriate basic framework from which to start. Be able to load, view, and manipulate a polygon mesh in OpenGL.
  2. Explain and implement three-dimensional rigid object animation using physical simulation.
  3. Demonstrate an ability to use a range of algebraic tools, including trilinear and tricubic interpolation, vector arithmetic (dot and cross products), intersection calculations between a ray and various primitive objects, velocity and position updates in physical simulation.

Course content

The course has two components:
1. Programming in C++ and OpenGL: getting to grips with the programming language and library that are used in most professional computer graphics situations.
2. Mathematics and graphics in OpenGL: example uses of OpenGL that allow expression of some of the mathematics used in computer graphics, including interpolation, mesh handling, mesh deformation, object animation, and simulation.

Required Academic Background

Students must have passed CGRA 151 to give them an understanding of the basic concepts on which this course builds. Students must have passed an appropriate C programming course (NWEN 241). Students must have the mathematical background to be able to handle the algebra (either ENGR 121 or MATH 151 is required; alternative mathematical preparation can be considered with Head of School permission).

Withdrawal from Course

Withdrawal dates and process:


Alex Doronin (Coordinator)

Teaching Format

During the trimester there are three lectures per week.

Student feedback

Student feedback on University courses may be found at:

Dates (trimester, teaching & break dates)

  • Teaching: 08 July 2019 - 13 October 2019
  • Break: 19 August 2019 - 01 September 2019
  • Study period: 14 October 2019 - 17 October 2019
  • Exam period: 18 October 2019 - 09 November 2019

Class Times and Room Numbers

08 July 2019 - 18 August 2019

  • Monday 12:00 - 12:50 – LT119, Hunter, Kelburn
  • Wednesday 12:00 - 12:50 – LT220, Murphy, Kelburn
  • Thursday 12:00 - 12:50 – LT220, Murphy, Kelburn
02 September 2019 - 13 October 2019

  • Monday 12:00 - 12:50 – LT119, Hunter, Kelburn
  • Wednesday 12:00 - 12:50 – LT220, Murphy, Kelburn
  • Thursday 12:00 - 12:50 – LT220, Murphy, Kelburn

Other Classes

Tutorial sessions will be held in lecture times, as notified by the course lecturers.


There are no required texts for this offering.

Mandatory Course Requirements

There are no mandatory course requirements for this course.

If you believe that exceptional circumstances may prevent you from meeting the mandatory course requirements, contact the Course Coordinator for advice as soon as possible.


The course is assessed on programming assignments and an exam

Assessment ItemDue Date or Test DateCLO(s)Percentage
Assignment 1Week 4CLO: 110%
Assignment 2Week 6CLO: 1,315%
Assignment 3Week 9CLO: 2,315%
Assignment 4Week 12CLO: 1,2,320%
ExamExam periodCLO: 2,340%


Assignments submitted late receive a 25% penalty for each day late.


The ECS submission system will automatically allocate up to three late days with no penalty. Additional extensions require the permission of the Course Coordinator and should be supported by appropriate documentation, e.g. a doctor's certificate.

Submission & Return

All work is submitted through the ECS submission system, accessible through the course web pages. Marks and comments will be returned through the ECS marking system, also available through the course web pages.


The course requires 150 hours of work. There are 3 hours per week of scheduled class time. Students are expected to spend up to 7 hours per week consolidating what they have learnt in class and working on the assignments.

Teaching Plan

Communication of Additional Information

All online material for this course can be accessed at

Offering CRN: 28399

Points: 15
Prerequisites: CGRA 151, NWEN 241; ENGR 121 or MATH 151 or permission of Head of School
Duration: 08 July 2019 - 10 November 2019
Starts: Trimester 2
Campus: Kelburn