Acquis d'apprentissage

  • Comprendre le concept de « langage de programmation »

  • Connaître et comprendre les concepts de la programmation dans le cadre du langage Python, avec une attention particulière portée aux fonctionnalités fréquemment utilisées en biologie et bio-informatique. Le cours est organisé en deux blocs cohérents et progressifs :

Bloc 1 — Fondamentaux

  • Les variables et les valeurs (types natifs, chaînes de caractères)

  • Les manipulations de chaînes de caractères

  • Les structures de données de base (listes, dictionnaires)

  • Les structures de contrôle (conditions, boucles)

  • Les fonctions

  • Les entrées/sorties et la manipulation de fichiers

Bloc 2 — Avancé et programmation orientée objet

  • Les expressions régulières

  • Les fonctions d'ordre supérieur et la récursivité

  • Les tests

  • Les structures de données complexes

  • Les classes, attributs et méthodes

  • La gestion des exceptions

  • Les générateurs et itérateurs

  • La programmation fonctionnelle

  • Connaître et comprendre les principales caractéristiques des paradigmes de programmation (impératif, fonctionnel, objet) et comment certaines de celles-ci sont présentes au sein du langage Python

  • Être en mesure d'élaborer des algorithmes de façon correcte et rigoureuse permettant de résoudre des problèmes simples, et d'implémenter ces algorithmes en Python

Objectifs

Ce cours offre une introduction à la programmation logicielle et à l'ensemble de ses concepts, en axant la matière, les exemples et les exercices vers un usage adapté aux besoins en biologie. Il vise à acquérir une maîtrise pratique de ces concepts via l'utilisation du langage Python. Le cours est structuré en deux parties de poids équivalent : une première partie consacrée aux fondamentaux de la programmation procédurale, et une seconde partie consacrée à des concepts plus avancés ainsi qu'à la programmation orientée objet.

Contenu

Partie 1 — Fondamentaux

  • Introduction

  • Variables et types de valeurs

  • Manipulation de texte

  • Les listes et les boucles

  • Les structures conditionnelles

  • Les fonctions et le testing

  • Lecture et écriture de fichiers

  • Les dictionnaires

Partie 2 — Avancé et programmation orientée objet

  • Les expressions régulières

  • Le programme et ses entrées/sorties

  • La récursivité

  • Les structures de données complexes

  • La programmation orientée objet

  • La programmation fonctionnelle

  • Les itérateurs et générateurs

  • La gestion des exceptions

Table des matières

  • Introduction

  • Variables et types de valeurs

  • Manipulation de texte

  • Les listes et les boucles

  • Les structures conditionnelles

  • Les fonctions et le testing

  • Lecture et écriture de fichiers

  • Les dictionnaires

  • Les expressions régulières

  • Le programme et ses entrées/sorties

  • La récursivité

  • Les structures de données complexes

  • La programmation orientée objet

  • La programmation fonctionnelle

  • Les itérateurs et générateurs

  • La gestion des exceptions

Exercices

Les séances d'exercices suivront fidèlement l'avancement du cours théorique. Elles sont dispensées sur ordinateur afin d'offrir à l'étudiant les outils et les bonnes pratiques lui permettant de faire une utilisation concrète de Python. Certaines préparations à domicile peuvent être demandées. Chaque partie se termine par un mini-projet intégrateur permettant de mobiliser l'ensemble des notions vues.

Méthodes d'enseignement

  • Cours théoriques interactifs avec exercices illustratifs

  • Séances de travaux pratiques sur ordinateur

  • Le cours est organisé sur deux blocs de 5 semaines chacun, à raison de 4h de cours et exercices, complétées par 2h de travail personnel encadré par semaine

Méthode d'évaluation

L'évaluation du cours consiste en une épreuve unique de mise en pratique sur ordinateur, portant sur l'ensemble de la matière (100% des points). Les modalités exactes de l'évaluation sont susceptibles d'être modifiées en fonction des contraintes pratiques.

Sources, références et supports éventuels

Le cours est en partie basé sur les livres « Python for Biologists » et « Advanced Python for Biologists » par Dr. Martin Jones, 2013 (éd. CreateSpace Independent Publishing Platform)

Langue d'enseignement

Anglais