Instructor: Michelle R. Greene, Ph.D

Email: mgreene2@bates.edu

Office hours: Link to book me for 15-minute one-on-one in Zoom or in the socially-distanced and masked outdoors.

Logistics:

This class is both synchronous and asynchronous. Zoom sessions will be recorded and uploaded on Lyceum. I am available for help during synchronous lab sessions and via office hours asynchronously.

Class: Monday through Thursday 10:15 - 12:00 Eastern Time on Zoom

Lab: MW or TTh 13:00 - 16:00 Eastern Time Link to virtual lab space on gather.town

Prerequisites: NS/PY 160 or 200 and
PSYC 218 or any 200-level mathematics course

Course Promise

The brain has been described as the most complex object in the universe. How do three pounds of “electrical meat” give rise to your thoughts, memories, plans, and perceptions? In this course, we will examine methods for reverse engineering the brain and models for understanding its functions. You will be implementing these methods and models yourself in Python, thus also introducing you to the basics of scientific computing along the way!

Introduction

“All models are wrong, but some models are useful” — George Box
“The world you perceive is a drastically simplified model of the world” — Herb Simon

How does the brain work? You’ve been taking neuroscience courses for a couple of years now — with all of the detailed knowledge that you’ve gained, how much of it helps you answer the question of ‘how the brain works’? What does it even mean to say that you understand the workings of the brain? This course takes an epistemological stance based on computation. In other words, our standard for understanding the brain is this: if you can express a neural process in mathematics, and if those expressions fit real-world data, then we understand this process. This is a rigorous definition, and as you will see in this course, it is a standard that we are still striving to achieve in most corners of neuroscience. This presents us with a tremendous intellectual opportunity: there are many ways to make a fundamental contribution to neuroscience, and we have more resources at our disposal now than ever!

The goal of this course is to give you experience in implementing significant models in neuroscience that span several levels of analysis, ranging from the single neuron to the level of the whole organism. Some of these models are historically important, such as the Nobel Prize-winning model of the action potential from Hodgkin and Huxley. Others involve using state-of-the-art machine learning in order to gain insight into brain imaging. As a consequence of this course, you will have the methods at your disposal to analyze real data in just about any neuroscience lab you enter.

As a side effect of this process, you will learn the basics of scientific computer programming. Programming is the literacy of the 21st century. As computers play a larger role in our lives, a gulf has emerged between those who use computer programs and those who write computer programs. As computer programming has obviated many professions and stands on the cusp of killing more, programming skills are a great way to future-proof your life, no matter what your post-Bates plans might be.

I won’t lie — this is not an easy course. You will likely be introduced to new mathematical concepts. You will be wearing many different hats as we shift levels of analysis from physics, through chemistry, biology, psychology, logic, computer science, and even philosophy. If you are new to computer programming, you will be learning an entirely new language by immersing yourself in it. The word choice here is intentional: success in this course will require frequent and deep engagement with difficult problems. However, I can also promise you that your perseverance will be richly rewarded with a new, deeper view of the neuroscience landscape, new frameworks for thinking, and new tools at your disposal.

Learning Objectives:

By the end of the course, you should be able to:

  • Think computationally about neuroscience problems at several levels of analysis. This means clearly articulating the problem at hand with well-defined inputs and outputs, applying appropriate quantitative reasoning to the journey between input to output, and quantitatively evaluating the quality of your model.

  • Apply knowledge of the fundamentals of computer programming by manipulating, analyzing, and visualizing real-world datasets.

  • Conceptually articulate the underlying mathematics of these models. This means being able to describe foundational concepts in linear algebra, differential equations, and probability theory such as vector spaces, eigenvectors and eigenvalues, numerical methods for integration; and be able to use these concepts in implementing models of neural activity.

  • Be able to communicate effectively and persuasively about core concepts in computational neuroscience to audiences of other students in written form.

Course Components and Workflow:

