jfunky / ccny-programming-sp2020

Programming for Artists Spring 2020

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Programming for Artists

The City College of New York
Electronic Design and Multimedia Art
Spring 2020
Wednesdays 6:15-9:05pm
Comp Goeth CG121 / Zoom (updated)

--

Professor Jasmine Soltani (she/her)
Office hours: Please email me to schedule
Contact: jsoltani@ccny.cuny.edu

--

Course Description

This course is an introduction to computer programming for art and design, appropriate for students with little or no prior experience. This course will cover programming concepts, such as variables, data types, functions, and algorithmic problem-solving using P5.js, an open-source programming framework designed for building creative applications for the web. We will explore computation in relation to various media, such as animation, image and video processing, sound, and games, as well as artists and artworks in this realm. The course will cover a variety of techniques that students will use to build self-driven projects that will be presented and discussed in class.

Learning Objectives

  • Develop technical skills for creative computing in P5.js.
  • Develop personal learning strategies, project planning, troubleshooting, debugging, and problem-solving skills.
  • Learn best practices for designing software within event-driven, object-oriented and functional frameworks.
  • Develop conceptual thinking skills to generate ideas, solve problems, and bring projects from concept to completion.
  • Understand the landscape of creative programming and apply critical thinking skills to analyze their work within historic, aesthetic, social, and technological contexts.

Course Objectives

  • Apply technical skills to weekly creative programming assignments, a midterm project, and a final project.
  • Present and discuss their work.
  • Critically engage with their own work as well as other students, giving thoughtful and appropriate feedback.

Course Structure (updated)

  • Discussion/Crit: Presentation of assignments, questions (on Zoom)
  • Lecture: Technical concepts presented in class (on Zoom), recorded for later viewing
    • Remember that nearly all of the content for the class is already available in text and/or video form and posted to the class schedule. Please refer to the weekly content linked there if you cannot make it to a zoom session. No one will be penalized for missing a zoom session, but please review the content at your own pace and ask me questions.
  • Workshop: Individual exercises / Individual meeting times (on Zoom or Google Hangouts)

How to share

  • Sharing and borrowing code is a normal part of programming. You will learn that you can find solutions to problems, examples, and techniques online. You may want to build off of a project you find, or work a classmate has done. If you are incorporating code you found online into a project, you must cite the source. This is so others looking at your code can find the original reference, and it the polite way to engage with the creative coding community. If you continue to do this kind of work, you will benefit from this habit.
  • If you are building off of a significant amount of code or recreating a project, the same rule applies. It is often a good exercise to recreate or remix pieces, but you must reference the original work.
  • If you are borrowing code from or building off of work a classmate has done, the same rule applies. If it is a significant amount of code, or an idea or concept, you should take the extra step of asking permission before using their work.

How to ask for help

  • Clearly describe what you want to happen, and what is happening instead.
  • Give enough information in order for someone to recreate the problem.
  • Ideally, give a link to the code itself.
  • Utilize the slack to get feedback from others in class! (updated)

Homework submission (updated)

  • Submit your homework via this google form.
  • It's acceptable to use the P5 web editor for all assignments in this class.
  • If you cannot be present when homework for the week is discussed/reviewed (class meeting time), please post a link to the slack for feedback.

Readings

P5.js has an active community with examples, projects, and references documented extensively online. Everything you need to know to pass the course will be presented in class, with open-source references linked whenever possible. Still, I think the following text (in digital or print format) is an invaluable supplement to the class. Corresponding chapters will be noted for the appropriate week.

Additional resources:

Grading & Attendance

Grade Breakdown:

  • Weekly homework assignments: 40%
    • There will be weekly homework assignments consisting of coding & review of material (text, examples, video). Homework should be completed before class so we can discuss it on the day it’s due. See the schedule for assignments and due dates.
    • You have until the end of the course to submit homework for late credit. (updated)
    • There are eight coding assignments each worth 10% of your homework grade or 5% of your overall grade.
    • This rubric will be used for grading projects:
      • A: Project exceeded technical expectations with additional creative effort and experimentation from the student to make it unique (not just a tech demo)
      • B: Project met expectations
      • C: Minimal effort put into project
      • D: Substandard, incomplete, or very late
      • 0: Assignment not turned in
  • Engagement: 25%
    • There will be a lot of ways to show you are engaging with the material from class and your classmates, during class sessions or on slack (updated):
    • Participate in class discussions
    • Help your fellow classmates and give feedback
    • Ask and answer questions
    • Attendance: Zoom classes will be recorded so that students not present during class time can refer to the lesson later. Links will be posted to slack. No one will be penalized for missing or being late to the zoom discussions that replace our class meeting time (updated). Please review the material for the week at your own pace and let me know if you have questions.
  • Midterm Project (due April 1): 10% (updated)
    • The midterm project will be an opportunity to apply concepts from the first half of the course to create a self-defined project. It must be an interactive program that includes appropriate use of objects and functions. Projects will be presented virtually via Zoom, similar to how we have reviewed class homework all semester. If you cannot present, you can post the description of your project to slack and discussion will take place there.
    • Presentations will be a 10-minute long discussion of the work you made. There will be 5 minutes for you to describe your project followed by 5 minutes of feedback from the class. Please include:
      • The goals and motivation for the project you made
      • Creative choices that distinguish your piece, and reflect your own point of view/voice
      • An explanation of how your code works and challenges
      • Code should be commented, formatted, and syntactically correct
  • Final Project (due May 20): 25% (updated)
    • The final project will be an opportunity to conceptualize and complete an engaging project that demonstrates your ability to apply the technical material of the course. You may use P5 and/or other libraries. Projects will be presented virtually via Zoom, similar to how we have reviewed class homework all semester. If you cannot present, you can post the description of your project to slack and discussion will take place there.
    • 5% of your grade will be an assessment of your project proposal and planning that allows you to bring your project to completion.
    • Presentations will be a 10-minute long discussion of the work you made. There will be 5 minutes for you to describe your project followed by 5 minutes of feedback from the class. Please include:
      • The goals and motivation for the project you made
      • Creative choices that distinguish your piece, and reflect your own point of view/voice
      • An explanation of how your code works and challenges
      • Code should be submitted in an appropriate format, as well as commented, organized and syntactically correct

Academic Accomodations

If you are a student with a disability requesting accommodations, please contact The AccessAbility Center/Student Disability Services (AAC/SDS). For more information, included here are links to examples of academic adjustments and auxiliary aids, information about registering with AAC/SDS, and forms.

Health & Wellness

CCNY also provides student health and counseling services. If you have questions about accommodations or health & wellness services, you can also contact Suerynn (Art Advisor) or Katrice (Department Admin in the Art Office).

Class Schedule

About

Programming for Artists Spring 2020


Languages

Language:JavaScript 52.3%Language:HTML 41.3%Language:CSS 6.4%