Last updated 2010/09/05 19:16:26
Update history:
2010/09/05: |
initial version |
| Name: | Warren R. Carithers |
| Office: | 3617 Golisano (70-3617) |
| Phone: | (585) 475-5393 |
| Email: | wrc AT cs.rit.edu |
The goal of Computer Graphics I is to provide a broad exposure to the computer graphics field in order to be prepared for follow-on study.
The following are the intended outcomes for this course:
Students will have an appreciation of the history and evolution of computer graphics, both hardware and software.
Students will have an understanding of 2D graphics and algorithms including: line drawing, polygon filling, clipping, and transformations. They will be able to implement these.
Students will understand the concepts of and techniques used in 3D computer graphics, including viewing transformations, hierarchical modeling, color, lighting and texture mapping. Students will be exposed to current computer graphics research areas.
Students will be able to use a current graphics API (OpenGL).
Students will be introduced to algorithms and techniques fundamental to 3D computer graphics and will understand the relationship between the 2D and 3D versions of such algorithms. Students will be able to reason about and apply these algorithms and techniques in new situations.
Students will be able to read and analyze technical papers in the field.
The prerequisite for this course is either 4003-707, Advanced Programming, or 4003-233, Computer Science 3.
In order to succeed in this course, you should have already passed one of these courses, or its equivalent. Note that it is a prerequisite, not a corequisite; taking it at the same time as this course is not sufficient! Please see me as soon as possible if you haven't had this course!
At a minimum, you should be familiar with traditional data structures (linked lists, trees, etc.), and should have some familiarity with matrix and vector mathematics, geometry, and trigonometry.
The required textbook for this course is Computer Graphics with OpenGL, Third Edition, by Donald Hearn & M. Pauline Baker; Prentice-Hall, 2004. Make sure you get the third edition, as there are significant changes from the earlier editions.
The programming assignments for this course must be done in C or C++. OpenGL was designed for use with C and C-like languages; it can be used with C++, but it doesn't take advantage of any of the object-oriented capabilities of C++, and there are a few minor annoyances that you will run into when using OpenGL and its support libraries with C++.
Although one is not required, having a C or C++ textbook or an OpenGL reference is a good idea. Here are some references:
Your final grade will be based on two examinations, a research report, and a series of out-of-class assignments. The distribution between these groups is:
| 22% | first exam | |
| 22% | second exam | |
| 10% | research report | |
| 10% | graded homework | |
| 36% | programming assignments |
Two exams will be scheduled for this course. The first is a two-hour midterm exam; the second, a two-hour exam during finals week. The second exam will not be comprehensive. As a somewhat deeper understanding of the material is expected of graduate students, the graduate and undergraduate versions of the exams may not be the same.
Currently, the best guess as to the dates of these exams are:
Last updated 2010/11/08 13:28:54
Midterm exam:
Tuesday, October 12, 2010
Here is the
topic list
for this exam.
Final exam:
Monday, November 15, 2010, 12:30pm-2:30pm, GOL(70)-3560
Here is the
topic list
for this exam.
Homework will be announced in class and posted to the course home page.
There will be four programming projects this quarter. They will involve the use of the OpenGL graphics libraries; none will require OpenGL features that aren't supported by the version we have installed on the CS Solaris machines. Some of the projects will consist of multiple parts that are submitted separately; in some cases, the later parts may build upon the earlier parts for that assignment.
Important note: All programming projects will be submitted for grading on the CS Solaris machines, and therefore must work on those systems. If you choose to develop your solutions elsewhere, it is your responsibility to allow sufficient time to iron out any problems that may arise due to incompatibilities between your development system and the CS systems. Programs that ``work on my computer at home'' but don't work on the CS systems don't work.
Along similar lines, the minimum acceptance test for project submissions
is that they must compile and link cleanly (i.e., without fatal
compilation or linking errors) when submitted with the try
command.
Emailed project solutions will not be accepted.
In addition to the graded assignments described above, a series of ungraded problem sets and their solutions will be posted to the course assignments page. Their purpose is to help you gain additional experience with the concepts and techniques covered in class. Although these will not be collected or graded, I suggest you attempt to work the problems before looking at the answers, to help ensure that you understand the concepts.
Each graduate student is expected to research a topic relative to computer graphics and prepare a 10-15 page report. If you are unsure about what you would like to present, please see me for some general ideas.
Academic dishonesty will be dealt with in accordance with DCS and RIT policies.
RIT's
Honor Code
(section 1 of the
RIT Students Rights and Responsibilities handbook).
A general statement that sets standards of behavior for all members of
the RIT community.
RIT's
Academic Honesty Policy
(section 18 of the
RIT Students Rights and Responsibilities handbook).
Defines the basic forms of academic dishonesty (cheating, duplicate
submission, and plagiarism) and explains the official RIT policy
regarding academic dishonesty.
The
DCS Policy on Academic Integrity.
Explains the official Department of Computer Science policy regarding
incidents of academic dishonesty.
Disclaimer: Normally, the number, type, and relative weights of assignments will not change from those specified in the syllabus and other course documents. However, I reserve the right to make changes to these or any other facet of the course, at my discretion, based upon the events of the quarter; if such a change must be made, you will be notified in class, via electronic mail, and on my web page for the course.
Course content: This is a basic computer graphics course. Therefore, although you will be using your creative, artistic talents in doing many portions of your programming assignments, much of the work will involve programming the underlying graphics routines.
Coursework: Unless otherwise specified in the assignment, all work you submit for grading must be your own. Code or ideas (specific algorithms, optimizations, etc.) obtained from or inspired by other sources must be properly attributed.
Withdrawing:
During the add/drop period (the first seven calendar days of the quarter),
you may drop this course and it will disappear from your transcript.
After that time, you can only withdraw from the course; the course will
appear on your transcript with a grade of W.
Deadline to add/drop: Sunday, September 12, 2010
Deadline to withdraw: Friday, October 29, 2010
Project submission: Unless otherwise indicated in the assignment, programming project solutions are to be submitted electronically by 23:59:59 (11:59:59pm) on the specified due date. Any day of the week is a valid due date. Solutions submitted through any other method (e.g., sent via email, slipped under my office door, put in the bin on the wall outside my office, etc.) will be ignored.
Examinations: If you are unable to take an examination for a good reason (by my standards), I expect to be notified BEFORE the exam takes place. Exams will be handed back to be gone over during class; they will then be collected and kept in my office.
Final Exam: RIT has an official set of Final Examination Policies which detail procedures related to the scheduling of final exams. Most important among these is the procedure to be followed by students who wish to request a change in date or time for an exam. Briefly, such a request is only accepted if the student has an exam conflict (i.e., two or more exams scheduled at the same time) or the student has three or more exams scheduled on the same day. Requests for rescheduling an exam must be submitted by the last day of week six.
Assignment of final grades:
|
I use a traditional 90/80/70/60 percentage-based grading scale in this class.
I reserve the right to alter these division points as I see fit at the end of the quarter if I believe it to be necessary, based on my overall evaluation of individual or class performance and effort. |
|
Grading:
This is a graduate elective course. Think about what this should mean to you. You will be expected to incorporate all you have learned so far into this course; i.e., you will lose points for not following assignment instructions, for submitting code that is sloppy, undocumented or unstructured, etc.
Late submissions are generally not accepted without my prior approval.
Your project submissions may be graded by a grader. If so, and you have complaints about your grade, first talk to the grader. If you are still convinced there is a problem and you are unable to convince the grader, come and see me.
All requests for regrading must be made within one week of the original return date for the assignment.
Warning: This course requires a significant amount of programming. I strongly suggest that you very carefully consider whether or not you should take any other programming courses along with it.