Prerequisites
Numerical Analysis and Computing (CS 323)
Fluency in Java
Familiarity with Linear Algebra
(If you are missing prerequisites but feel you are ready to take this class, let me know.)
Objectives
This course aims to provide a broad introduction to the field of
Computer Graphics, and to describe the techniques that are commonly
used in the graphics industry today (such as in production of special
effects, computer animation, video games, and virtual reality).
This course is combination of algorithms, numerical methods, representations and models of the shape and appearance of real-world objects, and methods for their display and manipulation. It involves a lot of programming, and requires a certain degree of mathematical sophistication (in linear algebra, specifically). But it's also a lot of fun. No artistic skill is required, but it does come in handy.
Outline
An introduction to the field of computer graphics: displays, image
formation, visual perception, images, transformations (viewing and
projection), programmable pipelines (vertex and fragment programs),
modeling (primitives, polygon meshes, smooth curves and surfaces, CSG,
procedural models), animation (keyframing, procedural), rendering and
realism (visibility, lighting, shading, shadows, texturing, ray
tracing).
Expected work
Students will design, implement, and use interactive graphical
applications (using the OpenGL API in Java). This amounts to two
large programming projects, two medium-sized ones, and some short exercises
(written and programming). On each of these projects, extra credit is
given for the completion of additional features.
Some of the projects require using the programs that are written to produce graphical (and hopefully artistic) output such as an image, a scene, or an animation.
Note to CS graduate students: This course can be taken for "category B" credit, provided you do additional work (some of the extra credit will be designated as mandatory)
Late policy
Projects or homeworks handed in up to 24 hours late are worth 50%.
After that, they will not be given any credit (they will still be
graded, however). No extra credit is available on assignments handed
in late. Of course, exceptions will be made in extreme circumstances
(when possible, let us know in advance).
Collaboration and Academic Integrity
All work on the assignments (written or programming) must be
your own - there is to be no "group work". However, you are
encouraged to discuss the course material with other students. Here
are some guiding examples:
| Good | Bad |
|
|
We endorse and follow the DCIS Academic Integrity Policy. Read it. If we have reason to believe you have not done your own work, we reserve the right to give you a brief oral exam about that assignment, and adjust your grade accordingly. Furthermore, do not seek help from someone not currently in the class. Do not copy material from external resources for your assignments, including code from previous or other classes, code off the web, or code from books other than the readings. (If you feel you need to use external resources, please ask.)
Should you have any questions about this, please ask the instructor or TA.
Exams
There will be one midterm and a final exam. The exams will be based
on the material covered in class, and on what is learned from
completing the assignments. Only the material that is covered in
class will be on the exam (nothing extra is drawn from the textbook).
Grading
| Projects and short homeworks: | 60% |
| Midterm: | 20% |
| Final: | 20% |
Note: Undergraduates and graduate students in the course will be graded separately
Text
(There is a copy of this text on reserve in SERC.)
Interactive Computer Graphics A Top-Down Approach with OpenGL,
4th edition
Edward Angel,
Addison Wesley, 2005
ISBN 0321321375
Many of us use spam filters. When sending us email, be sure to include the number 428 somewhere in the subject of the email. This way, it won't be discarded by our spam filters.
There will also be email sent out to the entire class on occasion. While there will not be any content in those emails that is not listed on the webpage, it is still the best way to announce things like class cancellations and deadline extensions. So you need to do two things to ensure you get these messages:
Note that our messages won't contain your own email address in the "To:" field. So if you have a rule for discarding such email in your spam filter, make sure you put the 428 rule before it!