**Reinforcement learning**

- Part 1: Q-learning and exploration
- Part 2: SARSA vs Q-learning
- Part 3: Egocentric learning
- Part 4: Combining egocentric and allocentric

**Control theory**

Operational space control

- Part 1: Forward transformation matrices
- Part 2: Jacobians, velocity, and force
- Part 3: Accounting for mass and gravity
- Part 4: Operation space control
- Part 5: Controlling in the null space
- Part 6: Handling singularities
- Part 7: OSC of a 3-link arm
- Part 8: Force control of task-space orientation
- Deriving a robot’s transform matrices
- Full body obstacle collision avoidance
- Velocity limiting in operational space control

OSC with 6DOF robot and spiking camera

- Part 1: Getting access to the arm through Python
- Part 2: Deriving the Jacobian
- Part 3: Tracking a target using spiking cameras

Inverse kinematics

LQR, iLQR, and related methods

- Linear-Quadratic Regulation for non-linear systems using finite differences
- The iterative Linear Quadratic Regulator algorithm
- Simultaneous perturbation vs finite differences for linear dynamics estimation and control signal optimization

Deep learning

- Deep learning for control using augmented Hessian-free optimization
- Converting your Keras model into a spiking neural network

Likelihood calculus (Stochastic differential operators)

- Part 1: Controlling variability
- Part 2: Neuro-mechanical control using differential stochastic operators
- Part 3: Distributed control of uncertain systems using superpositions of linear operators

Miscellaneous

- Review article – Spiking neural networks take control
- Workshop talk – Methods for scaling neural computation
- Workshop talk – Adaptive neurorobotics using Nengo and the Loihi
- Building models in Mujoco

**Dynamic movement primitives**

- Part 1: The basics
- Part 2: Controlling end-effector trajectories
- Part 3: Rhythmic movements
- Part 4: Avoiding obstacles – update

**Computational Neuroscience**

Modelling

- Building a spiking neural model of adaptive arm control
- Improving neural models by compensating for discrete rather than continuous filter dynamics when simulating on digital systems
- Setting up an arm simulation interface in Nengo 2
- Nengo model – Low pass derivative filter
- Nengo scripting: absolute value

Theory

- Online Goal Babbling – motor learning paper review
- Dynamic primitives of motor behavior – paper review
- The role of phasic dopamine in the basal ganglia
- The basal ganglia for action selection

**Programming**

Python

- Natural policy gradient in TensorFlow
- ABR Jaco2 repo public release!
- ABR Control repo public release!
- Quick calculations with SymPy and Cython
- Using SymPy’s lambdify for generating transform matrices and Jacobians
- Using VREP for simulation of force-controlled models

C++

- Using the same random number generator in C++ and Python
- C++ debugging with GDB and Valgrind quickstart
- Getting function run time in C++ on Linux
- N-dimensional Matrices in C++

Cython

- Part 1: The Basics
- Part 2: Including Eigen
- Part 3: Wrapping C code and passing arrays
- Wrapping MapleSim C code for Python

Visualizations

- Arm visualization with PyGame
- Arm simulation visualization with Matplotlib
- Matplotlib legends for mean and confidence interval plots

Miscellaneous

**Math**