Introduction to Computer Graphics (and Vision)

CMPT 361, Spring 2022 - ONLINE COURSE

CourSys page:

Instructors: Yağız Aksoy, Manolis Savva    TAs: Mahesh Reddy, Yongsen Mao

Course description:
Classical computer graphics has had a focus on realistic image synthesis, when given an explicitly defined 3D scene. In its modern era, graphics research has extended its reach to cover the synthesis and generation of all visual content, beyond scene projection and rendering. Hence, there is often a need to first acquire an understanding of the visual information being processed and created, which is an analysis task studied in computer vision. Indeed, modern computer graphics has seen “an increasing integration of techniques from computer vision” (from page 2 of “Computer Graphics, Principles and Practice, Third Edition, by Hughes, et al.). In this course, which will be co-taught by two instructors, we will offer an introduction to fundamental concepts and techniques in both computer graphics and computer vision, with more emphasis placed on material that is deemed central to both fields. With a focus on classical topics, we will also shed light on the most recent trend and developments in the fields and the interplay between them. Students completing this course will be well prepared for more advanced courses in both computer graphics and computer vision. Programming assignments will be conducted in WebGL for the graphics-related problems and MATLAB for vision-related ones.

How to take this course:
This course is composed of two mandatory and important parts: lecture videos and live lectures. Every week, you need to watch the lecture videos before coming to the live lectures. The live lectures have many different activities that will help you develop your understanding, where we go over hard concepts and formulations in further detail, discuss your questions on previous week's subjects, programming assignments, and general discussions about every aspect of visual computing.

Prerequisites: (i) CMPT 225 - Data Structures and Programming, (ii) MATH 232 or 240 - Linear Algebra

You should brush up on your linear algebra skills as soon as possible to make the best of this class. 3Blue1Brown has introductory Linear Algebra classes on Youtube with great visual explanations of concepts that we will make use of during the class.

Live lecture sessions: Mondays: 2:30 - 3:20pm, Thursdays: 2:30 - 4:20pm, online on Zoom (link on CourSys)

Announcements, Lecture Notes, Questions and Discussion

Our main venue for communication will be the discussion forum in CourSys .

Office hours:
Yağız: Every live lecture with him, or reach me through the discussion forum to find a time.
Manolis: Every live lecture with him, or book one-on-one discussion using calendly).
Mahesh: TBA
Yongsen: TBA

Grading (tentative)

4 Programming assignments (2 vision, 2 graphics, each 10%) - 40%
Midterm - 20%
Final - 30%
Live lecture quizzes - 10%
Participation in CourSys discussion forum - up to 5% bonus


Vision required reading: Computer Vision: Algorithms and Applications, 2nd ed. , Richard Szeliski, 2020 (online) (acronym for readings is "CV")

Graphics required reading: Interactive Computer Graphics: A Top-Down Approach with WebGL, 7th ed., E. Angel and D. Shreiner, ISBN: 9780133574845 (acronym for readings is "CG")

Programming assignments - TBA

Tentative schedule

Y. Aksoy will cover vision topics and M. Savva will cover graphics topics.

Video lectures are available on YouTube for you to follow weekly before the live lectures (see links below; video lectures are also available in SFU Vault if you have trouble accessing YouTube). We will have live lectures over Zoom during scheduled course hours where every student are expected to join. The live lectures are where we go into some topics in more detail, and complete your understanding of the course topics. This is also the opportunity to ask open questions after lectures as we would have done in a traditional classroom.

Computer Vision Lectures Playlist Computer Graphics Lectures Playlist

Jan 10 (Intro lectures, watch out for announcements on Coursys!)

Reading: webpage

Reading: CV 1.1, 1.2

Reading: CG 1.1

Jan 13

Reading: CV 2.3.2, 3.1

Jan 17

Jan 20

Reading: CV 3.2, 3.3

Reading: CV 7.2

Reading: CV 7.1.1

Jan 24

Jan 27

Reading: CV 5.3, 5.4

Reading: CV 3.4

Feb 2: Assignment 1 deadline. Requires lectures V1 to V6.

Jan 31

Feb 3

Reading: CV 7.1.2, 7.1.3

Reading: CV 2.1.1, 8.1.1; 8.1.1, 8.1.2, 8.1.4
--Slides 1-- --Slides 2--

Reading: CV 2.1.4, 2.1.5

Feb 7

Feb 10


Reading: CG 1.1-5
--Slides 1-- --Slides 2--

Reading: CG 8.1-2

Feb 16: Assignment 2 deadline. Requires lectures V7 to V10.

Feb 14

Feb 17

Reading: CG 8.8-10

Reading: CG 12.1-3

Reading: CG 8.6.1, 9.10.2-3

Feb 21

Feb 24

Reading break, no live sessions

Feb 28: Assignment 3 deadline. Requires lectures G1 to G6.

Feb 28

Mar 3

Pre-Midterm Discussion and Q&A

Midterm (50% Vision, 50% Graphics)

Mar 7

Mar 10

Reading: CV 5.2.1, 5.2.2, 7.5.1, 7.5.2

Reading: CV 7.1.5

Reading: CV 12.3, 12.4, 12.5

Mar 14

Mar 17

Reading: CG 6.2-5

Reading: CG 4.2

Reading: CG 2.4, 4.6, 11.1

Mar 21

Mar 24

Reading: CG 4.7-11, 9.1-3, 9.8-9

Reading: CG 7.3-5

Reading: CG 7.7-8, 5.11

Mar 28

Mar 31

Reading: CG 10.2-4

Reading: CG 3.6-11

Reading: CG 1.7-9

Apr 4

Apr 7

Beyond 361 Lectures

Apr 11

Final Q&A

Apr 11: Assignment 4 deadline. Requires lectures G7 to G15.


We will provide detailed explanations for the exam procedures in due time, but some critical details:
- The exams will focus around pen & paper, problem-solving questions.
- You’ll write down your answers on blank papers, take pictures of your answers, and upload to CourSys using your mobile phone.
- Q&A during the exam and the posting of the exam questions will be conducted on CourSys.

Academic Integrity

Unethical academic behavior will not be tolerated in this course. You are encouraged to talk about and discuss coding assignments with your classmates and CourSys should be your go-to venue for such discussions. Besides code/libraries specified in the assignment instructions, every single line of code you submit in your assignments must be written by you, and you are not allowed to copy from other sources. Writing code by exactly or closely following existing code is not technically copy-and-paste, but is also considered to be copy-and-paste. It is very easy to detect such cases and we will be checking every file you upload. Use your fair judgement. You know what is good and bad. When in doubt, consult the instructor. You are expected to maintain the highest standards of academic integrity and refrain from the forms of misconduct. Please refer to SFU's academic integrity policy , and consider taking the Academic Integrity Tutorial .