- Instructor:
*Dr. David Breen* - E-mail: david_AT_cs.drexel.edu (replace _AT_ with @)
- Office: University Crosings 114
- Office Hours: Wed 4:00-5:30
- Class Hours: Thur 6:00-8:50
- Class Location: Matheson 305
- Phone: (215) 895-1626
- Grader:
*Manolya Eyiyurekli* - E-mail: me52_AT_cs.drexel.edu (replace _AT_ with @)

- Introduction to Computer Graphics, by James D. Foley, Andries van Dam, et al. Addison-Wesley Pub Co, 1994; ISBN: 0201609215

- Curves and Surfaces for CAGD, 5th ed., by Gerald Farin. Published by Morgan-Kaufmann

cs585_AT_lists.cs.drexel.edu (replace _AT_ with @)

To subscribe email address to class email list: send an email message to majordomo@lists.cs.drexel.edu with the words "subscribe cs585" in the body of the email message. To unsubscribe email addresses from the list, use "unsubscribe cs585".

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.

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.

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, Lisp, 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 Solaris OS (queen) or Linux (tux).
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**

*I will use the standard grading scale of 100→ 90 (A), 89→ 80 (B),
79→ 70 (C), 69→ 60 (D), else (F).
Please also note that
incompletes will not be given for this course. *

**Assignments**

**Calendar**

- Assignments (80%)
- Presentation (10%)
- Final exam (10%)

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 the day before the next assignment is due.

The programming assignments must 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.

**Presentation**

**Every student will make a 10 minute presentation based on a
research paper from the
SIGGRAPH Proceedings
or the
Seminal
Graphics Collection**

Students should choose a paper from 1995 or earlier on a subject that will not be covered in class by Professor Breen.
### Presentation Schedule

**Examinations**

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

The programming assignments must be submitted on the class WebCT page before 11:59 PM on the due date.

- Assignment 1 (Draw clipped lines) - Due April 13

- Assignment 2 (Weiler-Atherton polygon clipping) - Due April 27

- Assignment 3 (Draw clipped, filled polygons) - Due May 11

- Assignment 4 (Draw 3D lines) - Due May 25

- Assignment 5 (Z-buffer rendering) - Due June 3

- Extra Credit Assignment (Bezier curve drawing) - Due June 3

Students should choose a paper from 1995 or earlier on a subject that will not be covered in class by Professor Breen.

- April 21 - Chirag Patel
- April 21 - Subhadip Banerjee
- April 28 - Kevin Sullivan
- May 5 - Kim Anh Phan
- May 12 - Delbert Harry
- May 12 - Jay Kothari
- May 19 - Manolya Eyiyurekli
- May 26 - Daniel Stamate
- May 26 - Olga Kapchits
- June 2 - Xiaobing Hou
- June 2 - Bob Cochran

Week 1 (March 28 - April 1)

- Reading Assignment - F et al.: Chapter 1, 3.1, 3.2, 3.9
- March 31 - Lecture :
Introduction 6 per page

- March 31 -
Lecture:
Lines 6 per page

- XPM Manual

- Reading Assignment - F et al.: Chapter 5
- April 7 -
Lecture:
2D-Transformations 6 per page

- April 7 -
Lecture:
3D-Transformations 6 per page

- April 13 - Assignment 1 Due
- Reading Assignment - F et al.: 3.3→3.6, 3.10, 3.11, 9.1
- April 14 - Lecture: Polygons 6 per page
- April 14 - Lecture: Circles 6 per page

- Reading Assignment - F et al.: 9.2→9.2.3
- April 21 - Lectures:
Introduction To Curves 6 per page

- April 21 - Lecture: Bezier 6 per page

- April 27 - Assignment 2 Due
- Reading Assignment - F et al.: 9.2.4→9.2.8
- April 28 - Lecture: Bsplines and NURBS 6 per page
- April 28 - Lecture: Drawing NURBS 6 per page

- Reading Assignment - F et al.: 3.7, 3.14, 6.1→6.4
- May 5 - Lecture: Thick Primitives 6 per page
- May 5 - Lecture: Introduction to 3D Viewing 6 per page

- May 11 - Assignment 3 Due
- Reading Assignment - F et al.: 6.5→6.7, 13→13.4
- May 12 - Lecture: Math of 3D Viewing 6 per page
- May 12 - Lecture: Culling and Z-Buffering 6 per page

- Reading Assignment - F et al.: 9.3, 9.4, Chapter 11
- May 19 - Lecture: Color 6 per page
- May 19 - Lecture: Surfaces 6 per page

- May 25 - Assignment 4 Due
- Reading Assignment - F et al.: Chapter 10
- May 26 - Lecture: Subdivision Surfaces and Solid Modeling
- May 26 - Lecture: Solid Models 6 per page

- Reading Assignment - F et al.: 9.5
- June 2 - Lecture: Fractals 6 per page
- June 2 - Lecture: Level Set Models 6 per page
- June 3 - Assignment 5 Due

File last modified on June 2, 2005.