To make sure that you are really learning the material, there will be a midterm and a final. To help you prepare for the midterm and final, we will do practice test questions in class.
Here is the formula I propose to use in determining grades:
Pre-Project 0: 2%
Project 1: 10%
Project 2: 15%
Midterm: 15%
Project 3: 15%
Project 4: 18%
Final: 25%
Alternative formulas many be introduced as the quarter progresses to compensate for unforeseen events, for example a project which almost no one manages to finish. In that case, your grade will be determined by whichever formula gives you the better grade.
There are many ways to get an A on a project, and hopefully one of
them will always work for you. You could add technical features to the
program, using a wider range of OpenGL commands or coding up more
advanced algorithms. Or, you could use the core functionality to make
an
interactive program that is fun to use and attractive to look at.
Grading creative projects is a little more like grading an essay in an English class than grading a multiple choice test. Two projects with the same technical content can get different grades, for instance if one runs more smoothly than the other, or if one has a model where everything fits together well and the other has little gaps, or if it looks like one author combed the Web for exactly the right textures and the other looks like the author chose the first ones that she found.
These decisions are judgment calls; they will be up to the professor and the TA. We will work together to make sure that the judgment calls are made as fairly as we can, but we will never overrule a judgment call after grades have been assigned.
When in doubt about how an idea for what to do with your project will be valued, ASK the professor or TA. After you do the work and hand in the project, it is too late to disagree with our judgment.
Since this is a graphics class, projects will be graded on their
graphics components. This includes visual design and the elegance of
your algorithms and programming style, but does NOT include fancy
interfaces; elaborate menus or an interface language with a parser
will not get you extra points.
Your project will be graded on the machines in Kemper 67. If your
program does not compile and run on these machines it will get a zero.
So if you plan to do most of your work elsewhere, be sure to check that
your program compiles on the machines in Kemper 67 as you go along.
Projects up to one week late will lose one letter grade.
Projects more than one week late will not be accepted.
Partial credit on the midterm and final is given entirely at my
discretion. I will consider regrading midterm questions if asked to do so
within one week of when papers are returned, but not afterwards.
You are encouraged to talk to the other students about the projects. You are NOT allowed to copy their code. What constitutes copying? If you are typing while looking at the other student's work, you are copying. Obviously, if you are cutting and pasting from their file, you are copying. The goal of the course is to get knowledge into your head, not onto paper or into a file.
You may copy from the book, or from handouts or your lecture notes.
You may (in fact you may have to) copy some elements of a project from the Web, including 3D models, textures, and maybe code to read or convert them. We will give you a good idea of what these elements are; when in doubt, ASK. Always acknowledge the source of this copying in the documentation for your project, giving the URL. We will give you more credit in your project grades for finding great Web resources if you make them available to the rest of the class through the newsgroup well before the project is due!
There are a lot of code examples on the Web, which can help you learn the OpenGL commands and how to use them. Many features, such as turning on z-buffering, are done using exactly the same commands in every program and you should use those lines too. But it is your job to understand what they mean. Can the order in which the commands are issued be changed? Why or why not? What do all the parameters in the function call mean?
You may not copy code for the core of your project from the Web, even if you acknowledge the source. Again, look all you want, understand, and then go type it in yourself.