Pre-class work: There will be a reading on Perusall and a series of short videos to watch (half an hour or less) that you should complete before each class session. Perusall is a social reading annotation tool. In the PDF, you may highlight passages and figures for comment or question, follow up on the comments and questions or your colleagues, and use “upvoting” to endorse questions and comments. It’s a really great way of getting more out of your reading. Your annotations on Perusall will be due at midnight Eastern the night before each class.

Class: The questions and comments from Perusall will lead to in-class discussion of the readings. Each class session will also feature a series of exercises in a Jupyter notebook that will prepare you for lab. These class sessions are primarily synchronous. Please attend them live when possible — you will get much more out of discussing than watching discussions, and you will have live support during the exercises. If you are unable to make the live class session, it will be recorded.

Lab: Lab is a core component of this class. It is where we will work to implement and examine models. Lab may be taken synchronously or asynchronously. The synchronous experience will enable you to get real-time support from both me and your classmates. However, if you are unable to attend the lab live, you will be able to complete it on your own.

Project: You will be contributing to a student-written open textbook in this course. Each of the other three course components (class, lab, and pre-class work) will be integrated into this project.

Materials:

  • You will need access to an internet-enabled computer for this course. If you do not have your own computer, please contact your Student Support Advisor — they will put you in contact with ILS for a loaner laptop. You may also use any of the computer labs on campus, but be advised that seats are limited.
  • Download Anaconda (Python 3.7) version to your computer before class.
  • Readings will be available to you here, on Perusall, and on Lyceum.
  • Short tutorial videos will be available on Lyceum.
  • Bates computing resources for remote learning.

Grading:

Grading philosophy

No single assignment listed below is worth more than 10% of your final grade. This is intentional. This allows anyone to bounce back from a less-than-optimal score on any assignment. If you approach this course with consistent effort, you will succeed!  

Assessed components

Daily reading annotations in Perusall: 0.83% per reading * 24 readings = 20% of total
There will be a reading posted for each class period on Perusall. You can find our class Perusall link at the top of our Lyceum page. Perusall is a social reading annotation tool. In the PDF, you may highlight passages and figures for comment or question, follow up on the comments and questions or your colleagues, and use “upvoting” to endorse questions and comments. It’s a really great way of getting more out of your reading. As the annotations will in part guide the class activities, you are expected to complete your annotations by midnight Eastern before each class session.

Important note: Perusall will assign you a “grade”, but it will not be used in this class. The primary reason for this is that their algorithm is a trade secret and I do not feel comfortable evaluating you with an algorithm that I may or may not agree with. Instead, your annotations will be graded on the following 0-2 scale: 0: no annotation; 1: minimal annotation; 2: complete annotation. Please feel free to reach out if you have any questions about what constitutes a complete annotation.

Daily class notebook: 0.83% per notebook * 24 sessions = 20% of total
Whether you are taking class synchronously or asynchronously, you will turn in a Jupyter notebook of exercises for that session. The notebook is due at midnight Eastern on the date of the class. These will be graded on a 0-2 scale as follows: 0: Absent; 1: Major errors; 2: Good (modal grade).
 

Labs: 2.08% per lab * 12 labs = 25% of total
There are a total of 12 labs during the course of the semester. Labs allow you to actually implement the content you are learning in lecture and will give you practice in analyzing real neural data. In some cases, you will replicate Nobel Prize-winning work!

Each lab is contained in a Jupyter Notebook. Notebooks combine code with plain text explanations, graphs, and equations, and are a therefore a fantastic way to communicate in the languages of scientific computing. Each lab is due on Lyceum 48 hours after the scheduled start of lab. If you are completing the lab synchronously, most labs can be completed in the 3 hour time allotment. Labs will be graded on a 0-2 scale as follows: 0: Absent; 1: Major errors or incomplete; 2: Good (modal grade). In order to pass the class, you must achieve at least 60% on your labs.
 

