Syllabus

Programming for Visual Artists

Purchase College
Fall 2024
NME 1450
Instructor: Lee Tusman
Date: Thursdays 10:30am - 2:10pm
Classroom: Natural Sciences 1013
Office hours (Lee): Mondays 11am - 1pm (email to set up an appointment)
Office hours (Vanessa): Fridays 12 - 1pm (email to set up an appointment, Zoom or in commuter lounge)

Lee Tusman
lee.tusman@purchase.edu

Learning Assistant: Vanessa Damian-Monsalve
v.damianmonsalve@purchase.edu

Course Description

Using a visual environment that provides immediate feedback, students are taught the basic principles of programming and, by extension, math. Lectures focus on key aspects of programming and how working artists use code creatively in their practice. In this course, math is never the end but rather the means to problem-solve during the creative process.

Learning Goals

Programming for Visual Artists introduces code as a medium to create interactive visual art. We will explore the evolving history of new media and software art. You will be encouraged to push the edges of art into new and unknown territory. We will learn the basics of programming with the JavaScript library p5.js through in-class lectures, demonstrations and exercises. We will study a diverse community of artists and approaches, and we will take an expansive view of how programming can be used as a tool to create new forms of art. Outside of class, students will have weekly readings, video tutorials, writing prompts and programming assignments. The goal is to be able to get to a level of proficiency where code becomes a tool for you to make art and to integrate into your total artistic practice.

Questions

  • How is using programming to make visual art similar and different from other methods and approaches (photography, sculpture, etc.)?
  • What are the tools used to make this art?
  • Who are artists working in this field?
  • What can programming do for art?
  • What are the limitations of using code to make art?

Language

In this course we will be learning p5.js, an open source creative coding environment using the Javascript programming language. It is a tool built on the philosophy and goals of Processing. p5.js is built for and used by a community of artists, designers, educators and students to develop creative and experimental interactive projects that are presented on the web. There are a number of advantages to making this your first programming language. If you have prior coding experience you will still benefit from learning p5.js. More info can be found here.

  • p5.js is free and open source. It works on every modern computer platform.
  • All p5.js code results in a webpage that can live online and be shared with anyone who has a web browser and access to the Internet.
  • Because smartphones now web browsers, your works can be viewed on the phone or any device with a browser
  • There is a large friendly community of people that work in p5.js, which means there are lots of learning resources, an online community for listing and solving problems, and even a number of conferences held around the world and online
  • The language is designed to be friendly for beginners and is well documented.
  • The syntax (structure) is consistent and intuitive.
  • Learning p5.js means you are learning to work in Javascript and can continue on to more advanced work in this area.

Learning Objectives

  • a working understanding of how to program with p5.js to create your own projects
  • the ability to develop an idea in your head, to sketch on paper and in code, and to translate this to software that you write
  • a knowledge of the history of programming to create art, and a solid foundation of artists working past and present in the field
  • the ability to use math and computation to serve your needs in creating interactive artwork in p5.js
  • an understanding of the iterative process of coding by building up and continually refining your programs
  • the ability to work through technical challenges and bugs to solve coding problems

Additional Course Goals

__
__
__
__

Academic Integrity Policy

The Purchase College academic integrity policy explicitly forbids cheating, plagiarism, and other forms of academic dishonesty. Plagiarism is the appropriation or imitation of the language, ideas, and/or thoughts of another person and the representation of them as one’s own original work. Students are responsible for familiarizing themselves with the definition of plagiarism and the acceptable methods of attribution. Violation of any of the above may lead to formal disciplinary action and the following sanctions:

  • Minimum Sanction: Failing grade on the assignment or examination. Maximum Sanction: Expulsion
  • Recommended Sanction (First Offense): Failing grade for the course
  • Recommended Sanction (Second Offense): Expulsion

Students who have any questions or doubts about whether any activity is academically permissible should check with the instructor.

Accessibility Statement

