Skip to main content

Computer Science 336 — Fall 2020

Syllabus and Class Information

Meeting times

TR 11:00 - 12:15 sychronously via Webex/Zoom
(Meetings will be recorded in case you can't make it.)


Steve Kautz
Office: Atanasoff 101
email: smkautz AT
Office Hours: Tuesday 2:00 - 3:00, Thursday 1:00 - 2:00
Zoom id: 2795017012

Teaching Assistant

Jie Yuan
email: jieyuan AT
Office Hours: Monday and Wednesday, 4:00 - 5:00 pm
Webex room


You should have already taken Com S 327, that is, you are expected to have done some detailed programming at a level beyond 227/228 and hopefully be familiar with C and C++. The other requirement is that you should have taken, or be concurrently enrolled in, a linear algebra course or Calculus III. Although we'll cover most of the math we need in class, we will do so fairly quickly. The math prerequisite is there to help ensure that you have enough prior experience that you won't get bogged down with it.

If you are missing a prereq, be sure to talk to me. There's a form we have to send to the advising office so you don't get dropped.


This is an introduction to computer graphics emphasizing real-time 3D rendering using OpenGL with programmable shaders. Specific topics include:

  • The graphics pipeline, role of vertex and fragment (pixel) shaders
  • The mathematics of coordinates systems and transformations in two and three dimensions
  • Representing transformations as 4 x 4 matrices using homogeneous coordinates
  • Viewing transformations and Euler angles
  • Perspective projections
  • Depth buffering (hidden surface removal)
  • Lighting models; normal vectors and shading
  • Surface properties and texture mapping
  • Sampling and antialiasing
  • Bump mapping
  • Using offscreen buffers: rendering to textures, shadow mapping
  • Noise effects
  • Reflection maps, elementary ray tracing


After completing Com S 336, the student should be able to:

  • Explain the basic stages of the graphics pipeline and the roles of the vertex and fragment shaders.
  • Use the coordinate systems and related transformations found in the graphics pipeline.
  • Visualize and define appropriate transformation matrices combining 3D rotation, translation, and scaling.
  • Create and debug interactive graphics applications including hierarchical objects in a scene.
  • Define the components in the Phong (ADS) lighting model.
  • Write shader programs including lighting, texture sampling, and bump mapping.
  • Use at least one technique employing an offscreen buffer.
  • Utilize noise and other procedural methods in shaders.
  • Investigate and apply techniques from contemporary articles in computer graphics.

Textbook and Software

Although there is no "required" textbook, there is plenty of stuff you'll need to read.

See this document on course resources for more details on recommended books, software, tools, and references.

Piazza and Canvas

We'll use Canvas for announcements, homework posting and submission, and grades. We will be using Piazza for discussions. Log into Canvas and click the "Piazza" link in the navigation bar at left to get started.

Turning off Piazza email notifications

By default, Piazza sends out periodic emails. It is easy to turn these off. After you sign up for Piazza,

  1. Find your name in the upper-right corner of the Piazza screen
  2. Click the drop-down menu and select "Account/email settings"
  3. Under "Class and email settings", find Com S 336
  4. Click on the link "Edit email notifications" in the small, blue font
  5. Edit as you see fit, e.g. "No Email"

Note that even if you select "No Email", you will still get course announcements that we believe to be either urgent or important. We will keep this to a minimum.

Homework and Projects

We'll have regular, individual homework assignments. Some of these may be written math-type problems but most will involve programming. In addition, there will probably be one project that is somewhat more extensive (e.g. a few weeks) in which you will investigate an advanced graphics technique and use it to create something original. Part of the project may include presenting a short tutorial and demonstration to the class sometime near the end of the term.

Programming assignments will primarily use JavaScript combined with GLSL, the OpenGL Shading Language, which is based on C. We will be using WebGL, which provides JavaScript bindings for the OpenGL functions and allows rendering to take place within an html canvas element. See the resources page for more details.

Late policy

10% off per day (including weekend days and holidays) up to a maximum of 4 days late; no credit after 4 days.

Exams and Grading

THIS IS TENTATIVE: Letter grades will be based on an overall weighted average with approximately the following weights:

  • Midterm exams: 30%
  • Homework Assignments: 45%
  • Project and presentation: 20%
  • Participation: 5%

Academic Dishonesty Policy

The class will follow Iowa State University's policy on academic dishonesty. All suspected cases of academic dishonesty will be reported to the Dean of Students Office. See

Unless specifically instructed otherwise, every assignment and project is to be the product of your own intellectual effort and is to be done on your own. Anyone found guilty of academic dishonesty will receive an automatic F in this course.

Accessibility Statement

Iowa State University is committed to assuring that all educational activities are free from discrimination and harassment based on disability status. Students requesting accommodations for a documented disability are required to work directly with staff in Student Accessibility Services (SAS) to establish eligibility and learn about related processes before accommodations will be identified. After eligibility is established, SAS staff will create and issue a Notification Letter for each course listing approved reasonable accommodations. This document will be made available to the student and instructor either electronically or in hard-copy every semester. Students and instructors are encouraged to review contents of the Notification Letters as early in the semester as possible to identify a specific, timely plan to deliver/receive the indicated accommodations. Reasonable accommodations are not retroactive in nature and are not intended to be an unfair advantage. Additional information or assistance is available online at, by contacting SAS staff by email at, or by calling 515-294-7220. Student Accessibility Services is a unit in the Dean of Students Office located at 1076 Student Services Building.

Dead Week, aka "Prep Week"

This class follows the Iowa State University Prep Week policy as noted in section 10.6.4 of the Faculty HandbookThere will be work due during Prep Week.

Harassment and Discrimination

Iowa State University strives to maintain our campus as a place of work and study for faculty, staff, and students that is free of all forms of prohibited discrimination and harassment based upon race, ethnicity, sex (including sexual assault), pregnancy, color, religion, national origin, physical or mental disability, age, marital status, sexual orientation, gender identity, genetic information, or status as a U.S. veteran. Any student who has concerns about such behavior should contact his/her instructor, Student Assistance at 515-294-1020 or email, or the Office of Equal Opportunity and Compliance at 515-294-7612.

Religious Accommodation

If an academic or work requirement conflicts with your religious practices and/or observances, you may request reasonable accommodations. Your request must be in writing, and your instructor or supervisor will review the request. You or your instructor may also seek assistance from the Dean of Students Office or the Office of Equal Opportunity and Compliance.

Contact Information

If you are experiencing, or have experienced, a problem with any of the above issues, email

Required statement on COVID-19 health and safety requirements

Students are responsible for abiding by the university’s COVID-19 health and safety expectations. All students attending this class in-person are required to follow university policy regarding health, safety, and face coverings:

  • wear a cloth face covering in all university classrooms, laboratories, studios, and other in-person instructional settings and learning spaces. Cloth face coverings are additionally required to be worn indoors in all university buildings, and outdoors when other people are or may be present where physical distancing of at least 6 feet from others is not possible. Students with a documented health or medical condition that prevents them from wearing a cloth face covering should consult with Student Accessibility Services in the Dean of Students Office.
  • ensure that the cloth face covering completely covers the nose and mouth and fits snugly against the side of the face.
  • practice physical distancing to the extent possible.
  • assist in maintaining a clean and sanitary environment.
  • not attend class if you are sick or experiencing symptoms of COVID-19.
  • not attend class if you have been told to self-isolate or quarantine by a health official.
  • follow the instructor’s guidance with respect to these requirements. Failure to comply constitutes disruptive classroom conduct. Faculty and teaching assistants have the authority to deny a non-compliant student entry into a classroom, laboratory, studio, conference room, office, or other learning space.

These requirements extend outside of scheduled class time, including coursework in laboratories, studios, and other learning spaces, and to field trips. These requirements may be revised by the university at any time during the semester.

In accordance with university policy, instructors may use a face shield while they are teaching as long as they are able to maintain 8 feet of physical distance between themselves and students during the entire instructional period. Some form of face covering must be worn at all times in learning spaces regardless of the amount of physical distancing.

Faculty may refer matters of non-compliance to the Dean of Students Office for disciplinary action, which can include restrictions on access to, or use of, university facilities; removal from university housing; required transition to remote-only instruction; involuntary disenrollment from one or more in-person courses; and other such measures as necessary to promote the health and safety of campus.

It is important for students to recognize their responsibility in promoting the health and safety of the Iowa State University community, through actions both on- and off-campus. The university’s faculty asks that you personally demonstrate a commitment to our Cyclones Care campaign. Iowa State University’s faculty support the Cyclones Care campaign and ask you personally to demonstrate a commitment to our campaign. Your dedication and contribution to the campaign will also protect your family, classmates, and friends, as well as their friends and families. Our best opportunity for a successful fall semester with in-person learning and extramural activities requires all of us to collaborate and fully participate in the Cyclones Care campaign.