Math 155B - Introduction to Computer Graphics
Winter 2005, Course Web page
Instructor: Sam Buss,  Univ. of California, San Diego


(old course webpage, no longer being maintained)

STUDENT FINAL PROJECTS:  No longer available online:

Exam week's scheduled activities:
    * Final project due: Monday midnight.
    * Final project grading per sign up sheets.  Tuesday 2:00-4:15, Wednesday, 3:30.
    * Review session, Tuesday 1:00-2:00 in Solis 110.
    * Final exam: Wednesday 11:30-2:30.
    * Final project demos: In PC lab, Wednesday 2:30-3:30.
Final exam topics:   Cumulative over the whole quarter.  There will be a slight extra emphasis on material since the first midterm.  The topics as covered in lecture are more indicative of the contents of the final.  A few topics where covered better in lecture than in the books, such as shadow maps and shadow volumes.  A few were covered less well in lecture, such as the damped least squares method.  Two topics that will not be on the final exam are (a) over-relaxation and (b) intersection testing.

Overview: This is the second of two courses providing an introduction to 3D computer graphics, including both using OpenGL and the theory of computer graphics.   Topics for Math 155B include:  Bezier curves, B-splines, 3D Studio Max, Ray Tracing, Radiosity, Intersection testing, Quaternions, Inverse Kinematics.   

    Prerequisites:   CSE 167 (with Prof. Buss) or consent of the instructor is also required.  This is a second course in computer graphics. If you have not taken CSE 167 in Fall 2003 or 2004 from Prof. Buss, you have the necessary prerequisites.  Otherwise, you should know the following topics, or be prepared to learn them on your own:

Syllabus:  The course will spend about 3 weeks on Bezier curves and surfaces, and on B-spline curves. Then about 2 weeks on ray tracing, about 1 week on intesection testing, about 1 week on radiosity. The course will end with about 2 or 3 weeks on animation (quaternions and inverse kinematics). 
    There is a calendar showing lecture topics that will be updated as the course proceeds.

Grading: Grading will be based on both programming assignments and on a midterm and a final exam.  It is expected that your course grade will depend about 50% on your programming projects and 50% on your written exam work.   It is not yet decided whether quizzes and written homework assignments will be collected and graded.  Grading of projects will be individualized and one-on-one.
    There will be about 5  programming assignments, culminating with an individual final project.  You are expected to do your own programming and will not work in teams (except for limited exceptions in the case of the final project). 

Sam Buss, Professor of Mathematics and Computer Science
    Email:  (this is usually the best way to contact me).
    Office: APM 6210.   Office phone: 534-6455.
    Office hours:  Monday 9:30-10:30, Wednesday 2:30-3:30, Friday 10:00-11:00
    Final exam week office hours: Mon 10-11, 1-2.  Tuesday 10-11. Wednesday 9:30-10:30.
            I have a PC in my office and can help with programming assignments there.
    Please feel free to phone, email, or just stop by, for appointments at other times.

Teaching Assistants:  All TA office hours will probably be held in APM B337/B349 PC lab.
    Jefferson Ng:   
        Office hours: In APM B337/B349 PC lab:
            Monday: 1:00-4:00
            Tuesday: 3:00-4:00
            Wednesday: 1:00-4:00.

Rooms and Times:
    Lectures: MWF, 12:00-12:50, Warren Lecture Hall 2112.
    PC lab: APM B337, B349, and APM 2444 are all available.  Door code: 1206371 -- for Math 155B students only!

Textbook:  (Required) S. Buss, 3D Computer Graphics: A Mathematical Introduction with OpenGL.  Cambridge Univ. Press, 2003.  This book has just appeared and is by your instructor.    You can help out by reporting typos: there is a $2 reward to the first finder of each error!   Text book web site:

Programming projects:  Projects must be your own individual work.  Although you are allowed to seek help from others, you must design and write your own code.  If you receive substantial help from fellow students or from any outside source, you must disclose this at the time your project is being graded.  Violations of academic integrity will be treated seriously, and may result in referral to your college.  

        Project #1:  Due Wednesday, January 19.  Create a program that draws Catmull-Rom and Overhauser interpolating Bezier curves.
        Project #2:  Due Wednesday, January 26.  Create a surface using rational Bezier patches.
        Project #3:  Due Wednesday, February 2 (tentative).  Learn rudiments of 3D Studio Max on your own.
        Project #4:  Due Wednesday, February 16.  Implement distributed ray tracing features.
        Project #5:  Due Monday, February 28.  Implement a "trackball" and orienation interpolation using quaternions.
        Final Project: Implement an individual final project.  Due date:  Monday, March 14. 

Quizes (if any!):  Will be only a small part of the final grade.  About 5%.  But a great way to preview problems before the midterm and final.  Quizzes will be held in the last 15 minutes of lecture.  Topics and dates will be pre-announced.

Homework assignments:
    1. Homework #1.
  Due in class, Monday, January 13.  Now available: Handwritten answers in PDF format.

    2. Homework #2.  Due in class, Monday, February 28.  Do Exercises XII.4, 5, 6, 7, 8. On pages 300-301.

Exams: There will be one midterm exam and a final exam.
        Midterm: Friday, February 11.  Review session: Peterson Hall 104, Wednesday, February 11, 3:00-4:00.

1. Creating a new Visual Studio C++ .NET project.

Email announcements: May be sent to your email address as maintained by studentlink.  You should check your email on a regular basis.



Advertisements:  Various people ask to address the class with recruitments, job opportunities, etc.  I generally say no, but let them advertise down here.