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) drexel.edu
Office hours: 16:30-17:45 on Tuesday or by appointment only.
Course Assistants: Christopher Cera (cera (at) drexel.edu
) and Ilya Braude (ib29 (at) drexel.edu)
Class Meeting Time and Place: Tuesday, 18:00-20:45. Room: CURTIS
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.
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.
Homeworks & Handouts:
Old Homeworks & Handouts & Exams:
Other Computer Graphics Courses and Materials:
Course Email List: mcs585 (at) lists.mcs.drexel.edu.
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) lists.mcs.drexel.edu 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.
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:
||Overview, mathematical preliminaries, raster graphics,
transformations: Ch 1, 5
||Representation of 2D lines and curves; implementation
issues: Ch 3, 6
||2D drawing, image processing, viewing, clipping:
Ch 3, 6
||Scan conversion, anti-aliasing: Ch 3, 6
||Hardware and the Graphics Pipeline; MIDTERM exam
||3D lines, NURBS curves and surfaces, drawing and
modeling, 3D projections: Ch 9
||3D Modeling and Solid Modeling: Ch 10
||Visible surface determination, Z-buffering, Hidden
Line removal: Ch 13
||Polygon soups and ray tracing: Ch 15, 16
||Advanced topics, rendering, lighting, texture mapping,
meshes, shape matching: Ch 16.
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:
- Midterm Exam
- Homework and Programming Assignments (8)
- Final Project (due finals week, no final exam)
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.
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.
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.
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.
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.