Advanced Scientific Programming with Python, 3 credits
Avancerad vetenskaplig programmering i Python
Course information
Language of instruction: English
Course period: Spring 2026
Course structure: On campus
Recommended prerequisites
Students should be familiar with programming. Some basic knowledge of Python is recommended and we can provide resources to get started.
Learning outcomes
The aim of this course is to teach best practices in scientific programming such that students become more effective programmers and eventually spend less time coding and more time doing research. They will be introduced to a range of tools that will enable to be more productive. Furthermore, with the concepts taught in this course, students will be able to produce well-documented and tested code making their work clearer, more reproducible and useful to others. This will improve the students’ ability to independently attack a wide range of scientific problems with a variety of computational methods.
- Know and apply best practices in scientific programming
- Be aware of the range of programming tools available
- Select and use the right tool when necessary
- Be able to create well-documented and tested code
- Produce clear code, which is more reproducible and useful to others
Learning outcomes for doctoral degree
Kursen ger studenten kunskap och förståelse, inklusive specialistkunskap, inom området vetenskaplig dataanalys. Den bidrar även till att skapa förtrogenhet med en mängd olika analysmetoder. Det slutgiltiga projektet tränar även studenternas förmåga att identifiera och formulera problem med vetenskaplig precision, kritiskt, autonomt och kreativt, samt att planera och använda lämpliga metoder för att genomföra forskning och andra kvalificerade uppgifter inom fastställda tidsramar och att granska och utvärdera sådant arbete.
Course contents
This course covers the best practices in scientific programming with Python. The decision to use Python is based on the fact that it is commonly used in research across many disciplines. Contents of this course are:
• Introduction to the UNIX shell
• Using git repositories for organizing and sharing code
• Interactive Python programming (Jupyter notebooks)
• Test-driven software development and documentation
• Advanced Numpy/Scipy
• Data containers (HDF5, h5py, pandas)
• Performance (MPI and CUDA)
• AI tools for software development
Instruction
The course starts with one intensive week of lectures in the morning and exercises in the afternoon including many hands-on examples. This will be followed by a one week project connected to the student’s research.
Assessment
Examination is based on attendance (> 90%) and completion of the individual coding project.
Course examiner
Filipe Maia, Filipe.Maia@icm.uu.se
Department with main responsibility
Department of Cell and Molecular Biology
Contact persons
Filipe Maia, Filipe.Maia@icm.uu.se
Application
Submit the application for admission to: PhD course: Advanced Scientific Programming with Python
Submit the application not later than: 2025-12-31