CSE 8433 Advanced Computer Graphics Syllabus

Dr. J. Edward Swan II
Course Time and Location
Mon and Wed, 2:00 pm–3:15 pm, 104 Butler Hall
Office Hours and Location
Tue and Thurs, 2:00 pm–3:30 pm, 321 Butler Hall
Mailing List
I will also post all announcements to the course message boards.
Prerequisite Course
CSE 4413 / 6413 or equivalent
Required Text
Donald Hearn and M. Pauline Baker, Computer Graphics with OpenGL, 3rd ed., Pearson/Prentice Hall, 2003. 
Recommended Text
Peter Shirley, Fundamentals of Computer Graphics, A. K. Peters, 2002.  This book is not required, but it's a good book, and I will be basing some lectures on it.  I may assign some readings, but if I do, I will make them available on the course website.
Additional Readings
As the semester progresses, I may assign additional readings from current and classic computer graphics papers and/or additional book chapters.  If I do, I will put copies of these papers on the course website.
Catalog Information
Three hours lecture.  Realistic, three-dimensional image generation; modeling techniques for complex three-dimensional scenes;  advanced illumination techniques; fractal surface modeling; modeling and rendering of natural phenomena.


Programming Assignments 50%
Homework Assignments **
Midterm Exam 15%
Final Project / Exam 35%

**I may assign homework assignments during the semester if it seems that they will be useful.  If this happens, I will adjust the grading scale to give the homework assignments a weight of 5% to 10%; this weight will come from the Final Project / Exam. 

Each programming assignment (and homework assignment, if we have them) will be equally weighed. 

Because my goal is for this course to be a collaborative environment, I will not grade the course on a curve, and thus students are not competing against each other.  The grading scale is:

≥ 90% A
80%–89% B
60%–79% C
50%–59% D
< 50% F

Exams: All exams are closed-notes, closed-book, cumulative exams.


Attendance and Audits: Except for exams, attending the lectures is not mandatory, but students are responsible for obtaining the course information on their own.  Attendance will not affect a student's grade.  Students who audit the class are also not required to attend, but when they do, auditors are expected to conform to the same classroom decorum as regular students.

Academic Honesty / Misconduct: Students are expected to maintain the standards of academic honesty that are described in the Department of Computer Science and Engineering's Academic Honesty Policy.  As described under the section on Programming Assignments below, I allow a greater degree of collaboration on programming assignments than the strictest possible interpretation of the department's honesty policy. 

Personal Electronic Devices: Students must respect their fellow students and not disrupt class. Therefore, cell phones, pagers, other such alarms, or personal conversations which disturb the lecture are not allowed.  Students with personal laptops are encouraged to bring them to class; however, laptops are not required for this course.

Grade of Incomplete (I): Incomplete grades will only be given in extreme circumstances, such as illness, death in a student's immediate family, or similar circumstances beyond a student's control. 

Drop / Add Policy: This class follows Mississippi State University's Official Drop/Add Policy:

Add/drop without penalty: A student has through the fifth class day into the semester to add a course and through the tenth class day to drop a course without being assessed a fee or academic penalty.

Drop after the tenth class day through the 30th class day into the semester: A student who elects to drop a course during this period must receive the approval of his/her advisor, will be assigned a W on his/her academic record, and be assessed a fee. The advisor who permits the drop will specify its effective date.

Drop after the 30th class day into the semester: A student cannot drop courses after this period except in documented cases of serious illness, extreme hardship, or failure of the instructor to provide significant assessment of his/her performance. A request to drop a course during this period must be approved by the student's advisor and academic dean. The dean who permits the drop will specify its effective date. A student receiving permission to drop will receive a W on his/her academic record and be assessed a fee.

Faculty are expected to provide a student with significant evidence or assessment of his/her class performance within the first six weeks.

Message Boards and Email

In this class, the WebCT message boards are the main communication interface the instructor and your fellow students. Do not send email to the instructor with questions about the assignments; post these to the discussion boards instead. Often, other students may be able to answer your question before the instructor.  My goal is for the course to build upon a collaborative environment.

Since there may be frequent list activity, check the boards at least once a day. Students are responsible for knowing any material posted by the instructor.

The boards are a forum for discussion related to this class. Therefore, do not post rude or irrelevant messages. In addition, while algorithms and approaches in general can be discussed on the assignment, exact or partial solutions (including code detailed snippets) are not allowed. Everyone is to do their own work.

Programming Assignments

Programming assignments will make up the bulk of the learning and the work in this class.  I can't stress enough how important the programming assignments are for learning computer graphics.

Machines, Languages, and Compilers

Students may use their own machines, or the machines in Butler 213.  These machines are accessible to any student in the course, and have the reference compilers and libraries listed below installed on the Windows and Linux partitions.

Students may use either C++ or Python for the assignments.  In general, I recommend C++ for the assignments that involve rendering, but I have no particular recommendation for the assignments that involve interaction.

Students may use any compiler they desire to develop and debug the lab assignments.  However, when it is time to turn the assignments in, students' code must compile and link with one of the following reference compilers and libraries.  If the code doesn't compile and execute with the reference compilers and libraries, it won't be graded. 

The reference compiler is GNU g++ version 3.3.3.  This is generally the default compiler for Linux machines.  For a Windows machine, the easiest way to get g++ is by installing Cygwin
The reference compiler and libraries are the same as was required for CSE 4413 / 6413: Python 2.3, the Python Imaging Library 1.1.4, and PyOpenGL  No other libraries will be assumed.


Real world programmers work in groups.  I encourage students to collaborate on programming assignments in terms of discussing algorithms and general approaches.  Students may also assist each other in program debugging. Students may engage in these activities through the message boards. 

However, the code for each assignment must be written individually by each student. This means do not use source code downloaded off the Internet or accessed by other means, and don't use outside libraries except for the ones that I provide.  This is an important policy.  Not only will violators fail to learn the course material, but violators of this policy will be handled according to Mississippi State's Academic Honesty Policy 12.07.

Programming Assignment Grading

Programs will be graded on the following criteria:

Last modified: Feb 3, 2005