Course Description and Policies
CS 445: Computer Graphics, Fall 2017


Course Description:

This course is an introduction to 3D computer graphics programming using WebGL and GLSL. Topics include the 3D rendering pipeline, geometric transformations, modeling, scene graphs, graphics data structures, lighting & shading, textures, and shaders. Extensive programming in Javascript and WebGL will be required. See the schedule for more details.

Expectations: Willamette's Credit Hour Policy holds that for every hour of class time there is an expectation of 2-3 hours work outside of lecture where you are engaged in course-related activities. Since our class also meets for 3 hours per week in lab, this policy translates into 3-6 hours of work beyond lecture and lab.

This course counts towards:

Learning Objectives

Students will:

  1. Achieve proficiency in Computer Science skills: graphics programming, computer graphics theory, vector & matrix algebra.
  2. Demonstrate the ability to communicate through presentation and discussion of their work.
  3. Demonstrate the ability to work effectively as part of a team.
  4. Demonstrate the ability to work independently to analyze and solve problems.
  5. Become familiar with the computer graphics research and arts community.

Prerequisites

CS 343 Analysis of Algorithms or consent of instructor
Math 253 Linear Algebra is recommended but not required.

Time:

Class: MWF 10:20-11:20am in Ford 202
Lab: MWF 11:30am-12:00pm in Ford 202

Suggested Readings:

Attendance

80 percent of success is just showing up.(Woody Allen)

Class attendance is required. You are allowed 5 unexcused absences. Every additional 2 absences will reduce your final course grade by half a grade (A becomes A-, A- becomes B+, etc). Excused absences require documentation (e.g. mail from a sports team). Note, if you are sick and miss class but do not have a doctor's note, then this absence will count as one of your 5 unexcused absences. Please reserve your unexcused absences for this type of situation.

Students who fall behind often start missing class. Missing class is the worst possible thing you can do because it insures that you will fall even further behind.

Unless you can show that you have completed the current lab assignment (e.g. by doing a demo), you are expected to attend the lab.

Assignments

Labs assignments will be assigned approximately every 1-2 weeks. Instructions and due dates will be posted online, however, some instructions (and resources) will be given in class on the day the assignment is assigned. If you are absent that day, it is your responsibility to get this material as soon as possible either from the instructor or classmate. It is strongly recommended that you start the assignments early if you want to be certain of finishing on time. Starting the night before the due date will mean 1) you probably won't have enough time to finish, 2) you will be up all night, 3) you won't be able to get help from the instructor and 4) the instructor will have little sympathy.

If you must miss class on the day the assignment is due, you are still expected to turn in the assignment electronically by the due date. If you are physically unable to do this, e.g. due to significant illness, then please consult the instructor as soon as possible to arrange a makeup schedule. If a presentation is part of the assignment, then you will be asked to present as soon as you return to class.

Late assignments are problematic for several reasons. First, it is difficult to catch up once you are behind. Second, you won't be able to contribute to the class discussion and assignment review. For these reasons - don't be late! The best way to avoid lateness is to start the assignment early and seek help (in lab, office hours, from fellow students) when you have problems. To provide a strong incentive to get assignments done on time,

late assignments will be penalized by 25% if they are not turned in at on the day they are due and 50% if they are more than 1 week late.
Exceptions may be made due to extended illness or extenuating circumstances, but don't assume you will be the exception, and be certain to contact the instructor as soon as possible.

Evaluation

There will be 2 exams, 7 labs, and a final project.

Each lab is graded on a 5 point basis: 0 pts (nothing submitted) up to 5 pts (everything complete). You will generally work with a partner. You and your partner will not necessarily recieve the same grade.

Final course grades will be based in the following:

Labs 1-7

35%

Final Project

15%

Exam 1

25%

Exam 2

25%

Attendance

Half grade reduction for
every 2 absences beyond 5

Accommodations

In accordance with University policy, if you have a documented disability and require accommodations to obtain equal access to this class, please contact me at the beginning of the semester or when given an assignment for which an accommodation is required. Students must verify their eligibility though the University in order to receive accommodations. The university policies on disability accommodation may be found here.

Plagiarism and Cheating:

If you do a search on the web or look in books, you will find a significant amount of information and code available. You are not to use this material without explicit permission from instructor. The purpose of this class is for you to learn the concepts and coding. Copying material from other sources defeats this purpose.

In the context of this class, plagiarism is defined as representing someone else's work as your own. Cheating is defined as violating stated rules for an exam or an assignment. Plagiarized work will receive a grade of 0 as will any assignment in which cheating occurred.

In general, you are encouraged to help each other on lab assignments for this class. "Help" does not mean providing the solutions. It instead means answering general questions about the material and directing another to proper resources. If you are not clear on the rules and limitations, please ask the instructor.

For more information about the rules and process, please read the following links: