Resampled Importance Sampling Image Resampled Importance Sampling Image






Course Syllabus — Fall 2007

Course Overview

This course will cover concepts relating to 2D and 3D computer graphics, including graphics devices, raster drawing algorithms, object modeling and rendering, geometric transformations, viewing transformations, shading, and curve and surface generation.

Instructor

Parris K. Egbert
egbert@cs.byu.edu
3366 TMCB
(801) 422-4029
Hours: 3:00 – 4:00 MWF

Teaching Assistant

Brian Ricks
briancricks@gmail.com
3304 TMCB
Hours: Monday 11:30 - 12:30
  Tuesday 10:00 - 11:00
  Wednesday 5:00 - 9:00
  Thursday 4:30 - 6:30
  Friday 2:00 - 3:00

Class Schedule

1:35–2:50 Tuesdays & Thursdays
3718 HBLL (Harold B. Lee Library)
See Calendar for lecture topics and dates.

Text

"Fundamentals of Computer Graphics" by Peter Shirley, 2nd Ed.
ISBN: 1568812698

Grading

Final grades will be determined from programming assignments, a semester project, a midterm exam, and a final exam. (See the Calendar for dates and details.) The weights of each of these components toward the final grade will be as follows:

Programming Assignments 30%
Semester Project 22.5%
Midterm Exam 22.5%
Final Exam 25%

Programming Assignments

Computer graphics is a hands-on subject that can be a lot of fun. To learn the principles involved, there will be some fairly substantial programming required. There will be four programming assignments throughout the semester. The programs will be fairly time-consuming, so I would recommend that you start on them early. Procrastinating the programming assignments until just before the due date will likely result in sleepless nights, uncompleted programs, and frustration at finding all of the machines full. You are welcome to discuss the programs with other students as to how to design the program, etc., but you must do your own programming.

Passoff & Grading Criteria

On the specified due date for each of the programs, the TA will be in the lab to pass off and grade the programs. You will be graded not only for getting the programs working, but also for programming style. It is assumed that by now you should have acquired programming skills that will be acceptable in an industrial setting. Thus, variable naming should be done descriptively, indentation should be done appropriately, comments should be used, and other correct programming practices should be incorporated. Merely having the program run correctly is not enough.

Late Policy

Late programs will be accepted with a 10% penalty assessed for the first day late, a 20% penalty for the second day late, a 30% penalty for the third day late, and a 40% penalty for the fourth day late. Assignments will not be accepted later than that.

Semester Project

There will be a semester project that will be due the last day of class. We will spend that day viewing student's projects. A project proposal will be due on October 10. The project can be done individually, or in groups of 2-4. The level of quality expected for your project will depend on the number of students working on the project. Thus, a project done by 4 students should be better, have more capabilities, look cooler, etc., than an individual project. A mandatory requirement of the project

Exams

There will be one mid-term exam in class on October 18 that will cover the first half of the semester. The final will be held in class Thursday, December 20 between 2:30–5:30 pm. The final will be comprehensive, but will be more weighted toward the second half of the semester.

Language & Platform Guidelines

All programming for the course will be done in C++ or Java, using OpenGL. If you want to use another programming language you will need to come and talk to me. Be aware that the TA is not expected or required to support other languages, so you will be on your own.

You may do your programming on any machine you like, provided you can pass your programs off to the TA on a machine in the Talmage building. The Linux machines in the open labs have OpenGL on them, and I would strongly recommend that you use those machines.

I assume that you know how to program. Thus, good programming style will be expected. Use proper naming, indentation, documentation, etc.

OpenGL Links & References

I will cover some of the pieces of OpenGL that you will need for the programs, but there is a lot in OpenGL that I will not be able to cover in class.  You will be expected to learn the other relevant pieces on your own. Here are several places you can get information about OpenGL.

Cheating

One would hope that cheating would not need to be addressed, but since it occasionally happens, here is my policy: If a student is caught cheating, either on an exam or on programming assignments, that student will be turned over to the honor code office and will be given an E for the course. Cheating on an assignment includes using any other person's code as your own. I don't mind (in fact I strongly encourage) students discussing approaches to programming assignments, or how they will architect a program, but when the actual programming is done, it is to be done individually.

Preventing Sexual Harassment

BYU's policy against sexual harassment extends not only to employees of the university, but to students as well. If you encounter sexual harassment, gender-based discrimination, or other inappropriate behavior, please talk to your professor or department chair, or contact the BYU Equal Employment Opportunity Office at 422-5895, or contact the Honor Code Office at 422-2847.

Students With Disabilities

BYU is committed to providing reasonable accommodation to qualified persons with disabilities. If you have any disability that may adversely affect your success in this course, please contact the University Accessibility Center at 422-2767. Services deemed appropriate will be coordinated with the student and instructor by that office.