 |  |  |
| INFO0030-3 | Projet de programmation
|

 |
| Durée : | 20h Th, 100h Proj. |
 |
| 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 comporte un certain nombre d'exposés théorique (+/- 10 cours) et divers projets de programmation (4) que les étudiants doivent résoudre, soit seul, soit en groupe.
Les exposés théoriques sont là pour introduire les concepts nécessaires à la réalisation des projets. La difficulté des projets est graduelle. Le cours théorique se compose de 4 parties:
Partie 1: Eléments de C
- Chapitre 1: Techniques C Avancées
Partie 2: Outils
- Chapitre 1: Compilation
- Chapitre 2: Tests
- Chapitre 3: Documentation
- Chapitre 4: Débogage
- Chapitre 5: Analyse de Performance
- Chapitre 6: Gestion des Versions
Partie 3: Eléments de Programmation Evénementielle
- Chapitre 1: Introduction aux Interfaces Graphiques
- Chapitre 2: Applications Interactives
- Chapitre 3: Pattern MVC
Partie 4: Introduction au Génie Logiciel
- Chapitre 1: Bases du Génie Logiciel
|
 |
Acquis d'apprentissage (objectifs d'apprentissage) du cours :
 |
| L'objectif du cours est de permettre aux étudiants d'appliquer la matière vue dans le cadre des cours de programmation de BAC 1 (INFO0946 et INFO0947) mais aussi d'apprendre à écrire des programmes, en C, d'une taille certaine qui sont à la fois correct, efficace, élégant, et lisible.
A la fin du cours, l'étudiant sera capable
- de produire une architecture logicielle rigoureuse, efficace et élégante.
- de manipuler les types opaques, les arguments d'un programme et d'écrire du code C "générique".
- de manipuler les divers outils d'aide à la programmation, comme le Makefile, la génération de bibliothèque, les tests unitaires (en particulier la librairie Seatest), la documentation via doxygen, le débuggage (gdb, valgrind), le partage de code (svn, git-hub).
- de construire une insterface graphique à l'aide de GTK et du pattern MVC.
- de discuter les différentes étapes de la construction d'un logiciel et les différentes méthodes de développement logiciel.
En plus de cela, l'étudiant aura acquis, durant le cours, diverses compétences transversales. A savoir la rédaction de rapport, la manipulation de LaTeX et la défense orale d'un rapport. |
 |
Prérequis et corequis / Modules de cours optionnels recommandés :
 |
| Le cours s'appuie sur plusieurs co-requis:
|
 |
Activités d'apprentissage prévues et méthodes d'enseignement :
 |
| Application pratique (i.e., résolution des projets) des concepts/outils vus au cours |
 |
Mode d'enseignement (présentiel ; enseignement à distance) :
 |
| Les cours théoriques se basent sur des slides (cfr. site web du cours). Les étudiants sont amenés à compléter les slides par des notes personnelles durant le cours. L'auditoire est amené à participer activement au cours.
Les énoncés des projets sont distribués en cours de quadrimestre.
Le cours se donne au 2ème quadrimestre. |
 |
Lectures recommandées ou obligatoires et notes de cours :
 |
| Les slides du cours sont disponibles sur la page web du cours. Une version imprimée est disponible auprès de la CDC. Les étudiants sont supposés disposer des slides le plus rapidement possible.
Les étudiants reçoivent un feedback individualisé sur leurs projets en cours d'année |
 |
Modalités d'évaluation et critères :
 |
| Les étudiants sont évalués sur base des projets et d'un examen écrit ayant lieu en juin durant la session.
La pondération est la suivante:
- Projet 1: 10% de la note finale
- Projet 2: 10% de la note finale
- Projet 3: 10% de la note finale
- Projet 4: 50% de la note finale
- Examen Ecrit: 20% de la note finale
Les 3 premiers projets sont à réaliser individuellement. L'attribution des points se fait sur base d'une grille de cotation générique (75% de la note du projet) distribuée en début de quadrimestre et sur base des acquis d'apprentissage propres au projet (25% de la note du projet).
Le 4ème projet est à faire en binôme. Il nécessite en plus du code la production d'un rapport écrit et la défense orale du rapport. La répartition des points de ce projet est la suivante: 50% suivant la grille de cotation générique, 20% pour les acquis d'apprentissage propres au projet, 15% pour le rapport et 15% pour la défense orale.
L'examen a pour but de vérifier les connaissances théoriques et pratiques des étudiants. Il est écrit et se fait à livre fermé. L'examen dure 4h. Les étudiants doivent rendre tous les projets pour pouvoir passer l'examen. En cas de non respect de cette règle (i.e., au moins un projet n'est pas rendu sans une raison valable), l'étudiant ne pourra pas avoir accès à l'examen et se voit attribuer une note d'absence.
En cas d'échec en 1ère session, tous les projets sont à refaire durant l'été (aucun support ne sera fourni par l'équipe pédagogique durant cette période). L'examen doit lui aussi être repassé.
- Le quatrième projet sera à refaire individuellement. Cependant, le rapport et la défense ne font plus partie du projet. Vous serez donc évalué à 75% selon la grille de cotation et les 25% restant porteront sur les apprentissages propres à ce projet.
- La note de l'examen peut être reportée en seconde session uniquement si elle est supérieure à 10/20. L'étudiant doit en faire explicitement la demande au Professeur.
- Vous ne pouvez pas, bien entendu, copier (ou vous inspirer) du projet réalisé par un de vos condisciples durant le quadrimestre. Il s'agirait là d'un cas avéré de plagiat.
|
 |
Stage(s) :
 |
| |
 |
Remarques organisationnelles :
 |
| Un page web décrivant en détail le cours est disponible: http://www.montefiore.ulg.ac.be/~info0030 |
 |
Contacts :
 |
| Professeur: Benoit Donnet,(mailto:benoit.donnet@ulg.ac.be(benoit.donnet@ulg.ac.be) -- Bureau I.15 (B28)
Assistant: Korian Edeline) |
 |
| 
 |
| Notes en ligne : |
|
| Page Web du cours |
| Page web du cours |
|
|