Skip to content

ellennickles/code-your-way-s24

Repository files navigation

Code Your Way

ITPG-GT 3007 • Interactive Telecommunications Program (ITP) • NYU Tisch School of the Arts • Spring 2024

*This is a living document and subject to change

Course Information
Meeting Time Mon 9:30am - 12:00pm ET
Location 370 Jay Street Brooklyn • Room 407
Remote Access This is an in-person course, but just in case
1. Log into NYU
2. Zoom meeting
Contact [email protected]
On weekdays I aim to respond within 24 hours between 8:00am - 5:00pm
Student Hours Mon & Thu 1:00pm – 3:00pm
Sign up here for Zoom or in person (near kitchen)
Extra Support Resident office hours (schedule)
The Coding Lab (schedule or drop-in help)
How to ask code-related questions
Quick Links Submit assignments
Assignment responses
Our Miro Board
Our Google Drive folder

Schedule and Assignments

Part 1: Process and Skills

Date Week Assignment
Jan 22 Week 1 Pseudocoding / Looping Animations
Jan 29 Week 2 Debugging / Unpredictability
Feb 5 Week 3 Pair Programming / Iterative Patterns 1
Feb 12 Week 4 Version Control 1 / Iterative Patterns 2
Feb 19 No Class Presidents’ Day
Feb 26 Week 5 Version Control 2 / Parametric Geometries
Mar 4 Week 6 Version Control 3 / Refactoring
Mar 11 Week 7 Version Control 4 / Project Planning
Mar 18 No Class Spring Break

Part 2: Independent Project Development

Date Week Assignment
Mar 25 Week 8 Project Proposals
Apr 1 Weeks 9 Hello World
Apr 8 Week 10 User Testing Round 1
Apr 15 Week 11 Individual Meetings
Apr 22 Week 12 User Testing Round 2
Apr 29 Week 13 Last Chance Workshop
May 6 Week 14 Presentations

Syllabus

Contents

Course Description

This course provides students an opportunity to sharpen their coding skills in several ways: by reviewing fundamental programming concepts, acquiring techniques to systematically develop code-driven projects, and then implementing those to develop an independent project with the structure and support of a classroom learning community.

The first part of the semester consists of weekly exercises to practice strategies for learning new algorithms, writing pseudocode, pair programming, debugging, refactoring, version control, and more. Screen-based code examples for the activities and assignments draw inspiration from the history of creative coding. The second part of the semester shifts to a project development studio format for students to apply these strategies to a self-directed project. This could be an existing idea or one devised during the course.

Ultimately this course aims to empower students to reflect on their process and teach themselves how to program with greater efficiency and independence. It is a direct follow-up to Introduction to Computational Media (ICM) or for anyone interested in advancing their coding practice.

Examples and exercises will be provided in JavaScript using the p5.js library. However, students are welcome to consult the instructor about working with another programming library, framework, or language with which they have interest or prior experience. Prerequisite: ICM or equivalent experience.

Learning Objectives

Upon completion of this course, we will be able to:

  • identify gaps in our understanding about coding concepts for further review and practice;
  • explain techniques to debug and refactor our programs;
  • apply these techniques to troubleshoot and optimize existing or new code;
  • track and store revisions to our programs using a dedicated version control system;
  • compare approaches for designing and developing code-based projects;
  • outline a plan to independently create such a project;
  • integrate any relevant technical concepts and strategies necessary to complete it.

Format

This is a 14-week course that meets once a week in person. Class time is divided into individual and group exercises, studio time, opportunities for project development, sharing assignments, and exchanging feedback. Weekly skill exercises target approaches and techniques for developing projects with code. Studio is multipurpose time to work on assignments (individually or in small groups), to share skills and resources, to review topics, and to conference with the instructor.

Community Guidelines

In keeping with the ITP/IMA Code of Conduct, this course is committed to providing an inclusive, welcoming, and harassment-free space for everyone in our community. Harassment or discrimination in any form will not be tolerated, and this applies to any interactions and content.

Commitment to Diversity and Safer Spaces

We understand the classroom as a space for practicing freedom; where one may challenge psychic, social, and cultural borders and create meaningful artistic expressions. To do so we must acknowledge and embrace the different identities and backgrounds we inhabit. This means that we will use requested pronouns, respect self-identifications, and be mindful of special needs. Disagreement is encouraged and supported, however, our differences affect our conceptualization and experience of reality, and it is extremely important to remember that certain gender, race, sex, and class identities are more privileged while others are undermined and marginalized. Consequently, this makes some people feel more protected or vulnerable during debates and discussions. A collaborative effort between the learners and instructor is needed to create a supportive learning environment. While everyone should feel free to experiment creatively and conceptually, if a class member points out that something you have said or shared with the group is offensive, avoid being defensive; instead approach the discussion as a valuable opportunity for us to grow and learn from one another. Alternatively, if you feel that something said in discussion or included in a piece of work is harmful, you are encouraged to speak with me.

