Syllabus#
The course is aimed at students who are already semi-proficient with other programming languages, namely Matlab. Examples (and homework) will be derived from common problems and tasks in neuroscience, to improve the analysis of your own data by increasing its automation and reproducibility.
Python version: The course targets Python 3.10+.
Prerequisites:
Basic knowledge of programming.
Extended Mathematics course (in the Life Sciences faculty), or a parallel one.
Final Grade:
40% - Homework assignments - one submission is skippable (not the first).
60% - Final project (hackathon).
Each 3-hour lecture will start with an oral presentation, followed by individual work. To summarize I’ll present solutions to the class exercises and we’ll discuss some of the difficulties you encountered.
Main topics of the course will include:
Introduction and Motivation.
Data structures (lists, tuples, sets, dictionaries), functions, iterations, and file I/O.
Virtual environments and Object-Oriented Programming.
Inheritance, exception handling, and file system navigation with pathlib.
Agentic AI — LLMs, tools, and best practices for research.
The Scientific Stack I — NumPy.
The Scientific Stack II — pandas and matplotlib.
The Scientific Stack III — Advanced pandas and xarray.
Data visualization and higher-dimensional data (matplotlib, altair, bokeh, seaborn).
Unit testing, linting, and code quality.
Performance optimization and software design (Cython, Numba, type hints, enums).
Machine learning with scikit-learn.
Advanced Git and the Python ecosystem.