Page content

Here is a brief overview of what the class is and how it works. You may also want to see the Getting Started page.

What this class is about

Computer Graphics is how we use computers to make pictures. This class is about how to program computers to draw. It is not about what pictures you should draw (that’s art). The class is about how you program picture making, not how you use tools to make pictures. This class is how to write graphics programs not about how to use them.

You can see the Learning Goals page for a discussion of what we want you to learn in this class, and a summary of the key topics. You can also see what we’re going to cover in class from the Calendar.

To practice the graphics ideas, we will implement them with web programming. So, along the way, you will learn the basics of web programming and JavaScript (if you don’t know it already). See the Javascript in CS559 page which explains why we use JavaScript, as well as how to learn it.

How the class will work

Each week, the class will have 2 lectures - lectures are required. Each week (for almost all weeks), there will be a workbook which is a combination of tutorial, reading assignment, demo and programming assignment. Each week there will be an online quiz.

The weekly rhythm will be:

  • Tuesday: Lecture (lectures are required)
  • Thursday: Lecture (lectures are required)
  • Friday: online quiz
  • (the following Monday): you turn in your workbook (this is the due date) - we will generally give out the workbooks at week or so in advance

There will also be a midterm exam and a final exam (both on Wednesdays). The last workbook will be due on the last day of class.

You will read and write JavaScript programs as part of the workbooks.

Basic Info

See Policies for details.

Lectures: Tuesday and Thursday from 2:30-3:45, Room B130 Van Vleck Hall. You are responsible for material presented in lecture. Please come on time.

Communication: Please communicate with the Course Staff via Piazza. Course announcements will be on Canvas.

Instructor: Professor Michael Gleicher web page. Office: 6385 Computer Sciences. Office hours: Wednesday 11-noon, or by appointment.

Office Hours: The course staff will hold regular “consulting hours” each week in room 4331 CS. 3-6pm on Monday, 4-6 on Tuesday, 4-6 on Thursday, 3-6 on Friday, and a Sunday session (3-5pm, room 1304). Consulting hours are cancelled on Tuesday, January 28th.

Teaching Assistants and Peer Mentors: Dan Kiel, Arijit Pramanik, Nils Palumbo, Young Wu, Jack Yang, Jerry Kou, and Haochen Shi. Send messages to the course staff via Piazza

Course Mechanisms:

  • The Course Web will store most information. When something new is posted, we will make announcements to Canvas and/or Piazza.
  • We will use Canvas for announcements and to give grades to students and make private readings available.
  • We will use Piazza for discussion
  • We will use GitHub to distribute and collect workbooks (which are reading, writing, and programming assignments)

Exams: Alternate exam arrangements must be made 3 or more weeks ahead of time.

  • We will have a midterm exam in the evening (March 11th 7:30pm)
  • We will have a final exam in the University assigned time slot (currently 2:45pm on May 6th)

Books: You are not required to purchase any books. Chapters for required readings will be provided online, either through the course Canvas or the University Library. See the Books page for more information.

Grading: 65% workbooks, 35% exams, small adjustments for quizzes. See Policies(grading) for details.

Late policy: Late assignments will not be accepted.

Class Topics

The main topics, in rough order of appearance (subject to change):

  • Basics of web programming
  • 2D graphics APIs
  • Coordinate Systems and Hierarchical Modeling
  • Transformations
  • Curves and Shape Representations
  • 3D programming with a high level API
  • Transformations in 3D
  • Meshes and Shapes in 3D
  • Local lighting
  • Texturing
  • How 3D drawing works
  • Graphics Pipelines and efficiency issues
  • Surfaces
  • Higher quality rendering