Adaptive Systems

Adaptive Systems (A101, Term 3)

This course aims to provide common mathematical frameworks for adaptation at different scales and to link them with biological reality.

Course Outline

For this term, KD is writing a book tentatively called "Brain Computation: A Hands-on Guidebook" using Jupyter notebook with Python codes. The course will be in a "flipped learning" style.

Each week, students read a draft chapter and experiment with sample codes before the class.
In the first class of the week, they present what they have learned and raise questions.
In the second class of the week, they 1) present a paper in the reference list, 2) solve exercise problem(s), 3) make a new exercise problem and solve it, or 4) propose revisions in the chapter.

Toward the end of the course, students work on individual or group projects by picking any of the methods introduced in the course and apply that to a problem of their interest.

Students are assumed to be familiar with Python, as covered in the Computational Methods course in Term 1, and basic statistics, as coverd in the Statistical Methods course in Term 2.

Course Schedule

Time: Tuesday and Thursday, 1 to 3 pm
Place: B717

Tue Topic Thu
5/ 8 (travel) 5/10 (travel)
5/15 Introduction 5/17  
5/22 (travel) 5/24 (travel)
5/29 Computing Neurons 5/31 (faculty assembly)
6/ 5 Supervised Learning 6/7  
6/12 Reinforcement Learning 6/14  
6/19 Unsupervised Learning 6/21  
6/26 Bayesian Approaches 6/28  
7/ 3 Deep Learning 7/5  
7/10 (travel) 7/12 (travel)
7/17 (travel) 7/19 (faculty assembly)
7/24 Multiple Agents 7/26 (travel)
7/31 Learning to Learn 8/2  
8/ 7 Project Presentation 8/9  
8/14 (travel) 8/16 (travel)


  • Chris Bishop (2006) Pattern Recognition and Machine Learning. Springer.
  • Rich Sutton & Andy Barto (2017) Reinforcement Learning: An Introduction, 2nd edition. MIT Press (web version)
  • Jörgen Weibull (1995) Evolutionary Game Theory. MIT Press.
  • Python Scientific Lecture Notes (