Brain Computation

Course Aim

Students who are interested in brain and artificial intelligence learn approaches to brain computation through a variety of learning algorithms.

Course Description

Learn how supervised, unsupervised, and reinforcement learning, as well as evolutionary computations can help us understand how the brain functions both as modeling frameworks and data analysis methods.
This course is based on an online text book "Brain Computation: A Hands-on Guidebook," which is based on Jupyter notebook with Python codes.
The course will be in a "flipped learning" style; each week, students read a chapter, experiment with sample codes, and read one or more of the reference papers before the class.
During the class of the week, students take turns to present contents of the chapter while running and customizing the codes, present reference papers, and solve exercises.
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.

Course Contents

1 Introduction
2 Computing Neurons
3 Supervised Learning
4 Reinforcement Learning
5 Unsupervised Learning
6 Bayesian Approaches
7 Deep Learning
8 Multiple Agents
9 Learning to Learn
10 Project Presentation


Presentations in the class (40%), reports of the exercises (30%), and presentation of the project (30%).

Prerequisites or Prior Knowledge

Students are assumed to be familiar with programming in Python, as covered in Introduction to Scientific Computing. Basics knowledge in neuroscience, as covered in Basic Neuroscience or Computational Neuroscience, and statistical machine learning, as covered in Introduction to Machine Learning or Statistical Tests, is preferred.


Chris Bishop (2006) Pattern Recognition and Machine Learning. Springer. (
Rich Sutton & Andy Barto (2018) Reinforcement Learning: An Introduction, 2nd edition. MIT Press (
Kenji Doya (2023) Brain Computation: A Hands-on Guidebook (

Reference Books

Ian Goodfellow, Yoshua Bengio & Aaron Courville (2016) Deep Learning. MIT Press (
Jörgen Weibull (1995) Evolutionary Game Theory. MIT Press.
Scientific Python Lectures (