CS 430 Computer Graphics I

If you send questions via e-mail, you should e-mail them to the TA and Professor Breen.

Course Page : http://www.cs.drexel.edu/~david/Classes/CS430

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). 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 an executable file for testing and evaluation. Code must run, without dynamic linking, as a single command-line process on the CS Department's Linux (tux) computers, or possibly on a MacOS X computer. Arguments passed to the command-line will parameterize assignments; hence you'll need to read command-line arguments (argc, argv) 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
  • Assignments (80%)
  • Quizzes (10%)
  • Final exam (10%)
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) 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 WebCT page before 11:59 PM on the due date.

Note: If the TA or instructor finds strong evidence of cheating on assignments and/or the final examination, the student(s) involved will receive an "F" in the course, and a memo describing the cheating will be added to their student record. Be very careful, it is not worth the risk.
Note: 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.



Quizzes

Starting from Week 2 each Tuesday class will start with a short quiz on material presented the previous week.

The lowest quiz grade will be dropped.


Examinations

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

Final Exam Topics




Calendar

Week 1 (September 19 - 23)
  • Reading Assignment
    • Foley et al.: Chapter 1, 3.1, 3.2, 3.9
    • Shirley et al.: Chapter 1, 2.1→2.4, 2.6, 5.1→5.3, 8.1.1
    • Farin and Hansford: Chapter 1
  • September 20 - Lecture : Introduction 6 per page
  • September 22 - Lecture: Lines 6 per page
  • XPM Manual

Week 2 (September 26 - September 30)

  • Reading Assignment
    • Foley et al.: Chapter 5
    • Shirley et al.: Chapter 6
  • September 27 - Lecture: Line Clipping / 2D-Transformations 6 per page
  • September 29 - Lecture: 3D-Transformations 6 per page

Week 3 (October 3 - 7)

Week 4 (October 10 - 14)

  • Reading Assignment
    • Foley et al.: 9.2→9.2.3
    • Shirley et al.: 2.5, Chapter 15
    • Farin and Hansford: Chapters 3, 4, 5 & 9
  • October 11 - Lectures: Introduction To Curves 6 per page
  • October 13 - Lecture: Bezier 6 per page

Week 5 (October 17 - 21)

Week 6 (October 24 - 28)

  • Reading Assignment
    • Foley et al.: 3.7, 3.14, 6.1→6.4
    • Shirley et al.: 8.3, Chapters 7 and 9
  • October 25 - Lecture: Thick Primitives 6 per page
  • October 27 - Lecture: Introduction to 3D Viewing 6 per page

Week 7 (October 31 - November 4)

Week 8 (November 7 - 11)

  • Reading Assignment
    • Foley et al.: 13→13.4, 9.3, 9.4
    • Farin and Hansford: Chapters 6, 7 & 12; 13.7→13.8
  • November 8 - Lecture: Surfaces 6 per page
  • November 10 - Lecture: Subdivision Surfaces and Solid Modeling

Week 9 (November 14 - 18)

  • Reading Assignment
    • Foley et al.: Chapter 10
    • Shirley et al.: Chapters 4, 10, 13, 16, 24 & 25; 8.2, 8.4
  • November 15 - Lecture: Solid Models 6 per page
  • November 16 - Assignment 4 Due
  • November 17 - Lecture: Culling, Z-Buffering and Ray Tracing 6 per page

Week 10 (November 21 - 25)

  • November 22 - TBA
  • November 24 - Thanksgiving

    Week 11 (November 28 - December 2)



  • File last modified on September 23, 2011.