Skip to main content
  1. Teaching/
  2. Su2024 CS N324E/

Su2024 CS N324E Syllabus

·21 mins
Table of Contents

Welcome to CS 324E! This is a course about techniques and programming in computer graphics. We will use various techniques to explore how to generate and process images on computers.

Course Goals
#

Graphics is the set of skills, techniques, and ideas involved with creating digital images using a computer. In this course, we will explore various aspects of this field. Although we will cover many different application areas, we will almost always focus on answering one of four core questions:

  1. How can we represent shapes, colors, and visuals in a way that the computer can understand?

  2. How can we tell the computer where these visual elements should go?

  3. How can we make the answers to the previous two questions change “nicely” over time, so that we get moving pictures?

  4. How can we organize a program to do all this in a way that doesn’t become overwhelming?

By the end of the course, you should have experience in answering each of these questions in 2D and 3D settings, as well as some graphics-adjacent fields like image processing and game development.

Course Information
#

Course Staff
#

Instructor: Kevin Song (he/him)
TA: Omitted in public-facing syllabus

Office Hours
#

Instructor: M/W 11:30am-12:30pm, GDC 3rd Floor Bridge
TA: M/F 3:00pm-4:00pm, GDC 3rd Floor Bridge

Course Meetings
#

Class Location JGB 2.218
Class Time MWF 1:00-3:00pm
Unique Number 84703

Prerequisites
#

Completion of CS313E, CS314, or CS314H with a grade of C- or better, or consent of instructor.

Course Materials/Resources
#

There is no required textbook for this class. You may find the tutorials on the Processing website to be useful.

In order to do the assignments in this class, you will need a computer capable of running Processing and Javascript. Most laptops are capable of running these programs. Devices running iOS or iPadOS can run the Processing app, which is very similar to Processing.

The CS department provides computer labs in GDC which has computers with this software preinstalled. If you would like a CS account to access these computers, please visit the Account request page. Note that CS account approvals take place overnight, so make sure to request your account at a day or two before you need it.

Communication Methods
#

How we will contact you
#

EdStem will be the primary method of communication in this class. Announcements and reminders pertaining to the class will usually be posted here. I expect that any announcements posted to EdStem by the course staff will have been read by the start of the next class.

If we need to contact you individually, we may send email to your official email address that you have registered with UT. You can check which email this is on the Address Change page. Similarly to EdStem announcements, I expect that messages sent this way will be read before the start of the next class.

How you can contact us
#

If you would like to contact any of the course staff, please use one of the following methods:

  1. Send a DM or Private Question on EdStem.

  2. Send an email to the email addresses listed above, with “CS324E” somewhere in the subject line.

While I would love to be available on all platforms, I simply do not have the time to check multiple platforms 10 times a day. Any attempt to contact the course staff using a method that is not one of the two listed above may result in a delayed response or non-response.

Course Structure
#

This course is heavily structured around in-class activities, learning how to create graphics by creating graphics, and obtaining ideas from other students. Accordingly, I expect that you will attend class every day, and the course grading reflects this. See the Evaluation section for what to do if you are unable to attend.

In class, we will usually cover an idea in graphics, then see how it can be implemented in code. You will then spend some time writing code to explore the concept further. These in-class assignments will be due before the next class, and I may select a few of them to showcase during the next class period.

In addition to the in-class assignments, there will be several take-home assignments which will explore an area that we have been discussing in class in greater depth. The first few of these will be solo projects—later on, you will have the option to work in groups if you so choose.

Course Schedule
#

This course schedule is approximate and may need to be changed depending on how quickly we move through material.

#

Date

Lecture

Projects

1

06/07

Course Introduction
Intro to Graphics

Welcome to Processing Out

2

06/10

Attributes
Color

3

06/12

Pixel Traversal
Convolution

Welcome to Processing Due
Image Manipulation Out

4

06/14

Convolution
Interactivity

5

06/17

Strings, Text, Typography, Fonts

