MCS 585/480: Computer Graphics I

Dr. William C. Regli
Department of Mathematics and Computer Science
Office: Korman 282
Tel: +1 (215) 895.6827
Fax: +1 (215) 895.1582
regli (at)
Office hours: 16:30-17:45 on Tuesday or by appointment only.
Course Assistants: Christopher Cera (cera (at) ) and Ilya Braude (ib29 (at)
Class Meeting Time and Place: Tuesday, 18:00-20:45. Room: CURTIS 340

Required Textbook:

Introduction to Computer Graphics, by James D. Foley, Andries Van Dam, Steven K. Feiner. Addison-Wesley Pub Co; ISBN: 0201609215; 1st edition (August 1993). Note: The original Foley/Van Dam book may be used instead of this one--it covers a superset of this materials.

Suggested Supplemental Textbooks:

Computer Graphics, C Version, Donald Hearn, M. Pauline Baker, 2nd Edition, Prentice Hall, 1997, ISBN: 0135309247. Curves and Surfaces for CAGD, 5th ed., by Gerald Farin. Published by Morgan-Kaufmann.

Other Resources:

Course Homepage:

Lecture Notes:

Homeworks & Handouts:

Old Homeworks & Handouts & Exams:

Other Computer Graphics Courses and Materials:

Course Email List:  
mcs585 (at) Your official Drexel email address has been used to create the course mailing list. 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. To subscribe an alternative email address to class email list: send an email message to majordomo (at) with the words ``subscribe mcs585'' in the body of the email message. To unsubscribe email addresses from the list, use ``unsubscribe mcs585'' or ``unsubscribe <your email address> mcs585''. It is assumed you both know your official Drexel email address and how to use Majordomo--hence you can unsubscribe yourself from the list should you drop the class. I will not respond to list management requests given that the list has been set up to be self-maintaining. I will post (on the email list and on the web site) homework assignments and other announcements, and will keep a running list of the topics we have covered. If I post something to the email list, you are assumed to have read it within 24 hours of posting and understood the message.

Course Objectives.

Computer Graphics represents a vast research area, 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 a introduction to the subject through detailed coverage of the mathematics and implementation of 2D and 3D curves and surfaces. The course culminates with implementation of basic solid modeling techniques, ray tracing and hidden line removal algorithms.


Students are required to have taken MCS260 (Introductory Data Structures and Algorithms) and Math 201 (Linear Algebra). You will find this coures extremely difficult if you do not have strong (B or better) linear algebra skills! No review of linear algebra will be given in this class. Students are assumed to excellent knowledge of programming. Students can use what ever 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 executable file for testing and evaluation. Code must run, without dynamic linking, as a single command-line process on Windows 2000, Linux or Solaris OS. 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 mathematical calculations as a regular part of your assignments.


This list is tentative and will be modified at the instructor's discretion. We will cover most of the text, and augment its contents with lecture notes, web references and posted articles:
Week 1: Overview, mathematical preliminaries, raster graphics, transformations: Ch 1, 5
Week 2: Representation of 2D lines and curves; implementation issues: Ch 3, 6
Week 3: 2D drawing, image processing, viewing, clipping: Ch 3, 6
Week 4: Scan conversion, anti-aliasing: Ch 3, 6
Week 5: Hardware and the Graphics Pipeline; MIDTERM exam
Week 6: 3D lines, NURBS curves and surfaces, drawing and modeling, 3D projections: Ch 9
Week 7: 3D Modeling and Solid Modeling: Ch 10
Week 8: Visible surface determination, Z-buffering, Hidden Line removal: Ch 13
Week 9: Polygon soups and ray tracing: Ch 15, 16
Week 10: Advanced topics, rendering, lighting, texture mapping, meshes, shape matching: Ch 16.


Midterm Exam
Homework and Programming Assignments (8)
Final Project (due finals week, no final exam)
Class participation is important and will be considered in borderline cases. There will be no final exam--there will be a final programming project. Course grades will be computed on the following scale:
A, 100%-90%; B, 89%-80%; C, 79%-70%; D, 69%-60%; F, below 60%.
There will not be a curve. An ``A'' grade requires excellence in all of the grading categories, with all homeworks completed in their entirety and handed in on the due date in class.

Workload and Assignments.

There will be weekly homework and/or programming assignments, requiring about 10 hours of effort (outside of class) per week for the typical student to obtain an average grade (B or C). Students not prepared to invest this amount of time to master the materials and perform assignments should not take this class. Details on how programming assignments are to be submitted will be provided. Homeworks and programming assignments should always be submitted electronically. Homeworks and programming assignments will not be accepted after 6:00PM on the date they are due. It is also assumed that students read the textbooks, documentation and web pointers provided over the course of the class.

Makeup Exams.

There will be no makeup exams. To get credit for a missed exam, you will need a valid medical excuse. This means an official letter (including the dates of incapacitation for your illness), either from your private physician or from the University's Health Center. If you have a valid medical excuse, I'll give you credit for the missed exam based on your performance on the other assignments and exams.

Ways to Fail this Class:

To assist students interested in spending the term working toward earning an ``F'' in this class, here are some ways to earn your ``F'' more quickly: (1) ignore all of the programming assignments by not handing them in or by handing in projects that do not run, in an effort to get partial credit; (2) fail to hand in more than 50% of the homeworks; (3) miss any one exam or obtain less than 25% on all of the exams; (4) falsify any results; (5) mis-represent another's work as your own (i.e., plagiarism) or violate the course ``Discussion and Collaboration Policy.'' There will be no warnings.

Discussion and Collaboration Policies.

All students should be familiar with the University's policies on academic dishonesty. Any incidents of academic dishonesty will be dealt with harshly, resulting in review by the University Honor Board with the student subject to possible academic suspension or expulsion. While I encourage students to collaborate, all homework, proofs, and code submitted as part of assignments must be the student's own.
William Regli