/hu_bp_python_course

Scientific Programming Python course

Primary LanguagePLpgSQLMIT LicenseMIT

Python for Scientific Programming

In this course we will try to introduce to programming in Python to enable you to be a faster and better scientist in the future. This is hardly the first course of its kind, so we will make extensive use of existing resources on the Web. Be prepared to use your head and your browser! The course is aimed at graduate students in Biophysics, and is mainly based on the Python course taught in our institute over the last 4 years.

Why Python?

Python is a versatile tool for any scientific task. It's applications in science range from data analysis and statistics over modelling to the creation of modern user interfaces for scientific tools. Its openess also make it the optimal tool for creating reproducible science.

What does it include?

The course starts with a basic introduction into the language and its uses as a general programming language. We will present the basic principles and best practices of Python programming. Here is a list of things that we hope to teach you:

  • Python basics
    • Datatypes
    • control flow
  • How to use Python
    • editors
    • debuggers
    • iPython
    • notebook
    • IDEs
  • Object orientation and advanced topics
    • Classes
    • Exceptions
    • Packages and modules

As we advance, we will focus on the great variety of scientific packages existing for the Python language. In the lectures we will also show you the tools we think are great to use if you are using Python in a scientific setting.

For those who are already familiar with it here comes a list of packages that we will mention and use in the course:

  • numpy/scipy
  • matplotlib
  • pandas

Structure

The course is split into two parts. During the first week we will introduce new concepts in alternating lectures and practical sessions which will built up a basic knowledge about the topic. In week two you will implement your own project with our support. The project will be a combined effort of the whole group and you will have to work as team to be successful. Our plan is to implement a highly simplified version of the first Whole cell model. This is a huge task, so we will probably not be finished after this week, but we can have a lot of fun building a real project as a team. We have prepared make your start easier a framework of classes to use to make your start easier and we will try to introduce the topic already during week one.

How to use this course

As mentioned above, we also want to teach you how to use important tools. The first of these is git. Git is a version control software that is incredibly useful to keep track of the changes you do to files in a project and to organize your work. However most people feel that it has a steep learning curve, which we would like to ease up for you. Before we start the course be sure to look into this great introduction to git.

In order to take part in the course you should fork (more about forking) this repository and then clone it onto your local machine. This will also be your first excercise task. Before you can do this you will need a github account. If you don't have one yet you can register now for free. You can also just clone the repository, but you won't be able to push your results back to github. If you choose the forking option you will also be able to improve the course material by submitting a pull request, which would be awesome!