Syllabus Collection >
Please use this identifier to cite or link to this item:
|Title: ||Computer Graphics I|
|Issue Date: |
CSci 5107: Computer Graphics I
Meeting time and place: Tues/Thurs 11:15-12:30pm, EE/CS 3-125.
Dr. Victoria Interrante
office hours: Tues/Thurs 12:30-1:15pm, and by appointment, EE/CS 6-185
office hours: Mon 2:20-3:20pm, Weds 10:45-11:45am, and by appointment, EE/CS 2-209
Shirley (2002). Computer Graphics, A. K. Peters, draft copy provided.
Course web page:
This course intends to provide an solid introduction to the fundamental theory and practice of computer graphics. Topics covered will include: raster algorithms; 2D and 3D transformations; viewing; hidden surface elimination; surface shading; texture mapping; antialiasing; curves and surfaces; and ray tracing.
CSci 2031 and CSci 4041, or equivalent, or consent of the instructor.
We may be making some minimal use of the OpenGL application programming interface, which provides device-independent support for basic graphics routines. However, the primary focus of this course will be on the low-level details of the algorithms behind this and other graphics APIs, as opposed to on teaching how to use APIs in sophisticated applications. Prior experience with OpenGL is neither required nor expected; it will be used only as a tool and will not be covered as a topic in its own right. OpenGL is fully described in online books available via the 'help' menu on the SGI workstations in the IT Labs.
The course will be taught in C, and programming assignments are expected to be written in C or C++.
You may work on any platform that you find convenient, however to facilitate the grading process you must hand in source code that can be easily recompiled by the TAs on one of the machines (Suns, SGIs or PCs) in the IT Labs.
Homework assignments.................................. 60%
Final exam (open book)....................................... 25%
Midterm (open book).......................................... 15%
There will be 4-5 substantial programming projects assigned at evenly spaced intervals throughout this course, several of which may be further divided into subparts with staggered due dates to encourage an even distribution of workload from week to week and to help avert difficulties with students falling behind. Each of the programming assignments is extremely important, as the assignments will build upon each other. I expect every student to complete each assignment to the best of his or her ability. The highest possible final grade that I will give to any student who receives a grade of zero on one of these programming assignments, regardless of performance in other aspects of this course, is a 'B-'. The highest possible final grade that I will give to any student who receives a grade of zero on two of these programming assignments, regardless of performance in other aspects of this course, is a 'C-'. The midterm and final examinations are mandatory for all students; I will not assign a passing grade to any student who does not attempt each of these exams, nor will I give a passing grade to any student who receives a zero on three or more of the programming assignments.
This course will follow the University's Uniform Grading and Transcription Policies, which are described on the web at http://www1.umn.edu/usenate/policies/gradingpolicy.html. A grade of 'I' will be assigned only under extraordinary circumstances: to be elegible, a student must have kept up with all of the required coursework to date and must have been prevented by an unforseeable emergency from completing the remainder of the coursework on time. The amount and quality of work required for a grade of 'S' will not be less than the amount and quality of work required for a 'C-'. You are urged to check your registration for accuracy of course and section numbers and grading options.
- Class attendance is not mandatory, but is highly recommended. I may occasionally cover material not included in the text, and anything I cover in class could appear on an exam.
- Because I understand that on rare occasions, extenuating circumstances may arise that make it difficult for an assigment to be submitted on time, each student will have five "days of grace" that may be used, without any excuse, at any time during the semester. But be careful how you spend them! When these days have been used up, assignments turned in after the due date will be penalized 10% for each day late, and I will be very reluctant to consider any exceptions.
- The programming assignments that are designated as individual assignments must be completed individually. For these assigments, you may discuss basic strategies and possible general approaches with others in the class, but all of the code that you turn in must be your own. Copying code from others, either from fellow students or off the internet, or from any other source, except as expressly indicated by me in writing and fully documented with prominent comments giving explicit credit to the original source, is strictly forbidden and may constitute grounds for failure. Please do not underestimate the collective memories of the instructor and TAs; and please be aware that we maintain an archive of all previously submitted student work dating back to 1998. Per CS departmental policy, any form of academic dishonesty by graduate students is grounds for permanent termination of all forms of financial support, including teaching and research assistantships, upon the first offense.
- All exams will be open book/open notes.
- Because of the heavy emphasis on programming projects, students have historically found this class to be very time consuming. In order to be successful, you will need to use your time wisely, keep up with the reading, and begin working on each programming project as soon as it is given out. In accordance with University guidelines, an average student should anticipate having to expend approximately 9 hours/week of productive "learning effort" (which includes attending lectures, reading texts and manuals, conceptualizing, programming and -to a much lesser extent- debugging) to receive an average grade ('C') in this class; slightly more hours of effort may be required to achieve an 'A' or 'B'. Students who are not fully proficient at programming in C or C++ or who lack good software engineering or debugging skills may find that the assignments take them considerably longer to fully complete. However, all assignments will be explicitly broken down into subsections and partial credit can be earned for each subsection that is successfully completed.|
|Appears in Collections:||Syllabus|
Files in This Item:
All items in DSpace are protected by copyright, with all rights reserved.