University of Minnesota
CSci 5607: Fundamentals of Computer Graphics I

Fall 2019

Meeting time and place:
      Lecture: Mondays and Wednesdays 4:00pm - 5:15pm, ME 212


   Dr. Victoria Interrante (she/her)
   office hours: Mondays and Wednesdays 5:15pm-6:00pm, or by appointment
   Keller Hall 6-185; (612) 625-3543
   email: interran{at}

Teaching Assistant:

   Liam Tyler (he/him/his)
   office hours: Tuesdays 4-5pm, Thursdays 9:30-10:30am, and by appointment
   Keller Hall 2-246
   email: tyler147{at}

      RayTracing Resources from the RealtimeRendering website
      OpenGL tutorials
      Physically Based Rendering: From Theory to Implementation, by Matt Pharr, Wenzel Jakob, and Greg Humphreys.

Canvas web page:

Course goals:
      This course will provide students with an introduction to fundamental concepts in computer graphics programming. Students will create basic graphics programs from the ground up, including a ray tracing-based renderer written in C/C++ as well as interactive applications written using modern OpenGL.

      This course requires proficiency in programming in C/C++ and familiarity with basic concepts from introductory linear algebra. Students should have already taken, or be concurrently taking, csci2033 [Linear Algebra], or equivalent, and csci3081 [Program Design and Development], or equivalent. Prior coursework in computer graphics, such as csci4611 [Programming Interactive Computer Graphics and Games] is NOT assumed or required.

Hardware and Software Platforms:
      We will be developing programs from the ground up, beginning with a basic ray tracing-based renderer that students can write in the language of their choice (preferably C/C++). Later assignments will use shader-based OpenGL. Students may use their own personal computers for the programming assignments. Suitable computers are also available in the CSELabs. Keller 1-254 houses a state-of-the-art Graphics/VR lab with 19 computers featuring advanced GPUs (Nvidia GeForce GTX 1080). Students who plan to use CSELabs machines should ensure that they have an active CSELabs account.

      This course follows the University Senate's policy on the amount of academic work expected per credit. According to this policy, the average student is expected to invest 45 hours of learning effort per credit per term in order to earn the average grade. This translates to an average of about 7 hours of work outside of class each week. Please note that the "average" grade is not necessarily an A, and that fluency in programming and debugging in C/C++ or equivalent is assumed as a prerequisite.

Class Attendance:
      This course is lecture-based, and students are expected to attend class regularly. In recognition of the important role that class participation plays in the learning process, brief in-class exercises will be conducted on some days without advance notice; these will be graded on a binary scale and the "participation points" will factor in to the final grade. Students who have to miss a class for any reason should plan to watch the missed lecture online via UNITE, where videos will be available after a 10 day delay. Missed participation answers may be accepted by email (to the TA) in exceptional situations only.

Exams and Assignments:
      There will be two midterm exams in this class, and two substantial, multi-part programming projects. Each of the exams will have an in-class and a take-home portion. The in-class exams will be closed book. There will NOT be a final exam. All of the programming assignments will be individual assignments, and each student is expected to individually write all of their own code.

      The final grade will be computed on the following basis:
      Participation Exercises....................................... 5%
      Programming Assignments............................... 59%
      Exams............................................................... 36% (18% each)
Grades will be assigned in accordance with the University's uniform grading policy, explained online at:

Exam Dates and Times:
    First Exam....................................Wednesday, October 23
    Second Exam...............................Wednesday, December 4 (take-home portion)
    Second Exam (in-class)................Monday, December 9

Unite Media Portal:
      This course is being offered via UNITE to a small number of remote students. Students who are registered for the on-campus section of the class can access streaming video archives of the lectures after a ten-day delay period, or any time within 10 days of a scheduled exam. Archived videos can be accessed through the UNITE Media Portal using your University of Minnesota Internet I.D. and password (the same ID you use to access your University of Minnesota email account, OneStop, etc.). Please do not ask the instructor or teaching assistant for technical or troubleshooting assistance with these streaming video archives; assistance is available via the UNITE Troubleshooting FAQ and Trouble Reports can be submitted to UNITE using the link found on all pages within the UNITE Media Portal.

