DMS 423: Programming Graphics 1

Fall 2018

Course Info

When: Tuesday/Thursday 2pm-3:50pm
Where: CFA 242

Instructor: Dave Pape
Office: CFA 250
Office hours: T/R 9-11, or by appointment


Course Description

This production course introduces students to the concepts and practice of programming real-time 2- and 3-dimensional computer graphics, working within the Unity3D game engine. 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 C# scripting in Unity3D. 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 a platform or framework (such as Unity3D) to create real-time graphics programs all assignments


There is no required text. A good book for learning to use Unity3D, especially scripting, is:

Good general texts on computer graphics programming are:


The major topics that we will cover are:


All points earned toward your final grade will be from assignments and a final project, usually started in class then finished on your own. Assignments will take one or two weeks each; the final project will be a larger project of your choosing. Grade 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.


Lab Fee

This course carries a lab fee of $125. All DMS courses with a production component are assessed this fee; the money is used to provide and maintain the equipment and software used in class.

Academic Integrity & Plagiarism

See 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.


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 Accessibility Resources, 60 Capen Hall, 645-2608, and also your instructor during the first two weeks of class. AR will provide you with information and will review appropriate arrangements for reasonable accommodations. See for more information.


See 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 work on the UB campus or any other public place, you must obtain written permission from Campus Security or the equivalent authority before you start. 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 for more information.