| Time: | 5-6:15 Tuesday and Thursday |
| Place: | Olsson 011 |
| Instructor: | Greg Humphreys,
humper@cs.virginia.edu Office hours: Friday, 2-4 (Olsson 216) |
| TA: | Gordon Marx,
gcm3z@cs.virginia.edu Office hours: Sunday 9-11, Monday 5-7 (Small Hall) |
| Students: | Who took the course this year? |
| Description: | This course introduces the fundamental algorithms and techniques for 2D
and 3D computer graphics. Students will be well prepared to take
any of our advanced courses in computer graphics. This course will not teach the use of graphic design software such as Maya, 3D Studio Max, or Photoshop, but rather the fundamental underpinnings of these programs. Students will use the OpenGL graphics API, but again the focus of the course is on the underlying mechanisms of OpenGL rather than its sophisticated use. |
| Facilities: | We have access to 13 machines in OLS 002a. These machines are
modern CPUs with modern graphics cards (NVIDIA GeForce3s), running Windows
XP and Linux. You can get a key to this room from Ginny Hilton at the
CS front desk if you don't currently have a key that works (many of you
probably have keys already). All assignments will use these machines as a base platform. If your assignment does not compile and run on these machines, using Visual Studio 7 (a.k.a. VS.NET) under Windows XP, then it will not be graded. If this happens, you will have to rework your assignment so that it does work on these machines, and take the corresponding late penalty. In other words, work at home at your own risk. Incidentally, you can download a (legitimate) copy of VS.NET for free. See me for details. We are sharing this lab with Prof Humphrey's Operating Systems course, so I will coordinate my assignments with his to avoid massive logjams in the lab. Nonetheless, availability of the lab machines will be an issue and you will find it easier and less stressful to complete your assignments on time if you start early. If you find availability is a real issue, don't fight about it; instead, let me know and Prof Humphrey and I will try to work something out. |
| Required Background: | This course requires substantial programming effort. Standard
C/C++ concepts such as pointers, lists, and memory allocation will be used
extensively. We expect students to be comfortable implementing
non-trivial data structures, and to be able to debug simple programming
errors on their own. Students will be expected to learn the OpenGL
programming API on their own using the textbook and online examples to
complete the assignments. The lecture material and exams will also make frequent use of geometry, basic linear algebra (vector and matrix arithmetic), and calculus (both differential and integral). |
| Texts: | The OpenGL Programming Guide 3rd Edition: The Official Guide to Learning OpenGL Version 1.2 by Mason Woo et al., Addison-Wesley (1997). |
| Lectures: | A tentative schedule of lecture topics is given below.
Lecture notes and/or slides from class will be posted here as the semester
progresses. |
| Grading: | Your final grade will be a weighted combination of your performance on
the assignments during the course. Programming assignments are
collectively worth 50% of your grade, exams are collectively
worth 25% of your grade, and the final project is worth 25% of your grade.
However, no student will pass the course without submitting all
assignments and completing all exams. Assignments will be graded on a 100-point scale. No credit will be given for assignments that do not compile, or otherwise completely fail (e.g., the dreaded "black screen" effect). We want to provide a rapid turnaround on your assignments and will not debug them for you after you've turned them in. TEST YOUR PROGRAMS! |
| Late Assignments: | Assignments are always due at the beginning of class. If an
assignment is not done at the beginning of class it is considered one day
late. This is to prevent people from skipping class to finish up the
assignment. We are serious about this. Assignments one day late subtract 33 points; two days late loses 33 more. After 2 days, the assignment will be considered a zero. However, each student has 5 late days to use at their own discretion over the course of the semester. Each late day extends the due date by 24 hours. If you submit an assignment after the due date, you must explicitly state the number of late days you wish to apply to the assignment. With this flexibility built into the late policy, no other excuses will be accepted without a note from the Dean's office. Note that late days are calendar days, not school days. No exceptions for holidays or weekends. Late days do not apply to examinations or to final projects. Late days are designed to compensate for unforseen circumstances, such as unusual simultaneous course loads, network outages, disk drive crashes, and the like. |
| Honor Code: | The honor code applies to all work turned in for this course. In particular, all code and documentation should be entirely your own work. You may consult with other students about high-level design strategies related to programming assignments, but you many not copy code or use the structure or organization of another students program. Said another way, you may talk with one another about your programs, but you cannot ever look at another student's code nor let another student look at your own code for any reason. You must write and debug your own code. |