CS 315 Computer Graphics - Fall 2013

Course Syllabus

Instructor

Joel Ross
email: jross@pugetsound.edu
office: Thompson 405
phone: x3558

Class Meetings

Mon/Wed/Fri 2:00pm to 2:50pm (Thompson 381)

Website: http://cs.pugetsound.edu/~jross/courses/cs315/
Moodle: https://moodle.pugetsound.edu/moodle/course/view.php?id=6311
Submissions: for Windows, map \\hedwig\jross_cs315; for Mac, connect to smb://hedwig/jross_cs315 (instructions)

Office Hours

Mon, Tue, Wed, Fri: 10:00am to 11:00am; Thu 11:00am to 12:00pm; whenever my office door is open, or by appointment.

Course Description

This course is an introduction to generating and processing images with a computer. The emphasis is on the design of computational systems for generating two- and three-dimensional graphics and for working with graphical images. Students study the mathematical theory underlying computer generated graphics. While this course will cover the traditional computer graphics rendering pipeline (scan conversion, clipping, transformations, projections, lighting, texture mapping, etc), we will also discuss applications of graphical concepts, including animation, graphical user interfaces, and data visualization. This is a programming-intensive course.

Prerequisite: CSCI 261 with a grade of C- or better.

Textbook

This course has no required textbook. However, there are a couple of recommended texts that will provide useful references:

Additional readings will be made available on Moodle (see the course calendar).

Resources

There are many, many more resources for learning graphics programming online. If you find a good one, let me know and I'll add it to the list!

Course Goals

After completing this course, a student will be able to:

Course Components

Homeworks

Computer graphics programming will occur primarily through homeworks, assigned every 1-2 weeks. These homeworks will give you a chance to practice implementing concepts we have discussed in class and utilizing graphical APIs like OpenGL ES. Homeworks should be completed individually (unless otherwise specified).

Programming will be done primarily in Java---but through the Android platform, which makes it very different from the Java programming you've done through 261. We will be implementing OpenGL programs through Java, which gives them a C++ style without the C++ syntax. Moreover, we will also be using GLSL (the OpenGL Shader Language), which is a specialized language with a C-like syntax. Programming will likely feel uncanny.

As computer graphics is a highly creative domain, many assignments will be strive to be open-ended, letting you create your choice of images and applications. You are highly encouraged to exert your creatively---create applications that are novel and will wow us!

Combined, homeworks will be worth around 60% of the course grade. Note that some homeworks may be given more weight than others (as described in the individual assignment)

Exams

There will be two exams: a mid-term and a final. The final is not expected to be comprehensive. Exams will emphasize underlying theoretical concepts rather than the programming components applied in homeworks---don't expect to do any programming on the exam, but you should expect to do math!

Each exam is worth about 15% of the course grade.

Participation

You are expected to be an active participant in this class, and this course compnent reflects that. The best way to earn participation points is to be both physically and mentally present! Show up to class, ask and answer revelant questions, share an opinion (particularly in regards to supplementary readings), and otherwise contribute to a conducive learning environment. Participation is worth about 10% of the course grade.

Course Policies

Respect

This class may involve in-class discussion of topics on which you and your classmates may have differences in opinion. Please be respectful of others (students or otherwise) at all times.

Collaboration

Unless otherwise indicated, assignments should be completed individually. It is permissible, even encouraged, to talk with your classmates about the conceptual course material or requirements of an assignment. It is also permissible to get help with the development environment or with minor syntax errors.

However, the code you write and submit must be your own. When you ask for help from other students, you should follow the Gilligan's Island Rule formulated by Larry Ruzzo at University of Washington:

Leave without any written record of the collaboration (erase all whiteboards, delete all e-mail, recycle all paper, smash all stone tablets, etc.), and then spend at least half an hour engaging in mind-numbing activity such as watching Gilligan's Island before resuming work.

That way the code you actually write will have been reconstructed by you, from your own understanding.

It is never permissible to copy and paste another student's solution (whether code or prose). If you use code written by someone else (such as a textbook, tutorial, or instructor), you must include a comment giving credit to the author and explaining where the code came from. Failing to give appropriate credit is a form of plagarism, and so is considered cheating.

Correspondence

