 |  |  |
| INFO0947-1 | Compléments de programmation
|

 |
| Durée : | 30h Th, 30h Pr |
 |
| Nombre de crédits : |
|
 |
| Nom du professeur : | Benoît Donnet |
 |
Langue(s) du cours :
 |
| Langue française |
 |
Organisation et évaluation :
 |
| Enseignement au deuxième quadrimestre |
 |
Contenus du cours :
 |
| Le cours s'intéresse essentiellement aux structures de données avancées et à l'algorithmique liée à ces structures.
Les thèmes abordés dans le cours sont les suivants: structures de données évoluées (listes chaînées, définition de types abstraits, pile, file), algorithmique avancée (récursivité, élimination de la récursivité), et construction rigoureuse de programme (approche constructive, triplet de Hoare).
La structure du cours est la suivante:
- Introduction
- Chapitre 1: Raisonnement Mathématique
- Chapitre 2: Construction de Programme
- Chapitre 3: Listes Chaînées
- Chapitre 4: Récursivité
- Chapitre 5: Types Abstraits de Données
- Chapitre 6: Elimination de la Récursivité
- Chapitre 7: Fichiers Séquentiels
Le chapitre 7 sera abordé si le timing le permet. |
 |
Acquis d'apprentissage (objectifs d'apprentissage) du cours :
 |
| L'objectif de ce cours est d'augmenter les connaissances et aptitudes des étudiants en matière de programmation impérative.
La construction d'un programme sera mise en avant et l'approche constructive, via le triplet de Hoare, sera la base du cours.
Le langage de programmation utilisé est le C.
A la fin du cours, l'étudiant sera capable de formaliser (sous la forme d'assertions) un problème, d'en tirer des spécifications et un invariant formel sur lesquels il s'appuiera pour construire son programme. Il sera aussi à même d'utiliser une structure de données avancée et de définir entièrement (signature, sémantique et implémentation) un type de données abstrait.
En outre, l'étudiant aura appris à rédiger des rapports (pour les différents projets) à l'aide de l'outil LaTeX. |
 |
Prérequis et corequis / Modules de cours optionnels recommandés :
 |
| Le cours suppose plusieurs pré-requis.
Mathématiques:
Informatique:
Le cours suppose aussi une bonne connaissance du français (oral et écrit) |
 |
Activités d'apprentissage prévues et méthodes d'enseignement :
 |
| En plus du cours théorique, des séances d'exercices (i.e., séance de répétitions) sur papier sont organisées de manière presque hebdomadaire. Chaque séance d'exercices dure 2h. Chaque étudiant disposera de +/- 14 séances d'exercices durant le quadrimestre. Les séances d'exercice sont obligatoires.
En outre, le cours propose 3 projets, durant le quadrimestre, afin d'illustrer les concepts vus au cours. Chaque projet nécessite l'écriture d'un programme (en C) et la rédaction d'un rapport. Ces projets, à réaliser en binôme, sont obligatoires. |
 |
Mode d'enseignement (présentiel ; enseignement à distance) :
 |
| Le cours théorique se donne au 2ème quadrimestre, en présentiel.
Le cours théorique se construit autour d'exemples et de petits exercices. L'auditoire est amené à participer activement au cours
Les étudiants sont aussi amenés à prendre des notes complémentaires. |
 |
Lectures recommandées ou obligatoires et notes de cours :
 |
| Les notes du cours sont composées essentiellement de transparents (slides). Une version imprimée des slides (2/page) est disponible, dès le début du quadrimestre, à la Centrale des Cours. Une version électronique des slides est aussi disponible sur la page web du cours. Les étudiants sont supposés disposer au plus vite d'une version des slides.
Un syllabus d'exercices est disponible auprès de la Centrale des Cours. Une version électronique est aussi disponible sur la page web du cours. Chaque étudiant est supposé disposer du syllabus d'exercices dès la première séance de répétitions.
Aucun livre n'est obligatoire dans ce cours. Cependant, l'étudiant désireux de disposer d'un support écrit additionnel peut se référer aux ouvrages suivants (ils ont servi pour l'élaboration du cours):
- Jacques Courtin, Irène Kowarski. "Initiation à l'Algorithmique et aux Structures de Données. Volume 1". Editions Dunod. 1998 (2ème édition).
- Jacques Courtin, Irène Kowarski. "Initiation à l'Algorithmique et aux Structures de Données. Volume 2". Editions Dunod. 1997 (2ème édition).
- Michel Divay. "Algorithmique et Structures de Données Génériques". 2004 (2ème édition)
- Jacques Julliand. "Cours et Exercices Corrigés d'Algorithmique. Vérifier, tester et Concevoir des Programmes en les Modélisant". Ed. Vuibert. 2010 (1ère édition)
- Jean-Louis. Imbert. "Algorihmes Fondamentaux et Langage C". Ed. Ellipses. 2008 (1ère édition)
|
 |
Modalités d'évaluation et critères :
 |
| Les étudiants sont évalués de deux façons: une série de trois projets et l'examen.
Projets
Le cours sera composé de trois projets (construction de programme, récursivité et liste chaînée, et types abstraits). Les projets sont à réaliser en binôme. Les binômes sont constitués dès le début du quadrimestre. Il est interdit de changer de binôme durant le quadrimestre.
Les projets comptent pour 40% de la note finale.
La réalisation des projets est obligatoire. Tout étudiant n'ayant pas rendu tous les projets se verra interdire l'accès à l'examen de juin. Dans ce cas, l'étudiant sera directement reporté en seconde session (avec une note de 0/20).
Examens
L'examen est écrit et, bien entendu, obligatoire. Il aura lieu en juin. Il se fait à cours fermé et dure, généralement, 4 heures. La note de l'examen intervient pour 60% dans la note finale.
L'examen de juin se compose, aussi, d'un examen oral de rattrapage. Cet examen est facultatif. Tout étudiant estimant avoir obtenu, à l'examen (+ projets) une note inférieure à 10/20 pourra présenter l'examen oral de rattrapage. Cet examen pourra permettra à l'étudiant de remonter sa note. Les questions de l'examen écrit et/ou des sous-ensembles des différents projets peuvent servir pour l'examen oral de rattrapage.
Seconde Session
En cas d'échec en juin, il y a deux cas de figures qui s'offrent à l'étudiant:
- l'étudiant a réussi les projets. L'étudiant devra seulement présenter l'examen écrit en août, avec éventuellement l'examen oral de rattrapage. La note des projets est, elle, conservée.
- l'étudiant n'a pas réussi les projets. L'étudiant devra refaire, seul, tous les projets durant l'été. Il devra, en outre, repasser l'examen écrit, avec éventuellement l'examen oral de rattrapage. A noter qu'aucun support ne sera offert, à l'étudiant, durant l'été pour ses projets
Dans les deux cas, la clé de répartition des points entre l'examen et les projets est la même qu'en première session. |
 |
Stage(s) :
 |
| |
 |
Remarques organisationnelles :
 |
| Une page Web décrivant le cours est disponible:http://www.montefiore.ulg.ac.be/~bdonnet/info0947/index.html |
 |
Contacts :
 |
| Professeur: Benoit Donnet (mailto:benoit.donnet@ulg.ac.be) -- Bureau 1.15 (B28)
Assistant: Simon Liénardy
Un étudiant moniteur |
 |
| 
 |
| Notes en ligne : |
|
| Page Web du Cours |
| Page Web du cours |
|
|