CS307: Computer Graphics
Fall 2006

Instructor

Scott D. Anderson, but feel free to call me ``Scott'' or ``Professor Anderson'' or ``er, um''; whatever makes you comfortable. My office hours are first thing in the morning and after our class. Check my FC resume for the exact times.

In addition to office hours, please feel free to meet me by appointment. Contact me by email at sanderso@wellesley.edu . My office is room E114 in the Science Center.

When

We meet on Monday and Thursday from 1:30 to 2:40.

We'll talk about office hours in class on the first day. I love to talk with students one-on-one -- it's the best part of my job -- so please visit me during office hours. You don't even have to have a question!

Description

Introduction to the use of computers for manipulation and display of graphical information. Includes graphical input methods and interactive graphics, two- and three-dimensional transformations and fundamentals of raster graphics.

Almost every modern computer has a graphical user interface (GUI) and newer models will increasingly incorporate advanced techniques in modeling, lighting, animation, and so forth. Furthermore, graphical visualization techniques are increasingly used in computer-aided design, engineering, and manufacturing (CADEM) and in simulation. Computer graphics is therefore an important area of research and innovation.

You will learn about how 2D and 3D objects are modeled and rendered on raster graphics computer screens and other 2D output devices. You will learn the fundamental mathematics, as well as efficient algorithms and computer hardware designs.

A successful student will be able to

Prerequisites

CS 307 has CS 230 (Data Structures) as a prerequisite. Students with exceptional programming ability may also be admitted. Knowledge of linear algebra and computer architecture are also useful, but not required.

Instruction

Instruction will consist of lectures twice a week. Here's a link to the class schedule. Please try to read the lecture notes before class. We will often have some hands-on exercises in class, whenever possible.

One-Minute Papers

The concept of the "one minute paper" has become quite popular in recent years. You are asked at the end of each class to take a minute or two to write down your response to two questions. The questions are

I have found that using First Class works well for doing one-minute papers, so instead of rushing to do this at the end of class, you're welcome to post your message sometime after class.

After each class, please post to the appropriate First Class folder (CS307-drop) your response to these two questions. Try to be brief (imagine it to still be a "one minute" paper, two paragraphs at the most). Please do this by midnight of the day of the class. I will read all messages, respond to those that need an individual response, and summarize others either in class or via First Class.

Grading

The weights for the final grade are:

CategoryWeight
Assignments50
Project 30
Midterm 20
All exams are cumulative. The final exam will cover the whole course. Each part of a homework assignment is given a point weight (if I forget, let me know). Typically, programs will count for 100 points, and a written problem will count for 10 points, unless it is unusually hard or easy.

Project

The final project in this class is due in two phases. There is a presentation in class on the last day of the course. Then, the final version is due at the end of exams. You (and, optionally, a partner) will create an animation of a scene and demonstrate it in class. Your animation should have at least two independently moving objects and employ at least two of the major concepts we discussed in class, such as shading, changing camera position, curves, textures, or user interface. You should go beyond the simple examples we did for homework and in class.

Readings

Please read the lecture notes before coming to class. They will be posted to the web at least a week before class (though sometimes not much more than a week).

Assignments

There will be about eight homework/programming assignments during the semester. Note: programming assignments are due on midnight, unless otherwise stated. This is to avoid all-nighters, which is unfair to those who don't have access to computers in the middle of the night, not to mention being bad for your brain and your ability to learn.

Textbooks

There is no textbook for this course. There are books available to supplement the lecture notes. These books will be kept in the Linux lab. You may take them to 121b, but please don't take them elsewhere and please return them, so that others can use them.

Handouts

To save paper, I will typically not make printouts of lecture notes, but if you find it useful, I would be happy to do so. Just let me know.

Honor Code

Since I believe that collaboration fosters a healthy and enjoyable educational environment, I encourage you to talk with other students about the course and to form study groups.

Unless otherwise instructed, feel free to discuss problem sets with other students and exchange ideas about how to solve them. However, there is a thin line between collaboration and plagiarizing the work of others. Therefore, I require that you must compose your own solution to each assignment. In particular, while you may discuss problems with your classmates, you must always write up your own solutions from scratch. It is unacceptable for two students to turn in copies (or near copies) of each other's solutions. I will interpret such a situation as a violation of the Honor Code, and will bring it before the General Judiciary. When in doubt about acceptable levels of collaboration, please ask me for clarification.

In keeping with the standards of the scientific community, you must give credit where credit is due. If you make use of an idea that was developed by (or jointly with) others, please reference them appropriately in your work. E.g., if person X gets a key idea for solving a problem from person Y, person X's solution should begin with a note that says ``I worked with Y on this problem'' and should say ``The main idea (due to Y) is ...'' in the appropriate places. It is unacceptable for students to work together but not to acknowledge each other in their write-ups.

When working on homework problems, it is perfectly reasonable to consult public literature (books, articles, etc.) for hints, techniques, and even solutions. However, you must cite any sources that contribute to your solution. Assignments and solutions from previous terms of this course are not considered to be part of the ``public'' literature. You must refrain from looking at any solutions from previous terms of CS307. It is my policy that consulting solutions from previous terms of CS307 constitutes a violation of the Honor Code.

Late Policy

Students seem to prefer a "lateness coupon" system, so I will use that. We will begin the semester with 8 coupons each. If you use a lateness coupon, you must tell me. We'll have to work out how this is handled with pairs programming.

You may not use lateness coupons to extend either of the project deadlines: I want to see your presentations, and I can't extend anything beyond the end of exams.

  1. This work is licensed under a Creative Commons License
  2. Creative Commons License
  3. Viewable With Any
Browser
  4. Valid HTML 4.01!
  5. Valid CSS!