-
Notifications
You must be signed in to change notification settings - Fork 6
Syllabus
Creative Coding
NYU Polytechnic School of Engineering: Integrated Digital Media
Fall, 2015 – DM-UY 1133, Section A
Your class meets on:
Mondays and Wednesdays, 2:30PM-4:20PM
In
MAGNET 817
And your instructor is:
R. Luke DuBois
e-mail: dubois@nyu.edu
phone: 646-997-0719
Introduction
Hi there. Creative Coding is an introductory course in software engineering for creative applications. In this course, you will learn to program a computer through a variety of platforms, most notably P5.js, a Javascript dialect of the Processing language. This course will introduce you to a variety of concepts in programming, and how they can be applied creatively to work in a variety of media.
Course Objectives
Students in this course will:
- Understand the basics of creative coding.
- Apply their understanding of digital media to software.
- Learn best practices for designing software within an event-driven, object-oriented, real time framework.
- Experiment with different techniques for user input and output.
- Propose and develop a complete software experience as a final project.
Prerequisites / Software
This class assumes you’ve taken DM-UY 1123 (Visual Foundation Studio). We’ll be doing most of the work in this class in Javascript, using a creative coding framework called P5.js:
In addition, we’ll be looking at other creative coding environments, notably Arduino (http://arduino.cc) and the original Processing language (https://processing.org). We will also be look at server-side programming in NodeJS (https://nodejs.org/en/) as a way to experiment with some things where you need a server.
Texts / Resources
There is no required textbook for this class, but two excellent ones around Creative Coding are:
Processing: A Programming Handbook for Visual Designers and Artists, by Casey Reas and Ben Fry. ISBN: 0262182629.
Nature of Code, by Dan Shiffman. http://natureofcode.com
Code that we create in class (as well as this syllabus) will be published on the class GitHub:
https://github.com/IDMNYU/DM-UY1133-A_CreativeCodingFA15
Assignments and Grades
For this class, there will be weekly homework, a midterm programming exam, and a final project that you will present to the class. The grading breakdown is as follows:
• Everyone needs to show up and participate in class (25%). More than three unexcused absences will lose you a letter grade. • Everyone needs to complete weekly homework, presented in class and published online on the day it is due (40%). • Everyone needs to complete a midterm take-home coding examination (10%). • Everyone needs to create a final project. This project can be an interactive tool, a data visualization exercise, a performance project, or anything else I approve that shows off your creative skills within a software environment you create (25%).
Students With Disabilities
If you are 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 www.nyu.edu/csd. The Moses Center is located at 726 Broadway on the 2nd floor.
Class Schedule
This schedule is subject to change depending on the interests and pace of the class, etc. In addition, a guest speaker or two will come in and talk about their work to the class; which specific class they appear on depends on their scheduling and availability.
Week 1 (9/2): Introduction to the class. Download and install the P5.js editor and Github. Variables and simple data types.
Week 2 (9/9): Math and stochastic behavior. 2D Graphics, Color, and Mouse interactivity.
Week 3 (9/14, 9/16): Conditionals, loops, and algorithm design. Keyboard interactivity. Sprite animation and tweening.
Week 4 (9/21, 9/23): Mapping, filters, and functions. Data Structures, Arrays, and Strings. Working with text and fonts.
Week 5 (9/28, 9/30): Objects and classes. Sound and MIDI. Using external APIs in Javascript.
Week 6 (10/5, 10/7): Arduinos, sensors, and HCI. Serial communication. Introduction to Node.
Week 7 (10/13 -- TUESDAY, 10/14): Modularity and recursion. Visualization and simulation. Midterm assigned.
Week 8 (10/19, 10/21): Image processing. Midterm due.
Week 9 (10/26, 10/28): Computer vision.
Week 10 (11/2, 11/4): Video access and non-linear narrative. Decision trees.
Week 11 (11/9, 11/11): Event handling. Physics simulations and OpenGL.
Week 12 (11/16, 11/18): Complex data structures. Web calls and APIs, and full-stack development.
Week 13 (11/23, 11/25): Databases. Interactive visualization.
Week 14 (11/30, 12/2): Network communication. Collaborative systems.
Week 15 (12/7, 12/9): Final Project Meetings, general debugging, a guest speaker.
Final (12/14): Final Project Presentations.
Enjoy the class!
return Home.