I will send out course announcements by email, so you should check your email daily. Note that this email will go to your pugetsound.edu address. If you prefer to read your email on another account, you should set your Pugetsound account to forward your email to your preferred account (see http://www.pugetsound.edu/files/resources/6291_ForwardWebmail.pdf).

When emailing me, please try to use proper grammar and make sure to sign your emails! This will let me know who is writing, and will help me to better answer any questions.

My office hours are listed above. I am more than happy to talk about any questions or concerns you may have about the course or its material. I highly recommend you take advantage of professor's office hours; it's one of the greatest benefits of attending a school like UPS.

Attendance

Make every effort to attend each class meeting; in-class discussions are an important component of the class. Classes will begin prompty on time in order to try and end on time---please do your best to get to class before the start of the hour. Students are expected to attend all lectures (attendance counts towards your participation score), with exceptions permitted in case of illness and family emergencies. I reserve the right to drop from the course any student that misses 5 or more classes.

Technology in Class

The use of cell phones and laptops will not be permitted in class unless specific permission is given. Please silence all cell phones/pagers/etc. before the beginning of each lecture.

Late Work

At the beginning of the semester, each student has two "free late days" that can be used to extend homework assignment due dates. Late days are spent in 24 hour increments---if the assignment is due at 9:00am and you hand it in at 10:00am, you will have used one "late day". Days may all be used on a single assignment or split across multiple assignments. After late days have been used up, late assignments will lose one full letter grade per day late.

If you ever find yourself falling behind, please check in with me ASAP (that means before the due date!); I am glad to help or try and work something out!

Academic Honesty

Please review the Academic Honesty Policy in the Student Handbook, and ask me if you have any questions regarding its application to this course. The consequences of academic dishonesty are not worth the risks. The simple rule is: do not claim anyone else's work, code, words, or ideas as your own. If you're in doubt, come talk to me in advance.

This course will often require you to utilize resources (tutorials, etc.) online. Adapting code from such resources is expected; just make sure to include a comment citing your source if you borrow any code whole-cloth!

If you're having problems in the course, come and speak with me; never take the shortcut of copying someone else's work. It isn't worth it.

Special Accommodations

Academic accommodations are available for students with disabilities who are registered with the Office of the Office of Accessibility and Accommodations. If you have a physical, psychological, medical or learning disability that may impact your course work, please contact Peggy Perno, Director of the Office of Accessibility and Accommodations, 105 Howarth, 253.879.3395. She will determine with you what accommodations are necessary and appropriate. All information and documentation is confidential.

I also encourage all students having difficulty, whatever the reason, to consult privately with me at any time.

Emergency Procedures

Please review university emergency preparedness and response procedures posted at www.pugetsound.edu/emergency/. There is a link on the university home page. Familiarize yourself with hall exit doors and the designated gathering area for your class and laboratory buildings.

If building evacuation becomes necessary (e.g. earthquake), meet your instructor at the designated gathering area so she/he can account for your presence. Then wait for further instructions. Do not return to the building or classroom until advised by a university emergency response representative.

If confronted by an act of violence, be prepared to make quick decisions to protect your safety. Flee the area by running away from the source of danger if you can safely do so. If this is not possible, shelter in place by securing classroom or lab doors and windows, closing blinds, and turning off room lights. Stay low, away from doors and windows, and as close to the interior hallway walls as possible. Wait for further instructions.

Course Calendar

Below is the planned schedule for the course. This includes a list of topics to help students plan their work in this course, as well as reading requirements and assignment deadlines. The calendar is subject to change.

Week Date Topic Assignments Reading
1 Sep 02 Introduction Review the CS315 Essential Math handout
Shneiderman & Plaisant, 2010
2 Sep 09 Graphical Devices and Interfaces Homework 1 due Friday Galitz 2007; Golden Rules
3 Sep 16 Rasterization Homework 2 due Sunday
4 Sep 23 OpenGL and Transformations Homework 3 due Sunday Shreiner 8e, Ch 1; Appendix E (2e online)
5 Sep 30 Projections and Viewing
6 Oct 07 Advanced Geometry
7 Oct 14
Mon: work day
Midterm Homework 4 due Friday
Midterm Fri, Oct 18
8 Oct 21
Mon-Tues: break
Perception and Color Healey 2009
9 Oct 28 Lighting and Shading
10 Nov 04 Textures and Shadows Homework 5 due Sunday Wolfe 1997
11 Nov 11 Raytracing Rademacher 1997; Optional: Own 1999
12 Nov 18 Image Processing & Vision Avidan and Shamir 2007
13 Nov 25
Wed-Fri: holiday
Curves Homework 6 due Tuesday
14 Dec 02 Information Visualization Tufte 1990
15 Dec 09 Conclusions
Finals Final Exam: Wednesday Dec 18, 4:00pm Homework 7 due Wednesday