- Lectures
- Tutorials
- Course Overview
- Recommended Textbook
- Lecture Schedule
- Assignments
- Lateness Policy
- Grading
- Academic Honesty (required reading)
| LEC 0101/2001 | LEC 0201 | |
|---|---|---|
| Instructor | Prof. Karan Singh | Joonho Kim |
| Contact | karan@dgp.toronto.edu | joonho@dgp.toronto.edu |
| Lecture | Tue 13:00–15:00 WI1017 | Tue 15:00–17:00 BA1130 |
| Tutorial | Thu 13:00–14:00 MC252 | Thu 15:00–16:00 MC254 |
| Office Hours | Tue 11:30–12:30 BA5258 | Wed 12:00–13:00 BA2272 |
*You can attend any office hours that fits your schedule
Karran Pandey (Head TA)
Lulu Wei
Sophia Yang
Zhijie Wu
Vishnu Nittoor
Jialin Li
Bo-Wei Wen
Use Assignment GitHub issue pages for questions/discussion
OpenGL Tutorials at http://www.opengl-tutorial.org
This course introduces the basic concepts and algorithms of computer graphics. It covers the basic methods needed to model and render 3D objects, including much of the following: graphics displays, basic optics, line drawing, affine and perspective transformations, windows and viewports, clipping, visibility, illumination and reflectance models, radiometry, energy transfer models, parametric representations, curves and surfaces, texture mapping, graphics hardware, ray tracing, graphics toolkits, animation systems.
Prerequisites: C/C++ Programming, Linear Algebra, Calculus, Numerical Methods.
The student is expected to read background material on the hardware and local software, and should be comfortable with elementary linear algebra, geometry, and vector calculus. It is also assumed that the student is comfortable programming in basic C++.
(Strongly) Recommended preparation: Multivariable Calculus
This class involves required reading from:
Fundamentals of Computer Graphics, Fourth Edition, Steve Marschner, Peter Shirley, et al. 2015.
Digital e-book are available at CRC Press.
Below is the schedule for the course with each row of the table showing the week beginning with Sunday.
- Tuesdays: Lecture days
- Wednesdays: Quiz due dates
- Thursdays: Tutorial/Office Hours
- Fridays: Assignment due dates (11:59pm) on Markus.
| Week | Sunday | Mon | Tue (Lectures) | Wed (Quiz Release+Due) | Thu (Tutorial+office Hours) | Fri (Assignment Due) |
|---|---|---|---|---|---|---|
| 1 | Aug 31 | Labour Day | Introduction Lec 1 Lec 1 JK |
Tut 1 | ||
| 2 | Sep 7 | Lec 2 Lec 2 JK |
q1 released | Tut 2 | a1 + oh1 | |
| 3 | Sep 14 | Lec 3 Lec 3 JK |
Tut 3 | a2 + oh2 | ||
| 4 | Sep 21 | Lec 4 Lec 4 JK |
q2 released + q1 due | Tut 4 | a3 + oh3 | |
| 5 | Sep 28 | Lec 5 | Tut 5 | |||
| 6 | Oct 5 | refresher+Test 1 (Lec1-4) | a4 + oh4 | |||
| 7 | Oct 12 | Thanksgiving | Lec 6 Lec 6 JK |
Tut 6 | q3 released + q2 due | |
| 8 | Oct 19 | Lec 7 Lec 7 JK |
a5 + oh5 | |||
| 9 | Oct 26 | Reading Week | Reading Week | Reading Week | Reading Week | Reading Week |
| 10 | Nov 2 | Lec7 | Tut 7 | a6 + oh6 | ||
| 11 | Nov 9 | Lec 8 (Drop Day) | q4 released + q3 due | Tut 8 | a7 + oh7 | |
| 12 | Nov 16 | Guest lecture + Review | ||||
| 13 | Nov 23 | Test 2 (Lec5-8) | ||||
| 14 | Nov 30 | Advance Topics+wrap | a8 + oh8 | showcase |
You can find a series of short videos cut up by lectures and topics voicing over the lecture slides here.
| % | Item |
|---|---|
| 64 | Assignments (8% each) + 5% extra credit creative showcase |
| 12 | 4 Quizzes (Online) |
| 12 | Test 1 (ch 1-4) |
| 12 | Test 2 (ch 5-8) |
Note: All assignments are available immediately. BUT we are only covering one assignment at a time. While you are welcome to look ahead, future assignments have not been debugged and we will not answer questions about them at tutorial or office hours until we cover them in lecture
Assignments will be due on their respective Friday due dates at 11:59pm.
Every student is given ten (10) grace tokens which are automatically applied for assignments on Markus starting at midnight on the due date. Each grace token will provide an additional 12 hours period to submit your assignment without penalty. Grace tokens do not replenish, so use them wisely. Weekends count as late days. You cannot choose which assignments to apply your grace tokens. Once you run out of grace tokens, any late assignments will be counted as 0 marks.
For example, say you have 10 grace tokens. If a1 is due on Friday 11:59pm and you submit your assignment on Sunday 4pm, you will have used 4 grace tokens: Friday 11:59pm -> Saturday 11:59am (1gt) -> Saturday 11:59pm (1gt) -> Sunday 11:59am (1gt) -> Sunday 11:59pm (1gt). You will now have 6 grace tokens left for other assignments.
There will be 4 online quizzes available through Quercus. Each quiz will cover the content of two assignments each, from assignment 1 to assignment 8. Each quiz will go live after the respective topics are covered in class and must be completed on Quercus by the end of the term (Nov 26).
You will only have 1 attempt to complete the quiz.
Academic Honesty (required reading)
Academic honesty is a very serious matter and can result in very serious consequences. Note that academic offences may be discovered and handled retroactively, even after the semester in which the course was taken for credit. This is a challenging class aimed at teaching you the fundamentals of computer graphics. You won't learn much if you cheat but you might get a good grade if you get away with it. If all you want is a good grade take an easier class where you won't have to cheat!
For purposes of this class, academic dishonesty is defined as:
- Any attempt to pass off work on a test, quiz or assignment that didn't come straight out of your own head.
- Any collaboration on written or programming assignments (its ok to share ideas on programming assignments but the code MUST be your own) in which the collaborating parties don't clearly and prominently explain exactly who did what, at turn-in time.
- Any activity that has the effect of significantly impairing the ability of another student to learn. Examples here might include destroying the work of others, interfering with their access to resources (e.g., digital cameras), or deliberately providing them with misleading information.
- Please use the TA Email List for all communications except for things that require a Professors dedicated attention.
- Use github issue pages on assignment pages for questions
- Do NOT broadcast pieces of your code or answers to written assignments to the github issues. Specific or general implementation questions whose answer would benefit all students in the class are appropriate. However: the bulletin board is NO replacement for the tutorial hour. That should be the main forum for asking/answering questions of this sort.
- Questions of the form "I cannot find the problem with my code; here it is, can you help me" are unlikely to be replied, so don't count on it. If you have a question with code, take it to the TA office hours or to the tutorials.


