CGRA 151 (2021) - Home Page

Forum: For help with assignments, problems wth the submission system, queries about details of the lecture notes, and contact with a tutor outside laboratories: use the forum or email tutors are explicitely allocated to answer posts on the forum and email to that address.

Class rep: Your class rep is Georgia Barrand, who has set up the CGRA151 Discord.

Staff contact: For queries that must go to a staff member, please contact the course coordinator Dr Fanglue Zhang.

Tutorials: Details about the tutorials can be found in the Lecture Notes (slides 8 and 9).


The course is primarily offered in-person, but there will also be a remote option and there will be online alternatives for all the components of the course for students who cannot attend in-person.

Students taking this course remotely must have access to a computer with camera and microphone and a reliable high speed internet connection that will support real-time video plus audio connections and screen sharing. Students must be able to use Zoom; other communication applications may also be used. A mobile phone connection only is not considered sufficient. The comuputer must be adequate to support the programming required by the course: almost any modern windows, macintosh, or unix laptop or desktop computer will be sufficient, but an Android or IOS tablet will not.

If the assessment of the course includes tests, the tests will generally be run in-person on the Kelburn campus. There will be a remote option for students who cannot attend in-person and who have a strong justification (for example, being enrolled from overseas).
The remote test option will use Zoom for online supervision of the tests and you must be able to use Zoom with a camera, microphone, and screen-sharing. Students who will need to use the remote test option must contact the course coordinator in the first two weeks to get permission and make arrangements.

The course has four components:
1. Programming: To teach you how to use a Java-based graphics language, Processing, to consolidate what you learnt in COMP 102, COMP 112 or DSDN 142. To teach you something about algorithm design, especially about ways to optimise an algorithm.
2. Behind the scenes: Detailed consideration of a numbe of fundamental computer graphics algorithms that allow you to understand what a graphics card does when it draws.
3. Underlying mathematics. Algebraic representations of lines and curves. Vectors, matrices, representation of transforms using matrices. Algebra for line-line intersection and closest-point-to-a-line calculation.
4. Fundamental concepts in human vision, colour representation and display design: so that you know the limitations of what we do and why those limitations exist.