CIS 441/541, Introduction to Computer Graphics

Time: Tuesdays and Thursday 10:00-11:20
Location: 208 Deady Hall
Instructor: Hank Childs
Hank's Office Hours: Thursday 1130-1230, Friday 1130-1230
OH Location: 301 Deschutes Hall
GTF (Roscoe Casita) Office Hours: Monday 1-2, Tuesday 1-2, Wednesday 1-3
GTF OH Location: Deschutes Lounge (1st floor)


This is a projects-driven class. The projects will help you learn the theory of computer graphics, but they will also help you become better programmers, and provide you with experiences, anecdotes, and images that will impress potential employers. (In terms of explicit learning outcomes, you will implement a significant software system, you will demonstrate proficiency in computer graphics theory, and you will demonstrate proficiency in practical computer graphics usage.)

The grading is designed to make sure you are keeping up with the assignments. Staying on top of the projects will be critical to succeeding in this class.

The projects in this class will be hard work. It is difficult to quote exactly how much time, since there is variation in background and programming skill. I expect those who have less developed programming skills will find this class to be a considerable effort, but also that they will have significant improvement by the end of the course.

Course Materials


Each piece of Project 1 will build on itself, so do a good job. Also, under no circumstance will I hand out solutions to the one of sub-projects to assist those who fall behind.

Note: the denominator for 441 is 100, and for 541 is 115.

Projects 1A-1F, 2A, and 2B will be submitted to Canvas and graded by me or the TA. I would rather have correct work late than incorrect work on time. In almost all circumstances, producing the correct picture will result in full credit. Projects that do not produce the correct pictures will get less than half credit, even if the cause is a minor error.

The final projects will be demonstrated in front of the whole class on the day of the Final. Since we have such a large class, we may need to be creative on how to do this (i.e., multiple rounds with subsets of us, culminating in a finale during the Finals period).

Working Together

All projects are individual projects. Copying code from other students is cheating. However, I highly encourage you to discuss your roadblocks with each other and lean on each other to figure out solutions to your problems. I have set up a forum on Piazza. I encourage you all to monitor and respond to the forum, and I may award extra credit to students who are particularly helpful on the forum. The amount of extra credit will vary based on involvement, and would result in a 1/3rd grade boost (e.g., B to B+).

Evaluation Criteria

Late Policy

You have 2 "late passes." Late passes allow you to turn in your project (specifically a sub-project, i.e., project 1A) two days after the due date for full credit. You may also use two late passes on one assignment and get a four day extension. For example, you submit a project that was due on a Wednesday on Friday (i.e., two days later) and get full credit if you use one late pass.

If you run out of late passes, then you may continue to earn half credit on any project up until we take the Final. Once we get to the Final (Monday March 18th at 8am), I will no longer accept homeworks.

Note that projects will initially be marked as late and scored half credit. At the end of the term, you will tell me which projects you want to apply your late passes to, and the scores for those projects will be increased. There is no need to indicate your desire to use a late pass as you submit; I find it often changes as the term goes on. If you miss the Final exam period, you may present your project afterwards for half-credit. Exceptions for full credit will be granted in appropriate situations. These situations include medical emergencies, etc, and do not include oversleeping, forgetting the day of the final, etc.

Class Attendance

I expect you to attend class every day. I recommend you find a friend (or make a friend) and ask them to fill you in if you missed a class.

Explicitly: if we change deadlines, project grade weights, etc., I do not view it as my job to relay this information to those who aren't in class. (Although I frequently will relay it anyway.)

Aside from that, it is up to you on whether you miss class.

For those who have legitimate reasons for missing class, I will, of course, be happy to work with you to get you up to speed.

Course Lectures

The lectures will be based around preparing you for the projects. We will discuss rasterization, camera transformations, and shading during the first part of the class. The middle part will focus on practical matters for using graphics systems. The final part of the course will present quick overviews of topics in graphics I think you should be exposed to. The breakdown of these three parts can be loosely inferred from the projects.

Academic Misconduct

Form from the first day of class.


Unfortunately, I will be on travel quite a bit this quarter. I will communicate the plan for these absences as we go.



Contact Information

Email: hank at
Phone: (541) 346-3414 (terrible way to get in touch with me!)
Fax: (541) 346-5373

301 Deschutes Hall
1202 University of Oregon
Eugene, OR 97403-1212 USA