Syllabus
Computer Science 180
Introduction to Computer Graphics
Fall 2017
Essential information:
Lecture: TR 2:00pm - 3:15pm |
Room: PHELPS 1444 |
Midterm Exam: Tuesday October 31, in class |
Room: PHELPS 1444 |
Final Exam: Tuesday December 12, 4:00pm - 7:00pm |
Room: PHELPS 1444 |
Instructor: Yuan-Fang Wang |
Office: HFH 3113 |
Office hours: TR 1:00pm - 2:00pm |
Phone: (805) 893-3866 |
TA:Sikun Lin |
Office: CSIL |
Office hours: MWF 10am - noon in CSIL |
|
|
Discussions:
Enrollment code |
Time |
Place |
09019 |
W 5:00pm-5:50pm |
GIRV 1115 |
Prerequisites:
Upper-division standing and CS130A, or consent of the instructor.
Grading:
-
Homeworks (four programming assignments) = 60%
-
Midterm exam = 15%
-
Final exam = 25%
-
Homework due dates will be clearly marked on the handouts and posted on
the class web site. In general, you have about two to three weeks to turn in a programming
project. Plan your schedule wisely as late assignment
turnins will be severely penalized without a documented emergency.
Textbooks:
The following books are optional (and a lot of reference material is available for free on the Web),
but it definitely helps if you have some reference books on OpenGL.
-
Computer Graphics with OpenGL, current ed., Hearn and Baker (recommended)
-
Interactive Computer Graphics: A Top-Down Approach Using OpenGL, current ed., Angel (recommended)
-
OpenGL Programming Guide, Neider, Davis, and Woo (recommended)
-
OpenGL Reference Manual, OpenGL Architecture Review Board (recommended)
-
Introduction to Computer Graphics, Foley, van Dam, Feiner, Hughes, and Phillips
Lab:
Topics covered :
- Overview
- Overview of OpenGL graphics standard
- OpenGL state machine, 3D graphics pipeline, 3D transformation
- 3D normalization transform and clipping
- Color model
- Shading model
- Shadow
- Texture
- Ray tracing
- Radiosity
- Java3D
General class policies and announcements:
-
This class has a Web site at http://www.cs.ucsb.edu/~cs180.You will find
there useful information such as lecture notes, assignment deadlines,
and on-line copies of syllabus and programming assignments.
It is your responsibility to check the Web site on a regular basis.
-
This class also has a Piazza website for discussion.
Again, it is your responsibility to check the Web site on a regular basis.
-
Important Piazza etiquette:
- Be professional and courteous - this is not a place to vent your frustration!
- Describe your problems clearly but succinctly - you are wasting your time composing long questions in the Twitter era,
- Remember the rule of gives-and-takes: you want people to help you, you should try to help others if possible; however,
- Don't post suggestions that you are not sure of or are intentinally misleading, and
- Most importantly, never ever post your codes on the discussion website (small program snippets where you need help are ok).
-
Homework due dates will be clearly marked on the handouts. In general, you will have about two to three weeks to finish a programming assignment. Plan your schedule wisely as no late program turnin will be accepted without a documented proof of an emergency. 20% will be taken off for any fraction of a day late, up to three days. No late assignment turnins will be accepted after the third day past the due day.
-
You can code and debug your assignments using your home PC (Windows, Mac, or Linux; as long as it supports OpenGL). However, it is imperative you compile and run your programs on a machine in CSIL at least once before you turn in your source codes electronically for grading. This step is essential to make sure that no incompatibility (in header and library files) exists that prevents your programs from being compiled and run in CSIL.
-
For all programming assignments, you must keep a copy of your codes in CSIL. You must not edit or change them in any way after you turn them in electronically. The purpose of this backup copy is to help resolve dispute regarding assignment grading (e.g., turnin process corrupts the codes). You need to have a backup copy with a time stamp showing that your codes were last modified before the deadline. A backup copy on your own computer is not acceptable.
-
There is no group programming assignments in this class. You should do all the assignments on your own. You can discuss general approaches with your fellow students and consult your TA and instructor if you have any questions. However, you must write your own codes. Any act of cheating, plagiarism or collaboration on assignments will be met with severe penalty.
-
If you have questions concerning your program/exam grades, you should bring them to your TA first. If the questions cannot be resolved to your satisfaction, you should then consult the instructor. Any dispute over grades must be resolved in a timely manner (within two weeks after the grades are announced).
-
Class attendance is highly recommended. You are responsible for everything that goes on in class. "I wasn't there" and "I didn't know" are not valid excuses for missing something important!
Weekly one-hour discussion sections, led by the TA, will focus on (1) presenting supplementary material (such as practical examples) to the lectures and (2) answering questions (about lecture topics, homework problems, programming issues, etc.). It is expected that you attend these sessions - you are responsible for what goes on during the discussion sessions also.
CAVEATS
A major misconception of this course (which usually leads to great disappointment) is that after finishing this course, you will be able to take a job as an animator and be part of the team that generates the sequels of blockbuster movies like "Toy Story" or "Finding Nimo." This is not such a course.
There are two types of computer graphics courses: One teaches you how to be an animator, and the other teaches you how to be a graphics system architect and programmer. This course belongs to the latter category. In stead of giving you a fancy animation package and teach you how to use it, we are more interested in dissecting such a package to find out what goes inside that makes things happen. This course can serve as a good foundation for courses in animation, and eventually leads you to a career as an animator. But be warned that this is not a course that teaches you how to use a fancy animation package.
Furthermore, this is not a course about myriads of graphics standards or hardware. The general concepts of a 3D graphics pipeline will be described, with an emphasis on rendering and rasterization. We will use OpenGL as an example, but the concepts should be equally applicable to many other graphics standards.
Academic Honesty Policy
In this class, you are expected to subscribe to the highest standard of
academic honesty. This means that every idea that is not your own must
be explicitly credited to its author. Failure to do this constitutes
plagiarism.
Plagiarism includes using ideas, code, and old solution sets from any
other students or individuals, or any sources other than the required
text, without crediting these sources by name. In this class, the
homework includes several programming assignments.
You are encourage to discuss problems with your instructor
and TA. You may not copy codes from other students, or give your codes
to others under any circumstances.
Academic dishonesty will not be tolerated. Any student caught of
academic dishonesty will be reported to the proper authority for
disciplinary action. You will receive a failing grade for this course
and may be suspended or dismissed from the university.
Back to the Course Home Page