Neural and Cognitive Data Science
PSYC 499
University of Southern California, Fall 2026
Time: M/W 2:00–3:50 pm
Location: KAP 165
Office Hours: W 4:00–6:00 pm in SGM 1016
Instructor: Sam Nastase (snastase@usc.edu)
Syllabus: Syllabus
GitHub: GitHub
Scratch: Scratch
This course introduces students to the mathematical and data scientific tools at the core of research in cognitive and computational neuroscience. The course aims to familiarize students with topics in linear algebra, statistics, and machine learning, with practical, hands-on applications to cognition and neuroscience. Lectures on each topic will develop the relevant mathematical background with links to foundational applications in the field. Coursework will focus primarily on problem sets requiring the implementation of models and analyses in Python. The course will equip students with a practical proficiency in various computational methods, including programming skills in data analysis and visualization that are increasingly important to scientific inquiry in general, and neuroscience in particular. The intended audience for this course is later-stage undergraduate students (or graduate students) who want to develop their expertise in data science, machine learning, and computational approaches to understanding brain and behavior. Some experience with Python programming, linear algebra, or neuroscience will be helpful, but is not strictly required.
Course schedule
| Date | Topic | Slides | Optional readings |
|---|---|---|---|
| M 8/24 | Introduction to cognitive computational neuroscience | Marr, 1982, Vision, Ch. 1, pp. 8–38 PDFMcClelland et al., 1986, PDP, Ch. 1, pp. 3–44 PDF | |
| W 8/26 | Introduction to linear algebra | ||
| M 8/31 | Linear combination and vector spaces | ||
| W 9/2 | Application: trichromatic vision | ||
| M 9/7 | No class (Labor Day Holiday) | ||
| W 9/9 | Matrix multiplication and linear systems | ||
| M 9/14 | Application: local and distributed representation | ||
| W 9/16 | The four fundamental subspaces | ||
| M 9/21 | Application: neural population codes | ||
| W 9/23 | Singular value decomposition (SVD) | ||
| M 9/28 | Principal component analysis (PCA) | ||
| W 9/30 | Application: visualizing high-dimensional neural activity | ||
| M 10/5 | Least-squares regression | ||
| W 10/7 | Application: univariate regression in fMRI | ||
| M 10/12 | Introduction to probability and statistics | ||
| W 10/14 | Statistical tests as linear models | ||
| M 10/19 | Covariance, cosine, and correlation | ||
| W 10/21 | Application: representational similarity analysis | ||
| M 10/26 | Permutation tests and the bootstrap | ||
| W 10/28 | Information theory and efficient coding | ||
| M 11/2 | Introduction to machine learning | ||
| W 11/4 | Overfitting and out-of-sample prediction | ||
| M 11/9 | Regularized regression | ||
| W 11/11 | No class (Veterans Day Holiday) | ||
| M 11/16 | Application: encoding models in fMRI | ||
| W 11/18 | Classification analysis | ||
| M 11/23 | Application: neural decoding | ||
| W 11/25 | No class (Thanksgiving Holiday) | ||
| M 11/30 | Artificial neural networks | ||
| W 12/2 | Application: deep learning |
The content of this course is inspired by related courses designed by Jonathan Pillow, Eero Simoncelli, Michael Landy, Ella Batty, and Tal Yarkoni.
Resources and references
“Welcome to Colab” introduction to browser-based interactive Jupyter Notebooks hosted by Google Colab: Welcome to Colab
Jupyter ecosystem documentation: Jupyter Documentation Jupyter Markdown Cells
Pyplot tutorial and Matplotlib documentation: Pyplot Tutorial Matplotlib Documentation
Pandas and Seaborn documentation: Pandas Seaborn
Scikit-learn’s User Guide and Examples: User Guide Examples
Managing Python environments and installing software using conda: Conda Documentation
Neuromatch computational neuroscience tutorials: Neuromatch
Neurohackademy summer school lecture archive: Neurohackademy
“Introduction to Linear Algebra” textbook materials available online at Gilbert Strang’s website: website
— Strang, G. (2023). Introduction to Linear Algebra (6th ed.). Wellesley-Cambridge Press.
“Parallel Distributed Processing” (PDP) book chapters available at Jay McClelland’s website: website
— Rumelhart, D. E., McClelland, J. L., & the PDP Research Group. (1986). Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 1: Foundations. MIT Press.
“The Elements of Statistical Learning” textbook available online at Trevor Hastie’s website: website PDF
— Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning: Data Mining, Inference, and Prediction (2nd ed.). Springer.
“Statistical Thinking for the 21st Century” online book by Russ Poldrack: website
— Poldrack, R. A. (2023). Statistical Thinking: Analyzing Data in an Uncertain World. Princeton University Press.
“Neuroimaging and Data Science” online book and interactive tutorials: website
— Rokem, A., & Yarkoni, T. (2023). Data Science for Neuroimaging: An Introduction. Princeton University Press.
“Experimentology“ online book by Michael C. Frank and colleagues: website
— Frank, M. C., Braginsky, M., Cachia, J., Coles, N. A., & Hardwicke, T. E. (2025). Experimentology: An Open Science Approach to Experimental Psychology Methods. MIT Press.
“Theoretical Neuroscience” book by Peter Dayan and Larry Abbott: PDF
— Dayan, P., & Abbott, L. F. (2001). Theoretical Neuroscience: Computational and Mathematical Modeling of Neural Systems. MIT Press.
“Computational Foundations of Cognitive Neuroscience” online book by Sam Gershman: website
— Gershman, S. J. (2025). Computational Foundations of Cognitive Neuroscience.