/MSc-Coding-2

Course Materials for MSc Creative Computing Coding 2: Advanced Frameworks

Primary LanguageJupyter Notebook

Coding 2 : Advanced Frameworks

2019-2020

Professor Mick Grierson

Introduction

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.

Schedule:

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 - 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 5 & 6 - 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 7 - More Python Machine Learning

  • Neural Networks for image classification
  • Using Tensorflow to do inference on pre-trained models
  • Exploring CNNs, RNNs, GANs.

Week 8 - Embedded development

  • Using ARM architectures - Raspi for prototyping
  • Python and C++ on ARM architectures
  • Designing autonomous embedded systems
  • Using simple sound and light sensors for interaction

Week 9 - Project work

Assessment

Assessment is by creative project (70%), and completion of in-class assignments (30%).

Useful resources

https://openframeworks.cc

  • Python

https://www.python.org/

https://www.anaconda.com/distribution/

https://www.tensorflow.org/

  • ML cheatsheet

https://ml-cheatsheet.readthedocs.io/en/latest/

  • Maths / Programming Cheat Sheet

https://github.com/Jam3/math-as-code