NYU | Tandon School of Engineering
Integrated Design & Media

DM-GY 6063 | Creative Coding
Fall 2024, Section B

Important Dates (for this course)


Course Description

This course is an introductory programming class, appropriate for students with no prior programming experience. In this course, students will learn to think concurrently, modularly and critically about the creative potential of software. By its end, students are empowered to write and read code for event-driven, object-oriented, graphical user interfaces like websites, interactive installations, games and others.

Prerequisites

None.

Course Objectives

Students in this course will:


An Outline of the Course

We will meet in person for class once a week. During this time we will cover new topics on different aspects of creative programming through presentations, examples and short coding exercises.

We will also devote class time to review homework assignments and discuss assigned readings.

Some of the other class activities are discussed in detail below.

Assignments

You will have weekly programming homework assignments to further practice and develop the concepts covered in class. These will be simple exercises at first, but will get more substantial as the semester progresses. They won’t necessarily get more difficult, but will gradually become less prescriptive and allow for greater creative flexibility and experimentation.

Assignment submissions will be made through Brightspace.

Readings

Each week you will also read and respond to a short text about programming, technology, and/or social issues involving programming and technology.

The responses will be short, 200-word texts written to express your opinion and feelings about the text and the subject.

Projects

There will be two larger multi-week projects throughout the semester, the first around week 5 and the other around week 11.

The shape, form and content of these projects are largely up to you to define, but the projects should demonstrate significant mastery over the technical concepts discussed in class.

You will be responsible for keeping a blog that documents progress of the project, and for presenting the final version of your project in class.

Participation

After each class, students will submit a short reaction text via Brigthspace, detailing any questions, or summarizing what they learned in the class. These are always due on the day after class.

Grading

The grade for this course will be determined according to the following:

Activity % of Final Grade
Weekly Programming Assignments 30%
Weekly Reading Responses 15%
Weekly Participation Responses 5%
Midterm Project 20%
Final Project 30%

Letter grades for the entire course will be assigned as follows:

Letter Grade Points Overall Percent
A 4.00 90% - 100%
B+ 3.33 85% - 89.99%
B 3.00 80% - 84.99%
C+ 2.33 75% - 79.99%
C 2.00 70% - 74.99%
D+ 1.33 65% - 69.99%
D 1.00 60% - 64.99%
F 0.00 0% - 59.99%

Course Schedule (subject to change)

Week 01 (2024/09/09)

Week 02 (2024/09/16)

Week 03 (2024/09/23)

Week 04 (2024/09/30)

Week 05 (2024/10/07)

Week 06 (2024/10/15)

Week 07 (2024/10/21)

Week 08 (2024/10/28)

Week 09 (2024/11/04)

Week 10 (2024/11/11)

Week 11 (2024/11/18)

Week 12 (2024/11/25)

Week 13 (2024/12/02)

Week 14 (2024/12/09)

Week 15 (2024/12/16)


Expectations for Work Outside the Classroom

Students should expect to spend roughly 6 hours each week on supplemental work in this course. This may include reading assignments, homework assignments, writing assignments, research, studying, etc.

Office Hours

I will be available for 2 hours a week to answer questions, help with assignments, chat about creative code, etc. These will be in the IDM Grad Lab (Room 325A) on Mondays and Tuesdays, by appointment.

These are not mandatory. If you have questions or need help with some aspect of the material, but are unable to attend these, send me an email and we’ll find a time to meet.

Required Materials

Textbooks

There are no required books for class. Additional reading materials will be distributed throughout the semester.

Optional Textbooks

These books are excellent companions for the materials we’ll be covering:

Resources


Course Policies

Attendance

You are expected to attend all class sessions. Absences should be communicated ahead of time so we can make sure all materials from class are made available in a timely manner. If you need to miss multiple classes due to an emergency, please email the Office of Advocacy, Compliance and Student Affairs: eng.studentadvocate@nyu.edu.

Late Assignments

Let me know if you will be late with an assignment. You can always submit assignments late. Don’t abuse this. If you wait to do a lot of assignments together towards the end of the semester, they will most likely lack in quality, and you will have missed the opportunity to improve them gradually through weekly feedbacks.

“Incomplete” Grade

Under certain dire and unforeseen circumstances, like a critical emergency, a student may request an Incomplete/I grade. Faculty does not have the ability to give a grade of Incomplete without prior approval from the Office of Student Advocacy.

It is therefore the student’s responsibility to contact the student advocate and describe their circumstance requesting an incomplete. If this is granted, the advocate will reach out to the faculty member, who will work with the student to develop a detailed plan for completion which includes a specific end date.

Tech Etiquette

You’re welcome to use laptops/devices in class to take notes, work on exercises and look up references, but be mindful of other students and close laptops/devices during presentations and discussions. For context: Why I Just Asked My Students To Put Their Laptops Away.

Social Etiquette

These Social Rules from The Recurse Center should be kept in mind during class discussions, presentations, critiques:

Also, these observations from a discussion about ethics in tech are a helpful reminder:

“There is a general rule for comedy and art: always punch up, never punch down. We let comedians and artists and miscellaneous jesters do outrageous things as long as they obey this rule. You can poke fun at yourself, you can make a joke at the expense of someone with higher social status than you, but if you mock someone with lower status, it’s not cool.”

