CSCI 340 (W '14), Interactive Computer Graphics

Winter 2014

Dr. Joshua Stough , Parmly 408

MWF 2:30 - 3:25PM
Office Hours: tbd
stoughj@wlu.edu, x8811 or (919) 357-0604 (txt welcm)
Parmly 405
http://www.eg.bucknell.edu/~jvs008/teaching/CS340W14/CS340W14.html
 
 
teapot  mirror balls  checker bubbles 

 
Course Schedule 
 

Overview
   Computer Graphics
 is virtually ubiquitous in industries from entertainment to design to medicine.  As an art or science, graphics is concerned with the generation of synthetic images.  In this course we will study the most flexible means for generating graphics, which involves mathematically modeling objects, cameras, lights and their interactions.  We will use C/C++ and the OpenGL graphics API to create online (real-time) high-fidelity 3D graphics applications.  We will also cover ray tracing, an offline (more computationally expensive) process that can allow for more physically accurate light models and material properties.  Toward the latter part of the term, you will work as part of teams and individually on projects of your interest that extend the common framework that we will develop, and you will present these advanced topics to the class. 
    In order to get us started quickly, we will take a top down approach.  Initially we will develop applications taking advantage of powerful OpenGL tools that perform the complicated mathematical modeling.  We will then look 'under the hood' and implement some of this functionality ourselves. 

Is CSCI 340 For You?

  1. This is an upper level CS elective, and as such you should expect to spend at least 12 hours per week outside of class on everything from reading to debugging.  You are also expected to show considerable agency in problem solving.
  2. This course requires CSCI 209 or instructor permission.  I will host occasional workshop sessions on C/C++ syntax.   
  3. It would be helpful in this course to have had some calculus and linear algebra (how to take a derivative of a simple function, matrix algebra). 
  4. Mathematical and statistical entities like matrix transformation, the Gaussian and other modeling hacks, and others will be developed in class. 

Textbooks
Required:   Angel/Shreiner, Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL (6th Edition), see here.
Optional:
    Shreiner et al., OpenGL Programming Guide (6th edition) - aka the Redbook and available in the advanced lab, see here.

Attendance, Grading, Late Assignments

  1. Attendance is required.
  2. Grading breakdown: Tests and Quizes 45%Projects 3x15%, Attendance and Participation 10%.
  3. There will be two individual projects and one group (of three) project.  Late submissions are not accepted.
Assistance from others, group work, etc.
Computer Science is a difficult subject to learn on your own (like many others).  Talking through problems with mentors and peers can be an exceptional learning tool.  However, this sort of collaboration can also be quite dangerous, as you may be underprepared to be tested on your own.  Thus, here are my guidelines for appropriate collaboration, in order to better help you learn.  Conduct in gross violation of these guidelines will be considered a breach of trust.  In the below, an implementation refers to a detailed explanation (such as code) of the programming structures and object interactions for solving a problem.