Open textbook project: 35% total (distributed in several components)
Our class project is to contribute to a student-written open textbook for the course. This is a collaborative effort that we will be engaged with for the whole module. Why a textbook? A few reasons:

  • After evaluating about half a dozen potential books, I found that none directly met our needs. Computational neuroscience is a rapidly-evolving field, so some were out of date. Others were more mathematical than computational. If we would benefit from a better textbook, so would others.
  • Textbooks are expensive! By collaboratively creating an open work, we can help make this material accessible to all.
  • It is a cliche, but nonetheless true statement that one truly learns by teaching. This assignment places you in a teaching role, allowing the content to come alive.
  • Writing an open textbook helps you transition between being a consumer of knowledge to a producer of it.
  • All too often, the writing that we do in college is in the form of the “disposable assignment” — one that you will spend a few hours working on, that I will spend a few hours reading and grading, and then is thrown away. Writing an open textbook is more of a renewable assignment, one that will have value in the world long after the semester is over.

Students in the Fall 2019 version of this course wrote version 0.0 of this textbook: six chapter drafts that broadly cover the course topics. In this COVID-19 abbreviated version, we will work to augment their work by writing exercises and answers within the chapters. Specifically, we will consider three types of exercises:

  • Conceptual questions that could be answered in paragraph form.
  • Worked examples that teach a student how to think through a mathematical or programming problem.
  • Code exercises that challenge students to write computer code to solve a problem.

On Lyceum, there is an interest form for various topics and types of exercises along with their due dates. Please fill out your preferences. I will do my best to ensure that each student has a project piece near their top choice(s). There will be three phases to each project: a draft, a peer review, and a final draft. Your exercises will be peer reviewed by another student, and you will be tasked with reviewing another assignment. Your grade for the project will be broken down as:

  • 10% first draft
  • 10% peer review
  • 10% final draft
  • 5% reflection paper  

Grading Scale

Grade Percentage Grade Percentage
A+ >95% B- 71-74%
A 87-94% C+ 67-70%
A- 83-86% C 63-66%
B+ 79-82% D 50-62%
B 75-78% F <50

How to Succeed in this Course

Reach out when you need support

Work towards dismantling previous ‘math trauma’

Unfortunately, math can be a topic that brings up angst and trauma. It certainly was for me as a student! I want us to work to dismantle the culture of “math people” and “non-math people” — we are all people who think mathematically.

This class is structured to be appropriate to those with a variety of formal backgrounds, and it is therefore more conceptual than mathematical. I want you to understand and be able to explain what the various techniques and models do, not necessarily conduct mathematical proofs that demonstrate how they work. The most important thing to remember is: ask lots of questions! I am more than willing to repeat or slow down if things get difficult or to explain it from another direction.

Collaboration

Collaboration is the basis of all scientific discovery and is instrumental in the learning process. I strongly encourage students to work on class notebooks and labs together if possible. If you are working with other students on a class notebook or lab, you must give written credit to the collaborators, and the short answer questions must be in your own words.

The short format

The short modular format of this year presents both opportunities and challenges. Learning Python is like learning a natural language, and the short format of this course enables you to practice each day, similar to a language immersion program. However, the short format also means that a good deal of content is covered each day, and it will be essential to be vigilant about staying on track and being proactive about catching up if you need to miss a day. Please come see me right away if you are absent from class or lab, and we will work together to find the most direct path to being back on track.

Class Policies:

Communication

Class communications will take place via Bates email. Please consider your Bates email to be the default place to look for class-related information and get into the habit of checking it daily. Your email messages to me will receive a response within 24 hours.

Course Material Release Schedule

Materials for each week will be posted to Lyceum no later than the Saturday morning before.

Commitment to Equity and Diversity

Everyone has the right to be treated with dignity and respect in our classroom, and I am committed to making that happen. But this not only means your instructor treating you with respect, but also you treating each other that way. Disrespect or discrimination on any basis will not be tolerated. Whether inside or outside the classroom, if you encounter sexual harassment, sexual violence, or discrimination based on race, color, religion, age, national origin, ancestry, sex, sexual orientation, gender identity/expression, or disability, you are encouraged to report it to Gwen Lexow, Director of Title IX and Civil Rights Compliance at Bates at or 207-786-6445. Additionally, please remember that Bates faculty are concerned about your well-being and development, and we are available to discuss any concerns you have. Students should be aware that faculty are legally obligated to share disclosures of sexual violence, sexual harassment, relationship violence, and stalking with the college’s Title IX Officer to help ensure that your safety and welfare are being addressed.

