The course explores four general areas:
The course stresses portable programming. The material is illustrated using operating system neutral OpenGL and Shader Language.
The class is in a seminar format. Each class period is divided into roughly two halves. The second half is a lecture format that introduces the topic for the following week. The first half is devoted to presentations by students on the topic introduced the pervious week.
Weekly assignments comprise a sequence of programming assignments that seeks to build practical experience using OpenGL. The final assignment is a course project which a graphics emphasis of the students choosing.
Each student will be expected to make two short presentations: One is the final project presentation, the other is some topic earlier in the semester.
The assignments for the graduate and undergraduate students are the same, but more is expected from graduate students, especially for the class project.
Each week the first half of the class consists of a few volunteers demostrating their assignments. If there are insufficient volunteers a randomly generated list will be used to ensure that all students get at least one opportunity to present their assignments.
Assignments may be completed using a computer language and platform of the student's choice, although C or C++ on a Windows, OS/X or *NIX environment is preferred. CSEL is available to complete the assignments and for testing. Writing portable code that will run on any operating system is stressed.
Assignments will be graded on a GNU/Linux system. Programs should contain #ifdef statements to facilitate compilation on this system. Students using exotic programming languages will be expected to aid the instructor in setting up a suitable environment for grading the assignments.
Assignments must be submitted via moodle. Assignments are due at by the beginning of class. Late assignments will not be accepted unless previously arranged.
CAETE students are encouraged to submit assignments on the same schedule as on campus students, but special accomodations will be made on an individual basis.
Any project that is related to the course material would be acceptable. Students are encouraged to develop an application that is useful in some other aspect of their studies or work. To accommodate this students are given wide latitude in terms of platform and language of implementation. However, in order to facilitate grading, this should be done in coordination with the instructor.
A formal proposal is used to ensure that the project is appropriate in terms of scope and degree of difficulty.
Students are required to do an oral presentation of their project during class at the end of the semester.
Each assignment should reflect each student's individual work. However, code reuse is permitted, including example code from the class as well as code from resources on the web. A "safe harbor" in this regard is simply a comment indicating where code from another source is reused.
Where code is reused, it is expected that students should make the code their own, and improve and expand on what is provided.