CPSC 424: Introduction to Computer Graphics

      Department of Mathematics and Computer Science
      Hobart and William Smith Colleges

      Fall, 2015.

      Instructor:  David J. Eck  (eck@hws.edu)

      Monday, Wednesday, Friday, 9:05–10:00 AM.  Room Gulick 206A.
      Lab: Thursday, 10:20–11:45.  Room Rosenberg 009.

      Course Handout:  http://math.hws.edu/eck/courses/cpsc424_f15.html
Programming Labs
Lab 1, September 3
2D Transforms
Lab 2, September 10
HTML Canvas Graphics
Lab 3, September 17
Hierarchical Modeling
Lab4, September 24:
Into 3D with OpenGL
Lab5, October 1:
Start Midterm Project
Application Labs
September 14: Gimp 1 September 21: Gimp 2 September 28: Inkscape


First Week: August 30; September 1 and 3

Welcome to the course!

The reading for the week is Chapter 1 and the first three sections of Chapter 2. Chapter 1 is a short overview of computer graphics. You should not expect to understand everything in it, but it will give you an idea of what will be covered in the course. Chapter 2 covers two-dimensional graphics, using several graphics systems.

You should read Section 3 before class on Wednesday. Be prepared to discuss it and to ask (and answer) questions about it. The lab on Thursday will be based on Section 3. You should read Section 1 and Section 2 before class on Friday.

When you read the book, you should pay some attention to the interactive demos, which are meant to help the reader understant the concepts better. You can find them in the web-site version of the book. There are links to the demos in the linked PDF version.

Second Week: September 7, 9, and 11

This week, we start in on JavaScript, and we cover HTML canvas graphics. The reading for Monday is Section A.3 in Appendix A, which is a brief overview of the JavaScript language and how it is used on Web pages. For Wednesday, you should read Section 2.6, which covers canvas graphics.

On Friday, we will look briefly at SVG. The reading is Section 2.7, except for the last part about animation. (I decided not to talk about the details of Java Graphics2D, since we won't use them in the rest of the course. (Of course, we won't use SVG either, but it's more interesting to look at something new.))

Note: Next Monday, September 14, the class will meet in Rosenberg 009 to work with Gimp.

Third Week: September 14, 16, and 18

On Monday, September 14, the class meets in Rosenberg 009 for our first Gimp lab. We will also be in Rosenberg 009 for the next two Mondays, September 21 and 28.

The reading for the week is Section 2.4, on hierarchical graphics. The lab on Thursday will also cover hierarchical graphics in 2D. After this week, we will move on to 3D graphics. It is possible that we might start talking about 3D on Friday, if there is time.

Fourth Week: September 21, 23, and 25

We will have our second Gimp lab on Monday in Rosenberg 009.

We turned from 2D to 3D graphics last Friday. This week, we start in on OpenGL 1.1, which serves as our introduction to working in three dimensions. You will have a choice of writing your OpenGL programs in Java or in C. But in any case, you will need to know a little about C to follow the discussion of the API. Section A.2 in Appendix A is a short introduction to the C programming language.

The reading for the week is Chapter 3, Section 3.1, Section 3.2, and Section 3.6. You should read 3.1 before class on Wednesday and 3.2 before class on Friday. Section 3.6 discusses how to write OpenGL programs in C using GLUT and in Java using JOGL. You should be familiar with that section before lab on Thursday.

Fifth Week: September 28 and 30; October 2

On Monday, September 28, we will once again meet in Rosenberg 009. The Monday lab is a short introduction to Inkskcape, a 2D graphics program for "drawing" rather than "painting." Inkscape saves images in SVG format. The next Monday lab will be on October 19.

The goal for the week is to finish Chapter 3. You should read any parts of Chapter 3 that you have not already read.

The Thursday lab this week will be a little different, since you will use the lab period to start on your midterm project. The project is to design and implement a scene graph API for OpenGL 1.1. You are encouraged (though not required) to work on the project with a partner. I will not collect any work from this lab. The project itself is due on October 30.

There is a test coming up next week on Wednesday, October 7.