Course Web Page - Math 155A - Introduction to Computer Graphics
Spring 2005  -  Instructor: Sam Buss  -  Univ. of California, San Diego

Overview: This course is an introduction to 3D computer graphics, including both the use of OpenGL programming and the mathematical theory of computer graphics.   Topics will include OpenGL drawing primitives, 3D transformations including affine transformations, projection and perspective, Phong lighting, averaging and interpolation, texture mapping, light and color, and Bezier curves.  The course will cover both the mathematical theory of graphics and the practical uses of OpenGL and GLUT.  OpenGL and GLUT is a cross platform API that works on most common computer environments, including Windows, Macintosh, Unix, Linux.
    Prerequisites: Programming experience in C or C++ or Java is acceptable.  Math 20F (Linear Algebra) is required.

    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:   I have a PC in my office and can help with programming assignments and do grading there.
            Monday:  11:00-11:50
            Wednesday: 12:00-12:50.  Except Wed. April 27th and Wed, May 11: 3:10-4:00 instead.
            Friday: 10:00-10:50.

Teaching assistant.
    Jefferson Ng.  
    Office hours: Held in the APM B337/349 lab.
    Hours: Tuesday. 2:00-4:00.
              Wednesday 3:30-5:30.
              Thursday 2:00-4:00.

Textbook:  (Required) S. Buss, 3D Computer Graphics: A Mathematical Introduction with OpenGL.  Cambridge Univ. Press, 2003.  This book is by your instructor.  So please let me know if you find typographical mistakes or other errors --- I am paying cash money for any new mistakes found in the book.  Book web site:
    (Recommended) M. Woo et al., OpenGL Programming Guide, 4th  Edition. Addison-Wesley, 1999.  You will not need any of the advanced features described in the fourth edition, so the first or especially the second or third edition is also fine for the purposes of this course.  The first edition is available online for free, see below for the URL. 
    The Visual C++.NET help system also describes the basic OpenGL commands, but not the GLUT commands.  GLUT documentation is available online, see below for the URL.

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.   There will be a limited number of written homework assignments and in-class quizzes; grading policies for homework and quizzes will be announced.
    There will be about 5-7 programming assignments, culminating with an individual final project.  You are expected to do your own programming and will not work in teams.   Grading of projects will be individualized and one-on-one.
    Programming assignments must work on the PC lab computers for grading purposes. If you do your assignment at home, you must port it to the class PC lab computer so that it will run there under Visual C++.   (And, you must do this by the due date of the assignment.)

Rooms and Times:
    Lectures: Monday, Wednesday, Friday 2:00-2:50. WLH 2114..
    PC labs:  APM B337/B349 (two numbers for the same room) is the main lab, and where TA's hold office hours.  The computers in the back of the room are faster than the ones in the front.   Please do not use the computers for non-class items if other students need them for class work.   You should respect the use of the lab by other classes.   Door code: 1435620. (This door code is for use only by students of this class.  Please make note of it, it will not stay on the web page very long.)

Programming rojects:
    Project #0:
Due date: Monday, April 4th.
    Project #1: Octohedron project.  Due Wednesday, April 13.
    Project #2: Solar system project. Due Wednesday, April 20.
    Project #3: Wire frame scene with "sombrero" and initial.  Due Wednesday, May 4.
    Project #4: Scene with material and lighting.  Due Wednesday, May 11.
    Final Project:  Independent project. Due Tuesday, May 31.

Homework assignments
    Homework #1. 
Octahedron written homework.  Due Wednesday, April 13.
    Homework #2.  Linear transformations.  Due Wednesday, April 20.
    Homework #3.  Interpolation.  Due Monday, May 23.

Midterm:  There will be one midterm during a regularly schedule class period. Tentative Date: Friday, May 6.

Final exam:  At the date and time as scheduled by the registrar.  Will be cumulative.   More information will be posted near the end of the quarter.

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