Generally, the best way to reach me is via email.
We're going to learn about computer graphics, both how to create them using powerful libraries and (part of) how those libraries work. The end goal will be the creation of sophisticated, interactive 3D graphics and an understanding of the foundations required to create them.
Our scheduled lecture times are Monday, Wednesday, and Friday during 5th period (1:20-2:30pm) in SMC D-213.
I will use Google Classroom to post copies of the slides, assignments, and announcements there. I'll invite everyone to our class; if I somehow miss doing this, please send me an email.
This class has a required textbook: "Interactive computer graphics" (8th edition) by Angel and Shreiner.
You will need to get a Clicker (i>clicker+; available at the bookstore) for this course. This is a radio device that lets you "vote" a multiple-choice answer (A-E). (You can also use the app version, but students had some trouble with that version last term.) We'll use it as part of the Peer Instruction pedagogy.
This class will be taught using Peer Instruction, in which the lecture is periodically interrupted with multiple choice questions that you answer and then discuss with your peers. (These questions are graded for participation so don't worry if you can't answer them all.) Peer Instruction has been shown to improve your learning; you learn more by explaining your ideas to others and hearing their explanations than by just listening to me.
To get the benefits of Peer Instruction, you need to actively participate. Attempt to correctly answer the questions. Be sure to explain your reasoning and listen to the reasoning of other students when you're in your group. This can be uncomfortable since you'll have to admit when you don't understand something, but this is an opportunity to get clarifications from your peers.
Expect to work for this class. This is one of three classes that make up a full-time schedule so you should spend ~13 1/3 hours/week on it.
The best way to spend your time on the course is to practice. I encourage you to continue working on our assigned programs or to create your own cool things.
If you find yourself struggling in this course, get help right away. The term will move quickly and concepts in this course build on one another so you can't afford to get too far behind. Please reach out if you have a question-- I'm happy to talk with you if you come by my office and am generally responsive to questions sent by email.
This class will have the following types of assignments:
Be aware that I draw my examples for lecture from student assignments. Don't be surprised if something you submit ends up projected on the screen during class. The purpose of this is to demonstrate important concepts and to provide material for discussion, not to embarrass you. I will endeavor to use these examples anonymously by removing names and any other identifying features.
Homeworks will be due at midnight. Everyone has an automatic extension for 8 hours (i.e. until 8am the next morning). I may release homework solutions or discuss them in class at any time after the automatic extension, after which those problems cannot be submitted. Otherwise, homework submitted up to 24 hours after the automatic extension incurs a 10% penalty and work submitted between 24 hours after the automatic extension and 2 weeks after the extended deadline incurs a 20% penalty. No submissions will be accepted more than two weeks late without exceptional circumstances. In addition, no homework will be accepted after the end of the first reading day (5/30).
In recognition that sometimes "life happens" and gets in the way of the timely completion of work, you get two "late days" that may be used on homework assignments during the term. Each allows you to reduce the late penalty on an assignment by 10%. They can be used for the same assignment (completely removing the penalty on that assignment) or different assignments (reducing the penalty by 10% on each). Note that the late days do not allow you to get points on assignments completed after two weeks from the extended deadline.
Individual extensions beyond the automatic extensions and these two late days may be granted, but require extraordinary circumstances. "Extraordinary circumstances" are events more serious than things that happen (you have other classes, you get sick, you have a fieldtrip for another class, etc). I have in mind serious injury or illness (you go to the hospital or are incapacitated for an extended time), someone's death, etc.
If flunk day falls on a day an assignment is due or the day before, that assignment is extended by one day. Flunk day also acts as a free "late day" and does not count toward the 2 weeks during which assignments must be completed.
I assign extra credit problems infrequently, but I will give extra credit for attending colloquium talks sponsored by the CS department (possibly other departments, depending on the talk) and submitting a short writeup about the talk. This offer applies to any qualifying talk for which you are not otherwise getting credit; you should not submit a writeup to me and also for another class.
In order to get credit for a talk, submit a quick writeup (~1 page) to me within two weeks of the talk (you need to remember the talk...). DO NOT just summarize the talk; I want to hear what you thought about it or how it relates to other things you've seen/heard. While your writeup doesn't have to be brilliant prose, I do expect you to write thoughtfully and correctly and I may return your writeup for revisions before giving you credit.
The midterm for this class must be completed individually. Homework is also submitted individually, but you are allowed to talk with others and are encouraged to work together in small groups (2-3 students). Even when working together you must write your submission yourself and understand it completely. In addition, you must do two things:
The same policies apply to getting help from inanimate sources, including AI systems. If you use a source other than our textbook or other course materials, you must cite this source. As in collaborations with another person, you are expected to write your own solution; do not copy text or code from any source. You may look at other sources for examples or conceptual help, but not actual solutions. Some problems assigned for this class may have been used previously, but you are expected not to deliberately seek solutions. (If you come across one accidently, let me know and I will give you a modified assignment.)
Please feel free to contact me if you have any questions about this policy.
At the end of the term, all of your work will combined into an overall course percentage based on the following weights:
| Clicker questions | 10% |
| Homework and RQs | 45% |
| Midterm exam | 20% |
| Final project | 25% |