Late Policy:
      Because of the cumulative nature of the work in this class, it is essential that all programs be completed on time. Students who fall behind will find very little leeway for catching up because assignments will be given out in back-to-back sequence, each assignment generally depends on the successful completion of the assignment before it, and each assignment is likely to require the full time period allotted. However, because I understand that on rare occasions, extenuating circumstances may arise that can make it difficult for a student to complete one or more of the assignments by the precise assigned due date, each student will be given a total of seven "days of grace" that may be used towards any combination of assignments at any time during the term. Grace days will be appplied to consecutive 24 hour periods following the due date, including weekends and holidays. Students do not need to explicitly inform the instructor or TA that a grace day will be used; if an assignment is not received on time, grace days will be automatically applied. After all grace days have been used, assignments will be penalized 10% for each day late. Late penalties will begin to accrue at 12:01am on the day following the due date, and all calendar days subsequent to the due date will be subject to this penalty.

Make-up Policy:
      Students are required to take each of the in-class exams at its scheduled time. Make-up exams will not be offered, but reasonable alternative accommodations can be made if necessitated by truly exceptional circumstances.

Incomplete Policy:
      In order to be eligible for a grade of I, a student must have kept up with all of the required coursework until the time that the I is requested, and the student must have been prevented by an unforeseeable emergency from completing the remainder of the coursework on time. Incompletes will not be awarded for foreseeable events such as a too-heavy class load, or poorer-than-expected performance.

Policy on Withdrawal:
      Students should be aware that there is a time limit on when they may request that a grade in a course be changed to a W (withdrawal). In Fall 2019, the withdrawal deadline is Monday Nov 11. Students are not permitted to withdraw from a class to avoid a grade of F resulting from an incidence of academic dishonesty.

Student Academic Integrity and Scholastic Dishonesty:
      Academic integrity is essential to a positive teaching and learning environment. All students enrolled in University courses are expected to complete coursework responsibilities with fairness and honesty. Failure to do so by seeking unfair advantage over others or misrepresenting someone else's work as your own will result in disciplinary action. In CSci5607, all students are expected to independently design, write, and debug all of their own code. Students are encouraged to consult with others about general strategies and approaches, but verbatim copying of code from other students, or from sources on the internet or elsewhere, and mis-representing such code as one's own work, is strictly forbidden and will constitute grounds for failure. Students will be required to submit their original source code for each of the programming assignments and the originality of this code will be verified by the TA, with the assistance of online plagiarism-detection resources. Per University policy, students may not distribute, via the internet or any other means, lecture notes, recordings of the lectures, or any other instructor-provided materials without the express written consent of the instructor. CS Departmental guidelines on student academic honesty are available at: Further information about the University's expectations for student conduct and scholastic honesty can be found online at: and

Disability Accommodations:
      The University of Minnesota is committed to providing equitable access to learning opportunities for all students. Disability Services (DS) is the campus office that collaborates with students who have disabilities to provide and/or arrange reasonable accommodations. If you have, or think you may have, a disability (e.g., mental health, attentional, learning, chronic health, sensory, or physical), please contact DS at 612-626-1333 to arrange a confidential discussion regarding equitable access and reasonable accommodations. If you are registered with DS and have a current letter requesting reasonable accommodations, please contact me as early in the semester as possible to discuss how the accommodations will be applied in this course. For more information, please see the DS website,

Mental Health and Stress Management:
      As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance and may reduce your ability to participate in daily activities. University of Minnesota services are available to assist you. You can learn more about the broad range of confidential mental health services available on campus via the Student Mental Health Website:

Equity, Diversity, Equal Opportunity and Affirmative Action:
      The University is committed to enabling the open exchange of ideas within an environment of mutual respect that embodies the values of academic freedom, responsibility, integrity, and cooperation, and is free from racism, sexism, and other forms of prejudice and intolerance.

If your preferred name that you use in your daily life does not match the name that is associated with your x500 account, please inform the instructor so that she will know how to address you by your preferred name and misunderstandings can be avoided.