Professor Mick Grierson
Welcome to Coding 2: Advanced Frameworks. In this course we build on the practical creative programming skills and experience that we developed in Coding 1 and apply them in new contexts. We expand our knowledge of specific programming languages and frameworks so that we can make better choices regarding platforms, software, hardware etc. that reflect creative requirements. We also continue to work with media through programming in ways that are specifically useful in Creative Computing contexts.
The course is divided in to 2-week blocks that focus on specific areas, exploring them in ways that relate to specific languages, platforms, frameworks and approaches. The course is 'Advanced' in terms of the concepts we will engage with, not necessarily the programming approaches that we will use. We will move fast, so you will need your wits about you. You are encouraged to take written notes, especially when you are working on your own to review material covered in class.
The schedule is divided into four 2-week blocks that focus on specific technologies.
Week 1 & 2 - C++
- Introduction to C++ fundamentals: main.cpp, #include, printing to the console, data types, conditionals, loops, functions, preprocessing and compilation.
- Creating and using C++ objects: classes, .h (hpp) .cpp pairs, declaring and defining classes, basic macros.
- Getting started with openFrameworks
- Understanding Pointers
Week 3 & 4 - More C++ and Embedded development
- More on pointers
- Object orientation, inheritence, polymorphism
- Pointers in objects and how you can use them
- Using ARM architectures for embedded systems
- Running OF on ARM
Week 5 & 6 - Python
- Getting started with Python : Python 2 vs 3, printing to the console, import, variables, conditionals, loops, functions, def
- Doing the Python Challenge!!!
- Using help() and DIR()
- Core libs : matplotlib, numpy, pandas, urllib, bs4, gensim, bokeh, flask.
- NLP tools in gensim.
Week 7 & 8 - Python Machine Learning
- Introduction to Image Processing, Batch processing and Data Handling
- Basic Neural Networks by hand - Forward multiply, Forward add, backward pass, calculating derivatives and gradients, numerical gradient, analytic gradient, scaling the gradient to automatically adjust parameters. Back propagation for training Neural Networks.
- Introduction to Tensorflow
Week 9 - Project work
Assessment is by creative project (70%), and completion of in-class assignments (30%).
-
C plus plus documentation https://www.cplusplus.com
-
openframeworks.cc
- Python
https://www.anaconda.com/distribution/
- ML cheatsheet
https://ml-cheatsheet.readthedocs.io/en/latest/
- Maths / Programming Cheat Sheet