Spring 2006
CS116B (Sections 1 and 2): Computer
Graphics Algorithms
CS 116B Section 1 (Course Number 27164):
Mon/Wed 3:00pm-4:45pm, Location: MH 222
CS 116B Section 2 (Course Number 27165): Tue/Thu
5:30pm-6:45pm, Location: MH 234
Instructor: Soon Tee Teoh
Office Hours:
Tue/Thu 2:00pm-4:30pm
I am also available by appointment.
Office: McQuarrie
Hall 211 (phone: 408-924-7227).
E-mail: teoh@cs.sjsu.edu
Course Website:
http://www.cs.sjsu.edu/~teoh/teaching/cs116b/
Prerequisites:
The prerequisites for this class is CS 116A.
Students should also already know C/C++ programming.
Adding and Dropping Classes:
The student is responsible for understanding the policies, procedures, and deadlines for adding and dropping classes, and for academic renewal, withdrawal.
Course Description:
This class covers in-depth
discussion of algorithms and techniques used in computer graphics and their
implementation. Topics include: animation, fractals, anti-aliasing, fill
algorithms, visible surface algorithms, color and shading, ray tracing, radiosity and texture maps. Substantial programming is
required.
Text: Donald Hearn and M. Pauline Baker, “Computer Graphics with OpenGL”,
Third Edition, ISBN 0-13-015390-7, Prentice-Hall, 2004.
Schedule:
This is the tentative course schedule.
|
Week |
Date (Sec 1) |
Date (Sec 2) |
Topic |
|
|
0 |
1/25/06 |
1/26/06 |
OpenGL, GLUT, GLUI |
|
|
1 |
1/30/06 |
1/31/06 |
Fractals |
8.23 |
|
2/1/06 |
2/2/06 |
Visible Surface Detection |
9.1-9.11 |
|
|
2 |
2/6/06 |
2/7/06 |
Transparency, Atmosphere |
10.4-10.5 |
|
2/8/06 |
2/9/06 |
Fill Algorithms |
4.9-4.14 |
|
|
3 |
2/13/06 |
2/14/06 |
Anti-Aliasing |
4.17 |
|
2/15/06 |
2/16/06 |
Visualization |
8.27 |
|
|
4 |
2/20/06 |
2/21/06 |
Shadows |
10.6 |
|
2/22/06 |
2/23/06 |
Lighting and Rendering |
10.8-10.10 |
|
|
5 |
2/27/06 |
2/28/06 |
Review |
|
|
3/1/06 |
3/2/06 |
Midterm 1 |
|
|
|
6 |
3/6/06 |
3/7/06 |
Texture-Mapping |
10.17, 10.21 |
|
3/8/06 |
3/9/06 |
Bump Mapping |
10.18 |
|
|
7 |
3/13/06 |
3/14/06 |
Environment Mapping |
10.13-10.16 |
|
3/15/06 |
3/16/06 |
OpenGL Frame Buffers |
2.8-2.9 |
|
|
8 |
3/20/06 |
3/21/06 |
OpenGL Graphics Pipeline |
2.8-2.9 |
|
3/22/06 |
3/23/06 |
Ray-tracing I |
10.11 |
|
|
|
|
|
Spring Break |
|
|
9 |
4/3/06 |
4/4/06 |
Ray-tracing II |
10.11 |
|
4/5/06 |
4/6/06 |
Ray-tracing III |
10.11 |
|
|
10 |
4/10/06 |
4/11/06 |
Review |
|
|
4/12/06 |
4/13/06 |
Midterm 2 |
|
|
|
11 |
4/17/06 |
4/18/06 |
Ray-tracing IV |
10.11 |
|
4/19/06 |
4/20/06 |
Radiosity |
10.12 |
|
|
12 |
4/24/06 |
4/25/06 |
3D Textures |
10.17, 10.21 |
|
4/26/06 |
4/27/06 |
Animation |
13 |
|
|
13 |
5/1/06 |
5/2/06 |
Stencil Buffer, Shadow Volume |
|
|
5/3/06 |
5/4/06 |
Review |
|
|
|
14 |
5/8/06 |
5/9/06 |
Project Demos |
|
|
5/10/06 |
5/11/06 |
Project Demos |
|
|
|
15 |
5/15/06 |
5/16/06 |
Review |
|
|
|
|
|
|
Student Learning Outcomes: Upon completion of the course, a student is expected to
be able to implement algorithms for generating Bezier splines,
and use OpenGL commands related to NURBS, create shadows, use texture-maps in
OpenGL, draw a fractal on the surface of an object, use OpenGL’s lighting
model, implement a ray-tracing algorithm, use OpenGL depth buffer related
commands, and convert from one color model such as RGB to another such as HSV.
Teaching Methodology: The course is given through two lecture periods each
week. This course will utilize lecture, discussion and hands-on lab work as the
main tools for presenting the course material. Students will be expected to
read the text, and be prepared to discuss the readings and the assignments in
class. Students in the course are expected to complete: assigned readings,
assignments, and projects.
Attendance Policy: Lectures: Students should attend all lectures, not only because they are responsible for material discussed in the lectures, but also because active participation is essential to insure maximum benefit for all members of the class. Attendance will not be used as a criterion for grading. The student is responsible for knowing all announcements made by the instructor during lectures.
Course Requirements:
The course is composed of three components: assigned readings, lectures, homework (both written and programming), project and exams. The homework is based on lecture material and textbook readings. Examinations will be based on lectures, readings and homework assignments.
Examinations: All examinations will be announced at least one week in advance and will cover material discussed in class and the text book. Test material will be drawn from the text book, lecture, assignments and any supplementary material provided by the instructor. Exact details about examinations in this course will be determined by the instructor. Typically there will be two in-class examinations during the semester and a two-hour final examination. Specific details will be made available before the exams are offered
Grading: Your grade will depend on: exams (based mostly on class lectures) and project. Each student will accumulate points for all assigned homework and exams. Keep your homework and tests at least until you receive your grade. The instructor should be notified of any grading disputes and special circumstances regarding midterms and the project by May 15, 2006.
(1) 2 Midterm Examinations (2 @ 20%) 40%
An unexcused absence from an examination
will result in a grade of zero for that examination. The only valid excuses for
missing an examination are prior written approval from the instructor or a
documented medical emergency.
(2) Project
30%
Students will are allowed to work in groups
of up to 3 members (each group should turn in only ONE project). Each group is required
to present a 10-minute demonstration of their work. Each student in the same
group will receive the same grade for the project.
The project is due in three parts on the
dates stated in the class schedule. The project involves substantial C/C++ programming,
using the OpenGL and GLUT libraries. The project is due at the beginning of
lecture on the assigned due date.
The programming assignment is graded on the
correctness of the program and the adherence to the requirements given in the
assignment. A submission that does not follow the instructions cannot be
evaluated and therefore will receive no credit. If the program code is written
clearly, some partial credit may possibly be given for partial correctness of
the program code.
Late Turn-In Policy: You may submit your project within 24 hours after
the due time for a 10% deduction of your grade for that part. You may submit
your project within the next 24 hours for a 20% deduction. No credit will be
awarded for projects submitted more than 48 hours after the due time.
(3) Final Examination 30%
The final exam will assume familiarity with
material in the text, covered in lecture, and/or used in homework problems. The
final exam will be held on:
Section
1: Monday, May 22, 12:15pm – 2:30pm
Section
2: Tuesday, May 23, 5:15pm – 7:30pm
Grading Scale (in points):
100-95 A+
94.99-90 A
89.99-85 A-
84.99-80 B+
79.99-75 B
74.99-70 B-
69.99-65 C+
64.99-60 C
59.99-55 C-
54.99-50 D+
49.99-45 D
44.99-40 D-
Below 40 F
Disability Policy:
“If you need course adaptations or
accommodations because of a disability, or if you need special arrangements in
case the building must be evacuated, please make an appointment with me as soon
as possible, or see me during office hours. Presidential Directive 97-03
requires that students with disabilities register with DRC to establish a
record of their disability.” See http://www2.sjsu.edu/senate/s97-10.htm
.
Academic Dishonesty Statement (from
Office of Judicial Affairs):
“Your own commitment to learning, as
evidenced by your enrollment at