Instructor: Dr. Roger D. Eastman (first initial last name)(at symbol)cs.umd.edu
Day and Time:
Tuesday 3:30pm4:45pm
Thursday 3:30pm4:45pm
Location: Computer Science Instructional Center (CSIC) Room 1121
Instructor Office Hours: MW 14 pm, T/Th 912 am, and by appointment.
Teaching Assistant: Patrick Owen, powen12 at terpmail dot umd dot edu
TA Office Hours: T/Th 12:001:45 PM, W 10:0012:00 PM
TA Office Hours Location: A.V. Williams 4101
An introduction to the principles of computer graphics. Includes an introduction to graphics displays and systems. Introduction to the mathematics of affine and projective transformations, perspective, curve and surface modeling, algorithms for hiddensurface removal, color models, methods for modeling illumination, shading, and reflection. Video source: Fully CGI video "The Third & The Seventh" by Alex Roman
The link for the class schedule is at the bottom of the page: Class schedule and initial presentations. On the schedule are first day presentations for an idea of course content.
There will be no required textbook. Notes will will be distributed to supplement lectures. Recommended textbooks, for which readings will be posted, are:
Linear algebra (MATH 240) and data structures (CMSC 420). You should be able to program with simple data structures, solve simple polynomials and handle the basics of linear and vector algebra, including differential calculus and trigonometry. We will review required math techniques. A major theme of the course is connecting mathematical concepts with their implementation in programs.
We will use Java and OpenGL for labs and projects, including the Java based programming system Processing (processing.org). If you are interested and able to support yourself in another language (such as C++ with QT) check with the instructor.
Assignments in the class will include written homeworks, lightweight programming labs, and three major projects. Exams will count for 30% points, labs and projects for 45% and homework for 25%.
Homeworks are due at the start of class and not accepted late, but the low grade will be dropped. Labs and projects will be typically due by by midnight of the due date, with a 15% penalty if two days late, and 20% for each day past that.
Grades will be available on grades.cs.
Feel free to drop in during office hours, or for short questions at other times (I’m in class all T/Th afternoon, and generally not in on Fridays). If the stated office hours don’t work then check with me on alternative times. Making appointments by email can be useful. I will respond to email questions on the class, but not to directly assist on assignments, certainly not at the last minute. We will use Piazza for general assignment questions.
We've created a CMSC427 Fall 2017 Piazza Page. Feel free to discuss homework and ask questions. We'll try to reply as quickly as possible. Also, please make sure you follow proper netiquette. Any comments or answers must be on topic, polite, and respectful of others. For more information on proper netiquette, I encourage everyone to read the following resources:
The web has many useful references for computer graphics principles and systems, as well as a number of open sources software libraries and applications. Some we will use, some you may simply find interesting.
Please read the UMDCP attendance policy. Please do email me if you find yourself falling behind in class. I’m here to help.
Maintaining your reputation is critical in business and in science. Please read the UMDCP academic integrity policy. Unless otherwise specified in an assignment, all work should be your own. You can check with classmates on the specifications of problems on assignments, so you understand what is required, but solving the problem should your sole work. If you get outside help from others, web information, books, cite your sources. Representing others’ work as your own is clear plagiarism and will be dealt with under university policies.
Setting up your personal computers for class programming assignments can be a challenge in graphics, given the frequent complexity of the libraries and hardware involved. Getting assistance from in or outside the class on getting vanilla, starter lab and project code installed and running is NOT cheating for the purposes of this class. How to configure graphics libraries is not a graded part of this class.
When appropriate, for items not listed here we will go by campus policies as set at http://www.ugst.umd.edu/courserelatedpolicies.html
I encourage you to provide me with input and feedback during the semester. At the end of the semester, you'll be asked provide formal evaluations at www.courseevalum.umd.edu. Your evaluations will be used to improve the class in following years.
The schedule will be updated frequently over the semester.Please check back regularly. TBD designates "to be determined."
Date  Lecture  Assignment 

Week 1: 8/29  L1: Intro and parametric curves (PC)
[intro][drawing] [Sketches] 
Hw1:Graphics Resume docx (due 8/31) Hw1:Graphics Resume pdf (due 8/31) 
8/31  L2:Polylines and polgyons [Polyglines] [Processing] [GLprimitives] [ProcessingSketches] [GLPrimSketches] [Reading: Pearson intro] 
Hw2 Parametric curves (due 9/5)) Lab0 Generative art (due 9/7) 
Week 2: 9/5  L3: Vectors [Vectors] [Handouts] [Line Intersection1] [Line Intersection2]  
9/7  L4: Meshes in 3D [Surfaces] [A Bunny]  Hw3 Vector (due 9/11)) Lab1 Validating Polygons (due 9/19) 
Week 3: 9/12  L5: Meshes continued [SurfacesUpdated] [Outline] [ParametricSurfaces] NEW[FrameForCurve] [SurfaceNormal] [MeshFromSurface] 
Hw2 solutions 
9/14  L6: Transforms + QUIZ 1 (Postponed) [TransformationsI] 
Dot Product Exercises (NOT due) 
Week 4: 9/19  L7: Transforms and perspective 

9/21  l8: Transforms and OpenGL pipeline
[TransformationsII] 
Dot Product Exercises solutions Lab2 Lab2 Sketches 
Week 5: 9/26  L9: Rasterization  
9/28  L10: Basics of shading 

Week 6: 10/3  L11: Color Theory 

10/5  L12: QUIZ 2 

Week 7: 10/10  L13: Shading  
10/12  L14: Shading 

Week 8: 10/17  L15: Scene modeling (SM) I  
10/19  L16: Scene modeling, interactive camera  
Week 9: 10/24  L17: Scene modeling, culling  
10/26  L18: MIDTERM  
Week 10: 10/31  L19: Advanced rendering (AR) 

11/2  L20: Advanced rendering  
Week 11: 11/7  L21: Advanced rendering  
11/9  L22: Advanced rendering  
Week 12: 11/14  L23: Advanced rendering  
11/16  L24: QUIZ 3 

Week 13: 11/21  L25: Project day 

11/23  THANKSGIVING 

11/28  L26: Advanced modeling: surfaces  
12/30  L27: Advanced modeling: surfaces 

Week 15: 12/5  L28: Advanced modeling: fractals 

12/7  L29: Review for final! 

Finals Week  
12/19  Final Exam, Friday, Dec 19 in CSIC 1115 