Syllabus

Course Information

Course: Computer Graphics

Time/Place: BIOL 120 — Tuesday & Thursday 5:30pm – 6:45pm

Course Homepage: http://userpages.umbc.edu/~dhood2/courses/cmsc435/fall2007/

Contact Information

Instructor: Daniel J. Hood

Email: danielhood@umbc.edu - I get a lot of spam, including "CMSC 435" in the subject ensures that it doesn't get marked as spam and helps in getting a faster response.

Please adhere to the following guidelines when asking for project help by email:

  1. Do not email source code - rather than sending code as an attachment please submit everything that you have electronically.
  2. Document your code - include high level function/subroutine level comments as well as lower level comments which detail more complex parts of your code.
  3. Indicate what you have done to determine the cause of problem and if possible identify where you believe the problem to reside.

Phone: Couldn't tell you. Use email, you will get a much faster response.

Office Hours: ITE 211 — Tuesday & Thursday: 7:00pm – 8:00pm or by appointment.

Teaching Assistant

TA: John Kloetzli

Email: jk3@umbc.edu

Office Hours: ITE 353 — Monday & Wednesday: 4:00pm – 5:00pm

Course Description

Computer Graphics. [3]

An introduction to the fundamentals of interactive computer graphics. Topics include graphics hardware, line drawing, area filling, clipping, two-dimensional and three-dimensional geometrical transforms, three-dimensional perspective viewing, hidden surface removal, illumination, color and shading models.

Prerequisite: CMSC 341 and MATH 221.

Course Objectives

  1. Understand the foundations of computer graphics: hardware systems, math basis, light and color.
  2. Implement key components of the rendering pipeline. Understand the issues involved in implementing other components.
  3. Come to appreciate the complexities of modeling realistic objects through modeling complex scenes using a high-level scene description language.
  4. Become acquainted with some advanced topics in computer graphics; these might include texturing, animation, physically-based modeling, procedural modeling, curves and surfaces, global illumination, interaction, visualization, and virtual reality.

Course Format

Class will consist primarily of lecture heavily supplemented with visual examples and occasional papers. Students are encouraged to either print out or follow the lectures online during class. Questions and discussion on topics are encouraged and are welcomed at any time.

Course Policies

Course Webpages

The class webpage listed above is a vital resource for this class. Assignments, information, references and announcements will be listed here. Students should ensure they have regular access to the webpage and make a point to check it frequently, as it will be updated often. Most important, documents (such as assignments & readings) will be distributed by web and sometimes in hard-copy during class. Lecture notes will be posted to the web as available and may be frequently updated, students are encouraged to print them out and bring them to lecture. Please notify the instructor if problems or typos are encountered when trying to access the course homepage.

Late Assignments

Assignments are to be submitted electronically by 11:59pm of the day listed. Assignments submitted up to one week late will be penalized 20 percent of the possible score. Assignments more than one week late will receive a score of 0. Each student gets one free "late" (i.e. up to one week late without penalty, but still zero if later than one week) to apply to any of the assignments. Your free late must be claimed in writing on or before the 11:59pm on the due date (email is fine).

Questions, Concerns and Special Needs

Students are encouraged to ask questions of the instructor for clarification of any policies or class procedures at any time. Students are encouraged to notify the instructor as soon as possible if they have any special needs the instructor should be aware of.

Classroom Etiquette

Please be respectful of your peers, the TA and the Instructor. This includes...

  • Arriving on time and remaining for the full lecture.
  • Not talking during lecture.
  • Setting cell phones to vibrate or silent. If you forget and it starts going off in class please turn it off. Continuing to let it ring is far more annoying that taking a moment to turn it off. If you absolutely must answer your cell phone in the middle of class, leave the room before taking the call.
  • Using laptops in an appropriate manner. Answering email, instant messaging, working on assignments and playing games are all inappropriate things to be doing during class. If your laptop use becomes distracting you will be asked to discontinue its use.

Course Requirements

Reading

Fundamentals of Computer Graphics Text Required Text:
Fundamentals of Computer Graphics, Second Edition
Authors: Peter Shirley, Michael Ashikhmin, Michael Gleicher, Stephen R. Marschner, Erik Reinhard, Kelvin Sung, William B. Thompson, Peter Willemsen
ISBN-10: 1568812698
ISBN-13: 9781568812694


OpenGL Programming Guide Recommended Text:
OpenGL Programming Guide: The Official Guide to Learning OpenGL (any recent edition)
Authors: Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis
ISBN-10: 0321335732 (fifth edition), 0321481003 (sixth edition)
ISBN-13: 9780321335739 (fifth edition), 9780321481009 (sixth edition)


