CSC 240: Computer Graphics

Fall 2016

Course Staff


  • 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 or handout. We will be using WebGL as the primary language for the course, followed by a Blender module during the last several weeks. WebGL uses HTML and JavaScript, which are great skills to have coming out of this course. We will also be using Poll Everywhere for in-class Q&A. 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

Weekly assignments will be a mix of programming and pencil-and-paper exercises. In-class labs do not need to be turned in, but will count towards your participation grade. Since the enrollment for this course has increased, we are no longer in a room with computers. For this reason, if you have your own computer, please plan to bring it to class. If you do not have your own computer, please contact me and we will set you up with a computer through the laptop loan program. Homeworks will be submitted online through Moodle.

This is a 4 credit course, so students should budget 12 hours/week for graphics (3 hours in class and 9 hours outside of class).


We will be using a free online textbook for this course, linked below. Other supplementary readings will be made available online.

"Introduction to Computer Graphics", by David J. Eck

Software Links

Online Discussion

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


  • Graphics overview and pixel coloring
  • Lines, 2D shapes, and fill algorithms
  • Transformations
  • Splines and Bézier curves
  • Perspective
  • 3D graphics
  • Lighting and shading
  • Texture mapping
  • Ray tracing
  • 3D modeling with Blender
  • Animation

Course Policies

  1. Email and Piazza

    All questions about course material or logistics should be posted (non-privately) on Piazza. Email about course content will not be answered except to recommend posting on Piazza. Please try to avoid private Piazza posts; if it's a non-content related matter, send me an email.

  2. Sending me code

    Do not email me or post a long block of code on Piazza. I will not debug your code over email or Piazza. Please arrange in advance to come to office hours. If you can distill the problem to 1-2 lines of code and an error message, post it on Piazza.

  3. Late work

    Late homeworks will not be accepted. However, each student can drop their lowest homework score at the end of the semester. The only exceptions to this policy are:

    • An accommodations letter from the ODS
    • A note or email from a Class Dean
    • A note or email from Health Services

  4. Individual meetings

    If you are unable to make my office hours or the TA office hours, I can occasionally do individual or small-group meetings as my schedule permits. Please use this sparingly - due to the class size I cannot meet with students one-on-one very frequently.

  5. Attendance

    Students may miss up to two class meetings without their participation grade being effected. Exceptions are the same as for late work.

  6. Electronic devices

    Electronic devices may be used in class as long as they are directed towards course material (taking notes, in-class lab, etc).

  7. Random partners

    For in-class labs, you will (usually) be paired with a random partner. The rationale behind this decision it to remove the temptation to work with the same partner repeatedly, give students realistic collaboration experiences, and help foster a sense of course community. This approach has been used successfully in several CS courses at Smith.

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, code and written work should be produced and understood by each individual student. 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. 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."


  • Homeworks: 50%
  • Midterm exam: 15%
  • Final project: 10%
  • Self-scheduled final exam: 15%
  • Participation (including in-class labs, Poll Everywhere, and Piazza): 10%

Additional Resources