Syllabus for Part 2 of Nature of Code: "Intelligence and Learning" at ITP Spring 2017
This syllabus is very much in progress. I'm drawing inspiration from this Coding Train community list of resources.
- Daniel Shiffman: [email protected]
- Section 1: Tuesdays, 9:00-11:30am
- Section 2: Wednesdays, 9:00-11:30am
- Office Hours
- Sign up for Mailing List
- Resources and References
- Basic familiary with p5.js and Processing.
- Fundamentals of computer programming, equivalent to ICM
- While taking Nature of Code Part 1 is not required, I recommend you familiarize yourself with the following chapters before the first day of class.
- I assume no knowledge whatsoever about AI, machine learning, deep learning and the accompanying math required for the algorithms listed below. After all, I barely know this stuff myself.
- Week 1 Notes
- Week 1 Homework
- Class Intro / Overview
- Algorithms
- Big O notation
- Graphs
- Binary Tree
- Breadth-first Search
- Dijktra's Algorithm
- A* search
- Traveling Salesperson
- plus steering agents!
- Week 2 Notes
- Week 2 Homework
- Search
- Evolutionary Design
- Evolutionary Ecosystem
- Week 3 Notes
- Week 3 Homework
- What is Machine Learning
- What is Supervised Learning
- Classification and Regression
- KNN
- Linear Regression and Gradient Descent
- Week 4 Notes
- Perceptron
- Multi-Layered Perceptron
- inputs and outputs
- Backpropogation
- Training vs. Testing (MNIST data set)
- What is "Deep Learning"?
- Environment Setup
- Week 5 Notes
- Assignment: Project Step 1
- Overview of libraries and frameworks for Deep Learning
- Convolutional Neural Networks for Image Classification (and more)
- Keras and Tensorflow
- Python and Flask
- Flask and p5.js
- Week 6 RNN Notes
- Week 6 Bonus NeuroEvolution Notes
- Recurrent Neural Networks for Sequences (text generation)
- Overview of Reinforcement Learning
- Neuro Evolution (evolving ANN weights)
- Submit assignments by the evening before class to the extent possible.
- Come prepared with questions.
- Put away screens during others' presentations.
- Participate!
- Document!
- Grading:
- 40% Class Participation
- 40% Quality of assignments
- 20% Final project
- For a 2-point class, 2 or more unexcused absences is grounds for failure.