Introduction
to Computer
Graphics

Fall 2000

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.

    This is a lot of stuff to cover in 24 class meetings, and you can expect the pace to be frantic at times. But, I hope that you will find, as I have, that this stuff, computer graphics, is a blast.

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

    Everyone taking 6.837 is expected to have taken courses in both calculus and linear algebra. I 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 Exerecises............................................... 60%
    Mid-term Quiz................................................................ 20%
    Final Examination............................................................ 20%

6.838 GRADING -

    Project Proposal ............................................................ 10%
    Final Project .................................................................. 50%
    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 still need additional background, beyond what is discussed in class you might consider purchasing one of the following books.

    Graphics Books:

    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 Books:

    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.