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.
Staff
- Professor: James Davis (davis@cs.ucsc.edu)
- TA: Eric Sandoval Ruezga (esandov8@ucsc.edu)
- TA: Minghao Liu (mliu40@ucsc.edu)
- Tutor: Spencer Fulgham (srfulgha@ucsc.edu)
- Tutor: Valentina Tang (xtang21@ucsc.edu)
- Tutor: John Beresford (jberesfo@ucsc.edu)
Lectures
MW 05:20pm-06:55pm
Zoom requires a UCSC login to authenticate
https://ucsc.zoom.us/j/99271638289?pwd=b3k3cHVXbVozcGIreU03OVFtbXdZQT09
Recordings from this quarter: In the YuJa tab on Canvas
Recordings from previous quarters:
- Fall 2021: Stored in Yuja
- Spring 2020: Stored in Google Drive (needs @ucsc.edu login)
- Fall 2020: Stored in Google Drive
Labs
Labs will be Zoom calls for the TA to introduce the programming assignments, provide insights on Homework and Quiz material, and give the opportunity for students to ask questions before they start coding. You are required to attend but all labs will be recorded, so you can watch them later if you missed them. You pick one of the lab times that works for you, and ideally attend the same one each week.
- Tuesdays: 10am - 11:35am
- Thursdays: 3:20pm - 4:55pm
- Fridays: 8pm - 9:35pm
You can attend the labs here: Lab Zoom
Sign up for a group and time-slot here: Sign Up Form
Office Hours
- James Davis:
- Short class questions: Immediately after class for 15 minutes on Mon, stay in the Zoom call
- Longer questions : After class Wed
- More personal questions and issues: Wed 10-11am
- Eric Sandoval Ruezga:
- Mon 3-5pm, Fri 5-7pm
- Zoom: https://ucsc.zoom.us/j/3948737509?pwd=U2ROMk5WVHZESll3emFDWERaYVUyQT09
- Minghao Liu:
- Monday and Tuesday 8:00-10:00 am
- Zoom: https://ucsc.zoom.us/j/4372079467?pwd=djVRZTFNblpWamE0ZUlVRkl6QW5oQT09
- Spencer Fulgham
- Mon and Wed 12:30-2:00pm (updated!)
- Valentina Tang
- Thurs 1:30-3:00pm, Fri 10:30-12:00pm
- Zoom: https://ucsc.zoom.us/j/4198066825?pwd=cUtUckl1OWRXbC9hbzVMTjFxcFcyQT09
- John Beresford
- Tuesday and Saturday 2:00pm - 3:30pm
- Zoom: https://ucsc.zoom.us/j/4124948837?pwd=Skg4TE5qUW5zZ3RmNm9EZFpReFMxQT09
Learning Outcomes
-
- Primary goals
- G1: You can create a web page with 3D computer graphics content using WebGL
- G2: You understand the underlying mathematics and programming for graphics
- Secondary goals
- G3: You can transfer your knowledge to use an alternate graphics library that wasn't the specific one we studied, to quickly recreate the quarter's work (we will use three.js).
- G4: You increase your skill working with large software systems with lots of lines of code and libraries that are too big to fully understand. (Lots of upper-division classes contribute to this goal, but the practice is intentionally part of this class).
- G5: You increase your skills at learning new coding concepts when all the precise details are not given. (Your job will require you to learn new languages and libraries as you go. This class scaffolds that learning, but also asks you to practice reading the manual for the details)
- Primary goals
Prerequisites
CSE101, MATH21 or AMS10. Concurrent enrollment in the 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%. Learning to program takes more than we explicitly teach in the prerequisites, it takes practice. If you haven't had at least 4 courses already that involved programming (CSE 20, 30, 101, and one other upper-division course) the instructors suggest you get some more experience before taking this course. That is, if you are fresh out of CSE101, I suggest waiting if your schedule will allow it (but I don't require it).
Textbook
The assignments follow the flow of this book closely, and I assume you are reading the chapters. You'll want a copy. Either book form or online is fine.
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. For example, the Assignment1 playlist has videos to walk you through the "lab" assignment. This will be linked from homework and assignments as appropriate.
https://www.youtube.com/channel/UCSynd9Z5RdIpKfvTCITV_8A/playlists
Communicating with course staff
Piazza is the fastest way to get answers. The instructors, TAs, and tutors all try to keep questions answered and frequently edit answers by other course staff with clarifications. You should expect answers in less than 24 hours on average.
Office hours is your second option for talking with course staff. There are many times during the week for you to talk to someone.
Email is discouraged because it does not scale well to lots of students and lots of instructors, nor is it fast. I sometimes take up to a week to see and respond to emails.
Announcements/Discussion
We are using Piazza.
https://piazza.com/ucsc/winter2022/cse160
All announcements will be through Piazza. You must register with the class Piazza if you want to know last-minute things from the instructor.
Instructors and TA will monitor Piazza for questions.
Many students prefer Discord for informal discussion and chat. The class Discord is is linked below. Sometimes a TA might be looking here and reply, and sometimes not. You are required to be respectful of your classmates and TAs as people. However dont feel the need to be overly formal like you would if emailing a professor, it is intended to be an informal community of students in the class, including things like griping about the class' unfair policies or workload, and bragging about your amazing accomplishments if you feel the need.
Note: You may be aware that there is an official CSE Discord Server; this is not that server. This discord server is specifically for this class, as many students tend to prefer.
Schedule
The schedule and linked slides will be updated from "planned" to "actual" as the quarter progresses.
There are some intentional blanks in the schedule that will be filled with either finishing past lecture topics, supplementary help for homework, or interesting advanced topics.
Reading:
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 |
|
|
|
|
Due: Quiz 5 (Cumulative), Lab 5 - Three.js |
Grading
Your grade for CSE160 is broken down as follows:
- Programming assignments: 45%
- Participation/Attendance: 5%
- Written HW: 10%
- Exams (Quizzes): 40%
Your grade for CSE-160L is simply your grade for CSE160. There is no curving, and no rounding up. You can check your grade at any time in Canvas.
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 6 programming assignments in Javascript and WebGL due on Sundays at 11:59pm. These are meant to ensure the learning outcome "G1: You can create a web page with 3D computer graphics content using WebGL". Programming assignments have clear rubrics, and your grade should never be a surprise to you.
- 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 5% off per day 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 5/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 shouldn't 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. The polls are valuable for improving the class. The "required attendance" is valuable for nudging you to come to class when that's what you wanted to do to begin with.
If you know you will need to watch recordings later, drop me an email to let me know that's your plan at the start of the quarter and we will find a solution. I am happy to accommodate people located in alternate time zones, or who have to work at the scheduled class time, or whatever your situation is.
Written HW
You'll have some written homework problems related to the quizzes and coding assignments. These are graded on a participation basis. If you tried, you get credit. Actually testing your knowledge is in the quizzes and code assignments. The homework is meant to make you look at the readings, get started on the assignments, and provide a sample of what will be on the exams.
These primarily support learning outcome "G2: You understand the underlying mathematics and programming for graphics"
Exams
There will be five quizzes, to test your understanding of the material. If you can do the HW, you can do the quiz. The quizzes themselves are currently 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.
Final: There is no traditional Midterm or Final Exam, just the bi-weekly quizzes.
These support learning outcome "G2: You understand the underlying mathematics and programming for graphics"
Contests
There will be programming assignment contests in this class. The winners of these contests are immortalized in the Hall of Fame! You will brag to your children of your talent! Seriously. It's just a lot of fun to see your classmates' creativity. Participation in showing your own work is optional, participation in cheering for your classmates is mandatory.
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, and to build on each other. It's primarily the "group" aspect that has been removed from the class.
Workload
Systemwide Senate Regulation 760 specifies that one academic credit corresponds to a total of 30 hours of work for the median student over a quarter (e.g., 3 hours per week for a 10-week quarter).
That means this class is 21 hours a week! Expect to work hard in this class. Do not expect to start programming assignments on the last day. I will survey students during the quarter to check how long different aspects of the course are taking you.
- Lectures - 3 hours per week
- Lab time - 2 hour per week
- Reading - 2.5 hours per week (Roughly a chapter a week)
- Written Homework - 2.5 hours per week (1 HW every other week)
- Exam - 1 hour per week (1 quiz every other week)
- Programming Assignments - 10 hours per week (A0, A1, A5 = 10 hours, A2, A3, A4 = 20 hours)
- There is a wide distribution among students on how long a given programming assignment takes, from 5 hours to 25 hours, depending on your prior experience. Some students will be faster than you because they put in the hours to gain experience in some prior class. Do not be discouraged, but do expect to put in the time.
Instructor Feedback
All programming assignments have a clear rubric. Your score on these will include a detailed breakdown of which points you correctly implemented. Written HW will have a solution sheet made available after its due but before the quiz, so that you can self-check your work and fill in missing knowledge. All grading is handled by the graders.
Three of the assignments will have associated contests, and there is discussion and feedback on what you've done in class from the instructor on those days. Much of this discussion arises from questions asked by other students. Many students make similar design choices in their work, so even if you aren't showing your work, questions and feedback to someone else will likely resonate with you.
Student Feedback
Student feedback is so important to me - its the dominant method by which I assess the 'Participation' part of your grade.
During the quarter you will be asked for feedback in nearly every lecture in the form of short surveys with 5-10 questions. These usually happen when we take a 5 minute break midway through class. These cover both specific topics to help the class run better as well as open ended feedback. These are informal, and provide me immediate opportunities to improve your class. You can say anything, good or bad. I won't be offended. When appropriate I share aggregate class opinions with the class.
At the end of the quarter you will be asked to complete a Student Experience of Teaching survey for this course. SETs provide an opportunity for you to give formal feedback. These are truly anonymous and are collected by the university. I eventually get a copy, and I read these too. The campus has a guide: CITL’s Guide to Giving Useful Feedback to Instructors and TAs.
Working with friends
Learning with friends is a good thing. Please DO form study groups for HW. Please DO call your friend for help debugging Assignments. However just to be clear - quizzes are a personal endeavor, no contact with other people allowed. Use of the web and textbooks IS allowed on the quizzes. All HW and Assignments should be your own work. There is a fuzzy line on how much help is too much. If you got help from anyone who isn't course staff on any HW or coding, you are required to state who and the extent of the help clearly. If you had a study group of 5 people in discord for the HW, you need to say that on your HW. Any collaboration you clearly document will never be considered "cheating". Of course, you won't get credit if you clearly say "My roommate did all this for me", but you won't be cheating.
This policy is specific to this class. Each instructor has their own rules. See the section below on Academic Integrity for official university policy.
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.
- The waitlist 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, if there is still enrollment space, 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 the TA. 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.
Official University Policies
The sections below are mandatory in all syllabus, and represent policy that should be identical in every UCSC class. While the below is important, it isn't unique to this class.
Academic Integrity
All members of the UCSC community benefit from an environment of trust, honesty, fairness, respect, and responsibility. You are expected to present your own work and acknowledge the work of others in order to preserve the integrity of scholarship.
Academic integrity includes:
- Following exam rules
- Using only permitted materials during an exam
- Viewing exam materials only when permitted by your instructor
- Keeping what you know about an exam to yourself
- Incorporating proper citation of all sources of information
- Submitting your own original work
Academic misconduct includes, but is not limited to, the following:
- Disclosing exam content during or after you have taken an exam
- Accessing exam materials without permission
- Copying/purchasing any material from another student, or from another source, that is submitted for grading as your own
- Plagiarism, including use of Internet material without proper citation
- Using cell phones or other electronics to obtain outside information during an exam without explicit permission from the instructor
- Submitting your own work in one class that was completed for another class (self-plagiarism) without prior permission from the instructor.
- Violations of the Academic Integrity policy can result in dismissal from the university and a permanent notation on a student’s transcript. For the full policy and disciplinary procedures on academic dishonesty, students and instructors should refer to the Academic Misconduct page at the Division of Undergraduate Education.
Accessibility
UC Santa Cruz is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to me privately during my office hours or by email, preferably within the first two weeks of the quarter. At this time, I would like us to discuss ways we can ensure your full participation in the course. I encourage all students who may benefit from learning more about DRC services to contact the DRC by phone at 831-459-2089 or by email at drc@ucsc.edu.
Intellectual Property
The materials in this course are the intellectual property of their creators. As a student, you have access to many of the materials in the course for the purpose of learning, engaging with your peers in the course, completing assignments, and so on. You have a moral and legal obligation to respect the rights of others by only using course materials for purposes associated with the course. For instance, you are not permitted to share, upload, stream, sell, republish, share the login information for, or otherwise disseminate any of the course materials, such as: video and audio files, assignment prompts, slides, notes, syllabus, simulations, datasets, discussion threads. Conversely, any materials created solely by you (for example, your videos, essays, images, audio files, annotations, notes) are your intellectual property and you may use them as you wish.
Religious Accommodations
UC Santa Cruz welcomes diversity of religious beliefs and practices, recognizing the contributions differing experiences and viewpoints can bring to the community. There may be times when an academic requirement conflicts with religious observances and practices. If that happens, students may request the reasonable accommodation for religious practices. The instructor will review the situation in an effort to provide a reasonable accommodation without penalty. You should first discuss the conflict and your requested accommodation with your instructor early in the term. You or your instructor may also seek assistance from the Dean of Students office.
Principles of Community
The University of California, Santa Cruz expressly prohibits students from engaging in conduct constituting unlawful discrimination, harassment or bias. I am committed to providing an atmosphere for learning that respects diversity and supports inclusivity. We need to work together to build this community of learning. I ask all members of this class to:
- be open to and interested in the views of others
- consider the possibility that your views may change over the course of the term
- be aware that this course asks you to reconsider some “common sense” notions you may hold
- honor the unique life experiences of your colleagues
- appreciate the opportunity that we have to learn from each other
- listen to each other’s opinions and communicate in a respectful manner
- keep confidential discussions that the community has of a personal (or professional) nature
- ground your comments in the texts we are studying. Refer frequently to the texts and make them the focus of your questions, comments, and arguments. This is the single most effective way to ensure respectful discussion and to create a space where we are all learning together.
Title IX/Care Advisory
UC Santa Cruz is committed to providing a safe learning environment that is free of all forms of gender discrimination and sexual harassment, which are explicitly prohibited under Title IX. If you have experienced any form of sexual harassment, sexual assault, domestic violence, dating violence, or stalking, know that you are not alone. The Title IX Office, the Campus Advocacy, Resources & Education (CARE) office, and Counseling & Psychological Services (CAPS) are all resources that you can rely on for support.
Please be aware that if you tell me about a situation involving Title IX misconduct, I am required to share this information with the Title IX Coordinator. This reporting responsibility also applies to course TAs and tutors (as well to all UCSC employees who are not designated as “confidential” employees, which is a special designation granted to counselors and CARE advocates). Although I have to make that notification, you will control how your case will be handled, including whether or not you wish to pursue a formal complaint. The goal is to make sure that you are aware of the range of options available to you and that you have access to the resources you need.
Confidential resources are available through CARE. Confidentiality means CARE advocates will not share any information with Title IX, the police, parents, or anyone else without explicit permission. CARE advocates are trained to support you in understanding your rights and options, accessing health and counseling services, providing academic and housing accommodations, helping with legal protective orders, and more. You can contact CARE at (831) 502-2273 or care@ucsc.edu.
In addition to CARE, these resources are available to you:
- If you need help figuring out what resources you or someone else might need, visit the Sexual Violence Prevention & Response (SAFE) website, which provides information and resources for different situations.
- Counseling & Psychological Services (CAPS) can provide confidential counseling support. Call them at (831) 459-2628.
- You can also report gender discrimination and sexual harassment and violence directly to the University’s Title IX Office, by calling (831) 459-2462 or by using their online reporting tool.
- Reports to law enforcement can be made to the UC Police Department, (831) 459-2231 ext. 1.
- For emergencies, call 911.
Difficult Conversations
In our in-class and online discussions and dialogues, we will have the opportunity to explore challenging, high-stakes issues and increase our understanding of different perspectives. Our conversations may not always be easy. We sometimes will make mistakes in our speaking and our listening. Sometimes we will need patience or courage or imagination or any number of qualities in combination to engage our texts, our classmates, and our own ideas and experiences. We will always need respect for others. Thus, an important aim of our classroom interactions will be for us to increase our facility with difficult conversations that arise inside issues of social justice, politics, economics, morality, religion, and other issues where reasonable people often hold diverse perspectives. This effort will ultimately deepen our understanding and allow us to make the most of being in a community with people of many backgrounds, experiences, and positions.
Report an incident of hate or bias
The University of California, Santa Cruz is committed to maintaining an objective, civil, diverse and supportive community, free of coercion, bias, hate, intimidation, dehumanization or exploitation. The Hate/Bias Response Team is a group of administrators who support and guide students seeking assistance in determining how to handle a bias incident involving another student, a staff member, or a faculty member. To report an incident of hate or bias, please use the following form: Hate/Bias Report Form.
Student Services
Counseling and Psychological Services
Many students at UCSC face personal challenges or have psychological needs that may interfere with their academic progress, social development, or emotional wellbeing. The university offers a variety of confidential services to help you through difficult times, including individual and group counseling, crisis intervention, consultations, online chats, and mental health screenings. These services are provided by staff who welcome all students and embrace a philosophy respectful of clients’ cultural and religious backgrounds, and sensitive to differences in race, ability, gender identity and sexual orientation.
Student Success and Engagement Hub
The Division of Student Success provides campus-wide coordination and leadership for student success programs and activities across departments, divisions, the colleges, and administrative units.
Tutoring and Learning Support
At Learning Support Services (LSS), undergraduate students build a strong foundation for success and cultivate a sense of belonging in our Community of Learners. LSS partners with faculty and staff to advance educational equity by designing inclusive learning environments in Modified Supplemental Instruction, Small Group Tutoring, and Writing Support. When students fully engage in our programs, they gain transformative experiences that empower them at the university and beyond.
College can be a challenging time for students and during times of stress it is not always easy to find the help you need. Slug Support can give help with everything from basic needs (housing, food, or financial insecurity) to getting the technology you need during remote instruction.
To get started with SLUG Support, please contact the Dean of Students Office at 831-459-4446 or you may send us an email at deanofstudents@ucsc.edu.
Slug Help/Technology
The ITS Support Center is your single point of contact for all issues, problems or questions related to technology services and computing at UC Santa Cruz. To get technological help, simply email help@ucsc.edu.
On-Campus Emergency Contacts
Slug Help/Emergency Services. For all other help and support, including the health center and emergency services, start here. Always dial 9-1-1 in the case of an emergency.
Course Summary:
Date | Details | Due |
---|---|---|