The RenderMan Companion On Reserve in the Library:
The RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics
Author: Steve Upstill
ISBN-10: 0201508680
ISBN-13: 9780201508680


Projects

There will be a total of 6 programming assignments to be implemented in your choice of C or C++, accompanied by a working makefile. Programming assignments will be time consuming, so start early.

For some problems a starting code base will be provided, whereas others will be need to be implemented from the ground up. Electronic submission of assignments will be required - the specific submission details will be provided in the near future. Each assignment will be announced in class well as being posted to the class webpage as soon as available.

Exams

There will be two exams - a midterm and a final (comprehensive). Both exams will be preceeded by a review session.

The midterm exam is tentativly scheduled for the middle of October. The final exam will occur at the time and place assigned by the University. More information on the exam content and format will be given later in the semester.

Grading

Your grade for this course will be based upon 6 programming projects, a midterm exam, and a final exam.

6 Programming Projects (55%)

  1. Simple Scene (5%)
  2. Modeling (10%)
  3. Viewing (10%)
  4. Visibility (10%)
  5. Lighting (10%)
  6. Shading (10%)

Midterm Exam (15%)

Final Exam (30%)

Your final letter grade is based on the standard formula: 0 ≤ F < 60, 60 ≤ D < 70, 70 ≤ C < 80, 80 ≤ B < 90, 90 ≤ A ≤ 100.

Your grade is given for timely work done during the semester; incomplete grades will only be given for medical illness or other such dire circumstances (again, with documentation).

One Week Policy

If you have a concern about a grade (i.e. you are looking for more points back) on an assignment or exam, you have 1 week from the date that the assignment or exam is returned in class (whether picked up or not) to make arrangements to discuss your situation. After 1 week, it is assumed that you accept your grade and it becomes final.

Academic Integrity

By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. To read the full Student Academic Conduct Policy, consult the UMBC Student Handbook, the Faculty Handbook, or the UMBC Policies section of the UMBC Directory

Cheating in any form will not be tolerated. Instances of cheating will be reported to the UMBC Academic Conduct Committee. These reports are filed by the Committee and can be used for disciplinary action such as a permanent record on your transcript. Academic honesty is absolutely required of you. You are expected to be honest yourself and to report any cases of dishonesty you see among other students in this class. Reports of dishonest behavior will be kept anonymous. If you ever have a question about cheating in this course, please ask the instructor about it. Ignorance about the cheating policy is not a defense after the fact.

A returned grade on an assignment is not acknowledgment of no wrong doing. If evidence of academic misconduct is discovered after a grade is assigned, it will be revised accordingly.

Exams

Students are welcome and encouraged to study together for exams, but they are to be your own work - not your neighbor's and not your notes. Exams are closed-book, closed-notes. Only pencils (or pens) and erasers are permitted unless otherwise indicated. Having any other materials in your possession during an exam will be taken as evidence of cheating and dealt with accordingly.

Projects

Your project assignments are to be entirely your own. You may discuss general course ideas with others, but everything you submit must be just your own work. Help received from the TA or instructor may be included in your submittal.

It is never permitted to copy code from someone else nor to provide code to someone else. This applies to both hard-copy and soft-copy forms of the code in whole or in part. Having someone else's work in your possession or giving your work to someone else in any form, even briefly, is dishonest.

The following is a non-exhaustive list of violations of academic integrity:

  • Emailing code in whole or in part
  • Instant Messaging code in whole or in part
  • Posting or obtaining code in whole or in part on the web including but not limited to forums, newsgroups, etc...
  • Using free or open-source software without prior consent
  • Not taking the appropriate measures to protect your source code, including:
    • Placing your code in a public directory
    • Failing to lock your screen when away from your computer
    • Allowing someone to copy code from your monitor

Penalty

The penalty for violation of this policy (single offense) is three-fold:

  1. A project grade of zero
  2. A 10% reduction of your semester average (one letter grade)
  3. Actions reported to the Academic Conduct Committee

Multiple violations will result in automatic failure of the course.

Course Schedule

The online course schedule will be updated (based on class progress) to contain the most recent version of the schedule of topics, assigned readings, project due dates, and other significant dates.

Suggestions for Success

  • Start early! Programming assignments may be time consuming.
  • Brush up on your math. Linear algebra will be a recurring topic.
  • Build reusable libraries. Points, vectors, matrices and corresponding operations are recurring data structures in graphics — it may be beneficial to start to build libraries with these components.