Experimenting with Shaders 2019 Course Syllabus

Course Info
Parsons The New School for Design
School of Art, Media, and Technology
PSAM 5600 N, CRN 7776
Spring 2020
Wednesdays 7:00 pm—9:40 pm
Saturday 1/25 10:00 am - 5:00 pm
6 East 16th Street
Room D1206
Justin Bakse

Course Description

In Experimenting with Shaders students will explore the potential of graphics programming with shaders—specialized programs that run on GPUs which have the ability to render graphics extremely fast due to parallel processing. This course will cover the basics of shader programming, GPU graphics pipelines, common shader environments and applications, and mathematics common in shader programming. This class will utilize an experimental format including a required weekend crash-course at the start of the semester and a mix of faculty- and student-led meetings. Students will create a series of one-week exploratory projects followed by an independently proposed long term final project. This will be a demanding technical class, students should have an intermediate level of experience in coding and should be strong in at least one procedural programming language such as Javascript, OpenFrameworks, or C#.

Learning Outcomes

In this course students will:


Part 0—Readings and Prepwork

To be completed prior to the first class

3Blue1Brown—Essence of Linear Algebra

Watch the Essence of Linear Algebra series on 3Blue1Brown’s Youtube channel. This is about 3 hours of content. Don’t worry about getting everything 100%. Just watch for the main concepts.

Making Stuff Look Good in Video Games: Shaders

Making Stuff Look Good is a great YouTube channel about graphics programming in videogames. Watch these videos, and any others that look interesting:

Shaders 101   Shaders 102   Pokemon Case Study   Harthstone Case Study

This is about 1 hour of content. Again, Don’t worry about getting everything 100%. Just watch for the main concepts.

Book of Shaders

Read AND STUDY the published portions of thebookofshaders.com (chapters below). Experiment with the live examples. Explore linked resources. Look up words you don’t know, etc.

Getting Started   Algorithmic Drawing   Generative Designs


GLSL is the shader language used in OpenGL environments. WebGL 1.0 environments use GLSL 1.00.17. The full spec is fairly dense and about 100 pages. It might be worth skimming the whole thing, but in particular you should review these parts: 4.1, 4.3, 4.4, 4.5, 7, 8. Don’t worry about understanding this 100%, you can always come back to the spec if you need later.

OpenGL ES Shading Language Spec

Part 1 — Weekly Challenges: Recreate + Extend

Each of the first six classes will introduce new topics and concepts. At the end of each meeting students will receive a challenge in the form of a working shader program and list of features. Each student should 1) reproduce the example program as closely as possible 2) add additional features to the program to demonstrate understanding of that weeks topics and concepts.


Your weekly challenges will be graded using the following guide. As a general guideline, each challenge should take about 6 hours.

Grading Chart

Part 2 — Independent Topic

In the second half of this class each student will propose a topic for independent study. Each student will then research their topic, build a creative project that showcases what they have learned, and lead a related hands-on workshop for the other students. Students may also include a written process blog or final case-study paper. This can be done in groups with instructor approval.

In total, this project will represent about 40 hours of work outside of class, roughly:

Note: You will present your workshop before you complete your creative project.


This project will be graded based on the successful completion of your project proposal.

Course Outline

Introduction Unit

Lesson Plan Topics
Week 1, January 22 The Paradigm Shift
Crash Course, January 25 Introduction to GLSL + Shader Programming
Week 2, Januray 29 Shaders in WebGL + 2D Techniques
Week 3, February 5 Shaders in Unity + 3D Techniques
Week 4, February 12 Working with Textures
Week 5, February 19 Vertex Shaders or TBA

Independent Study Unit

Lesson Plan Topics
Week 6, February 26 Student Workshops or TBA
Week 7, March 4 Student Workshops
Week 8, March 11 Student Workshops
Week 9, March 18 Spring Break
Week 10, March 25 Student Workshops
Week 11, April 1 Student Workshops
Week 12, April 8 Student Workshops or TBA
Week 13, April 15 Student Workshops or TBA
Week 14, April 26 No Class
Week 15, April 29 No Class
Week 16, May 6 No Class

Assessable Tasks

Students will complete weekly assignments to demonstrate understanding of course material and complete a independently proposed final project. These assignments will be evaluated based on technical, conceptual, and aesthetic exploration. Student participation in class lectures, activities, and workshops will also be reflected in their final grade.

Final Grade Calculation

Resubmitting and Making Up Work

Because of the pace of this class, I strongly discourage resubmitted or make-up assignments. Please make every effort to complete your assignments each week. If you anticipate difficulty for any reason, please speak with me immediately to make a plan.

Class Policies

Required Reading

There is no required textbook for this course. Links to online articles will be provided.

Materials and Supplies

Please bring your laptop, a notebook, a sketchbook, a black pen, a red pen, and a pencil to each class.


