April 26: WebCT now includes your semester grade so far. This includes everything except the final project, which is 25% of your grade.
April 18: rotatebox.c now includes comments at the top showing how to compile this on one of our Suns or Linux boxes.
|Jan 18, Jan 20||Graphics Applications, Hardware||Chap. 1-2|
|Jan 25, Jan 27||Lines, circles, polygon-fill||Chap. 3||Hw 1, Due Jan 25|
|Feb 1, Feb 3||polygon filling||Lab 1, Due Feb 3|
|Feb 8, Feb 10||2-D transforms||Chap. 5||Hw 1 Redo, Due Feb 10|
|Feb 15, Feb 17||3-D transforms||Chap. 11||Lab2, Due Feb 15th|
|Feb 22, Feb 24||3-D concepts and viewing||Chap. 9, 12||Hw 2, Due Feb 22|
|Feb 29, Mar 2||Normal to a polygon; Basic lighting||Chap. 10.1, 14.1||Hw 2 Redo, Due March 3, 5:00PM, under my office door|
|Mar 6 - Mar 10||Spring Break|
|Mar 14, Mar 16||visible surfaces||Chap. 13||Lab 3, Due March 17th|
|Mar 20||"W" drop ends|
|Mar 21, Mar 23||Gouraud and Phong Shading||Project Proposal Due March 23rd|
|Mar 28, Mar 30||Gouraud and Phong Shading|
|Apr 4, Apr 6||Depth Buffer, OpenGL|
|Apr 11, Apr 13||OpenGL||Lab 4, Due April 11th, midnight|
|Apr 18, Apr 20||Quadrics and Superquadrics||Chap. 10.3-10.4|
|Apr 25, Apr 27||OpenGL Textures, Smooth Curves||Chap. 10.6-10.8||Apr 27, Present Project Progress Report|
|May 2, May 4|
|May 11||Project Presentations, 3:40-7:00PM, HP Classroom||Project Written Reports due 3:40PM May 11th|
You will be required to design and complete a project. Projects may consist of just library work researching a graphics technique, the implementation and use of a graphics algorithm not covered in our assignments, or some combination of library and computer work. The purpose of the project is to give you a chance to learn more about an aspect of computer graphics that you are very curious about.
You must discuss what you plan to do with the instructor. Mid-semester you will be required to submit a short, three to four page written proposal of what you plan to do. You may be asked to modify the plan by the instructor. You plan must include a tentative timeline of at least five milestones.
This is a great chance to learn how to use LaTeX, a high-quality text formatting tool. As an example, here is a LaTeX file that produces this postscript file, from which you can produce this Adobe Acrobat PDF file. You may use this file as a start for your proposal.
At the end of the semester, you must submit a written report of at least ten pages, covering what your objective was, why it interested you, how you accomplished your objective, what you learned as a result, and the list of references and resources that you used. You will also present your project orally to the class with the aid of overhead transparencies or with a laptop and data projector.
Here is a list of project proposal titles for this semester. If you see someone else's project that sounds very similar to yours, you may discuss a team project with them and with the instructor. If you decide to work together, you must submit a new, joint proposal clearly stating what the responsibilities will be of each team member. Your team will be expected to produce much more than an individual project. Do not feel obligated to work with someone if they ask you to be on a team. The decision is yours.
Course work will involve reading the assigned textbook chapters, participating in discussions of the material in class, completing homework exercises, four to six programming assignments, and a semester project. Students will be required to write fairly complex C, C++, or Java programs involving matrix calculations and linked lists. The project will be of each student's own design, approved by the instructor. At the end of the semester, a written report must be turned in describe the methods followed and the results, and each student will present their project orally to the class. Projects may be based on library and web research with no programming effort, or they may be primarily a programming effort, perhaps implementing an algorithm not assigned in class, or they may be a combination of library research and implementation.
Prerequisites for this course are a good working knowledge of data structures such as linked lists, trees, symbol tables, and dynamically allocated structures. You will need to know how to implement these data structures in C, C++, or Java. Experience with debugging tools, such as gdb and ddd will be very helpful. This course will also draw on knowledge of 2D and 3D geometry of vectors and coordinate systems, and on the use of matrix algebra for coordinate transformations. To successfully complete this course, you should be familiar with material related to the above topics covered in M229 (Matrices and Linear Equations), CS200 (Algorithms and Data Structures), and CS314 (Software Development Methods).
Students are responsible for doing the assigned reading prior to the lecture for which the reading assignment is indicated in the course schedule.
|Homework Exercises||20 %|
|Programming Assignments||50 %|
|Semester Project||30 %|
For homework and programming assignments, the due date will be noted on the assignment sheet; assignments are due at the start of the class period on the due date. Assignments turned in after the start of the class in which they are due will be considered late. Assignments which are one class period late will be penalized by 10%. Assignments which are two class periods late will be penalized by 30%. After two class periods, late assignments will not be accepted.
Students are encouraged to talk with each other in general terms about what you are learning in this course. However, the work you turn in must be your own. Make sure that you write your own programs and assignments unless you are working as part of a team approved by the instructor. Do not copy another student's program (neither with nor without their knowledge) or write code for another student. When two programs are found to be substantially the same, cheating will be suspected and the parties involved will be asked to explain. The result could be zero credit for all parties. Additional guidelines related to academic integrity (cheating), incompletes and class attendance can be found in the department policy statement. The guidelines outlined in these documents will be followed in this course.
<your last name>_<SSN>_Lab#. For example
mkdir Robert_123456789_Lab1 or mkdir Tom_987766666_Lab4
cp Makefile Robert_123456789_Lab1 cp lab1.c Robert_123456789_Lab1 cd Robert_123456789_Lab1 make lab1 (checking to see if it compiles) lab1 (checking to see if it runs) rm *.o rm lab1 (delete the executable and obj files)
lab#.tar, where # is the lab number:
tar cvf lab1.tar Robert_123456789_Lab1
~cs410/bin/checkin410 lab1.tar (if running on a Sun) ~cs410/bin/checkin410hp lab1.tar (if running on an HP)
If your submission succeeds, you will find a file
account name>-lab#.tar in directory
ls ~cs410/Checkin robert_lab1.tar