Durée
20h Th, 100h Proj.
Nombre de crédits
Bachelier en sciences informatiques | 7 crédits |
Enseignant
Langue(s) de l'unité d'enseignement
Langue française
Organisation et évaluation
Enseignement au deuxième quadrimestre
Horaire
Unités d'enseignement prérequises et corequises
Les unités prérequises ou corequises sont présentées au sein de chaque programme
Contenus de l'unité d'enseignement
Le cours comporte un certain nombre d'exposés théoriques (+/- 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: Techniques Avancées de C
- Chapitre 1: Définition de Type
- Chapitre 2: Généricité
- Chapitre 3: Arguments d'un Programme
- Chapitre 1: Compilation
- Chapitre 2: Librairie
- Chapitre 3: Tests
- Chapitre 4: Documentation
- Chapitre 5: Débogage
- Chapitre 6: Gestion des Versions
- Chapitre 1: Introduction aux Interfaces Graphiques
- Chapitre 2: Applications Interactives
- Chapitre 3: Pattern MVC
Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement
L'objectif du cours est de permettre aux étudiants d'appliquer la matière vue dans le cadre des cours de programmation de Bloc 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 (git-hub).
- de construire une insterface graphique à l'aide de GTK et du pattern MVC.
Savoirs et compétences prérequis
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, à distance, hybride)
Cours donné exclusivement en présentiel
Explications complémentaires:
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 (via la page Web du cours) durant le quadrimestre.
Un syllabus d'exercices est disponible en ligne (cfr. site web du cours).
Le cours se donne au 2ème quadrimestre.
Supports de cours, lectures obligatoires ou recommandées
Plate-forme(s) utilisée(s) pour les supports de cours :
- eCampus
Informations complémentaires:
Les slides du cours sont disponibles, en version électronique (PDF) sur la page web du cours. Une version imprimée est disponible auprès de la CDC (fin janvier). 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.
En plus de cela, les étudiants disposent de 2 syllabus:
- Critères de Style, document décrivant des critères de style de programmation. Une version électronique est disponible (PDF) sur la page Web du cours. Une version imprimée est disponible auprès de la CDC (fin janvier).
- Critères de Langage, document décrivant les diverses notions d'utilisation du langage, telles qu'enseignées dans ce cours. Une version électronique est disponible (PDF) sur la page Web du cours. Une version imprimée est disponible auprès de la CDC (fin janvier).
- R. Malgouyres, R. Zrour, F. Feschet. "Initiation à l'Algorithmique et à la Programmation en C". Ed. Dunod 2011.
- M. Divay. "Algorithmique et Structures de Données Génériques". Ed. Dunod 2004.
- A. Braquelaire. "Méthodologie de la Programmation en C". Ed. Dunod 2005.
- B. W. Kernighan, D. M. Ritchie. "La Langage C". Ed. Dunod 2004.
- J.-L. Imbert. "Algorihmes Fondamentaux et Langage C". Ed. Ellipses 2008.
- R. Mecklenburg. "Managing Projects with GNU make". Ed. O'Reilly 2004.
Modalités d'évaluation et critères
Travail à rendre - rapport
Informations complémentaires:
Les étudiants sont évalués uniquemet sur base des projets. La pondération est la suivante:
- Projet 1: 15% de la note finale
- Projet 2: 20% de la note finale
- Projet 3: 15% de la note finale
- Projet 3: 50% de la note finale
Le 4ème projet est à faire en binôme. Il nécessite en plus du code la production d'un rapport écrit, la démonstration et la défense orale du projet. 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émonstration + défense orale.
En cas d'échec en 1ère session, tous les projets dont la note est < 10/20 sont à refaire durant l'été (aucun support ne sera fourni par l'équipe pédagogique durant cette période).
- Dans le cadre du 4ème projet, il 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.
- L'étudiant ne peut pas, bien entendu, copier (ou s'inspirer) du projet réalisé par un de ses condisciples durant le quadrimestre. Il s'agirait là d'un cas avéré de plagiat. L'etudiant peut, par contre, repartir de son propre code et l'améliorer en fonction du feedback reçu durant le quadrimestre. Attention, si aucune amélioration substantielle n'est constatée par rapport à la version soumise durant le quadrimestre, une note nulle sera affectée au projet.
- tous les projets devant être refaits doivent être rendus (deadline: 1er jour de la session) sous peine de se voir affecter une note d'absence pour la seconde session.
Stage(s)
Remarques organisationnelles et modifications principales apportées au cours
Le cours est composé d'une dizaine de cours théorique (typiquement, le cours théorique se termine aux alentours de Pâques). Quelques séances d'exercices et de coaching des projets sont organisées durant le quadrimestre.
Les étudiants sont invités à interagir avec l'équipe pédagogique via le forum ecampus, tant pour les questions relatives aux cours théoriques qu'aux projets.
Contacts
Coordinateur/Enseignant: Benoit Donnet -- Bureau 1.87b (B28)
Assistants:
- Emilien Wansart -- Bureau R.108 (B28)
- Maxime Goffart -- Bureau R.108 (B28)