Course Information

News

Course Information

Calendar

Staff

Lecture Notes

Projects

Students

FAQ

WHAT IS THIS COURSE ABOUT?

The primary goal of 6.837 is to introduce many important data structures and algorithms that are useful for presenting data visually on a computer. 6.837 does not cover the use of graphics design applications such as Photoshop and AutoCAD. Nor, does it focus on the various graphics programming interfaces or graphics languages such as OpenGL or Renderman. In short, 6.837 is a programming class. The goal of this class is to provide you with sufficient background to write computer graphics applications.

Roughly speaking, the first third of this course will address a broad range of topics that that we refer to as Raster Methods. These include two dimensional computer graphics, raster operations, imaging methods, and user interface design and construction. The second half of the course will cover topics related to three-dimensional computer graphics, including representation, illumination, shading, visibility determination, rendering, and animation.

WHAT DO YOU NEED TO KNOW BEFORE YOU TAKE THIS COURSE?

Everyone taking 6.837 is expected to have taken courses in both calculus and linear algebra. We warn you now because some of these topics will not come up to a significant extent until later in the course (after the drop date).

All projects in 6.837 will all be written in the Java programming language. If you do not already know Java, then you are expected to be familiar with at least one of the following programming languages: Scheme, C, C++, or Pascal. If you have not seen Java before then you might want to consider buying one of the many primers available on the subject.

6.837 GRADING

5 Programming Exercises 60%
Mid-term Quiz 20%
Final Examination 20%

TEXTBOOK

There will be no required textbook this semester. You will be given copies of the lecture notes and handouts with supporting materials. If you find that you need additional background, we will also assign readings from the following recommended books.

Graphics Book:
Hearn, Donald and M. Pauline Baker, Computer Graphics, C version, 2nd Edition, Prentice Hall, Inc. Upper Saddle River, New Jersey, 1997, 652 pages, ISBN 0-13-530924-7.

This book is well organized and provides a fair introduction to most of the topics that we will cover this term. You will find that the illustrations and code fragments are a reasonable supplement to the materials covered in the lectures.

Java Book:
Flanagan, David, Java in a Nutshell, 2nd Edition, O'Reilly and Associates, Inc., Sebastopol, California, 1997, 628 pages, ISBN 1-56592-262-X.

A quick introduction to the Java language for anyone with previous C or C++ experience. This book contains very little hype that is typical of most Java books. It presents an introduction to Java's object-oriented approach. The second part of the book is largely a reference manual of the Java language and its associated APIs.

Java Documentation and Tutorials:
http://web.mit.edu/java/www

Description of Java setup on Athena with links to the best reference for Java classes. Includes Sun's tutorials for writing Java applets.