
ECS175: COMPUTER GRAPHICS
INSTRUCTOR: Kwan-Liu Ma
CLASS TIMES: MWF, 2:10-3:00 PM, Olson 146
SYLLABUS
Course Description
This course acquaints the student with the basic principles and problems of computer graphics, and gives the student the mathematical background to understand and implement these basic principles. It also gives the student the computer science underpinnings of the implementation of a 3D rendering systems.
Course Home Page
http://www.cs.ucdavis.edu/~ma/ECS175
Prerequisite
ECS60 and Linear Algebra
Time & Place
Monday, Wednesday, and Friday, 2:10-3:00pm, in 146 Olson
Discussion: Friday, 12:10-01:00pm, in 106 Olson
Instructors
Professor Kwan-Liu Ma
2121 Kemper Hall
530-752-6958
ma@cs.ucdavis.edu
Office Hours: Wednesday 3:30-5:00pm or by appointment
Dr. Harinarayan Krishnan
2127 Kemper Hall
hkrishnan@ucdavis.edu
Office Hours: Friday 3:30-5:00pm
TA
Chris Ye
2127 Kemper Hall
chrisyeshi@gmail.com
Office Hours: Tuesday 3-5pm
Textbooks
Interactive Computer Graphics, A top-Down Approach using OpenGL, 6th edition (2011) by Edward Angel, Addison-Wesley
This book covers most of the major topics that are required learning for an introductory computer graphics class.
It is not absolutely required, but is recommended as it supplements the material given out in class and the lectures.
WebGL is used in the 7th edition of this book.
Previously, this is the bible of computer graphics. It's now out of date, but it has the most comprehensive coverage of the fundamental topics we will cover in this class. As supplemental reading, it is sufficient for this class except that unlike Angel's book it does not provide OpenGL examples.
Available at books.google.com:[Link]
OpenGL Programming Guide, 8th Edition, by Dave Shreiner et al., Addison Wesley
Available at books.google.com: [Link]
OpenGL Shading Language, 3rd Edition by Randi Rost et al., Addison Wesley
Available at books.google.com: [Link]
Other Resources
You should take advantage of the rich 3D graphics resources on the WWW. For example, this tutorial should be quite helpful to you.
Projects and Exams
There will be 4 projects and one midterm (in the 9th week):
- Project 1 (20%): a 3d viewer
- Project 2 (20%): rasterization
- Project 3 (20%): shading
- Final project (20%): texture mapping
- An 80-minute midterm examination (20%)
completeness and correctness(60 points)
interface design and interaction mechanism (20 points)
understanding of the algorithms and implementation (20 points)
additional features (up to 20 points)
Important: A computer program that does not run and generate images will not be graded. A project that is partially complete must be clearly documented to indicate what functionalities were (or were not) implemented.
You will be using the Linux PCs GPU in the labs at the basement of Kemper Hall. The use of these systems is not required to complete the problems of the course. However, it is required that you get the final version of the programs running on these systems. We will grade your programs on how they operate on these systems, and this will determine your grades on the projects.
You will use handin to turn in your project. For example, to turn in Project 1, you do "handin cs175 P1 myproj01.tar.gz". To receive full credit for a problem, the project must be turned in complete by midnight of the due date. Problems that are turned in after this time will be penalized 10 points per day.
Grading
90% | 80% | 70% | 60% |
A | B | C | D |
I do not give them unless extreme circumstances are presented and documented. In this case, the student should be prepared to retake the class completely.
Class Attendance
Class attendance is not required. However, you are responsible for all material covered, projects and examinations given, announcements made, etc. in all classes. If you miss a class, consult one of your classmates for notes and announcements. Class handouts will be available online in the class home page.
Cheating and Plagirism
This is a demanding course. We are asking you to not only learn the basics of the computer graphics field, but to learn how to utilize the environment of a 3D graphics enabled computer, and to produce fully working programs. It is difficult to learn by yourself all the UNIX tricks, the OpenGL techniques, the implementation strategies, and the C++ debugging techniques. To solve these problems, you require a tremendous amount of information -- and there is information available to you, not only from books or from over the network, but also from other students in the course.
While I would like to encourage cooperative work, each student is to do his or her own work on the assingments, quizs, and exams. The basic idea is simple. Share the ideas, share the strategies, help each other with system productivity, ask questions of others, but produce your own code. Create a synergistic environment where we all learn much more than you could if you did this class entirely on your own.
Any instance of suspected cheating or plagiarism (e.g., copying other student's code) will be referred to the Office of Student Judicial Affairs for adjudication. The `Code of Academic Conduct' describes relevant policies and procedures. Ask the instructor for clarification beforehand if the above rules are not clear.