The Office of Disability Resources collaborates directly with students who identify documented disabilities to create accommodation plans, including testing accommodations, in order for students to access course content and validly demonstrate learning. For those students who may require accommodations, please contact the Office of Disability Resources as soon as possible, 914-251-6035, ODR@purchase.edu (Student Services Building, #316A), https://www.purchase.edu/odr.

Mental Health and Well-being

University faculty and staff recognize that mental health and stress can impact college performance and interfere with daily life activities. At Purchase, Counseling & Behavioral Health Services can provide support if you’re struggling with feeling overwhelmed, anxious, depressed, lost, stuck or in a crisis. Please call (914)251-6390 or visit the Counseling Center website  for more information. CBHS services are free and confidential.

We support all students experiencing emergencies. Services include therapy, support groups, stress reduction at the Harbor Center, and other activities.  The Counseling Center in Humanities Lower Level is open M-F, from 9:00a.m.– 5:00p.m. for appointments and walk-up scheduling, or call (914) 251-6390.  The Harbor Center Sanctuary in Fort Awesome is available for stress reduction, mindfulness and meditation training, free drop-in classes and support groups, and relaxation.

Student Contact

All students are expected to conduct themselves in accordance with Purchase College’s Student Code of Conduct.  Any repetitive or disruptive behavior, including but not limited to outbursts, intoxication/drug use, personal or physical threats, damage to property, etc., may result in the professor requesting the student to leave class, contacting University Police, and/or notifying the Office of Community Standards.

Learning Center (Tutoring Support)

All students at Purchase College can take advantage of our tutoring services in the Learning Center and the Einstein Corner. These are free, 45-minute, peer-to-peer tutoring sessions in a variety of subjects and in writing across the disciplines. Sessions can happen in person or through the Online Writing Lab up to 3x/week. The OWL allows students to submit a paper draft and get written feedback by email within 48 business hours. We strongly recommend face-to-face meetings for first-year students and multilingual writers. I encourage you to take advantage of this service to help you excel in this class, as well as your other courses. Please visit the Learning Center and Einstein Corner websites for more information.

Classroom/Studio expectations

  • Please be on time, listen actively, and participate in class discussion and activities.
  • Please put cell phones in ‘sleep’ mode at the start of class. If you need such devices for personal obligations, please take a break and leave the classroom.
  • Laptops may be used in class for note taking and coding only. During class, don’t check social media, do homework for other classes, buy things, etc. Stay engaged in the class!

Course Requirements

  • Attendance and punctuality are expected for every class.
  • Attendance will be taken at every class.
  • Your presence is vital for participation in varied learning activities and small-group work.
  • You are allowed 1 unexcused absences.
  • Additional unexcused absences may affect your grade.
  • Late arrivals or early departures may be counted as absences.
  • If you are sick, don’t come to class. Get in touch with the professor.
  • If you miss class, it is your responsibility to find out from classmates what you missed and submit assignments on time.

Learning programming is a cumulative effort. Each class builds on what you have learned in previous classes. Missing class can substantially set you back in this process. Therefore, it is important that you attend every class.

Homework and Projects

  • Submit your work on time for full credit
  • To receive an extension, consult with the instructor
  • All work needs to be accompanied by a file with title, Description, Link, and Screenshots. There may be other requirements as well.
  • Smaller homework projects lead up to completion of larger projects

This is an upper level course and students are expected to be extremely self-directed. This is a 4 credit class with 12 hours of outside class work per week.

This class REQUIRES collaboration!

Coding can be difficult, and struggling with the material is part of the learning process. Students are allowed to collaborate to learn from each other. Do not collaborate in order to simply find out a solution to a project. Each participant should contribute approximately equally, and what you turn in should be your own. Copying a solution from another student, even if you change a few minor things such as variable names, is not a collaboration. You may help someone learn something, but you can not tell them what to code. If you have questions about collaboration or academic integrity, get in touch with me via email, talk with me before or after class, or come to office hours.

Notes from Nick Montfort

…people do not typically struggle to learn how to program because programming is a technical or mathematical practice. The main difficulty, instead, comes when people expect to be informed and to learn only by listening, watching, and taking some notes. Some people are under the impression that they can learn about programming simply by paying attention in class, reading a book, and perhaps having a discussion now and then….Programming is a practice, and it takes practice. Like learning how to drive a car or play a musical instrument or participate in a sport, the learner who does not do the activity - who does not undertake the practice - is not going to succeed. ….So more than anything else: drive the car, play the instrument, and play the sport by actually programming the computer, often and like you mean it.

Montfort, Nick. Exploratory Programming for the Arts and Humanities, 2nd edition, The MIT Press, 2021. Page 335, accessed 2024-01-21

University and Classroom Policies and Rules

Official Purchase College Academic Integrity Policy

The Purchase College academic integrity policy, purchase.edu/live/blurbs/840-academic-and-professional-integrity, explicitly forbids cheating, plagiarism, and other forms of academic dishonesty. Plagiarism is the appropriation or imitation of the language, ideas, and/or thoughts of another person and the representation of them as one’s own original work. Students are responsible for familiarizing themselves with the definition of plagiarism and the acceptable methods of attribution.

Violation of any of the above may lead to formal disciplinary action and the following sanctions:

  • Minimum Sanction: Failing grade on the assignment or examination. Maximum Sanction: Expulsion
  • Recommended Sanction (First Offense): Failing grade for the course
  • Recommended Sanction (Second Offense): Expulsion

Students who have any questions or doubts about whether any activity is academically permissible should check with the instructor.

Plagiarism and cheating are taken seriously. You will be held accountable for Purchase’s Student Code of Conduct for Academic Integrity.

Tentative Nature of syllabus

If needed, this syllabus and the course outline may be revised to better suit the class. Students are responbile for keeping up with any changes distributed via email or in class. The most up to date syllabus will always be up to date on the class site.

Lee’s values

We are all learners and educators. I’m looking forward to learning from you as much as I hope to share my own knowledge. Your experience and participation is valid and necessary. I am not the sole source of information. You are responsible for and encouraged to be in charge of your own education. Leap forth into areas of interest. Teach with and learn from others.

Please hold me accountable and point out areas that need to be improved.

  • Help each other out. Ask lots of questions of me and your fellow students.
  • Learning to program is failure followed by success.
  • If you are feeling left behind, stuck, or frustrated in any way, please let me know immediately. I am here to help.
  • Sleep enough hours. Good sleep will get you through college, reduce stress, help you do well in class, and feel better.

Statement of Values and Code of Conduct

with acknowldegement and thanks, adapted from Everest Pipkin

It is my intent to lead a course that serves students from diverse backgrounds and perspectives, and that our varied life experiences may enter the classroom as a resource, strength and benefit. I will address you by your name and pronouns and make arrangements to address disabilities or religious needs.

Free exchange of ideas and critique is encouraged and expected but I will not tolerate harassment, including threats of violence, deliberate intimidation, unwelcome sexual attention, and offensive comments related to gender identity and expression, sexual orientation, race, ethnicity, language, neuro-type, size, ability, class, religion, culture, subculture, political opinion, age, skill level, occupation, or background. During class discussion and critique we aim to speak and to listen, be mindful and generous in our interactions, and make everyone feel heard.

Expectations of Professor

I will be accessible to you in class, office hours, and online. I will respond promptly within 24 hours during the schoolweek to any questions and can clarify anything from our class.

I will use your preferred name and pronouns and treat you with respect.

If you come to me with a request or feedback I will listen and give my full consideration.

If you have a concern or an emergency I will help you to services and support.

I will give prompt and clear feedback to you on your progress in class at set points in the semester and any time you make a request via email.

When asking questions it is helpful for you to post a minimal version along with what you expected and what you are getting. For non-code questions you can email me directly or speak to me in class or at office hours. It can take me up to 24 hours to respond to emails, and longer on weekends or at the end of semesters.

Tips

  • Start your homework early, do it in a quiet place, and minimize distractions. Expect 8 hours of work outside class per week.
  • Stay on top of your work. It will be hard to recover if you fall behind.

Grades

  • 50% weekly homework assignments (weeks 1-10)
  • 20% Final Assignment (weeks 11-14)
  • 10% Artist Presentation
  • 20% Participation and attendance, and preparedness

A 93 - 100
A- 90 - 91
B+ 87 - 89
B 83 - 86
B- 80 - 82
C+ 77 - 79
C 73 - 76
C- 70 - 72
D+ 67 - 69
D 60 - 66
F 59 and below

(Participation includes asking or answering questions in class, participating in office hours or co-teaching others, assisting in group work and conversations, participating in online forum, and in other ways.)

Dates

Last day to withdraw from full-term courses: Monday, October 28.

Advising Week: Monday, November 4 - Friday, November 8.

Thankgsiving break: Wed Nov 27 - Sun Dec 1

Final exam week: Dec 9 - 13.

Schedule

Week 1 - Introduction

  • An intro to Procedural Art and programming art
  • Activity: Algorithmic Art without a computer
  • Hello World
  • p5.js
  • coordinates
  • shapes
  • color
  • homework
  • resources

Week 2 - Variables and Conditionals

  • warmup: portraits
  • flash presentations
  • variables
  • errors / debugging
  • conditionals
  • homework

Week 3 - Loops and Translation

  • warmup
  • check-in
  • looping
  • rollovers
  • bouncing ball

Week 4 - Media

  • more rollovers
  • images
  • reading discussion
  • hw part 1: make a drawing tool

Week 5 - Functions, Arguments, Fonts

  • part 1 drawing assignment due
  • KidPix
  • warmup: NoPaint
  • functions
  • save
  • studio time

Week 6 - Arrays

  • drawing software due
  • warmups: loops in loops
  • review art software
  • web-based artists
  • arrays
  • 1-on-1s

Week 7 - Camera and Pixel Array

  • project reviews
  • check-ins
  • fonts
  • workshop on 10 print CHR$(205.5+RND(1)); : GOTO 10
  • nested for-loops
  • pixel array

Week 8 - More pixel array + sound

  • 1-on-1s
  • Exquisite Corpse
  • review grid-based works
  • camera
  • sound

Week 9 - Video, computational poetry

  • hw due: experimental camera project
  • timers
  • 1-on-1s
  • workshop: generative music maker
  • computational poetry

Week 10 - Autonomous Drawing Agents

  • hw due: computational poetry
  • warmup: fake concert posters
  • Classes and Objects
  • autonomous drawing agents

Week 11 - Game Engines

  • hw: autonomous drawing object - part 1 due
  • classes and objects review
  • interactivity
  • classic arcade games
  • artists working with game engines

Week 12 - Online Art Today

  • warmup: frogger
  • p5.js ecosystem, libraries
  • Online artists
  • online art exhibits virtual field trips
  • tweet / code ‘golf’
  • assign final projects

Week 13 - BREAK

Week 14 - Beyond the (p5) canvas

  • review goals
  • Processing vs p5.js
  • IDEs
  • p5.js and the browser
  • More web-based artworks
  • 3d space and WebGL
  • studio time
  • more 1-on-1s

Week 15 - Final Presentations