I will send official announcements regarding the class via New School email. You should check and read your email frequently and respond promptly.

Office Hours

By appointment. Email to arrange.

Backups and Github

Each student must keep backups of their homework, including source code and images, and be prepared to submit or re-submit this work at any time. I strongly suggest that you host your work on Github to benefit from both versioning and backup. Data loss, even if due to a failure of a class resource such as the sketch blog or a third party service will not be accepted as an excuse for missing work.


In short: attend every class, arrive early, stay late.

We only meet once per week, and new material will be introduced each week. I strongly discourage missing any classes. In accordance with Parson’s attendance policy, if you miss three classes your grade will be reduced and you will likely be asked to withdraw from the class. This includes absences from the first class due to late enrollment. Two late arrivals or early departures will count as one absence. Inappropriate use of a laptop (e.g. browsing social media during critiques or lectures) may result in being marked as absent.

Laptops + Devices

We will spend a good amount of class time working together on coding projects. During work time, computers will be used. However, during lectures, discussion, and critiques computers must be closed. Note-taking can be done on paper. Nothing kills a conversation like a room full of people staring at screens.

Plagiarism, Code, and Open-Source

Code reuse is a complex issue in computer programming. Studying existing code is a key part of the programming process, especially while learning. You often learn best by modifying working examples rather than starting from scratch. We stand on the shoulders of giants; that is a key part of the open-source philosophy.

However, copy+paste makes it easy to use other’s code without understanding it. It is important when using example code that you take the time to read, study, and understand it. In many cases this process can begin with simply retyping code instead of pasting it.

In a professional environment, the best practice is often to reuse existing code as much as possible. When learning however, it is often best to do as much as possible from scratch.

With that in mind, you may use limited amounts of existing code in your homework. However, there is a very important caveat: any code you use, borrow, and/or modify must be labeled as such. If you study code closely but do not directly use any of it, you should still cite the code you studied in your own source. If you follow a tutorial, you should cite it. Every time you use code, copy, or images you didn’t create, document your use in your source code with a comment. If your work uses someone else’s code, copy, or images in a substantial way you should also cite the work when you post your work. You must include the name of the author (even if it is me or a student in this class), the source URL if possible, and you must make clear which lines of code are not yours. If you fail to do this, you will fail the class. It is very, very easy to get this right: if you take a moment’s time to label your work correctly, you will not have a problem. Be diligent and honest.

Divisional and Program Policies


The university provides many resources to help students achieve academic and artistic excellence. These resources include:

In keeping with the university’s policy of providing equal access for students with disabilities, any student with a disability who needs academic accommodations is welcome to meet with me privately. All conversations will be kept confidential. Students requesting any accommodations will also need to contact Student Disability Service (SDS). SDS will conduct an intake and, if appropriate, the Director will provide an academic accommodation notification letter for you to bring to me. At that point, I will review the letter with you and discuss these accommodations in relation to this course.

Making Center

The Making Center is a constellation of shops, labs, and open workspaces that are situated across the New School to help students express their ideas in a variety of materials and methods. We have resources to help support woodworking, metalworking, ceramics and pottery work, photography and film, textiles, printmaking, 3D printing, manual and CNC machining, and more. A staff of technicians and student workers provide expertise and maintain the different shops and labs. Safety is a primary concern, so each area has policies for access, training, and etiquette that students and faculty should be familiar with. Many areas require specific orientations or trainings before access is granted. Detailed information about the resources available, as well as schedules, trainings, and policies can be found at resources.parsons.edu.

Undergraduate Grading

Grade Points Percents Description
A 4.0 96–100% Work of exceptional quality, which often goes beyond the stated goals of the course
A- 3.7 91–95% Work of very high quality
B+ 3.3 86–90% Work of high quality that indicates substantially higher than average abilities
B 3.0 81–85% Very good work that satisfies the goals of the course
B- 2.7 76–80% Good work
C+ 2.3 71–75% Above-average work
C 2.0 66–70% Average work that indicates an understanding of the course material
C- 1.7 61–65% Passing work but below good academic standing
D 1.0 46–60% Below-average work that indicates a student does not fully understand the assignments. Probation level though passing for credit
F 0.0 0–45% Failure, no credit

Satisfactory completion of a course is considered to be a grade of C or higher.

Graduate Grading

Grade Points
A Work of exceptional quality
A- Work of high quality
B+ Very good work
B Good work; satisfies course requirements
B- Below-average work
C+ Less than adequate work
C Well below average work
C- Poor work; lowest possible passing grade
F Failure
GM Grade missing for an individual

Satisfactory completion of a course is considered to be a grade of B or higher.

Grades of D are not used in graduate level courses.

Grade of W

