Skip to content
 
 

Repository files navigation

MART 191 - Creative Coding | Fall 2016

SYLLABUS

Professor Michael Musick

COURSE OVERVIEW

The goal for this course is to begin a journey in which the creative and technical possibilities of the computer becomes an tool in your palate. The goal for this tool, or rather set of tools, is for them to become an extension of you, something you think through, express yourself through, and can contribute to the world through. Ultimately, this course is designed to offer you a deeper understanding of the essential possibilities of computation. The course focuses on the fundamentals of programming the computer (variables, conditionals, iteration, functions, and objects) while also touching on a few advanced topics, and relating this all back to the creative and expressive possibilities of media art. The JavaScript-based 'p5.js' programming framework will be utilized within this class. The course will conclude, with your design, development, and implementation of a final project of your choosing.

Listserv

  • UMT Moodle

p5.js

Homework Wiki

Videos

Books (optional)

Resources

Weekly Breakdown

1.1 -- Introduction

  • What is computational media?
    • What is programming?
    • How can I apply programming to _____________?
    • As a ____________, why would I want or need to write software?
    • Example projects.
  • Programming language discussion
    • General discussion of programming languages
    • History of creative coding frameworks
      • Processing and p5.js (and what's processing.js?): What is p5.js video
      • openframeworks, cinder
      • max/msp dataflow programming
      • How does arduino fit in?
  • p5.js in the context of the browser
    • Landscape of HTML, CSS, and JavaScript
    • Other JS frameworks
    • Server-side vs. client-side
    • What is the difference between p5 and JavaScript?
  • Participating in an open-source community
    • What are git and github?
      • Git is Awesome
    • When should you post to a forum vs. file a github issue?
    • Who makes these things?
    • p5.js working group mailing list
    • Setting up your own GitHub Blog to submit homework
    • Pulling from this GitHub Site https://github.com/michaelmusick/191_CreativeCoding/
  • TODO

1.2 -- "Hello World" & Drawing

2.1 -- Labor Day

2.2 -- The Basics; function() and variables. Animation.

3.1 -- Conditional Statements

3.2 -- Conditional Statements Cont'd

I may have an orientation session during this class period. Stay tuned for more info...

4.1 -- Functions: the basics

  • Calling vs. defining
  • Modularity: video
  • Arguments and parameters

4.2 -- Functions: the hard stuff

5.1 -- Objects and Arrays

  • Review object literals:
    • properties - name/value pairs
    • functions inside objects
    • this keyword
  • What is an array? video tutorial 6.1
    • declaring, intializing
    • numeric indices
    • arrays and for loops: video tutorial 6.2
    • length property

5.2 -- Objects and Arrays

6.1 -- HTML and CSS

(First week of October)

6.2 -- DOM: events and callback function

7.1 -- Data

7.2 -- Data

8.1 -- Data

8.2 -- The big catch up

  • TBA

9.1 -- Sound

9.2 -- What can we do with sound

  • Michael geeks out in his favorite land

10.1 -- Video

(Halloween)

10.2 -- Video cont'd + Final Project Proposals

(November)

  • Possible topics for Final Projects

11 -- Mobile

(Election Week, Michael may also need to be out of the state)

12 -- Final Project Proposals

  • Present and receive feedback on final project proposals.

13.1 -- EXAM

  • EXAM

13.2 -- Go Home

14 -- Beyond p5.js

  • Life beyond p5.js
    • Take Creative Coding into the spring semester courses
    • Other JS libraries?
    • Coding outside the p5 IDE? (local server tutorial)
    • local server tutorial
    • More HTML/CSS
    • What is server side programming for?
    • Processing
    • Open source
      • How do artists make and adapt tools for themselves and their communities, like Processing, p5.js, openFrameworks, etc?
    • How do you get involved with this?

15 -- One on one speed user testing / feedback

(December)

  • This week you will "user test" your project with fellow classmates. You must have some implementation that you can test completed by this time. User testing can mean different things for different projects. For a game, it can mean that the user tries to play it. For an art piece, it could mean showing it to a classmate and asking for them to say what they think it is about or how it made them feel. We'll show projects in a "one on one" / round robin / speed dating-style session. 5 minutes then switch. You cannot not explain your project, just show and let the user try it and give you feedback. Then you can answer questions. User testing schedule will be provided on a wiki.

16.1 --

(The last day of class)

FINALS WEEK -- Final Project Presentations

  • Please add your link to your final project documentation on the wiki.

Mantras

  • "Practice is the best of all instructors." - computation requires practice
  • "An agreeable companion on a journey is as good as a carriage." - look to your classmates for help too
  • "While we stop to think, we often miss our opportunity." - sometimes you need to take a leap of faith
  • "When two do the same thing, it is not the same thing after all." - encourage students with similar ideas
  • "The bow too tensely strung is easily broken." - don't get too stressed out
  • All of these are from Plubius Syrus.(42 B.C.)

Policies

##Evaluation

We will have weekly assignments that are relevant to material from the previous class. These assignments are required and you should be prepared to show/talk about them in class. It is expected that everyone in the class will create and maintain a blog for their assignments.

Attendance is mandatory. Please inform your teacher via email if you are going to miss a class. Two unexcused absences is cause for failing the class. (An unexcused lateness of 10 minutes or more is equivalent to 1/2 an absence.)

This class will be participatory, you are expected to participate in discussions and give feedback to other students both in class and participate with their projects. This (along with attendance) is 40% of your grade.

Class will culminate with final projects. You are expected to push your abilities to produce something that utilizes what you have learned in the class that is useful in some manner to yourself or the world. This will comprise 20% of your grade. Grades will be based primarily on the student’s ability to:

  1. Demonstrate an understanding of the specific characteristics and integrative capabilities of the assigned topic in your own words and code.
  2. Articulate a clear and concise perspective. Cutting and pasting or copying word for word off the Internet will result in loss of points.
  3. Present an organized file/program, as well as blog entry; including proper and punctual delivery of the assignment files.
  4. Demonstrate creativity beyond the expected technical requirements.

IMPORTANT: Assignments handed in after the due date and time will have points deducted for lateness. This will be in addition to any points deducted for content. Those that are uploaded late but within one week of the due date will lose 1 point for lateness.  For those uploaded after that, the number of deducted points will be at the discretion of the faculty.

### Grade Break Down    Grades will be determined according to the following breakdown:

  • Regular Assignments 50%
  • Participation and Attendance 20%
  • Exam 10%
  • Final Project 20%

Letter Break Downs

  • A 95-100
  • A- 90-94
  • B+ 86-89
  • B 83-85
  • B- 80-82
  • C+ 76-79
  • C 73-75
  • C- 70-72
  • D 60-69
  • F 0-59

Academic Misconduct and the Student Conduct Code

All students must practice academic honesty. Academic misconduct is subject to an academic penalty by the course instructor and/or disciplinary sanction by the University. All students need to be familiar with the Student Conduct Code. The Code is available online at http://www.umt.edu/vpsa/policies/student_conduct.php

Changes to the Course

I reserve the right to change the intended content of this course throughout the semester. This may be done to adjust for the speed of the class, to better meet educational goals, or to account for changes in technology.

Attribution

This course is modeled off of NYU ITP's Intro to Computational Media Course. https://github.com/ITPNYU/ICM-2015.

About

The main repository for the University of Montana Creative Coding course in the School of Media Arts

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages