Advanced scientific programming with Python, 3 credits

Avancerad vetenskaplig programmering i Python

Course information

Language of instruction: English
Course period: Spring 2024
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

The course provides the student with knowledge and understanding, including specialist knowledge, in the area of scientific data analysis. It also helps create familiarity with a variety of analysis methods. The final project also exercises the students' ability to identify and formulate issues with scholarly precision critically, autonomously and creatively, and to plan and use appropriate methods to undertake research and other qualified tasks within predetermined time frames and to review and evaluate such work.

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)

Instruction

TThe course will be taught as a 1-week (40 hours) seminar with many hands-on examples. Students will work in pairs on a computer/laptop.

Assessment

Examination is based on attendance (> 90%) and participation in an individual coding project (10 hours).

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
Tomas Ekeberg, tomas.ekeberg@icm.uu.se

Application

Submit the application for admission to: https://bit.ly/3yUY3wP
Submit the application not later than: 2024-01-31

FOLLOW UPPSALA UNIVERSITY ON

facebook
instagram
twitter
youtube
linkedin