The grade of W may be issued by the Office of the Registrar to a student who officially withdraws from a course within the applicable deadline. There is no academic penalty, but the grade will appear on the student transcript. A grade of W may also be issued by an instructor to a graduate student (except at Parsons and Mannes) who has not completed course requirements nor arranged for an Incomplete.

Grade of Z

The grade of Z is issued by an instructor to a student who has not attended or not completed all required work in a course but did not officially withdraw before the withdrawal deadline. It differs from an “F,” which would indicate that the student technically completed requirements but that the level of work did not qualify for a passing grade.

Grades of Incomplete

The grade of I, or temporary incomplete, may be granted to a student under unusual and extenuating circumstances, such as when the student’s academic life is interrupted by a medical or personal emergency. This mark is not given automatically but only upon the student’s request and at the discretion of the instructor. A Request for Incomplete form must be completed and signed by student and instructor. The time allowed for completion of the work and removal of the “I” mark will be set by the instructor with the following limitations:

Undergraduate students: Work must be completed no later than the seventh week of the following fall semester for spring or summer term incompletes and no later than the seventh week of the following spring semester for fall term incompletes. Grades of “I” not revised in the prescribed time will be recorded as a final grade of “F” by the Registrar’s Office.

Graduate students: Work must be completed no later than one year following the end of the class. Grades of “I” not revised in the prescribed time will be recorded as a final grade of “WF” (for Parsons and Mannes graduate students) or “N” (for all other graduate students) by the Office of the Registrar. The grade of “N” does not affect the GPA but does indicate a permanent incomplete.


Students are responsible for all assignments, even if they are absent. Late assignments, failure to complete the assignments for class discussion and/or critique, and lack of preparedness for in-class discussions, presentations and/or critiques will jeopardize your successful completion of this course.


Class participation is an essential part of class and includes: keeping up with reading, assignments, projects, contributing meaningfully to class discussions, active participation in group work, and coming to class regularly and on time.


Parsons’ attendance guidelines were developed to encourage students’ success in all aspects of their academic programs. Full participation is essential to the successful completion of coursework and enhances the quality of the educational experience for all, particularly in courses where group work is integral; thus, Parsons promotes high levels of attendance. Students are expected to attend classes regularly and promptly and in compliance with the standards stated in the course syllabus.

While attendance is just one aspect of active participation, absence from a significant portion of class time may prevent the successful attainment of course objectives. A significant portion of class time is generally defined as the equivalent of three weeks, or 20%, of class time. Lateness or early departure from class may be recorded by the instructor as one full absence. Students may be asked to withdraw from a course if habitual absenteeism or tardiness has a negative impact on the class environment.

Whether the course is a lecture, seminar or studio, faculty will assess each student’s performance against all of the assessment criteria in determining the student’s final grade.


Use of Canvas may be an important resource for this class. Students should check it for announcements before coming to class each week.


In rare instances, I may be delayed arriving to class. If I have not arrived by the time class is scheduled to start, you must wait a minimum of thirty minutes for my arrival. In the event that I will miss class entirely, a sign will be posted at the classroom indicating your assignment for the next class meeting.

Electronic Devices

The use of electronic devices (phones, tablets, laptops, cameras, etc.) is permitted when the device is being used in relation to the course’s work. All other uses are prohibited in the classroom and devices should be turned off before class starts.

Academic Honesty and Integrity

Compromising your academic integrity may lead to serious consequences, including (but not limited to) one or more of the following: failure of the assignment, failure of the course, academic warning, disciplinary probation, suspension from the university, or dismissal from the university.

Students are responsible for understanding the University’s policy on academic honesty and integrity and must make use of proper citations of sources for writing papers, creating, presenting, and performing their work, taking examinations, and doing research. It is the responsibility of students to learn the procedures specific to their discipline for correctly and appropriately differentiating their own work from that of others. The full text of the policy, including adjudication procedures, is found at http://www.newschool.edu/policies/ Resources regarding what plagiarism is and how to avoid it can be found on the Learning Center’s website: http://www.newschool.edu/university-learning-center/student-resources/

The New School views “academic honesty and integrity” as the duty of every member of an academic community to claim authorship for his or her own work and only for that work, and to recognize the contributions of others accurately and completely. This obligation is fundamental to the integrity of intellectual debate, and creative and academic pursuits. Academic honesty and integrity includes accurate use of quotations, as well as appropriate and explicit citation of sources in instances of paraphrasing and describing ideas, or reporting on research findings or any aspect of the work of others (including that of faculty members and other students). Academic dishonesty results from infractions of this “accurate use”. The standards of academic honesty and integrity, and citation of sources, apply to all forms of academic work, including submissions of drafts of final papers or projects. All members of the University community are expected to conduct themselves in accord with the standards of academic honesty and integrity. Please see the complete policy in the Parsons Catalog.

Intellectual Property Rights