Course Syllabus
------------------------------------------------------------------------------------------------------------------------
In this course students will be introduced to the basics of computer graphics, including how to define objects with vertices and meshes, how to write basic shaders, lighting and shading, projections, transformations in 3D, and texture mapping. Assignments will be done using Javascript and WebGL, and will build on each other.
Lectures
TuTh 11:40am-1:15pm
https://ucsc.zoom.us/j/98396368789?pwd=dFRmbDJwcEFYbnMvZUNaL3lOODBkQT09
Webcast from W20 class:
You need to click on 'archived classes' to find it.
U: cse-160-1-w20 P: cse160 https://webcast.ucsc.edu/
Recordings from S20 class and F20 class:
Stored in Google Drive (needs @ucsc.edu login) Spring20
Labs
Labs will be Zoom calls for the TA to introduce the programming assignments and give opportunity for students to ask questions before they start coding. All labs will be recorded, so you can watch it later if you missed it.
Mo 10:00am-12:00pm
https://ucsc.zoom.us/j/95541960191?pwd=aXEzSjlyZWs0UkxBQkVzZ0pkZG9YZz09
For Q&A/Individual Help
https://ucsc.zoom.us/j/93780087747?pwd=bnhMeVZaTHdxSXdQSUVKOVZUbThuZz09
FAQ
- I need a permission code
- I dont get these until week 2 or 3 of the qtr. Before the add deadline, but not in the first week. Just come to class.
- I am on the waitlist. I wish I was on the waitlist.
- CSE160L is required to CSE160, so CSE160L serves as the waitlist. It has always cleared. Come to class, do the first assignment, and then by week 3 we have space to get everyone in who wants it. In fact due to the online nature this term, I am 100% sure we can get everyone in, unlike a physical classroom.
- I hate my other class and want to add this one after the qtr started.
- Sure, we would love to have you. All lectures and assignments are available online. But scroll down and check the late/missing work policies. In particular you probably missed one quiz already and you have at least one programming assignment due by the add deadline if you want to pass.
- DRC
- Yes. Send your official form to me with CC to TA Lucas. If your accommodations are limited to exam time we will set it up for all quizzes happening more than 48 hours in the future. If your accommodations are more complex then chat with me in office hours.
Prerequisites
CMPS101, MATH21 or AMS10. Concurrent enrollment in CMPS160L lab section is required.
This course is a 7-unit course with the lab. It involves significant programming, in 3 different languages: HTML 5%, javascript 80%, GLSL 15%. If you haven't had at least 4 courses already that involved programming, the instructors suggest you get some more experience before taking this course. That is, if you are fresh out of CMPS101, I suggest waiting (but I dont require it).
Staff
- Professor: James Davis (davis@cs.ucsc.edu)
- TA: Lucas Ferreira (lferreira@ucsc.edu)
- TA: Fahim Hasan Khan (fkhan4@ucsc.edu)
- Tutors: Kevin Pinney, Matic Likar (mlikar@ucsc.edu)
Office Hours
-
James Davis:
- TueThu 1:15-2:30pm (immediately after class, stay in the Zoom call) (office hours end if/when there is no one else waiting to talk to me unless you let me know in advance that you need to come later)
-
Lucas Ferreira:
- MonWed 1:00pm - 2:00pm
- Zoom: https://ucsc.zoom.us/j/96653625155?pwd=TkpKQ0VmdzdISTA1TU5pdVVKd05FQT09
-
Fahim Hasan Khan:
- Mon 3:00-4:00pm, Fri 10:00-11:00am
- Zoom: https://ucsc.zoom.us/j/93780087747?pwd=bnhMeVZaTHdxSXdQSUVKOVZUbThuZz09
-
Kevin Pinney (kpinney@ucsc.edu)
- MonWed 10:30-11:30am
- (Zoom: https://ucsc.zoom.us/j/2103526384?pwd=Uk81MEd3N2hZMGM1d2owR1hyamNaUT09)
-
Matic Likar:
- WedFri 12:00 - 1:00pm
- Zoom: https://ucsc.zoom.us/j/9297006455?pwd=Ry9TYlo0VnJDWGJCeXRQV0VIa3lTUT09
Textbooks
The assignments follow the flow of this book closely, and I assume you are reading the chapters. You'll want a copy.
Youtube Channel
This was new in Spring20 and students reported that it was useful, so we are keeping it. There will be playlists for different topics. e.g. Assignment1 playlist has videos to walk you through the "lab" assignment.
https://www.youtube.com/channel/UCSynd9Z5RdIpKfvTCITV_8A/playlists
Schedule
Raw lecture recordings (unedited, needs a @ucsc.edu login) Spr20
|
|
|
Reading:
Due: Due: Lab 0, HW1, Quiz 1 (Linear Algebra) |
|
Reading:
Due: Lab 1 - Paint Program |
Reading:
Due: HW 2, Quiz 2 (ObjectModeling, Transforms) |
|
Reading:
Due Lab 2 - Blocky Animal |
|
Reading:
Due HW 3, Quiz 3 (Color, Texture) |
|
Reading:
Due: Lab 3 - Blocky World |
|
Reading:
Due: HW 4, Quiz 4 (Viewing, Projection, Lighting) |
|
Reading:
Due: Lab 4 - Lighting |
|
|
Reading: (None) Due: Quiz 5 (Cumulative) |
|
Due: Lab assignment 5 - Three.js |
Grading
Your grade for CMPS-160 is broken down as follows:
- Exams (Quizzes): 40%
- Programming assignments: 45%
- Participation/Attendance: 5%
- Written HW: 10%
Your grade for CMPS-160L is simply your grade for CMPS160. There is no curving, and no rounding up. The grade breakdown is as follows:
A+ = 100-97.00%
A = 96.99-93%
A- = 92.99-90%
B+ = 89.99-87%
B = 86.99-83%
B- = 82.99-80%
C+ = 79.99-77%
C = 76.99-70%
D = 69.99-60%
F = 59.99-0%
Programming Assignments
There will be 5 programming assignments in Javascript and WebGL due on Mondays at 11:59pm:
- Assignment 0: Vector Library - Ch1, Ch2 9-16
- Assignment 1: Paint Program - Ch2, Ch3 67-91
- Assignment 2: Block 3D Animal - Ch3 91-113, Ch4
- Assignment 3: Virtual World - Ch5, Ch 7
- Assignment 4: Lighting and GLSL Shaders - Ch6, Ch8
- Assignment 5: Exploring a High-Level Graphics Library
- Submissions
Assignments will be submitted on Canvas as zipped project folders containing all of the necessary HTML/Javascript/Shader code.
- Late Policy
Late submissions of assignments will be penalized 20% off per week and will be accepted no more than 2 weeks late. No assignments will be accepted after the Friday before finals week.
No work will be counted as late until the add/drop deadline, at which point all late penalties instantly become effective from the original assignment due date.
In my experience the two week limit does not hurt anyone. Students more than 2 weeks behind eventually fail anyway. This just makes it obvious to you earlier.
- Missing Work
This is a programming class. You must turn in all Programming Assignments with a grade of at least 4/10 (before late penalty) in order to receive a passing grade. However I know stuff happens - I will allow any student to bypass this policy one time (for one programming assignment) by submitting a paragraph explaining how your life really exploded and you couldn't do it.
This does not apply to written HW or quizzes. You shouldnt miss those either of course, but they are not mandatory for passing.
Participation/Attendance
Attendance in the Zoom class is "required" There will be Google Polls referenced in class lectures. These will be used for participation points.
If you know you will need to watch recordings later, drop me an email to let me know thats your plan at the start of the quarter. I am happy to accommodate people located in alternate time zones, or who have to work at the scheduled class time, or whatever.
Written HW
You'll need to do some sample problems related to the quizzes and coding assignments. And you'll need to answer some questions on what is in the readings you were supposed to do. These are graded on a participation basis. They are meant to make you look at the readings and sample problems. Actually testing your knowledge is in the quizzes and code assignments.
Exams
There will be five quizzes, to test your understanding of the material. Prior to the quiz/exam, sample problems similar to the ones that will appear on the quiz/exam will be distributed. The quizzes themselves are multiple choice and administered in Canvas.
The first quiz comes almost immediately, and is a review of your knowledge of basic linear algebra.
- Linear Algebra Quiz - Reading: Shirley - Fundamentals of Computer Graphics - Ch 2.4-2.4.4, Ch 5.2-5.2.2
Make-Up Policy: If you miss an exam/quiz without informing us beforehand, you can make it up within the following week (no later), however, your grade on the make-up is cut in half. That is, if you get an 80/100 on the make-up, your actual score will be 40. If you know you will need to miss a quiz you need to get in touch at least 48 hours in advance to make arrangements. This should be very rare with online quizzes.
Contests
There will be assignment contests in this class. The winners of these contest are immortalized in the Hall of Fame! You will brag to your children of your talent! Ok. Seriously. Its just a lot of fun. Participation is optional.
Project
Some past versions of this class had a group project. We aren't doing that this qtr. However the programming assignments have been adjusted to allow for additional effort and creativity.
Course Summary:
Date | Details | Due |
---|---|---|