spring 2021
BIO-3027 Scientific Programming with Python in the life sciences - 10 ECTS

Type of course

The course is available for Master students in the life sciences. If proper scientific qualifications can be assumed, B.Sc. Students may participate on a case-by-case basis. Minimum 3. maximum 20 participants.

Students should have a solid grasp of the basics of molecular biology and some experience doing independent scientific work. Participants are required to follow good scientific practice to pass the exam.

Course content

The first week introduces the participants to basic computation in Python. It includes all the basics necessary to get started writing working Python code. Programming concepts and techniques in Python are introduced with plentiful exercises gleaned, as far as possible, from the scientific praxis. After the first week the participants will have a good understanding of general computation in Python. They will have also completed some simpler projects. The second week then further introduces students to the most common aspects and tasks of scientific coding. Participants learn to use many of Python’s scientific packages in realistic settings. Exercises again will mostly be taken from the life sciences. Lastly, students shortly learn about the most important good coding practices. These include needs for documentation and maintainability, as well as techniques for quality assurance.

The more detailed sections of the course are:

  • Introduction to computing and Python
  • The command line, Interactive shell, Scripts
  • Basics, variables, string handling
  • Functions & control flow
  • Object-Oriented Programming
  • File in- and output
  • Error handling
  • Libraries and foreign code
  • Commonly used packages
  • Jupyter Notebooks
  • Data handling with Pandas and SciPy
  • Plotting with Matplotlib and Seaborn
    • Sequence analysis with Biopython
    • Text search with Regular Expressions
    • Generally useful packages
  • Using Blast with own code
  • Best practices: effective and efficient coding
  • Maintainable coding, testing, and debugging
  • Resources for Python programmers 

Objectives of the course


  • Understand the core principles of the Python programming language
  • Apply common scientific packages in Python
  • Understand common strategies to solve problems
  • Apply strategies to familiarize themselves with new techniques and tools •Understand criteria for good documentation
  • Understand the need for maintenance of code
  • Understand factors that make code efficient, maintainable, and clean
  • Know how to find resources for further study and skill development


  • Dissect larger data sets
  • Isolate and solve complex problems
  • Identify core challenges of data analysis tasks
  • Build and manage larger data analysis projects
  • Develop programming-based problem solving skills •Reflect on own thinking and engineering
  • Understand and extend existing code
  • Build simple data analysis pipelines
  • Explain created code
  • Demonstrate an understanding of testing


  • Rephrase scientific problems as computational problems
  • Automate everyday tasks
  • Plan computational work
  • Define coding problems of appropriate difficulty
  • Build logical and systematic thinking

Language of instruction and examination


Teaching methods

The course consist of 2 weeks active participation and ~ 3 week full-time (120 hours) working on the project. Course includes ca. 40 hours of lectures and ca. 40 hours computer practical and 20 hours of course preparation.


Homework project where the participants will be required to create a short bioinformatics pipeline to analyze a larger data set and document the pipeline accordingly. Primary evaluation criteria are functionality and reproducibility of the pipeline as well as code documentation. Coding practices in light of readability, maintainability and scientific quality are also considered.

Grading for the homework exam is pass/fail. Participants have 4 weeks to complete homework project.

Re-sit exam:

There will be a re-sit examination for students that did not pass the previous ordinary examination.

Work requirement:

  • Actively participate in at least 80% of the sessions.
  • Completion of data analyses problems.

  • About the course
  • Campus: Tromsø |
  • ECTS: 10
  • Course code: BIO-3027
  • Earlier years and semesters for this topic