**Course Syllabus (version of 8/16/98)**

All readings below refer to the Hearn and Baker textbook, unless otherwise noted. (*Computer Graphics, C version*, 2nd edition, by Donald Hearn and M. Pauline Baker, Prentice-Hall, 1997).

The syllabus charts a path through every major aspect of computer graphics, with varying degrees of emphasis:

**Hardware:**- Size and speed
**Output primitives:**- Lines and regions
**Modeling:**- Objects and their relations
**Viewing:**- What can be seen -- visibility and perspective
**Rendering:**- How it looks -- properties of surfaces, light, and color
**Transformations:**- Moving, placing, distorting, animation
**Interaction:**- Drawing, selecting, transforming
- 6/24
- First class. Introduction to the "Sampler" programming project, PA1. Sample code distributed. Using the graphics toolbox. Creation of windows and drawing in them. Suggestions for object formulation. You are to study the code and begin experimenting with it on the machine.
- 6/25
- Chap. 1 and the beginnings of Chap. 2. Read Chaps. 1 and 2.
- 6/29 Monday
- Continuing with Chap. 2
- 7/1
- Quantitative aspects of graphics -- size, speed, colors, compression, recomputation.
- 7/2
**Quiz #1: First half of class -- be on time!**Covers basic terminology (Chaps. 1 and 2) and numerical aspects of graphics, e.g., image size/depth, refresh rate, bandwidths, CPU speeds, as covered in lectures.- Begin section on the mathematics of computer graphics. The only way to learn this material is to work out simple examples on paper. If you do not, you will not be able to do the problems on the tests. I will suggest examples, as we proceed.
- 7/6 Monday
- Go over Quiz #1 results briefly.
- Lines and vectors. Parametric lines, intersections, and distances. Read Appendix A, secs. A-1 and A-2.
- 7/8
- Matrices and linear transformations in 2-D and 3-D. Read Chap. 5, secs. 5-1 through 5-3.
- 7/9
**Sampler program due, PA1 (programming assignment #1).**Introduction to bitblt-ing and other aspects of PA2.- 7/13 Monday
- Continuing with the mathematics and computations of linear transformations.
- 7/15
- Planes in 3-D. Plane equations, normals, the cross product. Orientation of planes in space. Read Chap. 10, sec. 10-1.
- 7/16
- The mathematics of curves, and cubic Bezier curves in in 2D particular. Read Chap. 10, secs. 10-6, and 10-8.
- 7/20 Monday
- Further details of the mathematics of curves; the nature of blending functions, tangent directions, etc.
- 7/22
- Review for Quiz #2.
- The Bresenham algorithm for fast line drawing, pgs. 84-92. In addition, note the similarities and differences between the algorithm in the box on pg. 90 and the one for the circle on pg. 100
- 7/23
**Quiz #2: First half of class -- be on time!**Covers basic mathematics of computer graphics: Points, lines and vectors (slopes, lengths, intersections, parametric forms), linear transforms in 2D and 3D (translations and rotations and corresponding matrix computations), cubic Bezier curves.- Finish discussion of Bresenham algorithm.
- 7/27 Monday
- Go over Quiz #2, working through each question in detail.
- 7/29
- Finish discussing Quiz #2.
- Begin discussion of viewing, and clipping in particular, starting with line clipping, pgs. 224-230, the Cohen-Sutherland algorithm.
- 7/30
- Clipping polygons: the Sutherland-Hodgeman and Weiler-Atherton algorithms, pgs. 237-243.
- 8/3 Monday
- Scan-line polygon filling, pgs. 117-124.
- 8/5
- Boundary-based flood fills, both point-based and line-based, pgs. 127-130.
- 8/6
- code
- 8/10 Monday
- (class cancelled, deadline for PA2 extended to Wednesday)
- 8/12
**Programming assignment #2 due (PA2).**This is the "smoothy" project, which requires that two meshing, counter-rotating polygons be constructed in a window -- stars or gears. The images are then bitbltd-ed to another window, resulting in smooth animation (bitblt = bit block transfer). A description of the project plus all sources of a version that produces the pieces (static polygon, rotating line, bitblt) can be found in All Smoothy sources, for PA2.- Surface rendering. Ambient illumination, point sources, and the formulation of diffuse surface reflectivity, pgs. 495-504, 508-511.
- 8/13
- Specular reflection and the Phong model. Introduction to smooth rendering -- Gouraud shading, pgs. 522-526.
- 8/17 Monday
- Phong shading and the suppresion of anomalous highlights.
- Description of PA3, 3D animation.
- Introduction to color, Color lookup tables, pgs. 154-157. General aspects of color, pgs. 565-568. RGB colors (additive, used in emissive displays, e.g., CRTs), pgs. 572-573. CMY colors (subtractive, used in printing), pgs. 574-575.
- 8/19
- Further discussion of color. Review for the Midterm.
- 8/20
**Midterm Exam**-- The exam is being given very late, but it also serves as a warm-up for the final exam. See details about the exam on the web page COM1370 Summer 98 Midterm -- Readings. There will be a modest amount of material drawn from the second quiz, on mathematical foundations for computer graphics.- 8/24 Monday
- Go over Midterm.
- 8/26
- Final topics, each touched briefly: Anti-aliasing (pgs. 171-176), visible surfaces (pgs. 470-472, 478-481), ray tracing (527-534).
- 8/27
**Last class**. Finish final topics. Review for the Final Exam.**PA3, "Hands on the clock" 3D animation programming assignment due.**You will add two rotating hands to a 3D tumbling clock written in object-oriented form. You will be given the full working code with a functioning pendulum. Your variation will be to put hands on it instead of the pendulum.- 8/31
**Final Exam: Monday, August 31, 8am, Room 1 SL**(basement of Snell Library).

**Note:** A number of the items in the syllabus above were delayed, relative to the normal course schedule, due to complex scheduling problems faced by Prof. Futrelle. For example, there would normally be four programming assingments, not three. The last one would have been an interactive drawing program. And of course, the Midterm exam would have come noticably earlier.