Computer Science 354
Prereqs: The following courses with a grade of at least C-: Computer Science 429 or 429H; Computer Science 105 (Topic: Computer Programming: C++), 371P, 373, or 378 (Topic: Generic Programming in the STL); Mathematics 408D, 408M, or 427L; and Mathematics 340L, 341, or Statistics and Data Sciences 329C (or Statistics and Scientific Computation 329C).
Recommended Textbook: Interactive Computer Graphics: A Top-Down Approach with WebGL. , by Edward Angel and Dave Shreiner, ISBN-10: 0133574849 ISBN-13: 9780133574845.
Course Objectives This is an introductory course on the major topics in the areas of image synthesis, interactive techniques, geometric modeling, and computer-based animation. The material covered includes
|Wednesday January 17th||Introduction|
|Monday January 22th||Vector and Affine Math|
|Wednesday January 24th||Ray Tracing||Ray Tracing Global Illumination|
|Monday January 29th||Ray Tracing II||Project 1 Assigned Due Feburary 19th||Tuner Whitted|
|Wednesday January 31th||Shading||Phone Shading BRDF|
|Monday Feburary 5th||Texture Mapping||Texture Mapping Bump Mapping Displacement Mapping|
|Wednesday Feburary 7th||Spatial Acceleration Structures||Octree Kdtree Hanan Samet's SIG13 Tutorial|
|Monday Feburary 12th||Sampling and Antialiasing||Aliasing Problems and Anti-Aliasing Techniques|
|Wednesday Feburary 14th||Intro to OpenGL||Book Chapter 2, pages 43-107|
|Monday Feburary 19th||Viewing and Projections||Orthographic Projection Perspective Projection|
|Wednesday Feburary 21th||Viewing and Modeling|
|Monday Feburary 26th||Triangular Meshes||Project 2 Assigned Due March 12th|
|Wednesday Feburary 28th||Hierarchical Modeling|
|Monday March 5th||Modeling and Scene Graphs|
|Wednesday March 7th||Rotations and Orientation|
|Monday March 19th||Parametric Curves|
|Wednesday March 21th||Parametric Curves II||Project 3 Assigned Due April 9th|
|Monday March 26th||Point-Based Representation|
|Wednesday March 28th||Midterm exam review|
|Monday April 2nd||Midterm Exam|
|Wednesday April 4th||Character Animation and Skinning|
|Monday April 9th||B Splines and Polar Form|
|Wednesday April 11th||Subdivision Curves|
|Monday April 16th||Parametric Surfaces|
|Wednesday April 18th||Subdivision Surfaces||Final Project Assigned, Due May 12, Proposal by April 21, Demos on May 13|
|Monday April 23th||Particle Systems （Numerical Solution of ODEs）|
|Wednesday April 25th||Computational Photography|
|Monday April 30th||3D Deep Learning|
|Wednesday May 2nd||3D Deep Learning II|
Your performance in this class will be evaluated through homework assignments, in class quizzes, programming assignments, and two midterm exams. The weights of each of these components is as follows:
Exams are open book and open notes. You may bring a non-programmable calculator and printed notes from the class, no other electronic devices may be used, in particular no Internet access is allowed. The exams will take place during class as scheduled.
There are no makeup exams unless arranged explicitly in advance with the instructor. This will only be possible for valid non-academic reasons.
Homework assignments will be due at the beginning of lecture on the due date. Programming assignments will be submitted electronically by 11:59 on the due date and will require you to use your departmental Linux account. Turnin time will be the time recorded by the turnin program you will use to turn in the assignments. You may not email your assignments to the teaching staff.
Project submissions will each include a code listing and a written project description, which will include a description of the software architecture of the system and a user's guide. Grading also generally involves interactive demonstrations of the programs by the students if needed as determined by the TA. Programs will be graded on correctness, readability, style, and documentation. Program development may be done anywhere, but the version of the assignments that is turned in and demonstrated must be able to be built and executed on the publix Linux machines on which software for this course is supported.
You have a "late account" of 3 days for the term which you can spend any way you choose for your programming assigments. For example, you can turn in three programs one day late each, or one program 3 days late, without penalty. Once you have exhausted your late account, no late assignments will be accepted.Academic Misconduct Policy
Academic Misconduct Policy You are free to discuss the course material with your classmates and are encouraged to form study groups for the exams. However, collaboration on homework or programming assignments is not permitted unless explicitly stated by the instructor. Helping a friend understand the intent of a homework or programming assignment specification is permitted. Students who work together too closely (e.g. design their solution together) should be aware that this is a form of cheating called COLLUSION and is subject to academic penalties. Penalties for academic misconduct include but are not limited to a failing grade in this course.
The homework, programs, and exams must be the work of students turning them in. You are responsible for familiarity with the University policy (see Dean of Students' policies on academic integrity) on academic integrity, which we will follow strictly.
Acts that exceed the bounds defined by the approved collaboration practices will be considered cheating. Such acts include:
We urge everyone in the class to take appropriate measures for protecting one's work. You should protect your files, homework solution sheets, etc. as deemed reasonable.
Studying for tests together is permitted and encouraged. Please come talk to us if you are unsure about how to work together with your friend in a legal, helpful manner. Remember, it is always ok to "work together" with your professor or TA!Your Responsibilities in This Class
The programming assignments will require use of the Department of Computer Sciences instructional computing resources. All CS students who meet the prerequisites for CS354 are eligible for a CS departmental lab account. We will be doing projects using OpenGL and C++. User interfaces will be developed using GLUT or FLTK to make user interface building easier and to make the inferfaces portable across platforms.
Software needed for your projects is installed on the public Linux machines in the GDC labs. If you have trouble running the software, please report it to either the instructor or the TA. You can feel free to download and install the support software we are using on your own machines and work there, but you will need to turn in programs that work on the public Linux machines. Instructions for using software for each programming project on the lab machines will be given out with the assignments.
You will turn in assignments using Canvas according to the guidelines provided by the TA.