## Fall 2019 - General Information
## DescriptionThe study of fundamental mathematical, algorithmic and representational issues in computer graphics. The topics include an overview of graphics pipeline, projective geometry, homogeneous coordinates, projective transformations, quadrics and tensors, line-drawing, surface modeling and object modeling, reflectance models and rendering, texture mapping, polyhedral representations, colour perception, and other selected topics according to available time (see the tentative schedule below). ## Assignments, Exercises, and ExamsThere will be four assignments during the term, totaling 50% of the course mark, but not all of equal weight! The assignments require programming in Java. Links to assignments will be posted to MyCourses during the term. Instructions for assignment setup are posted in MyCourses. Late assignments will be graded with a 10% penalty and will be accepted up to 3 days from the original due date (i.e., if you are not going to make the deadline, get some sleep and find the time to finish your submission properly). There will be two exams, worth a total of 50% of the final grade. The first will be a midterm exam which will take place in class in mid October. It is worth 20% of your grade. The second exam will take place during the Final Exam Period and is worth 30% of the final grade. Practice problems, old midterms and final exams, and in some cases solutions will also be posted to MyCourses during the term. ## Resources
There is no required text for the course, but one of the following course textbooks is recommended (the first slightly more than the second) and is available for purchase at the McGill bookstore.
- Fundamentals of Computer Graphics , 3rd or 4th Edition, Shirley and Marschner
- Computer Graphics Principles and Practice, 3rd Edition, Hughes et al.
The other very useful reference for working on OpenGL assignments is the OpenGL programming guide. - OpenGL Programming Guide: The official guide to learning OpenGL, search online
There are also many alternative and online resources that you may find helpful for much of the material, including these listed below. - The Graphics Codex (mostly focuses on rendering, but has an important overlap with many fundamentla topics, and shows how material across several popular texts is related)
## Prerequisites
Graduate students interested in this course, who have not already taken a graphics course, will likely have taken courses equivalent to the prerequisites listed below. For undergraduate students, there are three official prerequisites for the course:
- COMP 206 Introduction to Software Systems -- Historically, the assignments have required programming in C and the use the unix utility make, but for several years the assignments have been in Java. Nevertheless, the prerequisite still has some relevance because for the use of libraries, and debugging and testing of code.
- MATH 222 Calculus 3 -- Graphics involves parametric representations, partial derivatives and integrals and some vector calculus. This prerequisite will ensure you are prepared, and it or its equivalent is required for all CS Majors.
- MATH 223 Linear Algebra -- This course will build upon your basic understanding of vectors and matrices. You should have at least a B grade in your linear algebra course, or be prepared for a serious review.
- COMP 250 Introduction to Computer Science -- This prerequisite is to ensure that students have a sufficiently high level of computer science and mathematical maturity.
## Tentative Schedule and TopicsThe following list is a tentative schedule of topics. MyCourses course content will have the official list of topics as the term progresses. That is, adjustments will be made to synchronize with assignments and to better match material in the textbook and other sources. Topics will be added and removed depending on interest and time permitting.
## In case you didn't already know...
McGill University values academic integrity. Therefore, all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures. See www.mcgill.ca/integrity for more information, as well as www.mcgill.ca/students/srr/honest with respect to student rights and responsibilities. From the dean of students, on academic integrity: As instructors, if you suspect a student has plagiarized or cheated on a test or assignment, remember that you cannot penalize them yourself. This must be handled through the Code of Student Conduct and Disciplinary Procedures. The Disciplinary Officer for your Faculty can help guide you through the process. It should be noted that, in accordance with article 15 of the Charter of Students'Rights, students may submit examination answers in either French or English. According to Senate regulations, instructors are not permitted to make special arrangements for final exams. Please consult the Calendar, section 4.7.2.1, General University Information and Regulations at www.mcgill.ca. Special arrangements in emergencies may be requested at your Student Affairs Office. If you have a disability, please advise the Office for Students with Disabilities (398-6009) as early in the term as possible so that we can provide appropriate accommodation to support your success. Please note McGill's Policy for the Accommodation of Religious Holy Days. In the event of circumstances beyond the instructor's control, the evaluation scheme as set out in this document might require change. In such a case, every effort will be made to obtain consensus agreement from the class. Additional policies governing academic issues which affect students can be found on the Student Rights and Responsibilities page. |