Learning outcomes

  • Understand the concept of "programming language"

  • Know and understand programming concepts within the Python language, with particular attention to features frequently used in biology and bioinformatics. The course is organized into two coherent and progressive blocks:

Block 1 — Fundamentals

  • Variables and values (native types, strings)

  • String manipulation

  • Basic data structures (lists, dictionaries)

  • Control structures (conditions, loops)

  • Functions

  • Input/output and file handling

Block 2 — Advanced topics and object-oriented programming

  • Regular expressions

  • Higher-order functions and recursion

  • Testing

  • Complex data structures

  • Classes, attributes and methods

  • Exception handling

  • Generators and iterators

  • Functional programming

  • Know and understand the main characteristics of programming paradigms (imperative, functional, object-oriented) and how some of these are present within the Python language

  • Be able to design correct and rigorous algorithms to solve simple problems, and to implement these algorithms in Python

Goals


This course offers an introduction to software programming and its concepts, with content, examples, and exercises geared toward the needs of biology. It aims to give students a practical mastery of these concepts through the use of the Python language. The course is structured in two parts of equal weight: a first part devoted to the fundamentals of procedural programming, and a second part devoted to more advanced concepts as well as object-oriented programming.

Content

Part 1 — Fundamentals

  • Introduction

  • Variables and value types

  • Text manipulation

  • Lists and loops

  • Conditional structures

  • Functions and testing

  • Reading and writing files

  • Dictionaries

Part 2 — Advanced topics and object-oriented programming

  • Regular expressions

  • The program and its inputs/outputs

  • Recursion

  • Complex data structures

  • Object-oriented programming

  • Functional programming

  • Iterators and generators

  • Exception handling

Table of contents

  • Introduction

  • Variables and value types

  • Text manipulation

  • Lists and loops

  • Conditional structures

  • Functions and testing

  • Reading and writing files

  • Dictionaries

  • Regular expressions

  • The program and its inputs/outputs

  • Recursion

  • Complex data structures

  • Object-oriented programming

  • Functional programming

  • Iterators and generators

  • Exception handling

Exercices

Exercise sessions will closely follow the progress of the theoretical course. They take place on computers to give students the tools and best practices needed to make practical use of Python. Some homework preparation may be required. Each part ends with an integrative mini-project mobilizing all the concepts covered.

Teaching methods

  • Interactive theoretical lectures with illustrative exercises

  • Computer-based practical sessions

  • The course is organized into two blocks of 5 weeks each, with 4 hours of lectures and exercises plus 2 hours of supervised personal work per week

Assessment method

Course assessment consists of a single computer-based practical exam covering the entire content (100% of the grade). The exact assessment modalities may be adjusted depending on practical constraints.

Sources, references and any support material


The course is partly based on the books "Python for Biologists" and "Advanced Python for Biologists" by Dr. Martin Jones, 2013 (CreateSpace Independent Publishing Platform).

Language of instruction

English