Image Manipulation Due
Text Visualization Out

06/19

No Class: Juneteenth Holiday

6

06/21

Object Oriented Programming

7

06/24

Components and Inheritance
Scene Hierarchies

Text Visualization Due
2D Animation Out

8

06/26

Advanced Shapes
Transformations

9

06/28

Interpolation
Non-Linear Motion

10

07/01

3D Shapes
Lighting

2D Animation Due
3D Animation Out

11

07/03

Lighting
Textures

07/05

No Class: Independence Day Holiday

12

07/08

Simulation and Particle Systems
Physical Simulation

3D Animation Due
Simulation Out

13

07/10

Physical Simulation
Cellular Automata

14

07/12

Graphical User Interfaces
Event-Driven Systems

15

07/15

Animation
Timers

Simulation Due
Game Out
Final Project Planning Day

16

07/17

Data Structures and Formats

17

07/19

Collisions
Platforming Mechanics

18

07/22

Intro to Shaders
Student Topic 1

Game Due

19

07/24

Student Topic 2
Possible Tour

20

07/26

Final Presentations

21

07/29

Final Presentations

Changes to the schedule will be announced on EdStem.

Course Policies
#

The university requires me to include certain language in the syllabus. Throughout this section, any paragraphs that are italicized are university-required language.

Mental Health
#

Being in school is a time of change, growth, and adjustment, and in many cases, struggle. All of us benefit from support during times of struggle. You are not alone.

There are many helpful resources available on campus, and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful. If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. You may begin by talking to any of us, and we’ll help you get connected to resources. If you prefer to talk directly to the professionals, the CMHC is available to you at any time.

Religious Holy Days
#

Religion (or lack thereof) is an important part of who we are. If a holy day observed by your religion falls during the semester and you require accommodations due to that, please let me know as soon as possible. In order to guarantee accommodations around big deadlines, I will need notice of at least one week. If you are unable (or forget!) to provide that notice, please contact me anyway in case I can still accommodate you.

A student who is absent from an examination or cannot meet an assignment deadline due to the observance of a religious holy day may take the exam on an alternate day or submit the assignment up to 24 hours late without penalty, ONLY if proper notice of the planned absence has been given. Notice must be given at least 14 days prior to the classes which will be missed. For religious holy days that fall within the first 2 weeks of the semester, notice should be given on the first day of the semester. Notice must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail. Email notification will be accepted if received, but a student submitting email notification must receive email confirmation from the instructor.

Students with Disabilities
#

My policy is to fully support all students with disabilities to the best of my ability. At no time is it required that you disclose the nature of your disability to me, and I will not ask you to do so.

If you are a student with a UT-acknowledged disability, I ask that you meet with me one-on-one to discuss accommodations as soon as you have your accommodation letter in hand. I do ask that you meet with me by the 12th class day so that we can put your accommodations in place as soon as possible.

If you are a student with a disability that has not yet been acknowledged by UT’s Services for Students with Disabilities, I hope that you will be willing to let me know that you need accommodations. I ask that you meet with me to develop a plan for your success this semester.

The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Division of Diversity and Community Engagement, Services for Students with Disabilities at 471-6259, 471-4641 TTY.

Policies on Children in the Classroom
#

Children are always welcome. I understand that if you have childcare responsibilities, you are a special-level of exhausted. Please talk to me if you need help.

Emergency Situations
#

If you experience an emergency situation during the semester, Student Emergency Services is here to help you. They can help in the event of family emergencies, medical or mental health concerns, and interpersonal violence, among other situations. If you experience such an emergency, you may contact them directly through email (studentemergency@austin.utexas.edu) or by phone (512-471-5017), or you may contact one of us and we will assist you with the process.

Harassment Reporting Requirements
#

