icon | cover | coverY | layout | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transporter-7 |
0 |
|
- DM-UY 1133 D Creative Coding
- 370 Jay Street, Room 308, Brooklyn Campus
- Professor: Katherine Bennett
- Email: [email protected]
- Slack Workspace (Note: you must first JOIN the slack workspace to access it. You can find the link to join in week 1's Schedule or the email I sent)
- openProcessing Workspace (where homework is submitted) You must first join openProcessing. See the email I sent in the beginning of the semester and/or the invite in week 1's on Schedule
- Office Hours: Monday & Wednesday 4-5pm EST, Or by appointment. Message me in Slack to give me a heads up. I can meet briefly before class. Please message me in advance to set up.
- Creative Coding GA is: TBD
Academic Integrity
Accomodations
Assessments
Attendance
Contacting the Professor
Course Objective
Course Requirements & Special Notes
Course Structure
Educational Accessibility Statement
Grading
How to Submit Assignments via GitHub
Important Aspects of this Course
Inclusion
Late Work
Program Goals
Programming Experience
Required Materials
Technology in the Classroom
Using Code Found Elsewhere
Using Generative AI
Syllabus is subject to change at any time. Check back regularly.
This course is an introductory programming class, appropriate for students with no programming experience, who are interested in creating interactivity. At the same time, it's a course for students with programming experience to get experience programming graphic, interactive, dynamic applications. Traditionally, introductory programming teaches algorithmic problem-solving, where a sequence of instructions describe the steps necessary to achieve a desired result. In this course, students are trained to go beyond this sequential thinking - to think concurrently and modularly. By its end, students are empowered to write and read code for creating interactivity including: event-driven creative applications, interactive installations, graphical user interfaces, games and user interfaces. Interactivity will be introduced and discussed throughout.
This course reinforces the IDM Program goals by
• Integrate multiple mediums of image, text, sound, physical, space, and interactivity. (Reinforced)
• Adapt to constantly changing technological paradigms by learning how to learn. Skills acquisition.
• Combine research and studio practice through inquiry and iteration. (Reinforced)
• Collaborate across disciplines.
• Adopt and use professional practices. (Reinforced)
• Integrate Cultural Literacy
• Adapt to constantly changing technological paradigms by learning how to learn. Skills acquisition.
Understand the basics of creative coding in Java & Javascript (Processing/p5.js)
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, including sensors and non-traditional screens.
Propose and develop a complete software experience as a final project.
\
Assessment will occur by reviewing weekly coding assignments & challenges, project milestones, and final projects. The course is cumulative. Assignments are to be completed in the order given, for the best success. Please see the Grading Section for specific grade breakdown, calendar for due dates, and assignments for briefs.
The assignments are your opportunity to put your skills to the test. They're designed to test and deepen your knowledge while giving me valuable information about how you're progressing in the class. Finished is better than perfect. An attempt at them is better than nothing at all. Progress is better than perfect. I am constantly look at your progress and evaluating it.
Please also see Grading, Late Work and Using Code Found Elsewhere.
Students will evaluate their own progressed in a course in two ways: 1) A course evaluation form, which will be developed based on the course’s individual objectives. 2) Students will participate in a self reflection assignment around midterms and at the end of the semester, or as otherwise noted. This written evaluation is worth 15 points and to be turned into me as a separate document.
This is an introductory course to creative coding, code that results in a visual, auditorial and even haptic outputs and forms of expression.
Students that do not have any programming experience will be pushed to learn the basics of programming and will experiment with visual and auditorial outputs and forms of expression. As the semester progresses I expect students to reiterate their knowledge of the basics while exploring visual language and communication.
Students that have programming experience will be pushed to explore the visual language of communication and output. They are expected to experiment and to iterate their work to create work for their portfolio. They are expected to demonstrate a mastery of programming as the semeter progresses. They are expected to push themselves aesthetically and conceptually. The visuals and output are paramount; It is less about the speed of the sorting algorithms or any kind of wizardry of algorithm. Yet, a sophistication and craft of programming is expected.
Email contact about logistics (when, where, how many, etc) ONLY
Talk to me in real-time about issues or problems
If something is up, communicate with me. Do not be shy. Reach out and let's connect. Even if you do not quite have the words, I'm here to help you. I can't help you if I do not know that something is up.
Consult the Github account and Slack for the class at twice a week for up to date information and demo code
Come to class on time and be familiar with the current class topics, and be ready to answer or ask questions and participate in discussions
Submit the weekly Tickets to Leave
Participation is not limited to the assignments that you turn in. Participation also includes not only your presence in class, but your questions, feedback and dialog. Do not fall into the trap of being lazy during class and never vocalizing your presence. Lean in and be present. If you have a question, someone else does too. You vocalizing your questions helps others to do the same.
Be professional at all times in your communication and attitude
Complete all assignments by due date. Turn in your work!
Acquire and keep up with all of the readings. Read all assigned readings before class.
Devote at a minimum 8 hours (average) a week OUTSIDE of class, fulfilling homework assignments, readings and studying concepts covered in class, in order to do average.
Have Desire amounting to Enthusiasm (to Learn and to Explore)
Have Patience, Persistence, and Discipline
Be Creative
Pay attention to Detail & Craft
Have Self-confidence and Pride in your work
Take Risks & be Fearless in your assignments
Don’t be afraid to fail. Don’t let your failures determine you. Rise again. Keep moving.
Attendance is mandatory and will be noted for the entire duration of the class period. If you need to leave (for whatever reason), you are responsible for the material missed. Since there is so much technical, conceptual, and design information to absorb, regular attendance is essential. Unexcused absences will affect your grade. Students are allowed 3 unexcused absences. Yet, they are still responsible for the content they missed.
Beyond 3 unexcused absences, your final overall grade for the course will drop by 2.5 points out of 100 for each additional unexcused absences.
5 unexcused absences is grounds for dismissal from the course.
To have an absence be excused (not counting as one of the 3 permitted absenses, one must speak/communicate with Ms. Deanna Rayment's office (Coordinator of Student Advocacy) [email protected], 646.997.3046). Students are still responsible for the content they missed.
All presentation and critique days are mandatory. Being absent on critique days, affects your grade for that project as well as your participation grade. Critiques can not be made up.
Work is still due on due dates, regardless of whether you are in class or not.
Contact me in advance if you will not be in class. (Slack DIRECT MESSAGE is preferred). Demonstrate time management, communication and respect.
Be on time! Lateness will affect your grade. For every 15 minutes you are late, your participation grade drops.
Material missed is the responsibility of the student to make up. Consult the syllabus. Review the Calendar, the weekly breakout, and the Slack #code_from_class channel. Speak to other classmates in order to find out what was lectured and discussed. It is your responsibility to go over that material independently. Do these things first. It is your responsibility to contact me if you continue to have difficulty with the information.
If you have some extenuating need to be outside of class (special doctor's appointment, religious observations, medical issues, etc etc), please contact Deanna Rayment at ([email protected], 646.997.3046). They are the Coordinator of Student Advocacy and Compliance. They are there to support you. They will communicate with me, as to whether or not your absence is excused. Otherwise, assignments will be counted as late. Regardless of whether or not your absence is excused, you are responsible for the content you've missed. Extensions may be granted for excused absenses.
NYU’s Calendar Policy on Religious Holidays states that members of any religious group may, without penalty, absent themselves from classes when required in compliance with their religious obligations. You must notify me in advance of religious holidays or observances that might coincide with exams, assignments, or class times to schedule mutually acceptable alternatives. Students may also contact [email protected] for assistance."
Slack DIRECT MESSAGE is the preferred initial contact. Otherwise you may email me (katherine.bennett at nyu dot edu), most especially if it is time urgent/sensitive. Direct message is suitable for short questions (to answers that cannot be found in the syllabus), to set up appointments, or to notify me about being late or absent. If it's something time sensitive, do email me.
For matters longer than 5 sentences, please direct message me to make an appointment. This is the proper way to address longer questions, issues, to ask me about an assignment, review a grade you received, or to discuss other matters. If you send me a super long message, I am simply going to respond by asking you to meet with me synchronously to resolve the matter. I will not resolve matters asynchronously. Period.
We will utilize a variety of tools to make this class successful and to create your class projects.
Learning Processing, SECOND EDITION by Daniel Shiffman ISBN-13: 978-0123944436 LP This book is available for purchase in the NYU bookstore. You can check the status of the book at the NYU library here. This book in it's initial edition is available as an online book via here.
Generative Design by Bohnacker, GroB, Laub & Lazzeroni ISBN-13: 978-1616890773 GD. Note: The first edition is in Processing. The second edition is in P5.js. I suggest getting the second edition as it will be a more robost resource for P5.js. Get the book. Do not just download the code.
This book is available for purchase in the NYU bookstore. You can check the status of the book at the NYU library here
A notebook/sketchbook and a pen. At all times. You need a notebook/sketchbook to take notes in and to think through problems/ideas. Bring this to class daily.
Make: Getting Started with P5.js by Lauren McCarthy
P5.js Download the P5.js COMPLETE library
text editor - Brackets, Sublime, TextWrangler, or another favorite of yours. Sublime is my current favorite.
A Github account for yourself- https://github.com/ - email me your handle (not a link to your login or personal setting on github, but simply, your github handle or a link to your account of github).
Slack
Slack Invite
OpenProcessing Invite
OpenProcessing Site
Highly Recommended Texted - Form + Code by Casey Reas and Chandler McWilliams This book is available as an online book here
The above software is free to download.
This is a hybrid course - both lecture and studio. Students will work on individual projects and group collaborations. Work will be completed both inside and outside of the class. Class will be a mix of lectures, class discussion, Show & Tell, workshops/challenges, studio time and critiques. Guest critics may be present.
The course can be broken down into 3 sections throughout the semester: programming basics, Object Oriented Programming (OOP), and advanced topics (automation/behaviors, using addons - JSON, API’s, Arduino, Computer Vision, Sound, etc).
A typical session will aim for the following schedule:
• 12:00 - 12:10 Class Intros & Updates
• 12:10 - 13:30 Demo/Lecture/Workshop/Discussion/Pair Programming Challenge
• 13:30 - 13:50 Presentations & Re-group; Tickets to Leave
Pair programming is a popular way to learn and to work on projects. Two people share one computer and write code together. For the second half of class, an exercise will be given which will be worked on in pairs. The exercise will be due at the end of the class period and presented to class. It is not to be completed individually, nor asynchronously with your partner. On occasions the deadline will be at another point. Yet, the exercise is meant to be worked on together - on one laptop, in one program.
Homework projects will be turned in via OpenProcessing.org. At times, larger assignments homework projects will be turned in via GitHub. GitHub is a web hosting service that supports Git version control. It is more important than your resume, whether you are an artist, engineer or designer. It’s used largerly for software, but can be used for anything. It’s important to become familar with it, develop good habits. See the assigned reading links for more information. • Time Time management is everything. You will need it to have reasonable accomplishments in this class. The material is cumulative. The readings are essential. Writing code is the only way to make progress and to fully synthesize the material. It becomes evident quite quickly. Develop excellent time management. You will need 8 hours outside of class to succeed.
My personal favorite time management tools are KanBan, Ink and Volt Planner (also available in undated), the Pomodoro technique, Self Control
Projects are not always group projects.
It's super easy to find code online. As tempting as this is, I am going to ask that you write your own code for the first 2/3 of the semester. This will help you grasp and retain the fundamentals. It does help to write the code from the book out, line by line. Code that is not written by you can not be submitted as a homework assignment, project or pair programming challenge as your own work. Period.
If you use code from elsewhere (which you will at times), I expect you to site the work and author, as well as to comment each line, as to what each line does programmatically. Do not summarize several lines of code from a high level (ie, TV Guide; ex, "here's where my shape moves"). I expect you to comment each line on a granular level (ex, "My shape's moving additional increment of +1 on the x axis and -2 on the y axis. This moves the shape to the left and down. It moves down more quickly than left."). In addition in these cases, I am also looking for significant modification of the code, for you to enact your own ideas and to experiment heavily. Significant modification means beyond variable name and value changes. It's bending these concepts to your idea, especially graphically. It's not a copy and paste job.
Also, never more than 40% of your code may be supplied from elsewhere. Period.
If you use code from online, whether for inspiration, modification or reference, I expect to see a link in your comments from where you got the code and who wrote it. Otherwise it will be considered as plagiarism, and you will fail the assigment. The code must have a reference, along with URL and be commented out LINE BY LINE.
This also goes for code used by Generative AI, in addition to the requirements below.
Should a student find the need to use AI for their coursework, they are required to: 1. discuss the need and 2. how they used it in a Slack Direct Message to me, including 3. attaching screen shots of the correspondence. 4. They are to comment each line of code to a granular level (see Using Code Found Elsewhere))
Course work submitted without this annotation, discussion, and documentation will be considered in violation of the NYU Student Code of Conduct.
Positive/successful use of AI and generative software (in addition to documenting the process on and sending me a dm) include a collaboration with the AI to further your process or information starting point about a topic. AI should never be used to finalize an assignment or information source. Students are responsible for cross checking the AI, verifying it's claims. Otherwise, they are responsible for the errors and "hallucinations" that the AI generates.
You will need a web browser, finder/windows explorer, and the github for desktop application.
Do the follow these steps for each project:
0. Save your work AND all of the necessary support files (index.html, libraries folder, pictures, media, etc) in a folder that is titled in this manner:
*YourFirstNameYourLastName_Project_1*, etc.
1. Upload this folder to a new repository on your GitHub account titled:
*CreativeCoding_Project_1*
2. Create a new repository on your GitHub account online. The repository should be titled CreativeCoding_Project_1, filling in the number of the exercise. Include the README.md option
3. Under the "Issues" tab, create a new issue. Note what bugs you are having, or where help is needed. Copy and paste the specific code in the comment area. Label the issue accordingly.
4. Go back to the GitHub Desktop app. In the summary field, write what additions you have made to your code in summary. In the description, add greater details, notes, and questions for me.
5. Hit the "sync button" in the upper right hand corner. This uploads your code to your repo page on the Github website.
6. Refresh your browser page of your repo. You should now see your code and files up on your repo
7. As you continue to work on this project, save the code on your desktop, in the folder created in step 0, and have sinced moved to be within the folder created at step 2. After saving each work session's progress, re-visit the Github desktop app to push the changes to your Github repo online. Make sure to fill out the summary and description notes. Do NOT and I repeat, DO NOT, make a new folder within this folder with the weeks editions. IE, you should not have "Week 1 work", "week 2 work", etc. Github tracks your changes and keeps them in history. It's version control! Yay!
Participation, Self-Assessments, In-class Challenges, Study outside of class 15%
Show & Tell Presentation 5%
Sketches 30%
MidTerm Project: (critiqued) 20%
RoundTable Presentation 5%
Final Project Milestone 5% (either early or technical)
Final Project: Choice (critiqued) 20%
Key things to note about grades:
The midterm and final project are meant to be developed over a series of weeks. They are not meant to be completed in one sitting. Students are expected to be able to show the history of developing their project over this series of weeks. Both Github and openProcessing are used to aid in this requirement. Students can get feedback before the final submission by attending the critique sessions in class.
It's also possible to submit work early to see if it is on the correct path. To submit work early, it must be done so with enough time to get the feedback and to enact the feedback (ie, the night before is not enough time). Students must communicate their wish to get advanced feedback to me. It will not be assumed.
Previous students work for both the Sketches and Projects will also be shown in class a day or two after the assignment is announced.
For each project your grade will be assessed upon the following: Principles, Creativity/Thoughtfulness, Craft. Below gives you a sense of the spectrum, giving examples for high, middle and low grades.
Please note: The letter grade of "C" is an average grade. Average is not bad. It means average. Most of us are average, in some way. An average level of work is being done. It does not mean perfection. It means that the work still has room to develop at it's current state. It also means that the work has noticeable achievements and evidence of some acquisition of knowledge. I look at this on an individual basis as well as across the whole class.
Please read examples of each assessment point below to get an idea of my expectations. Note that a "B" is between Satisfactory and Superior.
Superior - A - Your work shows superior evidence and understanding of programming concepts discussed in readings, lectures, and exercises, as you bend them to your will.
Satisfactory - C - Your work shows evidence of concepts and is still developing an understanding of course material. You understand some aspects, but aren’t utilizing them fully. Usage is cursory. Keep pushing your work and review the material to revisit how you can integrate it to your work.
Unexceptable - D/F - Your work shows some evidence of concepts discussed, but lacks key understanding, confidence, robustness and authority. Aspects are lacking. Reviewing course material is required. Ask questions in class. Manage your time better.
Superior - A - Your work demonstrates your personality and a great depth of engagement with the material. It’s extremely evident that you are thinking, exploring, playing and taking risks. You are creating wonderful experiences. Your work is memorable and noteworthy
Satisfactory - C - You are executing your ideas, but more time is needed to consider more deeply about what is conceptually and physically happening. They are barely getting off the ground. Or have large bits that are broken. Do more research and exploring. Play.
Unexceptable - D/F - Your work is so straightforward that it’s flat. It’s barely coded (or badly broken). It’s copied from elsewhere and not expanded upon. Question and Iterate your work to push your it further. Read. Play. Get off the lame track and get inspired.
Superior - A - Your work shows delicate care and consideration to presentation and professionalism. You code is neat, clean, commented and structured. Your friends consider you “Type A.” Your style is evident.
Satisfactory - C - Your work shows the birth of your ideas, but further time and iteration can really push your work to excel. Your code is there, but messy. It can be simplified and made cleaner. What you put into it, is what you get out of it. Practice makes perfect!
Unexceptable - D/F - Your work is rushed and looks like it was done on your train-ride in or the night before. Make your work something you are proud of. You are here to build your portfolio after all, aren’t you?
Superior - A - Always arrives on time; assignments turned in properly and on time; respectful of others in class and gives feedback appropriately.
Satisfactory - C - Usually arrives on time; most assignments turned in on time; listens to others.
Unexceptable - D/F - Often tardy; turns in assignments late; fails to prepare for class; in attentive to instructor or other students
Superior - A - Always contributes appropriately to class discussion; frequently offers to demonstrate technique; shows leadership in group projects.
Satisfactory - C - Usually contributes to class discussion; has demonstrated technique; participates actively in group projects.
Unexceptable - D/F - Does not participate in class discussion; no evidence of technique; fails to contribute adequately to group projects.
Superior - A - Shows an exceptional and growing understanding of technique; builds on previous lessons; accepts critique and makes proper adjustments.
Satisfactory - C - Technique is developing; has shown some ability to build on previous lessons; generally able to accept critique.
Unexceptable - D/F - Little or no development of technique; is unable or unwilling to accept critique; unable to make adjustments.
Work in this course is cumulative. This means that you need the knowledge learning in the previous assignment, to complete the next assignment. The concepts build upon themselves and are used throughout the semester.
An assignment (ie, Sketches & Projects) will be listed on the assignment brief. Challenges are due the day they are assigned and to be submitted during class. Period.
Work that is turned in after class but still on the due date get's 1/3 letter grade deduction. Work that is turned in the same week, get's 2/3 grade deduction. Subsequent submissions get one letter grade deduction for every week that it is late, beyond the first week. The lowest possible grade a late assignment will be given, will be an "F". Deductions are calculated AFTER the initial grade is given.
Regardless, it's MUCH better to turn something in, than to not turn in anything at all. Trust me.
If work is turned in beyond 4 weeks, the work must still meet the requirements for the assignment, or be an attempt in that direction. Work submitted beyond 4 weeks that does not make an attempt to meet the requirements will not be considered and a zero will be given for that assignment.
Assignments that are not submitted will receive a "0". Please realize that a "0" mark is a fantastic way to tank your grade. Getting an F is far better than getting a zero.
If you know in advance your work is going to be late, come talk to me. It can help massively.
A 100-90 Excellent
B 89-80 Very Good/Good
C 79-70 Satisfactory
D 69-63 Poor; Below Average
F 63 & below Unacceptable
The NYU Tandon School of Engineering Grading Policy can be found in the current Course Catalog.
Please respect class time and the contact with me, your professor. Keep your phones on silent otherwise. If you absolutely need to take a call, please excuse yourself from class. The quality of the class depends in large part on the quality of your attention and active participation. In particular, give me and your fellow students the respect deserved. Give your full attention when students are presenting work and while I am going through lectures and demos. Continued use of cell phones or social networking sites during class time are a distraction. Students that are not respectful of class time will be asked to leave class.
I can tell when you are paying attention and when you are not. It's especially frustrating when it's clear that you are having issues with class concepts, materials or information, yet you are not paying attention.
Read Clay Shirky's thoughts on students & laptops in the classroom.
Course material missed is your own responsibility to cover, make-up and address. It is not the Professor’s.
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 your 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. Please use the MLA or Chicago Manual style for citing and documenting source material.
This includes copying code for other sources, using code from other sources with only slight modifications and using code from other sources without a reference.
NYU-Tandon is committed to assuring equal educational opportunity and full participation for all students. The mission of the Office for Students with Disabilities is to provide individuals with learning differences (a.ka. disabilities) the same access to programs and activities as other students. We assist students to maximize their potential while helping them develop and maintain independence.
Students who believe they are eligible for course accommodations under the ADA or Section 504 or have had accommodations please contact New York University’s Moses Center for Students with Disabilities at 212-998-4980 or [email protected]. You must be registered with CSD to receive accommodations. Information about the Moses Center can be found at http://www.nyu.edu/csd. The Moses Center is located at 726 Broadway on the 2nd floor. Do not wait to get the documentation in to me.
Faculty can provide course accommodations/modifications only after receipt of an approved accommodations letter from the Moses Center for Students with Disabilities. Accommodation letters can be provided to qualified students at any time during the semester, but grades earned before the faculty receives the letter cannot be changed.
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, castes and political affiliations, and abilities will be treated with respect. It is my intent that all students’ learning needs be addressed both in and out of class, 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.