Academic Integrity

Cheating is bad, I think we can all agree to that. The less acknowledged truth is that it’s not even worth it. Cheating cheapens the value of your work and everyone else’s, and a single violation can literally ruin your entire academic and professional career. Please remind yourself of the Bates College policy on academic integrity and its definitions of plagiarism, use/misuse of sources, and cheating. Students’ work will be closely scrutinized for plagiarism and violations of the College policy will not be tolerated. If you are concerned that your collaboration might put you at risk of an academic integrity violation, please come see me during office hours as soon as possible. In my experience, violations of academic integrity are acts of desperation. If you are ever feeling desperate enough that a few extra points in this course seem to be worth risking so much, please consider talking to someone first — that could be me, a friend, or even someone at CAPS. I want you to succeed, and am happy to talk to you if you are feeling undue pressure from this course or anything else.

Classroom Privacy

Screen capturing or making audio/video recordings of synchronous or asynchronous meetings, lectures, discussions, course materials, or other classroom activities without the prior knowledge and consent of all parties is prohibited. This applies to the use of tape or digital recorders, cell phones, smartphones, computers, and other devices capable of creating a screen capture or making audio/video recordings. Likewise, the editing, sharing, or use of recorded or digitally shared course content outside of their assigned or intended purpose is also prohibited. Students with disabilities who wish to record classroom activity should contact the Office of Accessible Education for information about appropriate protocols.

Students with Learning Differences

If you think you need an accommodation for a disability or learning difference, please let me know as soon as possible. Some aspects of this course may be modified to facilitate your participation and progress. You will need to create documentation with the Office of the Dean of Students. I will treat any information about your disability with the utmost discretion.

Late work

The following policies apply to the following course components:

  • Perusall readings cannot be made up. Your two lowest grades will be dropped to account for any personal emergencies.
  • Daily Jupyter notebooks cannot be made up. Your two lowest grades will be dropped to account for any personal emergencies.
  • While most labs will be completed in the time allotted for lab, you have until 48 hours after a lab is released to complete the work. Labs turned in after this time will receive 50% credit.
  • Given the interdependent nature of the project, it is essential that your colleagues receive your chapter drafts and reviews on time. Please see Michelle right away if any situations arise that make this difficult.
  • Late final drafts will be subject to a 10% loss of points per day. In other words, a project that would have received a 100% grade will receive 90% after one late day, 80% after two late days, etc.

Emergencies

If I must cancel class due to weather or an emergency, I will inform you via the class email list. Please consider your Bates email to be the default place to look for class-related information and get into the habit of checking it daily.

Zoom Etiquette

  • Please mute your audio when you are not speaking. This will help to limit background noise.
  • Because not all body language is transmitted on video, it’s important to structure who is speaking and when. Please use the “Raise Hand” feature if you would like to speak or answer a question, and please consider letting others know you are finished by saying something like “That’s all”, “I’m done”, or “Thank you”. This will ensure that no one is feeling interrupted.
  • I welcome you to use the chat function for questions and comments, but please be aware that it is public, and a record of the chat is archived.
  • I strongly encourage you to keep your video on when you are in conversation (break out groups, when asking a question). This will help your colleagues and myself feel connected with you. I understand that it’s not always fun to see yourself on camera. If this is the case for you, you may wish to consider hiding your face in your view.
  • Please attend to all personal needs before class (dressing, grooming, eating, etc.). Please also be mindful of your movement during class — a moving video from a mobile phone walking between rooms can be very distracting!

Course Calendar

 

Week 1: September 2 — 4

Lab 1: Introduction to Python Part 1
Draft exercises due: None
Peer reviews due: None
Final exercises due: None

