Introduction to Computer Graphics
------------------------------------------------------------------------------------------------------------------------
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
Links to an external site.
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
Links to an external site.
Stored in Google Drive Fall20 Links to an external site.
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
Links to an external site.
For Q&A/Individual Help
https://ucsc.zoom.us/j/93780087747?pwd=bnhMeVZaTHdxSXdQSUVKOVZUbThuZz09 Links to an external site.
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 Links to an external site.
-
Fahim Hasan Khan:
- Mon 3:00-4:00pm, Fri 10:00-11:00am
- Zoom: https://ucsc.zoom.us/j/93780087747?pwd=bnhMeVZaTHdxSXdQSUVKOVZUbThuZz09 Links to an external site.
-
Kevin Pinney (kpinney@ucsc.edu)
- MonWed 10:30-11:30am
- (Zoom: https://ucsc.zoom.us/j/2103526384?pwd=Uk81MEd3N2hZMGM1d2owR1hyamNaUT09 Links to an external site.)
-
Matic Likar:
- WedFri 12:00 - 1:00pm
- Zoom: https://ucsc.zoom.us/j/9297006455?pwd=Ry9TYlo0VnJDWGJCeXRQV0VIa3lTUT09 Links to an external site.
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 Links to an external site.
Schedule
Raw lecture recordings (unedited, needs a @ucsc.edu login) Spr20 Links to an external site.
Raw Lectures Fall20 Links to an external site.
|
|
|
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 |
---|---|---|
Thu Oct 1, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Tue Oct 6, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Thu Oct 8, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Mon Oct 12, 2020 | Assignment Assignment 0: Vector Library | due by 11:59pm |
Assignment HW1 | due by 11:59pm | |
Tue Oct 13, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Wed Oct 14, 2020 | Quiz Quiz 1 - Linear Algebra Review | due by 11:59pm |
Thu Oct 15, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Mon Oct 19, 2020 | Assignment Assignment 1: Painting | due by 11:59pm |
Tue Oct 20, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Thu Oct 22, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Mon Oct 26, 2020 | Assignment HW2 | due by 11:59pm |
Tue Oct 27, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Wed Oct 28, 2020 | Assignment Quiz 2 - Transformations & Modeling | due by 11:59pm |
Thu Oct 29, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Mon Nov 2, 2020 | Assignment Assignment 2: Blocky 3D Animal | due by 11:59pm |
Tue Nov 3, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Thu Nov 5, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Mon Nov 9, 2020 | Assignment HW3 | due by 11:59pm |
Tue Nov 10, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Wed Nov 11, 2020 | Assignment Quiz 3 - Colors & Texturing | due by 11:59pm |
Thu Nov 12, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Mon Nov 16, 2020 | Assignment Assignment 3: Creating a Virtual World | due by 11:59pm |
Tue Nov 17, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Thu Nov 19, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Mon Nov 23, 2020 | Assignment HW4 | due by 11:59pm |
Tue Nov 24, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Thu Nov 26, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Assignment Quiz 4 - Viewing, Projection & Lighting | due by 11:59pm | |
Mon Nov 30, 2020 | Assignment Assignment 4: Lighting | due by 11:59pm |
Tue Dec 1, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Thu Dec 3, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Assignment SETs | due by 11:59pm | |
Tue Dec 8, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Wed Dec 9, 2020 | Quiz Quiz 5 - Cumulative | due by 11:59pm |
Assignment Assignment 5: Exploring a High-Level Graphics Library | due by 11:59pm | |
Thu Dec 10, 2020 | Calendar Event CSE160 | 11:30am to 1:30pm |
Assignment Attendance 10/01 | ||
Assignment Attendance 10/06 | ||
Assignment Attendance 10/08 | ||
Assignment Attendance 10/15 | ||
Assignment Attendance 10/22 | ||
Assignment Attendance 10/27 | ||
Assignment Attendance 10/29 | ||
Assignment Attendance 11/03 | ||
Assignment Attendance 11/05 | ||
Assignment Attendance 11/10 | ||
Assignment Attendance 11/12 | ||
Assignment Attendance 11/17 | ||
Assignment Attendance 11/19 | ||
Assignment Attendance 11/24 | ||
Assignment Attendance 12/01 | ||
Assignment Attendance 12/03 | ||
Assignment Attendance 12/10 |