This course is targeted towards PhD students from all disciplines who regularly use programming in their research. Our plan is to introduce commonly used software development tools and help you become better programmers. This course is going to be very practical with many hands-on examples, because in the end programming is mostly about practicing!
Registering for the course
Please apply for the course here.
How to be prepared for the course
This course will not cover the very basics of Python programming. However, we have compiled a list of resources that might help you get started: Preparation material.
To follow the content of this course, you should be familiar with the concepts covered by the Official Python Tutorial.
Bring your own laptop
This course requires you to bring your own laptop, and you will need a couple of things installed and running before you come to the first lecture. You can find installation instructions on the next section.
If, for some reason, you are not able to bring a laptop, please contact us ahead of time so that we can figure out a solution for you.
Install Python
Please have a look at our installation guide.
Questions
If you have any questions about the course, don’t hesitate to contact us!
Filipe Maia (filipe.maia@icm.uu.se)
Course schedule
| Day | Time | Topic | Room |
|---|---|---|---|
| Monday, 2026-03-16 | 09:15-12:00 | Basics: An introduction to the UNIX shell, interactive Python and git repositories | BMC A5:001 |
| Monday, 2026-03-16 | 13:15-16:00 | Hands-on exercises | BMC A5:001 |
| Tuesday, 2026-03-17 | 09:15-12:00 | Best practices I:Organizing, debugging and profiling of code | BMC A5:001 |
| Tuesday, 2026-03-17 | 13:15-16:00 | Hands-on exercises | BMC A5:001 |
| Wednesday, 2026-03-18 | 09:15-12:00 | High performance computing:Speed optimization using Numpy, Cython, MPI and GPU acceleration | BMC A5:001 |
| Wednesday, 2026-03-18 | 13:15-16:00 | Hands-on exercises | BMC A5:001 |
| Thursday, 2026-03-19 | 09:15-12:00 | Best practices II:Testing, documenting and packaging of code | BMC A5:001 |
| Thursday, 2026-03-19 | 13:15-16:00 | Hands-on exercises and coding project | BMC A5:001 |
| Friday, 2026-03-20 | 09:15-12:00 | Data containers:Efficient memory storage using HDF5, Pytables and Pandas | BMC A5:001 |
| Friday, 2026-03-20 | 13:15-16:00 | Hands-on exercises and coding project | BMC A5:001 |