CS 430/536 Computer Graphics I
Course Page : http://www.cs.drexel.edu/~david/Classes/CS536

Recommended Textbooks:
  1. Introduction to Computer Graphics, by James D. Foley, Andries van Dam, et al. Addison-Wesley Pub Co, 1994; ISBN: 0201609215
Suggested Supplemental Texts:
  1. Fundamentals of Computer Graphics, 3rd ed., by Peter Shirley et al., AK Peters, 2009, ISBN: 978-1-56881-469-8
  2. The Essentials of CAGD, by Gerald Farin and Dianne Hansford. AK Peters, 2000; ISBN: 978-1568811239
E-mail:
It is University policy that you read your official Drexel email; it is the course policy that you read it at least once per day.


Course Objective

Computer Graphics represents a vast technical field, ranging from mathematics and geometry topics to computer hardware and software engineering topics to rendering, animation and virtual reality, far more than can be comprehensively covered in a 10 week term. Computer Graphics I is designed to provide students with an introduction to the fundamental algorithms of computer graphics through detailed coverage of the mathematics and implementation of 2D and 3D line, curve and surface drawing. The course culminates with a focus on 3D viewing and visible surface algorithms.


Pre-Requisites

Students are required to have taken CS260 (Data Structures), CS 350 (Software Design) and Math 201 (Linear Algebra), or equivalent classes. You will find this course extremely difficult if you do not have strong (B or better) linear algebra skills. Minimal review of linear algebra will be given in this class. Students are assumed to have excellent knowledge of programming. Students can use whatever programming language they wish (C, C++, Java, etc.) for the assignments in this class with the following caveat: you will need to turn in both source code and a makefile for testing and evaluation. Code must run as a single command-line process on the CS Department's Linux (tux) computers, without needing special libraries. Arguments passed to the command-line will parameterize assignments; hence you'll need to read command-line arguments (argc, argv) in arbitary order and parse input files. This course is mathematically intense and implementationally challenging. You will be required to implement complex data structures and mathematical calculations as a regular part of your assignments.


Course Grading Scheme

Graduate Students

  • Assignments (75%)
  • Presentation (10%)
  • Final exam (15%)

Undergraduate Students

  • Assignments (85%)
  • Final exam (15%)
I intend to use the standard grading scale of 100→ 90 (A), 89→ 80 (B), 79→ 70 (C), 69→ 60 (D), else (F).
Also note that incompletes will not be given for this course.



Assignments

Students must work on the assignments individually. No geometry or graphics libraries may be used in the homework assignments.

1 point per day (max of 5 points, out of 10) will be deducted from late assignments.
You will be given a grade of 0 if an assignment is not turned in by the last day of classes.

The programming assignments should be submitted on the class Bb Learn page before 11:59 PM on the due date.



Academic Honesty

You must be the sole original author of all assignments and examination solutions in their entirety, unless the instructor explicitly instructs you otherwise in written directions on an assignment or exam. Collaborative work is a violation of academic honesty in this course. You are not to examine or use code belonging to someone else, nor may you let anyone else examine or copy your code.

Students found in violation of the Academic Honesty policy will receive an 'F' in the class. In the case of plagiarism, all parties involved will be equally penalized.

The description of the department's Academic Integrity Policy can be found here. If a student violates this policy, an Alleged Academic Misconduct Report will be filed with the college.

It is your responsibility to avoid violating the university's policy. If you are unclear as to what the policy means in a particular situation, ask the instructor for clarification before you hand anything in.

See the examples below for clarification of this policy.

Examples

The following are acceptable:
  • Using code provided in lecture: include comments that cite the source.
  • Using code provided in the class textbook: include comments that cite the source.
  • Code developed jointly with instructor or teaching assistants assigned to this course.
  • Discussing algorithms or possible approaches to writing your program, WITHOUT discussing particulars of the code.
  • Discussing how to resolve errors, WITHOUT discussing particulars of the code.
These are NOT acceptable:
  • You borrow a printed or electronic copy of a friend's assignment, and use it for "inspiration".
  • You give a printed or electronic copy of your assignment to somebody else.
  • You "find" a copy of somebody's program in the trash, on a lab machine, on their hard drive, etc., and use it for "inspiration".
  • You pay a "tutor" who writes the assignment for you.
  • You download code from the Web, and turn in some or all of it as your own assignment.
  • You and a friend together write one assignment, then create separate modifications to be handed in.
  • You and a friend write certain portions of the assignment individually, but collaborate on other portions of the assignment.
The College of Computing and Informatics has a "2 Strikes You're Out" policy.
If you have two cheating infractions, you will be expelled from your CCI major.

Your source code for all programming assignments will be run through a plagiarism detection system. This program uses compiler techniques, which are invariant of syntax and style. If you are sharing/borrowing code with other classmates (from this or previous years), you will get caught.



Presentations

Each graduate student will read two technical papers selected from the SIGGRAPH Conference Proceedings and submit two Powerpoint presentations that describe/summarize the papers.
There should be at least 10 slides in each presentation.

If you are not on a drexel.edu computer you will have to access the papers through the Drexel Library by clicking on "ACM Digital Library" -> "Proceedings" -> "Computer Graphics and Interactive Techniques Conference" -> "SIGGRAPH * `year' [Pp]apers".
This will get you to the SIGGRAPH papers from 2003 to 2011. For papers before 2003 your last click needs to be on "Proceedings of the ...".
For more recent papers go here and look under "SIGGRAPH".
Please no "Game Papers".

The deadlines for submitting the Powerpoint presentations are May 9 and June 2. The same policy as programming assignments applies for late presentations.



Examinations

There will be a final exam on the material from class that is NOT covered by the regular assignments.

Final Exam Topics




Link to Recorded Lectures

 


Calendar
Week 1 (March 31 - April 4)
Week 2 (April 7 - 11)
  • Reading Assignment
    • Foley et al.: Chapter 5
    • Shirley et al.: Chapter 6
  • April 9 - Lecture: Line Clipping and 2D-Transformations 6 per page
  • April 9 - Lecture: 3D-Transformations 6 per page
Week 3 (April 14 - 18)
Week 4 (April 21 - April 25)
Week 5 (April 28 - May 2)
Week 6 (May 5 - 9)
  • Reading Assignment
    • Foley et al.: 3.7, 3.14, 6.1→6.4
    • Shirley et al.: 8.3, Chapters 7 and 9
  • May 7 - Lecture: Thick Primitives 6 per page
  • May 7 - Lecture: Introduction to 3D Viewing 6 per page
  • May 9 - First Research Paper Presentation Due (grad students only)
Week 7 (May 12 - 16)
Week 8 (May 19 - 23)
  • Reading Assignment
    • Foley et al.: 13→13.4, 9.3, 9.4
    • Farin and Hansford: Chapters 6, 7 & 12; 13.7→13.8
  • May 21 - Lecture: Surfaces 6 per page
  • May 21 - Lecture: Subdivision Surfaces and Solid Modeling
Week 9 (May 26 - 30)
  • Reading Assignment
    • Foley et al.: Chapter 10
    • Shirley et al.: Chapters 4, 10, 13, 16, 24 & 25; 8.2, 8.4
  • May 28 - Lecture: Solid Models 6 per page
  • May 28 - Lecture: Culling, Z-Buffering and Ray Tracing 6 per page
  • May 29 - Assignment 4 Due
Week 10 (June 2 - 6)


File last modified on June 5, 2014.