Senate Bill 212 (SB 212) is a Texas State Law that requires all employees (both faculty and staff) at a public or private post-secondary institution to promptly report any knowledge of any incidents of sexual assault, sexual harassment, dating violence, or stalking “committed by or against a person who was a student enrolled at or an employee of the institution at the time of the incident”. Please note that the instructors and the TAs for this class are mandatory reporters and MUST share with the Title IX office any information about sexual harassment/assault shared with us by a student whether in-person or as part of a journal or other class assignment. Note that a report to the Title IX office does not obligate a victim to take any action, but this type of information CANNOT be kept strictly confidential except when shared with designated confidential employees. A confidential employee is someone a student can go to and talk about a Title IX matter without triggering that employee to have to report the situation to have it automatically investigated. If you would like to speak with someone who can provide support or remedies without making an official report to the university, please email advocate@austin.utexas.edu. For more information about reporting options and resources, visit http://www.titleix.utexas.edu/, contact the Title IX Office via email at titleix@austin.utexas.edu, or call 512-471-0419.

Academic Integrity
#

See the section on collaboration and cheating for details on what forms of collaboration are allowed in this class and the rules around using AI tools.

Students who violate University rules on academic misconduct are subject to the student conduct process. A student found responsible for academic misconduct may be assigned both a status sanction and a grade impact for the course. The grade impact could range from a zero on the assignment in question up to a failing grade in the course. A status sanction can include a written warning, probation, deferred suspension, or dismissal from the University. To learn more about academic integrity standards, tips for avoiding a potential academic misconduct violation, and the overall conduct process, please visit the Student Conduct and Academic Integrity website.

The use of artificial intelligence tools (such as ChatGPT) in this class shall be permitted on a limited basis. You will be informed as to the assignments for which AI may be utilized. You are also welcome to seek my prior-approval to use AI writing tools on any assignment. In either instance, AI writing tools should be used with caution and proper citation, as the use of AI should be properly attributed. Using AI writing tools without my permission or authorization, or failing to properly cite AI even where permitted, shall constitute a violation of UT Austin’s Institutional Rules on academic integrity.

Sharing of Course Materials Prohibited
#

The slides, projects, and hands-on activities for this course can be found on the course website. You may share those materials with anyone by providing them a link to the website. (This constitutes explicit, written permission for the purposes of the university-required language below). I ask that you do not share any other material provided to you without receiving written permission from me first. There are a number of reasons why I might not post material publicly, including usage permissions, copyright restrictions, FERPA issues, and concerns about the privacy of students in the class.

No materials used in this class, including, but not limited to, lecture hand-outs, videos, assessments (quizzes, exams, papers, projects, homework assignments), in-class materials, review sheets, and additional problem sets, may be shared online or with anyone outside of the class without my explicit, written permission. Unauthorized sharing of materials may facilitate cheating. The University is aware of the sites used for sharing materials, and any materials found online that are associated with you, or any suspected unauthorized sharing of materials, will be reported to Student Conduct and Academic Integrity in the Office of the Dean of Students. These reports can result in initiation of the student conduct process and include charge(s) for academic misconduct, potentially resulting in sanctions, including a grade impact.

Class recordings are reserved only for students in this class for educational purposes and are protected under FERPA. The recordings should not be shared outside the class in any form. Violation of this restriction by a student could lead to Student Misconduct proceedings.

Evaluation
#

Your grade in this course will come from several categories. Please pay particular attention to the attendance policy, as it interacts with the course grading in a non-typical way.

Category Weight
Projects 50%
Hands-On Assignment 30%
Final Project 10%
Participation 10%

Attendance
#

Since this class is built around in-class assignments and collaboration, attendance is mandatory. For every unwaived absence, your final grade will be reduced by a full letter grade. This means that after four unwaived absences, you are guaranteed to fail the course, no matter how high you’ve been scoring in the class.

Attendance will be evaluated by Canvas quiz. Please bring a device with you to class to take these quizzes.

In order to allow for flexibility, you start the semester with four grace days. Each grace day will excuse one absence. You are not required to contact me to use these grace days—they are automatically applied at the end of the semester.

