Cette page contient les informations utiles concernant le cours de langages
de programmation pour la première année des études de bachelier en sciences
informatiques (INFO1).
Le descriptif officiel — en cours de rédaction — se trouve sur cette
page du catalogue des cours.
Les informations ci-dessous sont sujettes à modifications régulières. Les étudiants sont invités à la consulter régulièrement et s'informer via les « valves électroniques » de la Faculté.
Le cours théorique a lieu le lundi de 14 heures à 16 heures à l'auditorium D
(Campus de la Plaine) durant toute la première moitié du deuxième quadrimestre
(semaines de cours 13 à 18, voir calendrier
académique).
Les supports de cours seront rendus disponibles ci-dessous.
Les exercices suivent le cours, le lundi de 16 heures à 18 heures ; les
étudiants sont répartis en groupes dans différents locaux (voir horaire
détaillé sur le site de la faculté).
Les activités d'exercices font partie intégrante de l'enseignement.
Les supports et corrigés d'exercices sont disponibles ci-dessous.
Le projet du cours est le projet d'examen. Son énoncé est disponible ci-dessous, dans la section Évaluation. Les modalités de réalisation sont précisées dans l'énoncé et doivent être respectées à la lettre. Les étudiants sont invités à poser leurs questions directement au professeur, ou aux assistants via les voies habituelles (voir ci-dessous pour les coordonnées). L'adresse de remise (info-f-105 [at] lit.ulb.ac.be) ne doit en aucun cas être utilisée pour la communcation avec les enseignants !
Comme indiqué ci-dessus, l'épreuve consiste essentiellement en la réalisation de projets de programmation. La justification — via des commentaires judicieux et précis — des choix d'écriture, de style et de constructions particulières permet de démontrer la connaissance réelle du langage.
En session, les étudiants sont invités à remettre, présenter et expliquer
oralement leur projet d'examen selon l'horaire déterminé par le secrétariat de
la faculté.
Pour les étudiants présentant la deuxième session, un complément d'énoncé sera
fourni fin juin. Ce travail complet doit être remis et présenté selon les mêmes
modalités en seconde session.
Seules les notes supérieures ou égales à 10/20 sont reportables de la première à la seconde session et seules les notes supérieures ou égales à 12/20 sont reportables à l'année académique suivante, selon les modalités décrites au règlement facultaire (cf. Règlement des examens et des jurys). Aucun report partiel n'est accordé à l'année académique suivante, les projets constituant l'élément essentiel de l'évaluation.
Les projets et travaux peuvent s'effectuer sur le matériel disponible aux
locaux informatiques (NO3.007A, NO4.008 et NO4.009 - Plaine).
Ils peuvent bien entendu être réalisés sur d'autres matériels personnels, tant
en environnement Windows (Microsoft)
que Mac OS (Apple) ou Unix / Linux (libre).
La philosophie du cours est de faire respecter la définition officielle des
langages, i.e. conforme à la norme
ISO/IEC, en utilisant essentiellement des logiciels libres (voir à ce propos les
définitions du projet
GNU de la Free Software Fondation
ou de l'AFUL).
Voici quelques sites permettant, en toute légalité, de télécharger les logiciels nécessaires. Plusieurs liens sont proposés, mais d'autres solutions sont possibles.
La plupart des compilateurs libres sont conçus pour un environnement
Unix.
Une version libre est disponible, par exemple, sur le site d'Ubuntu (version francophone ou anglophone).
Si l'on ne souhaite pas basculer entièrement sous ce système, on peut généralement configurer sa machine en mode « double système » (dual boot) permettant de choisir, au démarrage de l'ordinateur, le système d'exploitation utilisé. C'est la solution la plus fréquente pour faire coexister les différents environnements sur une même machine.
Une autre solution consiste à installer une machine virtuelle, émulation d'un système d'exploitation comme sous-tâche d'un autre système.
Pour compiler, voici deux solutions librement téléchargeables :
Afin de disposer d'un compilateur complet et conforme au dernier standard (2003), il est conseillé de travailler avec une version récente de GCC, c'est-à-dire une version 4.1.x ou postérieure. La version actuelle (depuis fin janvier 2009) est GCC 4.3.3. Elle n'est malheureusement pas installée automatiquement ; au besoin, il faut télécharger le programme source et le compiler dans son environnement (à l'aide de la version de GCC préinstallée). Ce compilateur est distribué librement sous licence GNU GPL.
Selon les systèmes, il existe des environnement intégrés adaptés au C++ :
Pour compiler avec tous les contrôles de conformité au dernier standard (2003, correction de la version de 1998) et même anticiper une partie des extensions en cours de normalisation, l'appel au compilateur doit être accompagné de paramètres particuliers.
Voici une copie des présentations et autres documents utiles pour cet enseignement. La plupart sont au format pdf (Portable Document Format) créé par Adobe Systems, mais librement utilisable.
Le logiciel de lecture pour tout système est téléchargeable en cliquant sur
Les références générales des autres cours de programmation ou d'algorithmique sont suffisantes pour décrire le noyau élémentaire du langage utilisé. Les résumés des leçons ci-dessous le complète suffisamment et contiennent toute l'information nécessaire pour réaliser les travaux demandés.
Il existe également de nombreux tutoriels accessibles. En voici quelques exemples : Le langage C++, cplusplus.com, Cprogramming, C++ Reference, GNA, rubrique C++ de E.Rémy ou la MSDN library, la plupart en anglais.
La seule référence complète (783 pages), mais de forme peu didactique, est la norme internationale (ISO/IEC 14882:2003). Sa version actuelle est la deuxième édition, connue sous l'acronyme C++ 03. Ce document est payant. Une nouvelle version est en cours d'élaboration contenant plusieurs extensions. Une ébauche (du 23 mars 2009, 1347 pages) peut être consultée afin d'aider au processus de normalisation. Elle devrait être achevée en 2009 et est référencée sous le nom C++ 0x.
Voici quelques ouvrages « de référence » qui peuvent être consultés en bibliothèque :
Enfin, certains ouvrags sont disponibles sous forme électronique :
Il est vivement conseillé de participer activement aux séances d'exercices.
Outre la préparation effective aux examens, elles présentent l'occasion
naturelle de poser des questions et de vérifier la compréhension réelle de la
matière.
Toutefois, en cas de besoin particulier ou urgent de contacter les enseignants,
voici leurs coordonnées :
Fonction |
Nom |
Courriel |
Bureau |
Téléphone |
Professeur | G. Geeraerts |
gigeerae [at] ulb.ac.be | N8.117 |
02/650.55.96 |
Assistant (gr. 1) | Catharine Olsen |
catharina.olsen [at] ulb.ac.be | O8.213 |
02/650.56.05 |
Assistant (gr. 2) | Jérome Dossogne |
jerome.dossogne [at] ulb.ac.be | N8.214 |
02/650.58.66 |
Assistant (gr. 3) | Vincent HO |
vincent.ho [at] ulb.ac.be | N3.202 |
02/650.50.27 |
Dernière mise à jour le 1er juillet 2010