“If you make a joke, and people get really offended, it’s almost certainly because you violated this rule. People don’t get offended randomly. Explaining that ‘it was just a joke’ doesn’t help; everyone knows what a joke is. The problem is that you used a joke as a means of being an asshole.”

Be sensitive to what your classmates might find offensive, triggering or violent and be graceful and listen carefully when your work gets called out for being offensive, triggering or violent.

Academic Integrity

Violations of academic integrity are considered to be acts of academic dishonesty and include (but are not limited to) cheating, plagiarizing, fabrication, denying other access to information or material and facilitating academic dishonesty, and are subject to the policies and procedures noted in the Student Handbook and within the Course Catalog, including the Student Code of Conduct and the Student Judicial System. Please note that lack of knowledge of citations procedures, for example, is an unacceptable explanation for plagiarism, as is having studied together to produce remarkable similar papers or creative works submitted separately by two students, or recycling work from a previous class.

Please review NYU’s School of Engineering’s academic dishonesty policy in its entirety. Procedures may include, but are not limited to: failing the assignment, failing the course, going in front of an academic judicial council and possible suspension from school. Violations will not be tolerated.

All work for this class must be our own and specific to this semester. Any work recycled from other classes or from another, non-original source will be rejected with serious implications for the student. Plagiarism, knowingly representing the words or ideas of another as one’s own work in any academic exercise, is absolutely unacceptable. Any student who commits plagiarism must re-do the assignment for a grade no higher than a D. In fact, a D is the highest possible course grade for any student who commits plagiarism.

A Special Note on Open Source and “Found Code”

There’s an amount of sharing and re-using that will happen in this course due to the open source nature of the libraries, tools and learning materials we will be using. Plus a lot of assignments will be turned in using github, a platform for sharing code and other content.

Nonetheless, we have to be careful and conscious about the difference between using available tools that help with our learning experience and submitting other people’s work as our own. It’s not hard to find code online that will do things similar to, or exactly alike, the things you will developing for this class. It is NOT ok to use those as part of an assignment or project for this class.

On the other hand, it’s also not hard to find code/libraries/packages/examples that solve specific technical tasks that are part of a larger project or assignment. For example: a library that converts gifs into movies or code for working with different text encodings. These are specific tasks that we aren’t going to solve on our own, so using an open source solution is acceptable and expected.

You are expected to cite any tutorials, examples, libraries or inspiration that you use for our work. Sometimes the authors have a specific way they’d like their work cited (CC licenses), otherwise a name and a link is fine.

TL;DR: Copying assignment code from other sources, using any code from other sources with only slight modifications or using any code from other sources without a reference is plagiarism.

If there are questions about a specific situation, please ask.

A Special Note on LLMs and Large Diffusion Models

This is a class about creative uses of technology, and LLMs and interfaces like ChatGPT, Midjourney, etc definitely have their place in discussions about technology, society and creativity. Being in the environment we are in, it has become impossible to ignore these tools.

Having said that….

You may use AI interfaces to help generate ideas and images as it pertains to the brainstorming or ideation portions of a project and/or to generate images for presentations, as long as proper credit is given.

You may NOT submit any work generated by these interfaces as your own.

Given that this is an introductory course to programming, and we’re all starting fresh, I don’t believe there is any situation that will warrant the use of these tools for generating code. Save that for a future when you might have to write tedious software for parsing/flipping/transforming database entries. There should be an aura of fun to the code you are writing, and a sense of accomplishment in learning how to make computers do unexpected things, that doesn’t justify the use of tools that generate code.

Likewise, writing/response assignments will be short and personal, asking not only for your understanding of the material, but also your thoughts, interpretations, opinions and concerns about certain topics related to art, design, society and technology. Don’t sell yourself short! I want to hear your voice and words regarding these topics.

TL;DR: don’t use LLMs unless it’s for writing specific boring code. This won’t happen until the middle of the semester. Always give credit.

As always, if there are any questions about a specific situation, just ask.


Academic Accommodations

If you are a student with a disability who is requesting accommodations, please contact New York University’s Moses Center for Students with Disabilities at 212-998-4980 or mosescsd@nyu.edu. You must be registered with CSD to receive accommodations. Information about the Moses Center can be found at https://www.nyu.edu/csd. The Moses Center is located at 726 Broadway on the 2nd floor.

If you are experiencing an illness or any other situation that might affect your academic performance in a class, please email the Office of Advocacy, Compliance and Student Affairs: eng.studentadvocate@nyu.edu.

Inclusion

The NYU Tandon School values an inclusive and equitable environment for all our students. I hope to foster a sense of community in this class and consider it a place where individuals of all backgrounds, beliefs, ethnicities, national origins, gender identities, sexual orientations, religious and political affiliations, and abilities will be treated with respect. It is my intent that all students’ learning needs be addressed, and that the diversity that students bring to this class be viewed as a resource, strength and benefit. If this standard is not being upheld, please feel free to speak with me.


Credits

This syllabus has been inspired by previous versions of this course and includes words/ideas by: