Département d'informatique Faculté des Sciences
INFO–F–105 : Langages de programmation 1
Gilles Geeraerts (suppléance d'Yves Roggeman)

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é.

Organisation (année académique 2009–2010)

Cours (1 crédit)

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.

Exercices (1 crédit)

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.

Projet (1 crédit)

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 !

Évaluation (« Examen »)

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.

Projets d'examen 2009–2010 (en version pdf) :

Questions posées

Outils nécessaires aux projets

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.

Système d'exploitation

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.

Compilateur C/C++

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.

Environnements intégrés

Selon les systèmes, il existe des environnement intégrés adaptés au C++ :

Paramètres de compilation

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.


Supports de cours

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 Get Adobe Reader

Langage C++ standard

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 :

Leçons

Les leçons seront rendues disponibles tout au long de l'année. Vous pouvez également télécharger tous les slides comme un seul fichier: [Fichier PDF, 4,2 Mo]

Coordonnées des enseignants

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