Syllabus and Class Information
Computer Science 336
Fall 2023
Meeting times
TR 9:30 - 10:45 in Hoover 1227
Instructor
Steve Kautz
Office: Atanasoff 101
ISU email: smkautz
Office Hours: |
M 2:30 - 3:30 |
| T 12:00 - 1:00 |
| R 12:00 - 1:00 |
(Please send email if you need to see me at some other time.)
Teaching Assistants
Jiale Feng
ISU email: colour
Office Hours: T 3-4 pm in Pearson 0145
Mohammed Rafi
ISU email: mohd7
Office Hours: R 3-4 pm in Pearson 0145
Prerequisites
You should have already taken Com S 327 or embedded systems, 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.
Topics
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
Outcomes
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,
- Find your name in the upper-right corner of the Piazza screen
- Click the drop-down menu and select "Account/email settings"
- Under "Class and email settings", find Com S 336
- Click on the link "Edit email notifications" in the small, blue font
- 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
http://www.dso.iastate.edu/ja/academic/misconduct.html.
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 www.sas.dso.iastate.edu, by contacting SAS staff by email at accessibility@iastate.edu, or by calling 515-294-7220. Student Accessibility Services is a unit in the Dean of Students Office located at 1076 Student Services Building.
Free Expression Statement
Iowa State University supports and upholds the First Amendment protection of freedom of speech and the principle of academic freedom in order to foster a learning environment where open inquiry and the vigorous debate of a diversity of ideas are encouraged. Students will not be penalized for the content or viewpoints of their speech as long as student expression in a class context is germane to the subject matter of the class and conveyed in an appropriate manner.
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 Handbook. There 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 dso-sas@iastate.edu, 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
academicissues@iastate.edu.