Course Info

In this course we will start from the neuroscience fundamentals and move up. We will augment the instruction with a lab each week, in which you will play with your very own brain-computer interface, understanding the components involved. Through this process you will get a sense of the technology involved, its potential, and its limits.

Brain-computer interfaces are a highly interdisciplinary field, and few students will have a background in all the disciplines, so we will start from the basics. At times, the material will be technically difficult, but to make the class accessible to students of diverse backgrounds, we may gloss over the underlying math in order to focus on applications.

We will build the concepts broadly, and provide plenty of guidance and resources so that you would know where to start to build your own project with brainwaves in the final project, and outside this course.


Basic programming knowledge at the level of CS61A (preferably CS61B). Recommended signals and system knowledge at level of EE16A/B, but not required.


The labs will generally focus on small replications of BCI research papers. The students should read the papers before each lab for maximum efficiency. Before each lab, we will walk through the papers and give a brief demo of the procedure.

Final Project

We will introduce the final project on Week 9 so students can start thinking and form teams then. The last two labs (Week 11 and Week 12) will be focused on the final project, and will be optional but recommended. In those labs, the teams will have time to work together, and receive help from other teams and teachers. In Week 13, each team will give a 5-10 minute presentation about their project to the rest of the class.

BCIs is very much a science, so not all final projects may succeed in their goal. That’s okay! Recognizing that something is not possible and describing the problem is an important part of science and engineering. As such, we will be lenient in characterizing a final project as “complete”.


Students should skim the BCI research papers before lab. These papers will be posted one week in advance on the course website. Optional reading covering the theory and practice in detail is provided in the course outline below.


Students are graded based on attendance and completion of final project. In order to receive a P in the class, they need to attend at least 8 out 12 Lectures and 7 out of 9 labs (not including final project labs), and complete and present a final project related to Neurotechnology and/or Brain-Computer Interfaces.

Course Schedule

We will meet 2 times a week, once for lecture and once for lab. Lecture will be 1 hour of theory and overview, while lab will be 2 hours working on practical applications.

Week 1: Introduction
Lecture: Intro to Neurotech
Lab: No lab this week!
Week 2: Sensory Extension
Lecture: Sensory extension (Guest speaker: Tomás Vega)
Lab: Augmenting senses
Week 3: EEG
Lecture: Intro to EEG & EEG artifacts
Lab: Setting up EEG to record data
Week 4: Event related potentials
Lab: Detecting event-related potentials
IPython and numpy tutorial (from Berkeley's EE123 course)
Week 5: Neurofeedback
Lecture: EEG Oscillations and Neurofeedback (Guest speaker: Justin Riddle)
Lab: Neurofeedback
Week 6: Neuroethics
Lecture: Neuroethics
Lab: Steady-state visually evoked potentials
Week 7: Stress
Lecture: Physiological measures of stress (especially GSR, heart rate, and EMG)
Lab:Detecting stress using biosignals
Week 8: Neuromarketing and Neuroeconomics
Lecture: Neuromarketing and Neuroeconomics (Guest speaker: Ming Hsu)
Lab: Measuring attention using cross-brain correlations
Week 9: Muscles
Lecture: Muscles: measurement and control
Final projects intro
Lab: Detecting and controlling muscles movements
Week 10: Smells
Lecture: Olfactory research (Guest speaker: Gil Sharvit)
Effect of smells on EEG
Lab: Different responses of EEG to various smells
Week 11: Invasive BCI
Lecture: Intro to ECoG/Invasive BCI (Guest speaker: Pierluigi Mantovani)
Lab: Final project
Week 12: Final project
Lecture: Final project general Q&A
Lab: Final project
Week 13: Final project
Final project general Q&A