Programming Courses at MPI Evolutionary Biology

As every year, some PostDocs and Staff Scientists offer courses on computing, programming, data analysis and visualization and related topics.

Requirements: Some courses require that participants already have certain levels of experience and knowledge. Before signing up, please assess for yourself if you feel comfortable with these requirements. If in doubt, please contact the course responsible. During the course, there will not be enough time to bring everybody up to the expected level before starting the course program.

Course program

UNIX commandline and using the High Performance Computing Cluster

  • Responsible: Carsten Fortmann-Grote

  • Description: This course is intended for beginners with limited computer experience. The course teaches the utilization of the bash shell, a command line interpreter for the UNIX or Linux operating system. Completing this course will enable you to use the institute’s High Performance Computing cluster e.g. to run bioinformatic analysis pipelines or simulations that require lots of compute resources. The course will start with very simple commands to navigate the computer’s file system. At the end, the participants will have learned how to write a script to execute complex tasks including launching parallel jobs on the cluster.

  • Expected level of computing expertise: None

  • Next workshop: 21.-22. October 2021

  • Workshop registration: http://workshops.evolbio.mpg.de/e/unixhpc

Python programming for beginners

  • Responsible: Neel Prabh
  • Next date: 21.-25. Feb. 2022
  • Description: This course teaches the foundation of writing computer programs in the python programming language. Due to its simple syntax and dynamic typing, python is extremely popular among programming novices. We will cover in this course:
    • Running a python program
    • Data types
    • Reading and writing from/to files
    • Conditions: if, elif, else, …
    • Loops: for, while
    • Defining functions for repetitive tasks
  • Expected level of computing expertise:
    • Content of “UNIX command line and using the HPC cluster”
    • Know how to: download and install programs on your computer
    • Know how to: download and open files on your computer

Advanced Python programming

  • Responsible: Neel Prabh
  • Next date: 13.-15. June 2022
  • Description: In this course, we will teach the basics of data analysis and visualization with python:
    • Packages and Modules
    • Data handling with the pandas package
    • Statistics with pandas and statsmodels
    • Data visualization with matplotlib and seaborn
  • Expected level of computer expertise:
    • Content of “UNIX command line and using the HPC cluster”
    • Content and required expertise of “Python programming for Beginners”
    • Know how to: write a python script
    • Know how to: import packages and modules
    • Basic familiarity with jupyter notebook

R for beginners

  • Responsible: Loukas Theodosiou, Kristian Ullrich
  • Next date: Jan. 21 2022 - Feb. 4 2022 (three lectures, one lecture per week)
  • Description: R is a freely available programming language with a focus on statistics, data analysis, and data visualisation. In this course, we will teach the basics:
    • Basics of the R programming language
    • Using the Rstudio environment
    • Loading, cleaning, and visualizing tabular data with ggplot.
    • How to make publication-ready plots.
  • Expected level of expertise:
    • Content of “UNIX command line and using the HPC cluster”
    • Know how to: find and open files on your computer
    • Know how to: download and open files on your computer

Advanced R

  • Responsible: Loukas Theodosiou, Kristian Ullrich
  • Next date: 18.-19. September 2022
  • Description: In this course, we will teach selected advanced topics in R:
    • Parallel R and multiprocessing
    • Big data in R
    • Handling sequence data in R
    • Write your own R package
  • Expected level of expertise:
    • Content of “UNIX command line and using the HPC cluster”
    • Content of “R for Beginners”
    • Content of “Research Software Development for Beginners”

Research Software Development for Beginners

  • Responsible: Nikoleta Glynatsi
  • Next date: 24.-25. March 2022
  • Description: In this course we teach techniques and best practises to help you write your computer programs such that they become easier to maintain, easier to debug, and the results easier to reproduce:
    • How to write cleaner code
    • How to use the git version control system
    • Writing documentation for your code
    • Testing your code
  • Expected experiences:
    • Content of “UNIX command line and using the HPC cluster”
    • Content of “Python programming for Beginners” or “R for Beginners”
    • Know how to: install software on your computer
    • Know how to: download and open files on your computer
    • Know how to: find and open files on your computer

Advanced Research Software Development

  • Responsible: Nikoleta Glynatsi

  • Next date: 1.-2. Sept. 2022

  • Description: In this course, we will teach how to automate testing, documentation, and deployment of your code using well known software repositories lik gitlab and github. Participants are encouraged to present their code projects at the workshop and we will try to help them to reach the next level.

  • Expected experiences:

    • Content of “UNIX command line and using the HPC cluster”
    • Content of “Python programming for Beginners” or “R for Beginners”
    • Content of “Research Software Development for Beginners”
    • Know how to: install software on your computer
    • Know how to: find and open files on your computer