Document de synthèse sur le cours « Algorithmique et ... - Lirmm

en IUT Génie Biologique option Bioinformatique 1ère année .... Un peu «
mathématique », le chapitre concernant le codage permet de faire une ... Deux
examens de 2h portant respectivement sur les chapitres 1 à 6 (notions de base
en .... soit en bioinformatique si une licence professionnelle « bioinformatique »
se créé.

Part of the document


Document de synthèse sur le cours « Algorithmique et programmation en C »
en IUT Génie Biologique option Bioinformatique 1ère année
Ce document présente un bilan sur deux ans de l'enseignement de
l'algorithmique et programmation en C dans le cadre de l'option
Bioinformatique (IUT Génie Biologique 1ère année) à Aurillac, antenne de
l'IUT de Clermont-Ferrand.
Cet enseignement, d'un volume horaire de 95h réparties en 60h de cours-
travaux dirigés et 35h de travaux pratiques, a été assuré en 2000-2001 par
Mlle Chateau et M. Mayenobe, et en 2001-2002 par Mlle Chateau et Mme
Favand.
Nous présentons le contenu des enseignements et étudions son adéquation
avec le programme pédagogique. Nous réalisons ensuite un bilan de l'accueil
des étudiants face à cette matière dans le contexte de l'option
bioinformatique, puis évoquerons les difficultés rencontrées et les
compétences créées, avant d'envisager quelques propositions pour l'avenir.
I. Contenu des enseignements et comparaison avec le programme
pédagogique
1. Programme pédagogique Les enseignements du cours d'algorithmique et programmation en C
correspond à la partie « Outils fondamentaux » de l'Unité d'Enseignement
UE3 (« Formation générale et enseignement préparatoire »). Le programme
pédagogique stipule : Enseignement préparatoire
L'enseignement préparatoire de l'option bioinformatique à Aurillac
représente 200h. Centré sur l'informatique, il s'inspire des enseignements
en filières DUT Informatique option GI (Génie Informatique), option SI
(Systèmes Informatiques) et des DUT GTR (Génie des Télécommunications et
Réseaux) et Imagerie Numérique. Il a pour objectif d'initier les étudiants
aux différents aspects de l'informatique tout en étant représentatif du
programme des deux années. Il est découpé de la façon suivante : Outils fondamentaux
Algorithmique
Traitements séquentiels, alternatifs, itératifs.
Complexité.
Modules, sous-programmes. Exceptions. Récursivité.
Langage C.
Structures de données
Codage, variables statiques et dynamiques, tableaux, types
de base et types composés, pointeurs, fichiers.
Analyse d'applications, environnement de développement du
langage C Traitement des données
Rôle des bases de données
Bases de données relationnelles
Conception des bases relationnelles
Requêtes et mise en ?uvre des bases de données (SQL, jointures)
Développement d'interfaces et d'applications sur les bases de
données (Access)
Modélisation et simulation (Langages formels et automates) Architecture et réseaux
Architecture
Architecture d'un ordinateur, d'un processus de traitement,
mémoire, périphériques, architectures dédiées.
Systèmes d'exploitation
Types et caractéristiques : multi-utilisateurs, multi-
processus, interactifs, langages de commandes, programmes
et processus (NT, UNIX, Linux)
Tableau des horaires consacrés à l'enseignement des Outils fondamentaux : | |Heures Cours-TD|Heures TP|Tota|
| | | |l |
|Outils fondamentaux |60 |35 |95 |
|Algorithmique |25 |15 |40 |
|Structures de données |25 |15 |40 |
|Analyse d'applications |10 |5 |15 |
|Environnements de | | | |
|développement | | | | 2. Contenu de l'enseignement
a. Cours et programme pédagogique
Le cours proposé aux étudiants est construit à partir de plusieurs
supports :
. Le cours proposé en 1ère année d'IUT Informatique par Mme Favand
(chapitres 3 à 6)
. Le cours proposé en 1ère année d'IUT Informatique par M. Imbert
(chapitres 1, 2, 9, 10, 12)
. Des ajouts et modifications par Mlle Chateau (chapitres 7, 8, 11) La table des matières du support de cours polycopié est donnée en Annexe A.
Au niveau du contenu et du déroulement du cours, l'option choisie a été
celle d'une approche simultanée des notions algorithmiques et de
l'apprentissage du langage C, notamment à travers les exemples vus en
cours. Comparaison avec le programme pédagogique :
Algorithmique
- Traitement séquentiels, alternatifs, itératifs. Modules, sous-
programmes : ces notions de base sont abordées dans les chapitres 5
et 6.
- Complexité. Récursivité : ces notions sont évoquées dans le
chapitre 9, à l'occasion de l'étude et de la comparaison de
différents algorithmes de recherche et de tri sur les tableaux à
une dimension. Elles ne sont pas développées en TD ou en TP.
- Exceptions : cette notion est très brièvement évoquée à
l'occasion des TP.
- Langage C : introduite au chapitre 4, la syntaxe du langage C
parsème le cours comme illustration des structures algorithmiques
abordées.
Structures de données
- Codage : cette partie sert d'introduction au fonctionnement de
l'ordinateur (chapitre 2). Un peu « mathématique », le chapitre
concernant le codage permet de faire une transition entre les
connaissances préalables de l'étudiant et la matière inconnue que
représente l'algorithmique.
- Variables statiques et dynamiques, types de base et types
composés : ces notions essentielles sont abordées dans le chapitre
4.
- Tableaux : ces objets très utilisés en C font l'objet du volumineux
chapitre 9, et de nombreux TP.
- Pointeurs : ils dont abordés au chapitre 10.
- Fichiers : objets du dernier chapitre du cours (chapitre 12), les
fichiers n'en sont pas pour autant négligés étant donnée leur
importance fondamentale en bioinformatique. Ainsi, ils font l'objet
d'un TP entier.
Analyse d'applications, environnement de développement du langage C
Les étudiants en TP ont affaire à des problèmes concrets liés à la
bioinformatique (voir plus loin les exemples de sujets de TP). Ils
travaillent sur divers systèmes d'exploitation et environnements de
développement :
. Editeur de texte emacs et compilateur gcc en ligne de commande sous
Linux
. DevC++ sous Windows 98
. VisualC++ sous Windows 98 ou Windows 2000
. Kdevelop sous Linux b. Ajouts par rapport au programme pédagogique Le chapitre 1 : Introduction : méthode de travail, organisation, et toutes
ces sortes de choses
Ce chapitre insiste sur le fait que l'optique de cet enseignement est une
approche professionnelle de la programmation (qualité du logiciel,
lisibilité et communicabilité du code, documentation du logiciel et
sécurité des données). Le chapitre 7 : Structures de données
Ce chapitre est une introduction générale aux structures de données, visant
à différencier nettement celles-ci des traitements sur ces structures. Il
annonce les structures de données étudiées plus largement ultérieurement
dans le cadre de cet enseignement (structures, tableaux), ainsi que celles
qui seront abordées en 2ème année (piles, files, listes, arbres). Le chapitre 8 : Programmation modulaire
Ce chapitre aborde le découpage des projets en sous-unités de développement
(librairies) afin de comprendre le fonctionnement et l'utilisation optimale
des environnements intégrés de développement. Le chapitre 11 : Les chaînes de caractères
Ce chapitre est très orienté vers les axes de recherches actuels en
génomique, notamment les aspects statistiques et la recherche de motifs. Il
reste très général mais permet de montrer des applications directes à la
bioinformatique de l'enseignement de l'algorithmique. c. Déroulement des TD Mêlés au cours (en général 2h de TD pour 2h de cours), les TD ont deux
buts principaux :
. Soit ce sont des exercices d'application du cours, afin de se
familiariser avec les notions essentielles et les méthodes de
manipulation des structures de contrôle et des structures de données ;
. Soit ce sont des exercices préparatoires aux séances de TP (passage
progressif aux algorithmes qui auront à être implémentés).
Ces deux buts peuvent évidemment être simultanés.
Les exercices sont de préférence en lien avec la biologie ou bien
directement inspirés de problèmes bioinformatiques.
d. Les TP Parallèlement aux chapitres 3, 4, 5, et 6, les TP sont des exercices
classiques de familiarisation avec la syntaxe du langage C et les
structures de contrôle de base (conditions, itérations, boucles). A partir
du chapitre 7, les TP sont dédiés à des sujets bioinformatiques,
notamment :
. Manipulation de données diététiques ;
. Simulation de croissance bactérienne ;
. Caractérisation d'enzymes ;
. Implémentation de l'algorithme de recherche de motif de Knuth-Morris-
Pratt appliqué au génome ;
. Détermination des spots dans une image numérisée d'électrophorèse
bidimensionnelle ;
. Manipulations statistiques de données génomiques stockées dans un
fichier texte. e. Evaluation Cours-TD : Les évaluations sont de deux types :
. Des interrogations courtes régulières portant sur des questions de
cours et/ou des exercices très simples comparables à ceux vus en T