CS148: An Introduction
This course is an introduction to 2-dimensional and 3-dimensional computer graphics. Topics covered include output primitives, 2-dimensional transformations and clipping, 3-dimensional display techniques, representations and transformations, projection algorithms, illumination and color models, hidden-surface elimination, Bézier and B-Spline curves, animation, and rendering. There will be a strong emphasis on the mathematical and geometric aspects of graphics.
Pre-requisites for the course: CS107, Math 103.
Note: This is an undergraduate terminal course. Masters students or students with a strong interest in continuing in graphics should take CS248.
Lectures and Staff
|
|
|
|||
|
|
|
|||
|
Lectures: |
Gates B03 (map) |
T/TH |
4:00-5:50pm |
|
|
Instructor: |
Anat Caspi |
Gates 108 |
723-2437 |
|
|
Teaching Assistant: |
Eugene Davydov |
|||
|
Course Assistance: |
Nikkie Solgado |
Gates 187 |
723-0909 |
|
Contacting us
The best way to reach us is to send mail to cs148-help@cs.stanford.edu. This mail goes to both of us. It is best used for questions (administrative or otherwise) as well as anything that requires our attention. This help-line will be answered promptly between 10am and midnight. In the early am’s, we’ll our best to answer in a timely fashion. There is also a newsgroup, su.class.cs148, which we will monitor occasionally, but is really for your own personal use. Anything urgent should not be sent to the newsgroup.
Assignments and Exams
There will be an in-class midterm, a final project and several programming projects. All assignments are due by 5:00 p.m. on the dates specified below. All assignments should be completed individually. There will not be group assignments in this course. That is not to say that we discourage discussion about assignments among people. Please cite all help and discussion in your README (for programming assignments). Each assignment is to be completed individually and any suspicious overlaps will be questioned.
Late Policy
At the beginning of the quarter, each student has 3 late days that can be used as extension days for any assignment. An extension day is a period of 24 hours and any fraction thereof. You can use all three days on one assignment (you can hand it in three days late) or split them up across assignments (you can hand one assignment in one day late and the other two days late, etc.). While it's a good idea to save your late days for emergencies, note that NO LATE FINAL PROJECTS WILL BE ACCEPTED. After you use up your three free days, each additional late day will reduce 20% of your grade. Note that weekend/holidays count as late days, so if an assignment is due on Thursday, you can turn it in on Sunday, using all three of your late days at once.
For example:
An assignment is due on Tuesday. However, due to sniffing one too many whiteboard markers, you are only able to get it in on Thursday. That's two late days.
An assignment is due on Thursday. Because you spent the week playing bridge at the Elk's club instead of doing your work, you can't turn it in until Saturday. Friday + Saturday = 2 late days.
Grading
Your final grades will be computed according to the following percentages:
|
60% |
Programming Assignments |
|
10% |
Midterm |
|
30% |
Final Project |
This does not mean, however, that if you have aced everything all quarter, and you're happy with a 70% in the course, you can skip the final exam. To pass the course, you must receive passing grades on all three areas.
Books
There are two books for this course. Please see the books page.
Programming
There will be several programming assignments in the course. For the first assignments, we will provide a skeleton of code to get you started. For the later ones, you will be writing your assignments completely from scratch. All the assignments are based on OpenGL, a portable graphics library. Since everything about these assignments is portable, you can do them on any computer you want. However, we will be grading your assignments on the Sparc machines in Sweet Hall. That will also be the platform that we will most readily support on the question queue and at office hours. We would certainly try to help with other platforms, but we expect your code to work on the Sparc machines. This means that you will be somewhat tied to using C, C++ or Java.
Beware of a few things:
Example of good directions:
"Log in to the elaine machines. Add /u/foo/bar/baz to your LD_LIBRARY_PATH. Add /u/foo/bar/scum to your PATH. Execute the command: froboz assignment2.fb. You will need to be sitting at a machine that supports GLX. My program trips a bug in Exceed 3D, so I recommend using an SGI or SUN, or Linux with the Mesa GLX extensions."
Example of bad directions:
"Run the program through the scheme interpreter"
So, you can program however you feel comfortable, but make this easy for us.
If you do not already have an account on a computer from which you can send email, you will need to open an account on Leland. Handouts available at Sweet Hall and Tresidder computer clusters explain the procedure for opening an email account and sending mail. SITN students (other than auditors) may use a Stanford email account or any email account provided by your company. Email provides you with an excellent mechanism for reaching your instructor or TA should you have questions (specifically, the address is cs148-help@cs.stanford.edu. There is also a newsgroup: su.class.cs148 for discussion about the course. Read this frequently to avoid missing announcements, hints, answers to questions from other students, etc. Do not post questions that contain any solutions, as that might constitute a violation of the Honor Code.
Honor Code
Programming projects are to be implemented by yourself and from scratch, i.e., it is a violation of the honor code to derive solutions from existing sources or previous instances of this course. Discussion of programming projects is allowed. Copying solutions from other students, or from students who previously took this course is not allowed. If you do obtain help from a TA or another student, you must document this in your program. Finally, a good guideline is you must be able to explain and/or duplicate anything that you submit.
Lecture schedule and assignment due dates
Please check with the schedule page.

Aid for this page received from Greg Humphreys.
This page is maintained by Eugene Davydov.
Last modified by Anat: Sat June 17 9:15:44 PST 2000