<commit_before># MART 191 - Creative Coding  |  Spring 2017

### Professor <NAME>

- E-Mail: [<EMAIL>](mailto:<EMAIL>).
- Office: McGill Hall, 224.
- Office Hours: Wed, 12:30PM - 2:00PM (please e-mail to confirm)





## 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.


### Class Discussion Forum
[Course GitHub Repo Issues](https://github.com/Montana-Media-Arts/191_CreativeCoding/issues)

### Homework Wiki

- [Homework](https://github.com/Montana-Media-Arts/191_CreativeCoding/wiki)
- _OR_, click the "wiki tab" up above.

# Resources
The following are resources that you may use to help you with this semester and to complete assignments.

### Books (optional)

These books are not _mandatory_ however, they are useful resources if you feel like you may want a little more support in your new adventure with coding.
- [Make: Getting Started with p5.js: Making Interactive Graphics in JavaScript and Processing](http://amzn.to/1PmztVt) is probably your best bet for now if you are looking for a book.
- If you are interested in some supplemental reading on HTML and CSS, The [HTML & CSS book](http://www.htmlandcssbook.com/) is a nice one.
- Learn the terminal, it is a powerful tool! [Unix for the Beginning Mage](http://unixmages.com/ufbm.pdf)


### Videos

- [Kadenze course](https://www.kadenze.com/courses/introduction-to-programming-for-the-visual-arts-with-p5-js/info)
- [Shiffman Vimeo channel](https://vimeo.com/channels/learningp5js/) -- no ads
- [Shiffman Youtube playlist](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA) -- has ads


### Sites and Forums

- [p5.js reference](http://p5js.org/reference)
- [p5.js forum](http://forum.processing.org/two/)
- [p5.js tutorials](http://p5js.org/tutorials/)
- [Getting Started with p5.js](http://www.amazon.com/Make-Interactive-Graphics-JavaScript-Processing/dp/1457186772) - O'Reilly book
- [Intro to Visual Programming with p5.js](https://www.kadenze.com/courses/introduction-to-programming-for-the-visual-arts-with-p5-js) - online video tutorials (free with signup)


# 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.)


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

This course was first taught in this format by <NAME> in the Fall of 2016.



# Main Topics in the Course

## 1: Introduction and Related Technologies

- What is computational media?
- Programming language discussion
- Open Source Communities
- Command Line
- Text Documents
- Text Editors
- Git Version Control
- GitHub
- markdown (`.md`)
- GitHub Pages

## 2: “Hello World” & The Basics

- p5.js
- “Hello World”
- Remembering of Math
- Variables
- Random-ness
- Conditionals
- Structure
- Functions
- Data types
- Arrays
- Objects

## 3: Advanced Topics

- Data
- Sound
- Video
- Mobile



# Weekly Breakdown
Check here for what we have done, or are going to be doing. 

### 1.1 — Introduction
- Overview of the syllabus.
- 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](https://github.com/ITPNYU/ICM-2015/wiki/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](https://vimeo.com/channels/learningp5js/137979313)
	  - 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?
- macOS & Windows
	- Terminal vs PowerShell
	- Differences in Git
	- Why it does not matter.<commit_msg>added toc to home readme<commit_after># MART 191 - Creative Coding  |  Spring 2017

### Professor <NAME>

- E-Mail: [<EMAIL>](mailto:<EMAIL>).
- Office: McGill Hall, 224.
- Office Hours: Wed, 12:30PM - 2:00PM (please e-mail to confirm)


<!-- TOC -->


## 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.


### Class Discussion Forum
[Course GitHub Repo Issues](https://github.com/Montana-Media-Arts/191_CreativeCoding/issues)

### Homework Wiki

- [Homework](https://github.com/Montana-Media-Arts/191_CreativeCoding/wiki)
- _OR_, click the "wiki tab" up above.

# Resources
The following are resources that you may use to help you with this semester and to complete assignments.

### Books (optional)

These books are not _mandatory_ however, they are useful resources if you feel like you may want a little more support in your new adventure with coding.
- [Make: Getting Started with p5.js: Making Interactive Graphics in JavaScript and Processing](http://amzn.to/1PmztVt) is probably your best bet for now if you are looking for a book.
- If you are interested in some supplemental reading on HTML and CSS, The [HTML & CSS book](http://www.htmlandcssbook.com/) is a nice one.
- Learn the terminal, it is a powerful tool! [Unix for the Beginning Mage](http://unixmages.com/ufbm.pdf)


### Videos

- [Kadenze course](https://www.kadenze.com/courses/introduction-to-programming-for-the-visual-arts-with-p5-js/info)
- [Shiffman Vimeo channel](https://vimeo.com/channels/learningp5js/) -- no ads
- [Shiffman Youtube playlist](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA) -- has ads


### Sites and Forums

- [p5.js reference](http://p5js.org/reference)
- [p5.js forum](http://forum.processing.org/two/)
- [p5.js tutorials](http://p5js.org/tutorials/)
- [Getting Started with p5.js](http://www.amazon.com/Make-Interactive-Graphics-JavaScript-Processing/dp/1457186772) - O'Reilly book
- [Intro to Visual Programming with p5.js](https://www.kadenze.com/courses/introduction-to-programming-for-the-visual-arts-with-p5-js) - online video tutorials (free with signup)


# 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.)


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

This course was first taught in this format by <NAME> in the Fall of 2016.



# Main Topics in the Course

## 1: Introduction and Related Technologies

- What is computational media?
- Programming language discussion
- Open Source Communities
- Command Line
- Text Documents
- Text Editors
- Git Version Control
- GitHub
- markdown (`.md`)
- GitHub Pages

## 2: “Hello World” & The Basics

- p5.js
- “Hello World”
- Remembering of Math
- Variables
- Random-ness
- Conditionals
- Structure
- Functions
- Data types
- Arrays
- Objects

## 3: Advanced Topics

- Data
- Sound
- Video
- Mobile



# Weekly Breakdown
Check here for what we have done, or are going to be doing.

### 1.1 — Introduction
- Overview of the syllabus.
- 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](https://github.com/ITPNYU/ICM-2015/wiki/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](https://vimeo.com/channels/learningp5js/137979313)
	  - 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?
- macOS & Windows
	- Terminal vs PowerShell
	- Differences in Git
	- Why it does not matter.
{'fraction_non_alphanumeric': 0.09530623926731539, 'fraction_numerical': 0.016409082236214463, 'mean_word_length': 3.7999084249084247, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 18, 'lorem ipsum': 0, 'www.': 10, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6041661', 'n_tokens_mistral': 3279, 'n_tokens_neox': 3013, 'n_words': 1270}