Scientific Computing using Python - 1. Python + Scientific Computing
Enrolment options
Welcome to Scientific Computing using Python - 1. Python and Scientific Computing (2026)
Descripti...
Welcome to Scientific Computing using Python - 1. Python and Scientific Computing (2026)
Description
Many research projects involve scientific computing for analyzing [big] data and/or simulating complex systems. This makes it necessary to have a systematic approach to obtaining well-tested and documented code. Further, we see an increased interest in reproducible research, which allows other researchers the opportunity to dig further into others' research results as well as easy access to results and improved productivity by reusing code and software.
This is an introductory course in scientific computing using the popular programming language Python. Python is very popular in science due to a number of advantages such as having a rich set of libraries for computing and data visualization, excellent performance-optimizing possibilities, standard tools for simple parallel computing, fast development cycle, and high productivity - just to name a few. Python is open source and as such an asset for any researcher following the reproducible research paradigm.
The course covers two main areas:
The Python programming language itself and
various aspects of scientific computing.
This specific course content is as follows:
The Python language
- Course introduction
- Historical overview of scientific computing and high performance computing
- Python development environment
- Python from above
- Data types, built-in functions
- Branching and looping
- Functions (definition, built-in, lambda)
- Modules and packages
- Debugging and testing
- Pytest
- Doctest
- Pdb (breakpoints and post-mortem debugging)
- Basic scientific computing packages
- Pandas (tabular data - numerical computing)
- Seaborn (data visualization) + other visualisation packages
- H5py (data storage/access via HDF)
- NumPy (numerical computing - array-based - vectorization) lighter overview
- SciPy (various tools for integration, optimization, etc.) lighter overview
- Documentation using Sphinx
Scientific computing
- Basic issues related to computational sciences such as
- Floating-point representation
- Numerical accuracy and condition number
- Cancellation
- Algorithmic complexity
- Scientific software development
- Version control (via git)
- Code documentation
- Test procedures (what to test - and how)
- Code refactoring
Audience: The targeted audience is all PhD students with an interest in developing robust, portable and high-quality code for various scientific computing purposes. By this we mean code to solve actual problems where [lots of] floating-point computations are needed. It is not a course in object-oriented programming and we apply a procedural approach to programming in the course.
Note: If you are already somewhat experienced in Python programming and have used packages such as numpy and pandas, you will probably not gain a lot from this course. Instead, consider the follow-up course on High-Performance Computing.
Prerequisites: Participants must have some basic experience in code development in e.g. MATLAB, C or FORTRAN. Further, some basic skills in general use of a computer are expected.
Learning objectives: After completing the course the participants will:
have fundamental knowledge of important aspects of scientific computing
be able to map a mathematically formulated algorithm to Python code
know how to document, debug and test the developed code.
know when and how to optimize Python code
Teaching methods: A combination of lectures, demonstrating examples using Jupyter notebooks, smaller exercises, and a project is used to facilitate learning. The course is rich in examples and active user participation is expected - the topics covered demand a “learning by doing” approach.
Criteria for assessment: A pre-specified project must be delivered (4-8 pages) in addition to the developed code. The code must include testing/validation and performance evaluation. An acceptable project and at-least 75% participation is required to pass the course.
Key literature: We expect to use a combination of the following:
Selection of a few chapters in Python books (specified under the individual days below)
References to Python and all relevant packages (freely available via http://python.org)
A number of scientific papers relevant for specific parts of the course (specified under the individual days below)
Organizer and lecturer: Associate Professor Jimmy Jessen Nielsen
ECTS: 2,5
Time: 10 - 12 June 2026
Place: Aalborg University
City: Aalborg
Number of seats: 35
Deadline: 20 May 2026
NB This course is only for students at Aalborg University
Important information concerning PhD courses:
There is a no-show fee of DKK 3,000 for each course where the student does not show up. Cancellations are accepted no later than 2 weeks before the start of the course. Registered illness is of course an acceptable reason for not showing up on those days. Furthermore, all courses open for registration approximately four months before start of the course..
To attend courses at the Doctoral School in Medicine, Biomedical Science and Technology you must be enrolled as a PhD student.
We cannot ensure any seats before the deadline for enrolment, all participants will be informed after the deadline, approximately 3 weeks before the start of the course.
For inquiries regarding registration, cancellation or waiting list, please contact the PhD administration at phdcourses@adm.aau.dk When contacting us please state the course title and course period. Thank you.