Adapted from voidLab by way of Stalgia Grigg

Communication and Support

Inside of class

During class, we will use our Miro board, a free and online whiteboard with chat functionality to collaborate and share resources.

Outside of class

  • You must check your NYU email for important updates about class.
  • You are welcome to attend Student Hours in person or on Zoom.
  • Use our course website here on GitHub to check the schedule (updated as needed based on our pace and interests), assignments, and links to course materials including resources in Google Drive.

Support

Your success in this class is important to me. We all learn differently and require different kinds of accommodations. If there are aspects of this course that prevent you from learning or exclude you in any way, I invite you to communicate this with me. In addition, if you ever feel that you are struggling with the material or falling behind for other reasons, please reach out to me. We’ll work together to ensure that you have proper support.

Stay in touch

When in doubt, it’s ALWAYS better to contact me sooner rather than later about attendance, assignments, or anything else on your mind.

Assessment and Evaluation

Course assessments take the form of weekly assignments, a final project, and participation and attendance. Check the schedule above for links to the assignments.

Overview of Assignments

We will have weekly assignments that are relevant to material from the previous class, and you should be prepared to share and talk about them in class. It is expected that everyone in our class will create and maintain a blog (or Notion, Google Doc, etc.) for their assignments.

All assignments are required, and unless otherwise stated, are due the night before our class meets, one (1) week after they are assigned. If you anticipate any challenges meeting the assignment deadlines, please reach out to me so that we can consider your options together.

The course culminates with a final independent project. You are expected to push your abilities to produce something that utilizes what you have learned in the course that is useful in some manner to yourself or the world.

Final Course Evaluation

Final course evaluation will be based on participation and attendance, and the completion of all assignments, including the final independent project, according to this breakdown:

  • 30% Participation and attendance
  • 50% Weekly assignments
  • 20% Independent project

This class uses a Pass/Fail grading system. A Pass is equivalent to an A or a B grade, and anything less is considered a Fail.

Policies

Generative AI Tools

The emergence of generative AI tools, such as Open AI's ChatGPT and GitHub's CoPilot, is exciting for creative coders. We can use these tools to brainstorm ideas, to write code snippets or entire solutions for our projects, as well as to debug our programs and explain technical concepts. These tools are increasingly sophisticated, and we should learn how to effectively use them. However, we must use such tools responsibly not just because of their limitations (randomness, bias, incorrect information, privacy, copyrighted material) but also, if you are still new to creating with code, overreliance on AI and without critical reflection can potentially hinder independent thinking, creativity, and dull understanding. Our goal is to learn how to use these tools enhance these, not hinder. To this end we will intentionally experiment with generative AI tools for some assignments and activities, but not all, to meet our course learning objectives. When use of the tool is allowed, it will be explicitly noted in the directions. You are responsible for all parts of an assignment; if an AI tool violates intellectual property laws or contain misinformation or unethical content, it is your responsibility to find and fix the errors before submitting. When you use generative AI tools for any part of your assignment (from idea generation to code generation to program debugging), document how you used it and cite the tool by providing a link to an online chat or include a screenshot or saved file of the tool's output.

Adapted from the NYU Faculty Use of Generative AI in Coursework: Frequently Asked Questions (PDF) and related university resources: Instructor Generative AI Guides and Student Learning with Generative AI

Class participation

This class is highly participatory, and there are many ways to demonstrate your engagement with the course material and with your peers:

  • show up on time with an open mind;
  • contribute to class discussion;
  • ask and answer questions, especially to and from your peers;
  • share your assignments and progress with the class;
  • engage in group exercises with curiosity and enthusiasm;
  • help your peers by sharing your knowledge and experience;
  • attend Student Hours for review and/or enrichment.

Absences

Attendance is mandatory. If you think you will be absent, please contact me before class unless circumstances make this truly impossible. Two (2) unexcused absences are cause for failing the course.

Lateness

You are expected to arrive to class on time and be ready to start at 9:30am ET. An unexcused lateness of ten (10) minutes or more is equivalent to half (1/2) of one unexcused absence. Two (2) late unexcused arrivals will count as one (1) unexcused absence.

Statements

Unless other stated, these statements are adapted from the ITP/IMA Equitable Syllabus Project.

Statement Of Principle

Instructors and learners work together to create a supportive learning environment. The educational experience in the classroom is one that is enhanced by integrating varying perspectives and learning modes brought by all learners.

Academic Integrity

