About CS4620/4621 Computer Graphics I
Doug James, djames at cs.cornell.edu
ofc hrs M 11:00-noon; Th 3:00-4:00 in 5146 Upson
Yue Gao, ygao at cs.cornell.edu (Ph.D. TA)
ofc hrs Th 10:30--11:30 in Upson 328B
Manolis Savva, mss86 at cornell.edu (ugrad TA)
ofc hrs Sat 11am-noon in Upson 328B
Sean Cretella, sac76 at cornell.edu (ugrad TA)
ofc hrs Wed 1:20--2:20 in Upson 328B
Ethan Benanav, edb34 at cornell.edu (ugrad TA)
ofc hrs Tues 3:00--4:00 in Upson 328B
Shuning Liu, scl82 at cornell.edu (ugrad TA)
ofc hrs Tues 10:00--11:00 in Upson 328B
Staff List: cs4620-staff-l
maintains a newsgroup (cornell.class.cs4620) that can be accessed from
newsstand.cit.cornell.edu. Thunderbird can be used to set up and
subscribe to different news groups. Students are welcome to use the
newsgroup to communicate with one another, and ask questions of course
staff who will do their best to monitor posts and respond to questions.
Time and place:
CS4620: MWF 2:30–3:20, Phillips Hall 101
CS4621: W 3:35–4:25, Phillips Hall 101 Bard Hall 140
Shirley & Marschner,Fundamentals of Computer Graphics,
Supplemental books and materials:
"Red Book" --- *the* reference for OpenGL programming
- Nate Robbin's OpenGL "tutors" programs
- 3-D computer graphics: a mathematical introduction with OpenGL, Volume 385, By Samuel R. Buss
- Andrew S. Glassner, An Introduction to ray tracing,
There will be (usually) weekly homeworks, consisting of one or two problems. See the schedule for the exact due dates. They will involve things like working out numerical or other short answers (which should always be backed up by some brief reasoning), answering "why" questions, and drawing graphs or other pictures.
The homweworks may be handwritten or printed and are to be turned in at the beginning of class. After they are graded the grades are posted on CMS, and the papers can be picked up in 360 Upson between 10am and noon or between 2pm and 4pm.
There will be four programming assignments as part of CS4620:
- Ray I: A very simple ray tracing renderer that renders spheres and boxes using a perspective camera, point light sources with shadows, and basic surface materials.
- Model: A simple modeling application that allows the user to create and transform simple objects to assemble a scene.
- Pipeline: A software model of a modern programmable graphics processor, using vertex and fragment processing to achieve a variety of rendering effects.
- Ray II: A more full-featured ray tracer than the first assignment that can handle larger models and do more advanced shading, including texture mapping and reflections in shiny surfaces.
These programs are to be done in teams of two. If you really want to work by yourself, that is OK but you will still have to do all the work. If you want to work with a partner but can't find one, please contact the course staff and we will help.
The programs must be written in Java using the framework code we'll provide. The CSUGLab in Upson 317 is set up to support this course. You are free to work on whatever computer you like, using any programming environment, but your code must compile and work using the basic command-line tools on the machines in our lab. You will hand in your source code using CMS.
There will be two one in-class midterm and a final exam:
- First Midterm: Friday 2 October
- Second Midterm: Friday 6 November
- Final: Wednesday 9 December (7:00 PM- 9:30 PM) in Hollister 110
The midterm will cover the first part of the course, and the final
is comprehensive, so it covers all material from the whole course but
with an emphasis on the second part.
All exams are closed book, but you're allowed to bring one letter-sized piece of paper with writing on both sides, to avoid the need to memorize things.
After the fact, you can find the exams and solutions on the exams page.
In the optional practicum course, CS4621, you will get a more in-depth exposure to the course material by implementing a substantial piece of interactive graphics software: a modeling and animation system based on subdivision surfaces. Students taking the practicum must attend the extra weekly lecture for CS4621, where the project and the background information required to implement it will be discussed. The practicum page on this site will be used for information specific to the practicum and can be ignored by students taking CS4620 but not CS4621.
Each item to be graded in this course will be scored out of 4 points on a 5-point scale:
- 0: Didn't hand it in
- 1: An attempt at a solution
- 2: A partially correct solution
- 3: A mostly correct solution
- 4: A correct solution
- 5: An particularly good solution
Your final grade in CS4620 will be computed from the grades on the assignments and exams. The homeworks will account for 30% of the grade, the programs will account for 45%, and the two exams will account for 25%.
Due dates and late assignments
Homework assignments are due at the start of class on the due date, and are not accepted late. The lowest homework grade will be dropped in computing your final score.
Programming assignments are due at 11:59 pm on the due date and are accepted with a late penalty until 11:59 pm two days after the due date. Programs are accepted late as follows:
- Hand in by late deadline: one point off score
- Hand in within one week of due date: graded pass/fail.
- More than one week late: no credit
Assignments that are handed in under option 2 will not be graded carefully and may be returned very late. That option is just intended to give you a chance to reduce the effect of zeros averaged into your grade.
The principle is that an assignment is an academic document, like a journal article. When you turn it in, you are claiming that everything in it is your original idea (or is original to you and your partner, if you're handing in as a pair) unless you cite a source for it.
You are welcome (encouraged, even) to discuss the homeworks and projects among yourselves in general terms. But when it comes to writing up the homeworks or implementing the projects, you need to be working alone (or only with your partner if you are doing a project as a pair). In particular, it's never OK for you to see another student's homework writeup or another team's program code, and certainly never OK to copy parts of one person's or team's writeup, code, or results into another's, even if the general solution was worked out together.
You're also welcome to read any published sources—books, articles, public web sites—that help you learn. If you find an idea in one of these sources that becomes part of your solution (or even gives you the whole solution), that's fine, but it's imperative that you credit that fact on your homework or in a comment in your code. Otherwise you would be falsely claiming to have invented the idea yourself.
In this course we expect complete integrity from everyone. School can be stressful, and your coursework and other factors can put you under a lot of pressure, but that is never a reason for dishonesty. If you feel you can't complete the work on your own, come talk to the professor or the TAs, or your advisor, and we can help you figure out what to do. Think before you hand in!
Clear-cut cases of dishonesty will result in failing the course.
For more information see Cornell's Code of Academic Integrity.
H1N1 Flu Preparedness
In the event of a major campus emergency like an H1N1 flu outbreak, course requirements, deadlines, and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances. Information about changes in this course will be announced on this website and via email. Further policies are described on the Cornell H1N1 Website: http://www.cornell.edu/emergency/flu