CSC 240: Computer Graphics

Fall 2015

Prerequisites

  • CSC 111: Intro to Computer Science
  • MATH 111: Calculus I (please consult the instructor if you have not taken calculus)

Course Description and Goals

In this course we will learn how to create 2D and 3D graphics from the ground up. We will begin with algorithms for drawing lines and simple shapes, and end with creating photo-realistic images. Throughout the course, we will see how mathematics, algorithms, and programming can enable creativity and artistic expression. Class time will typically involve a lecture and a short lab. Labs and assignments will generally use Python (PyOpenGL). By the end of this course, students should be able to create a wide variety of images, explain and analyze algorithms for creating different features, and be aware of resources for pursuing computer graphics further.

Assignment Notes

Assignments (roughly weekly) will be in Python and Blender. All the necessary software is installed on the lab machines in 241 Ford Hall. If you would prefer to use your own computer, you are responsible for installing the required software on your machine (listed below). Late assignments will not be accepted, but the lowest assignment will be dropped. Homeworks will be submitted online through Moodle. There is no required textbook for this course.

Software Links

Online Discussion

This semester we will be using Piazza for online class discussion, homework help, announcements, clarifications, etc. Our class page is:

https://piazza.com/smith/fall2015/csc240/home

Tentative Topics

  • Graphics pipeline and pixel coloring
  • Lines, 2D shapes, and fill algorithms
  • Transformations
  • Splines and Bézier curves
  • Perspective
  • 3D modeling
  • Lighting, shading, reflectance
  • Texture mapping
  • Ray tracing
  • 3D printing

Collaboration and the Honor Code

Collaboration is encouraged in this course, especially because computer graphics requires a variety of skills including math, programming, and art. However, for most assignments, you are expected to write and understand your own code individually. If you do use any code from the internet, it must be clearly cited. If you worked with or received help from another student, list them as a collaborator. In general, for each assignment, cite your sources (classmates, books, and online resources), as per the Smith College honor code:

"Smith College expects all students to be honest and committed to the principles of academic and intellectual integrity in their preparation and submission of course work and examinations. All submitted work of any kind must be the original work of the student who must cite all the sources used in its preparation."

Grading

  • Homeworks: 50%
  • Midterm exam: 15%
  • Final assignment/project: 20%
  • Final quiz: 10%
  • Participation, including in-class labs and Piazza: 5%

Additional Resources