DMS 423/523: Programming Graphics 1


Fall 2013

Course Info

When: Monday/Wednesday 9am-10:50am
Where: CFA 242

Instructor: Dave Pape
e-mail: depape at buffalo.edu
Office: CFA 250
Office hours: Tue 1-2pm, Wed 11am-noon, or by appointment

Website: http://davepape.org/d/DMS423

Course Description

This production course introduces students to the concepts and practice of programming real-time 2- and 3-dimensional computer graphics, primarily using OpenGL. The major focus is on developing the skills needed to create interactive, real-time graphics experiences. Students write their own code to create customized computer tools and visuals and learn the fundamentals of graphics. In-class examples will use the cross-platform Python language and Pyglet toolkit; we might also occasionally look at web-based graphics using Javascript and WebGL. We will consider applications that include algorithmic animation, video games, and data visualization.

Upon completing this course, a student should have an understanding of basic computer graphics technical concepts - e.g., be able to describe the different types of geometric transformations, explain the basis and use of the RGB color model, define what a normal vector is and what it's used for, understand how a texture image is applied to a shape, etc. The student should also be comfortable with using programming techniques and mathematics (trigonometry, interpolation, vectors) to build and control a graphical scene.

Learning Outcomes & Assessment

Outcome Assessment
Students will be able to define and apply basic computer graphics concepts including frame buffers, pixels, RGB color, and transformations early assignments
Students will understand and be able to apply mathematical tools including coordinate systems, trigonometry, interpolation, and vectors for computer graphics animations/simulations later assignments
Students will be able to use OpenGL functions to create real-time graphics programs all assignments


Textbook

There is no required text. A good book for learning computer graphics programming and the current, shader-based form of OpenGL is:

Some recommended texts for learning the older form of OpenGL are:

(Hearn & Baker is also a good general computer graphics text.)

Useful websites:

Topics

The major topics that we will cover are:

Grading

All points earned toward your final grade will be from assignments, usually started in class then finished on your own. At first there will be one assignment per week; later ones will take two weeks. Their weighting is:

Late assignments will be penalized one letter grade per 24 hour period that they're late. One that's more than 72 hours late will not earn any points.

Regular attendance is expected - you are allowed up to two free absences; after that, each absence will cost you 3% of your overall grade.

All assignments and projects must be your own work. Work is to be done individually - do not share code with, write code for, or copy code from other students. This applies to all assignments while they are outstanding - i.e., until everyone's program has been turned in and graded. A first violation of this policy will result in failure of the assignment; repeated violations will result in failure of the course. See below for further official warnings about plagiarism.

Policies

E-mail

I will send any e-mail relating to this course to your official buffalo.edu address. Be sure that you check this address. Do not ask me to send e-mail to another address instead - if you don't want to use the buffalo.edu mail system, forward your mail from there to whatever system you do use.

Also, be warned that mail from free services like Hotmail or Yahoo has a strong chance of being caught by spam filters. Hence, I recommend not sending me e-mail from such an address, if you want to be certain that I'll receive it.

Lab Fee

This course carries a lab fee of $100.

Academic Integrity & Plagiarism

See http://undergrad-catalog.buffalo.edu/policies/course/integrity.shtml for UB's official academic integrity policy.

Be aware that rules regarding plagiarism, cheating, etc, apply to program code in the same way as to an academic paper.

Students with Disabilities

If you have a disability (physical, learning or psychological) which may make it difficult for you to carry out the course work as outlined, and/or requires accommodations such as recruiting note takers, readers, or extended time on exams and assignments, please contact the Office of Disability Services, 25 Capen Hall, 645-2608, and also your instructor during the first two weeks of class. ODS will provide you with information and will review appropriate arrangements for reasonable accommodations. See http://www.student-affairs.buffalo.edu/ods/ for more information.

Incompletes

See http://undergrad-catalog.buffalo.edu/policies/grading/explanation.shtml#incomplete for UB's policy on 'Incomplete' grades.

Weapons as props

If you are planning a student production which involves using any prop which could be interpreted to be a weapon [toy gun, BB gun, knife, etc.] and you are planning to shoot on the UB campus or any other public place, you must obtain written permission from Campus Security or the equivalent authority before you shoot. If you do not, you will face serious problems including possible expulsion from the university.

Sexual harassment

Sexual Harassment of employees and students, as defined below, is contrary to University policy and is a violation of federal and state laws and regulations.

Unwelcome sexual advances, requests for sexual favors, and other verbal or physical conduct of a sexual nature constitute sexual harassment when:

  1. submission to such conduct is made either explicitly or implicitly a term or condition of an individual's employment or academic advancement;
  2. submission or rejection of such conduct by an individual is used as the basis for employment or academic decisions affecting such individual;
  3. such conduct has the purpose or effect of unreasonably interfering with an individual's work or academic performance, or creating an intimidating, hostile, or offensive environment

No university employee of either gender shall impose a requirement of sexual cooperation as a condition of employment or academic advancement, or in any way contribute to or support unwelcome physical or verbal sexual behavior.

Any member of the university community who requires additional information or who wishes to make a complaint or receive a copy of the University procedures to be followed for complaints arising from matters related to the policies outlined above should contact the Office of Equity, Diversity, and Affirmative Action Administration, 406 Capen Hall, 716-645-2266. See http://equity.buffalo.edu/sexual_harass_stu_brochure.htm for more information.