If you are out of grace days, or would like to avoid using a grace day, you may write an essay exploring a topic covered in class that is particularly interesting to you. Such an essay must:

  • contain your name, EID, and date of class missed

  • be 500 words long, double spaced

  • be submitted within 48 hours of the end of the missed class

  • not be a direct recap of what was covered in that day’s class

These do not need to be about an “academic topic” or discuss technical details. They should demonstrate that you did some reading/watching/listening of information that was not covered in class that day (or that you already knew this information).

Certain class days at the end of the semester cannot be waived—I will announce them in class and provide instructions on what to do if you need to miss them.

Participation
#

Participation will be assessed by the index cards you turn in. These will ask you to write one thing you learned, one question you have, and any other questions or concerns you have about the class. Reasonable responses will result in participation credit.

You may also lose participation points by being excessively off-task or disruptive during class.

By default, attendance quizzes are only under the attendance section and credit will be given for simply answering. However, I reserve the right to make correctness on the attendance quizzes part of the participation score for the course if needed. This change in policy will be announced in class applicable from the date of the announcement.

Hands-On Assignments
#

In each class, you will be given time to work on hands-on assignments, which will give you a chance to think about and practice particular techniques in graphics. These assignments will be due a few hours after lecture to allow time for those who did not finish in class, as well as to allow students who missed class a chance to turn them in.

Projects (Take-Home Assignments)
#

We will have several projects in this class. These are meant to give you a chance to more deeply explore several aspects of graphics. All projects except for the final project will be individual work—the final project will allow for groupwork.

The final project will have the option for work in teams. More details will be announced when the final project is made available.

Project Extra Credit
#

There are extra credit portions of the project. These are intentionally open-ended, require you to do your own study outside of class, and much more difficult than the main part of the assignments. If your goal is to get a good grade in the class, you are much better off trying to do the main part of the assignment well than trying to do the extra credit.

The extra credit is there for those who want to take a deep dive into certain areas of graphics or to expand their skills, and want to use this class as a way to do so. For reference, I attempt to calibrate the extra credit portions to what I would expect a CS major undergrad in graphics to do for a project.

Unless otherwise specified, all extra credit attempts must be written by you. You may use the Processing and Java standard libraries, but no external libraries are allowed.

Late Policy
#

Assignments in the hands-on category must be submitted by the deadline.

Assignments in the take-home category may be submitted late, at a penalty of 15% of the maximum grade of the assignment for every day late, with every fraction of a day counting as a full day.

Assignments submitted after two late days may not be graded until the end of the semester. This will prevent you from knowing your grade, and may affect your eligibility to file regrade requests.

All assignments must be submitted by the last day of class.

Regrade Policy
#

If you believe a grade was in error, you may request a regrade for that assignment. To prevent the instructors from being overwhelmed with regrade requests, there are additional rules that you must follow in order for your request to be considered. Failure to follow these rules may result in your request being ignored or summarily dismissed.

To request a regrade, contact an instructor requesting a regrade. Your request may be in any plain text format (e.g. Markdown, text file, written in the email body, etc.) but do not send formats like PDF or Word documents. The request must contain the following information:

  • Your name

  • Your EID

  • The assignment you are requesting a regrade for

  • Clear evidence that the original grade was in error

Acceptable examples of evidence include:

  • I was told I lost points for not implementing feature X, but the feature is implemented on lines 37-104.

  • The answer key is wrong. It says that A is the correct answer, but if you try to run it, the program crashes. B runs correctly and does what the question asks.

  • My grade on Canvas is 🐮, which is not a valid grade.

Unacceptable examples of evidence include:

  • I acknowledge that my project set your computer on fire when you tried to run it, but I still think I should get partial credit because I really understood what the project was about.

  • I didn’t implement feature Y, but I don’t think it’s worth 10 points.

  • I really need this grade to get into (grad/med/law) school.

