WLU LogoCSCI 340 (W '11), Interactive Computer Graphics

Winter 2011

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/CS341W11/CS340W11.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 (as in the images above), an offline (more computationally expensive) process that allows 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 course requires CSCI 209.  We will have a couple of workshop sessions to pick up the C/C++ syntax.   
  2. As an upper level CS elective, 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). 
  3. Mathematical and statistical entities like matrix transformation, the Gaussian and other modeling hacks, and others will be developed in class. 

Time Commitment
During the course of CSCI 340, you will work on several thought-intensive projects. This can be a time-consuming process. Expect to spend 10-12 hours on each programming assignment (depending on the specific assignment). 

Textbooks
Required:   Edward Angel, Interactive Computer Graphics: A Top-Down Approach Using OpenGL (5th Edition), see here.
Optional:
    Shreiner et al., OpenGL Programming Guide (6th edition) - aka the Redbook, see here.
    Foley et al., Computer Graphics: Principles and Practice in C (2nd Edition), see here.             

Attendance, Grading, Late Assignments

  1. Attendance is required.
  2. Grading breakdown: Tests and Quizes 45%,  Projects 3x15%, Attendance and Participation 10%.
  3. Late Assignments lose 10, 15, 25, 25, 25% for each additional day late (no credit on the fifth day).  This scale may be delayed given the severity of your circumstances and my being informed of them in a timely manner.
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.