Course Number: IM-UH 2318
Credit Hours: 4
Class Location: C3 – 155
Meeting Time: Monday 02:10 – 03:25pm, Wednesday 02:10 – 04:50pm
Professor: Nimrah Syed
Email Address: nimrah.syed@nyu.edu
Office: C3 – 147
Office Hours: By Appointment (Book here)
Prerequisites: Students should have taken at least one of the following courses – Intro to IM (IM-UH 1010), Mashups (IM-UH 2110), Politics of Code (IM-UH 3110), Intro to Computer Science (CS-UH 1001), or request specific instructor approval.
This course counts toward the following NYUAD degree requirements:
Concentrations > Multidisciplinary Concentrations > Interactive Media and Technology
Course Description:
How can we capture the unpredictable evolutionary and emergent properties of nature in software? How can understanding the mathematical principles behind our physical world help us to create digital worlds? And how can implementing these code-based simulations offer insight and perspective on both environmental and human behaviors. This course attempts to address these questions by focusing on the programming strategies and techniques behind computer simulations of natural systems. We will explore a variety of forces and behaviors that occur naturally in our physical world. This includes properties of movement, physics, genetics, and neural networks. For each topic, we will write code to simulate those occurrences in a digital environment. The results will usually be visual in nature and manifested in the form of interactive animated coding sketches.
Learning Outcomes:
CLO 1: Foster an ability to understand events and phenomena in the natural world from a mathematical perspective.
CLO 2: Develop algorithms that simulate physics and other natural systems.
CLO 3: Develop rudimentary artificial intelligence algorithms, namely genetic algorithms.
CLO 4: Create interactive animations with algorithms derived from the natural world.
CLO 5: Gain comfort implementing visual coding sketches with P5.js
Teaching Methodologies:
This is a production-based course. Students will be learning primarily through hands-on experience and iterative experimentation. Classes will move quickly through each topic, first providing a theoretical foundation along with technical instruction, and then encouraging students to learn through play, experimentation, collaboration, and exploration. Individual classes will include lectures, discussions, examples, workshops, group work, and presentations. Outside of the class, students will engage in both individual and group work.
Course Expectations:
Students can expect to understand the mathematical principles behind our physical world and develop algorithms to represent these principles in software. There will also be weekly production assignments that iteratively build upon each other.
Grading Rubrics
Assignments will be graded on the overall quality of work, comprehension of the topic, how well the project is functioning, and individual capacity/ability improvement (are you getting better compared to yourself)
Graded Activities:
Attendance and Participation: 20%
Weekly Assignments: 30%
Midterm: 20%
Final Project: 30%
Grading Calculation:
- A 95+
- A- 90 – 95
- B+ 87 – 90
- B 83 – 87
- B- 80 – 83
- C+ 77 – 80
Weekly Production Assignments:
- 5 pts – Completion
- 5 pts – Quality
- 5 pts – Documentation
- 5 pts – Reading
- Total / 20 pts
Documentation Posts:
- Clear story should be told with pictures, text, code, video, sketches, etc.
- Minus 1pt each day late, not accepted more than 5 days late
Midterm and Final projects:
- 5 pts Technical Implementation – code design, implementation, comments
- 5 pts Creativity
- 5 pts Nature-inspired (generative aspect)
- 5 pts Interaction design (is clear to user what they are controlling, discoverability, use of signifiers, use of cognitive mapping, etc.)
- 5 pts Documentation
- 5 pts Going Above & Beyond
- Total / 30 pts
- Minus 2 pts for each day late, not accepted more than 5 days late
Class Participation:
Class participation will be required during discussions, presentations, project critiques, office hours, and the Fall Semester Final Show.
Assignments:
Every week you will have an assignment, either a coding one or a reading one or both. Each student will maintain a website, documenting their work. All assignments are due before the following class next week. Every production assignment should be presented and posted as a webpage. Each day late is 1 pt off the grade for that assignment (2 pts per day for midterm / final).
Each week lab there’s a “walk-through” element that will be covered in class, which you are expected to do on your own, and an improvisational aspect, where you take the lesson and make something unique and interesting based on the in-class review. We will spend time in each class reviewing your work, and using this as an opportunity to review concepts that are unclear, or investigate solutions to common problems. Expect to be asked to show your work every time we meet. Some classes everyone may demonstrate their work, other classes only a few students may, but always be prepared.
Guidelines for Code Assignments and Projects Documentation (blog posts):
You are expected to contribute to our shared online journal. The purpose of the journal is twofold. First, it is a valuable way for you to communicate to me that you are keeping up with the work in the class. I read the site to see how you are doing. At a minimum, reference to your work is expected, as well as reference to the readings, and thorough documentation of any research. Secondly, the journal is a way to document your work for your own use and that of others.
You must update the journal weekly with the work you have done for class. All weekly assignments, as well as the midterm and final projects, require documentation.
Document your projects thoroughly as you go; don’t put it off until the end. Photos, video, drawings, schematics, and notes are all valuable forms of documentation. Explain the project at the beginning of your documentation, so that people who come to your site from outside this class can understand your work quickly.
Use pictures, drawings, and videos liberally to explain your work. Don’t directly upload videos to WordPress. Use Vimeo, Youtube, or another video hosting site and embed the video in your post.
See here how to embed your P5js sketch directly into your post: https://decodingnature.nyuadim.com/how-to-embed-p5-js-sketch-in-your-blog-post/
Make sure to add link to your code below the embedded sketch.
Don’t overload your notes with code. Code repositories like Github are best for sharing code, rather than blogs, so post your code to a repository and link to it from your blog. When you base your code on someone else’s code, cite the original author and link to their code, just as you would when quoting another author in a paper. If you only changed one part of an existing program, post only the part you changed, and link to the original. Make sure any code you post is well-commented, so you and others can understand what it does.
Always cite the sources of your code, the places you learned techniques from, and the inspirations of your ideas. Copying code or techniques without attribution is plagiarism. Few ideas come out of the blue, and your readers can learn a lot from the sources from which you learned and by which you were inspired. So be generous in sharing your sources.
Good documentation should include a description and illustration of your project. You should include what it looks like, what it does, what the user or participant does in response. When it’s interactive, mention and show what the user does. Your explanation should give enough information that someone who’s never seen the project can understand it.
Guidelines for Reading Reflection WordPress Blog Posts
Throughout the semester there will be readings assigned. You are expected to individually provide a written response critically addressing the reading and documenting it in a blog post on WordPress titled ‘Reading Reflection – Week#’.
- Your weekly reflection should be two paragraphs (about half a page).
- Do not summarize the reading.
- Your assignment is to reflect on the reading. What evidence can you bring to support or conflict with the points made in the reading?
- Is the author biased and why do you think so? Has the reading changed any of your beliefs? How so? Does the reading raise any questions for you? What are they?
- For each reading a discussion will take place in class in small groups. Each student will ask the other students in their group questions and engage each other in critical discussion of the themes of the reading. You should share and discuss your individual responses and opinions on the topic.
Instructions for discussion:
- Be aware if you tend to speak up first and more than others, or if you tend to not speak first or much at all. If you are in the “speak more” category, try to wait before raising your hand to allow quieter people the chance to speak up. If you are in the “speak less” category, consciously make an effort to step out of your comfort zone and speak up. It becomes easier with repetition and time!
- Be empowered to speak up, your voice is valuable!
- Don’t repeat what someone has already said. Offer new ideas or questions.
Attendance:
- Attendance in all classes is mandatory. Be on time and ready to start work at the posted start time.
- Two late arrivals equal one unexcused absence.
- Arriving more than ten minutes late to class will count as an unexcused absence.
- Unexcused absences or habitual lateness will negatively impact your final grade for the class.
- Four or more unexcused absences will result in a failing grade for the class.
- If you know you are going to be late or absent, please email me in advance. If you have an emergency, let me know as soon as you can. To receive an excused absence, you must ask in advance, and receive permission from me.
Participation:
Engaging in the class discussion, and offering advice and input in the class is a major part of your grade. participating in class discussions is helpful for me to get to know you as an individual and keep track of your progress, but most importantly, it provides you and your classmates with the opportunity to share failures, successes, and insights on the work you are doing.
You are expected to show work in class. This includes working prototypes, failed assignments, things that don’t work the way you expect, and so forth. Each week some time is given over to your work, expect to be called on and show something. Don’t be afraid to volunteer to show what you did, or failed to do.
If you do not ask questions, I can only assume you understand the material completely. Asking questions about concepts you do not understand and showing work that did not function as expected is not a sign of failure, it is an opportunity to learn.
Laptops:
Laptop use is fine if you are using your laptop to present in class, or if we’re in the middle of an exercise that makes use of it. Whenever classmates are presenting or we’re in the midst of a class discussion, please keep your laptop closed. The quality of the class depends in large part on your attention and active participation, please respect that and close your lid.
Mobile Phones:
Please put them on vibrate or turn them off before you come to class. If you have an emergency that requires you to answer your phone during class, please tell me ahead of time.
Equipment:
Students should have a laptop.
Required Software:
P5js https://p5js.org/
Major Projects:
Midterm
Final
Resources:
All course videos
Course Book – Nature of Code v.2
p5.js code examples
Other ports
Further Reading
Related Reading and Watching:
Coding Math Video Series
Generative Design with Processing
Mathematics and Physics for Programmers
Computational Beauty of Nature
Academic integrity:
At NYU Abu Dhabi, a commitment to excellence, fairness, honesty, and respect within and outside the classroom is essential to maintaining the integrity of our community. By accepting membership in this community, students, faculty, and staff take responsibility for demonstrating these values in their own conduct and for recognizing and supporting these values in others. In turn, these values create a campus climate that encourages the free exchange of ideas, promotes scholarly excellence through active and creative thought, and allows community members to achieve and be recognized for achieving their highest potential. As part of the NYU global network, NYUAD students are also subject to NYU’s all-school policy on Academic Integrity for Students at NYU. Alleged integrity violations are resolved using NYUAD’s Academic Integrity Procedure.
Moses Center for Student Accessibility (CSA)
New York University is committed to providing equal educational opportunity and participation for students with disabilities. CSA works with students to determine appropriate and reasonable accommodations that support equal access to a world-class education. Confidentiality is of the utmost importance. Disability-related information is never disclosed without student permission. If you have any questions or would like to have further information about the Moses Center, please visit the following link.
Health Resources:
As a University student, you may experience a range of issues that can interfere with your ability to perform academically or impact your daily functioning, such as heightened stress, anxiety, difficulty concentrating, sleep disturbance, strained relationships, grief and loss, personal struggles. If you have any well-being or mental health concerns please visit the Counseling Center on the ground floor of the campus center from 9am-5pm, Monday – Friday, or schedule an appointment to meet with a counselor by calling: 02-628-8100, or emailing: nyuad.healthcenter@nyu.edu . If you require mental health support outside of these hours, call NYU’s Wellness Exchange hotline at 02-628-5555, which is available 24 hours a day, 7 days a week. You can also utilize the Wellness Exchange mobile chat feature, details of which you can find on the student portal. These services are available remotely for students studying outside of the UAE.
Religious Accommodations:
NYU’s Policy on Academic Accommodations for Religious Holidays and Observances states that students may, without penalty, excuse themselves from academic obligations and otherwise receive a reasonable accommodation when required for religious and spiritual holidays and observances. You must notify me in advance of religious holidays or observances that might coincide with exams, assignments, or class times to schedule reasonable alternatives. Students may also contact religiousaccommodations@nyu.edu for assistance.