Finally, your regrade request must comply with the Four Corners Rule. Everything needed to evaluate the request must be written into the regrade request itself. If you have talked to a staff member and been told to submit a regrade request, we mean that you have brought up a point that should be examined further, not that a regrade request will automatically be approved. Any requests submitted with “instructor told me to submit regrade” may be rejected unless other justifications are also provided.

Collaboration and Cheating
#

In spite of the technological advances of the last 10,000 years, sometimes the best way to learn something is to sit down with someone and just talk about ideas. You are encouraged to take part in this tradition. However, any work you submit for this class must be your own, unless working in a group.

In particular, you may not do any of the following:

  • Copy code from StackOverflow or any other source, unless explicitly approved by the instructor

  • Allow another student to look at your code

  • Talk another student through the implementation of a function

  • Provide solutions for assignments to anyone else

  • Submit attendance for another student, or assist another student in submitting attendance

The above list is not exhaustive.

A general rule (although not a catch-all) for staying on the right side of the rules is to never talk with someone else and work on your code at the same time. If you ever find yourself looking at someone else’s code while programming, you have crossed the line into cheating. If you’re discussing implementation details, both of you should have your computers and writing implements stowed away. After the discussion, wait a little bit (maybe go get a coffee) before continuing to work.

If you are uncertain about whether something is allowed, ask me.

The above rules still apply in group work, except that they now apply to another group’s work instead of another person’s—working with your group members is expected.

The minimum penalty for any student caught cheating is a zero on the assignment, an additional reduction in final grade for the course, and referral to the Dean of Students, who will record the incident and may impose additional penalties. Repeat or flagrant violations may result in failure of the course.

Special Note: Large Language Models
#

In the last few years, large language models (LLMs) have revolutionized what is possible with programming tools. Effective use of these tools is going to be critical to be a successful computational professional in the future.

However, it is still important to be able to understand what you are doing and think outside of using an LLM. After all, if all you can do is plug in a query to ChatGPT and echo what it tells you, you’re already obsolete!

Language model usage is not allowed for hands-on activities.

For all project assignments, including the final project, you may use any of the models above (or others, if you are interested), subject to the following rules:

  1. You may not ask the model to solve the entire project for you in a one-shot fashion.

  2. You must explicitly mark any sections of your code that were AI-generated.

  3. You must download and attach a transcript of any LLM assistance you received: that is, the queries you submitted and the responses you received.

Rule 1 means that you may not use the LLM’s response to a single logical query. That is, if you type a single question in and the response is your entire submission, you have broken this rule. There are of course, ways to skirt around this while not technically having everything be in a single response: you could, for example, ask the LLM to output the first line of the program, wait for you to say “go”, then output the second line, etc. This is still considered a single logical query, and is not allowed.

The intent of rule 1 is to require you to do some thinking as to how you want to break down the problem into smaller pieces and integrate the pieces back up. There is some interpretation involved in trying to follow this rule: as long as you follow rules 2 and 3, I will forgive minor violations of rule 1, though repeated violations even after being warned will be treated as dishonesty.

To help with rule 3, I suggest you download the transcript in Markdown—there are several plugins for Firefox and Chrome that can do this for you—and submit it alongside your submission on Canvas as a ZIP file. If you are using the GPT models, OpenAI has added the ability to permalink conversations—please include one of these links in addition to a full chat log.

Finally, I suggest that you avoid using GitHub’s Copilot or CopilotX due to the nature of their integration with the editor: while it’s possible to follow the rules described above, the fact that these tools do not indicate what the query to the LLM is, and that the response becomes embedded in your program with no special markers, makes it very difficult to stick to the rules involving LLM usage.

Malediction and Miscellaneous
#

This syllabus does not form an immutable contract between the student and instructor. I reserve the right to change the syllabus as needed. Changes to the syllabus will be announced on EdStem in accordance with the announcement policy.

I would like to thank Sarah Abraham for providing materials and the skeleton for this course, as well as excellent discussion on adapting it to the summer environment, and Alison Norman and Devangi Parikh for ideas for this syllabus.

Life is too short to spend uninformed. Let’s learn some stuff.