The core of the educational experience at the Tisch School of the Arts is the creation of original academic and artistic work by students for the critical review of faculty members. It is therefore of the utmost importance that students at all times provide their instructors with an accurate sense of their current abilities and knowledge in order to receive appropriate constructive criticism and advice. Any attempt to evade that essential, transparent transaction between instructor and student through plagiarism or cheating is educationally self-defeating and a grave violation of Tisch School of the Arts community standards.

Plagiarism is presenting someone else’s original work as if it were your own. More specifically, plagiarism is to present as your own:

  • a sequence of words quoted without quotation marks
  • a paraphrased passage from another writer’s work
  • ideas, sound recordings, computer data, or images composed or created by someone else
  • content created by ChatGPT or other AI software

[Learners] are expected to build their own work on that of other people, just as professional artists, scholars, and writers do. [Collaboration is highly valued and often necessary to produce great work.] **Giving credit to the creator of the work you are incorporating into your own work is an act of integrity; plagiarism, on the other hand, is a form of fraud. Proper acknowledgment and correct citation constitute the difference. [Learners] should consult with professors about the appropriate use of AI generated elements in artistic projects.

Excerpt adapted from the NYU Tisch School of the Arts Policies and Procedures Handbook

Use of Free and Open Source Materials Including Code

You must cite the source of any material / code you use with the exception of examples specifically provided by the instructor or demonstrated for the course. Please note the following additional expectations and guidelines:

  • Check the license. When using others' code, pay attention to the license under which it has been released, and be certain to fulfill the terms and requirements of those licenses. Descriptions of common licenses, and their requirements, can be found at choosealicense.com. Some licenses may require permission. If you are confused or aren’t sure how to credit code, ask one of the course instructors and make your best good faith effort. Not properly citing code sources is grounds for receiving a 0 on an assignment.
  • Use libraries. The use of general, repurposable libraries is strongly encouraged. The people who developed and contributed these components to the community worked hard, often for no pay; acknowledge them by citing their name and linking to their repository.
  • Be careful. It sometimes happens that an artist places the entire source code for their sketch or artwork online, as a resource from which others can learn. Assignments professors give in new media arts courses are often similar; you may also discover the work of a student in some other class or school, who has posted code for a project which responds to a similar assignment. You should probably avoid this code. At the very least, you should be careful about approaching such code for possible re-use. If it is necessary to do so, it is best to extract components that solve a specific technical problem, rather than those parts which operate to create a poetic experience. Your challenge, if and/or when you work with others' code, is to make it your own. It should be clear that downloading an artwork from someone's p5 account or GitHub and simply changing the colors would be disgracefully lazy. And doing so without proper citation would be outright plagiarism.

Adapted from Dan Shiffman’s Code! Course (Spring 2020) at New York University and Golan Levin’s Interactivity and Computation Course (Fall 2018) at Carnegie Mellon University

Accessibility

It’s crucial for our community to create and uphold learning environments that empower learners of all abilities. I am committed to creating an environment that enables open dialogue about the various temporary and long term needs of all participants for their academic success. Please contact me to discuss possible accommodations that would best support your learning. You may also contact The Moses Center for Student Accessibility at (212) 998-4980 for resources and support.

Counseling and Wellness

Your health and safety are a priority at NYU. Emphasizing the importance of the wellness of each individual within our community, I encourage you to utilize the resources and support services available to you 24 hours a day, 7 days a week via the NYU Wellness Exchange Hotline at (212) 443-9999. Additional support is available over email at [email protected] and within the NYU Wellness Exchange app. Free counseling sessions are provided. For more information, visit the link to the Counseling and Wellness Services (CWS). Please let me know if you need help connecting to these resources.

Title IX

Tisch School of the Arts is dedicated to providing its students with a learning environment that is rigorous, respectful, supportive and nurturing so that they can engage in the free exchange of ideas and commit themselves fully to the study of their discipline. To that end, Tisch is committed to enforcing University policies prohibiting all forms of sexual misconduct as well as discrimination on the basis of sex and gender. Detailed information regarding these policies and the resources that are available to students by visiting this link to Title IX at NYU.

Use of Electronic Devices

Laptops and other electronic devices are essential tools for learning and interaction in classrooms. However, they can create distractions that hinder students' ability to actively participate and engage. Please be mindful of the ways in which these devices can affect the learning environment.

Activities not related to the class, such as recreational use of the internet, including all social media websites, email and instant messaging, game playing, and work for other classes, are not permitted. This includes recreational use of phones, music players, video game systems. Such activities are disrespectful to the instructor and distracting to others. Your devices should always be closed whenever someone is presenting.

Land Acknowledgement

We are gathered on the unceded land of the Lenape and Canarsie peoples and acknowledge the Lenape and Canarsie communities, their elders both past and present, as well as future generations.

Excerpt from the ITP/IMA Code of Conduct Community Statement

About

Course Information for Code Your Way • NYU ITP • Spring 2024

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published