September 2: Introduction to Computational Neuroscience

To read before class:

  • This syllabus

To watch before class:

To do before class:


Week 2: September 7 — 11

Lab 2: Introduction to Python Part 2
Lab 3: Integrate and Fire Model
Draft exercises due: Python Exercises, September 9; Resting Potential Exercises, September 10
Peer reviews due: None
Final exercises due: None

September 7: How do we Measure Subthreshold Excitation?

To read before class:

To watch before class:

To do before class:

September 8: Integrate and Fire Model

To read before class:

To watch before class:

To do before class:

September 10: Hodgkin and Huxley Model

To read before class:

To watch before class:

To do before class:


Week 3: September 14 — 18

Lab 4: Hodgkin & Huxley
Lab 5: Firing Rates and Spike Trains
Draft exercises due: Integrate and Fire, September 15; Hodgkin & Huxley, September 17
Peer reviews due: Python Exercises, September 16; Resting Potential Exercises, September 17
Final exercises due: None

September 14: What is the Neural Code?

To read before class:

To watch before class:

To do before class:

September 15: What is Information?

To read before class:

To watch before class:

To do before class:

September 16: Neural Firing Rates and Rate Codes

To read before class:

To watch before class:

To do before class:

September 17: Analyzing Neural Spike Trains

To read before class:

To watch before class:

To do before class:


Week 4: September 21 — 25

Lab 6: Spike-triggered average
Lab 7: Linear-nonlinear-Poisson encoding
Draft exercises due: Firing rates, September 23
Peer reviews due: Integrate and Fire, September 22; Hodgkin & Huxley, September 24
Final exercises due: Python Exercises, September 23; Resting Potential Exercises, September 24

September 21: Introduction to spike-triggered average

To read before class:

To watch before class:

To do before class:

  • Download the daily Jupyter notebook.

September 22: Spike-triggered average

To read before class:

To watch before class:

To do before class:

  • Download the daily Jupyter notebook.

September 23: Poisson Spike Generators

To read before class:

To watch before class:

To do before class:

  • Download the daily Jupyter notebook.

September 24: Linear-Nonlinear-Poisson Encoding Models

To read before class:

To watch before class:

To do before class:

  • Download the daily Jupyter notebook.


Week 5: September 28 — October 2

Lab 8: Decoding, Part 1
Lab 9: Decoding, Part 2
Draft exercises due: Spike-triggered average, September 28
Peer reviews due: Firing rates, September 30
Final exercises due: Integrate and Fire, September 29; Hodgkin & Huxley, October 1

September 28: Evaluating encoding models

To read before class:

To watch before class:

To do before class:

September 29: Decoding part 1: feature extraction

To read before class:

To watch before class:

To do before class:

September 30: Decoding part 2

To read before class:

To watch before class:

To do before class:

October 1: Decoding part 3

To read before class:

To watch before class:

  • Nothing - have a night to catch up and reflect on decoding.

To do before class:

  • Download the daily Jupyter notebook.


Week 6: October 5 — 9

Lab 10: Linear algebra bootcamp
Lab 11: Neural networks
Draft exercises due: None
Peer reviews due: Spike-triggered average, October 5
Final exercises due: Firing rates, October 7

October 5: McCulloch-Pitts Neurons

To read before class:

To watch before class:

To do before class:

October 6: Perceptron learning algorithm

To read before class:

To watch before class:

To do before class:

October 7: Feedforward neural networks

To read before class:

To watch before class:

To do before class:

October 8: Introduction to backpropagation

To read before class:

To watch before class:

To do before class:


Week 7: October 12 — 13

Lab 12: Principal components analysis
Draft exercises due: None
Peer reviews due: None
Final exercises due: Spike-triggered average October 12

October 12: Principal Components Analysis

To read before class:

To watch before class:

To do before class:

October 13: Hebbian learning and PCA

To read before class:

  • “Hebbian Model Learning” (O’Reilly)

To watch before class:

To do before class: