Programming for Artists

Syllabus

Course Description

This course introduces the use of the computers and programming to create art. It assumes minimal prior experience in programming, and asks for only a little math (If you remember some algebra and trigonometry you’ll be ahead of the curve). Programming for Artists will be highly practice/project based. We will be doing a lot of in-class work and exercises. In addition we will take some time to become acquainted to the worlds and histories of computer science, computer art, net art, generative art, etc for inspiration, and so that we can contextualize our work in the larger computational milieu. We will be introduced to various programming languages, but all work and projects will be done in Processing (processing.org). This class will not make you a computer scientist, but if you apply yourself with interest and enthusiasm, you will start on your way to becoming a programmer.

Objectives

Students taking this course will:

  • Practice the basics of programming languages and structure.
  • Develop and implement software projects.
  • Implement basic object-oriented programming techniques.
  • Practice professional programming best-practices and documentation.
  • Gain a proficiency in Processing and Java programming languages.
  • Harness concepts of computational aesthetics in artmaking.
  • Interface custom code with existing APIs and libraries.
  • Apply basic trigonometry and linear algebra to graphics and interactive programming.
  • Survey past and contemporary computational art.
  • Analyze, deconstruct and build potential solutions for projects/problems.Course Components

As a student in this class, you are expected to:

  • Attend every class and being attentive and enthusiastic!
  • Work on programming exercises and activities in class.
  • Work on programming projects and assignments in and out of class.
  • Turn in your work on time via your page on the wiki.
  • Read, watch videos and engage in discussion about computer art in and out of class
Topical Course Outline
    Week 1 → Introduction
  • What is programming?
  • Code and Computer Graphics
  • What is Processing?
  • The Processing environment
    Week 2 → The basics
  • Values, Types
  • Operators, Variables
  • Expressions
  • Program Structure & Flow, Conditionals & Loops
    Week 3 → Building on the basics Part 1
  • Functions
  • Objects, Classes, Constructors
    Week 4 → Building on the basics Part 2
  • Arrays
    Week 5 → Building on the basics Part 3
  • Algorithms
  • Debugging
    Week 6 → Techniques
  • Libraries
  • [MIDTERM EXAM]
  • Project 1 Proposals
    Week 7 → Techniques
  • Math, Trigonometry
  • 3DWeek 8 → Techniques
  • Pixels, Images, Video
    Week 9 → [SPRING BREAK]
    Week 10 → Techniques
  • Text manipultaion, Data input
    Week 11 → Techniques
  • Sound
  • Exporting
    Week 12 → Techniques
  • Java
  • Object Oriented Programming
  • Encapsulation, Inheritance, Polymorphism
  • Final Project Proposals
    Week 13 → Applications
  • Work on Final Project
  • Special Topics
    Week 14 → Applications
  • Work on Final Project
  • Special Topics
    Week 15 → Applications
  • Work on Final Project
  • Special Topics
    Week 16 → Final Considerations
  • Final Critique