Sigle : INF4053 Gr. 01 Titre : Techniques de programmation II Session : Automne 2005
Horaire et local
Professeur : Dargham, Joumana
|
Objectifs
Permettre à l'étudiant d'approfondir les méthodes de conception et de programmation structurée et de l'introduire à la programmation orientée objet.
Contenu
Techniques de récursivité. Méthodes de tri et de recherche. Pointeurs. Principes de la programmation orientée objets : classes, sous-classes, héritage, polymorphisme. Méthodologies de programmation avec un langage de haut niveau. Tests et documentation de programmes. Applications diverses.
|
Permettre à l'étudiant d'approfondir les méthodes de conception et de programmation structurée, de comprendre les notions de types de données structurées et de le rendre apte à les utiliser dans des applications réelles.
|
Les formules pédagogiques suivantes seront utilisées :
- L'enseignement est dispensé sous forme magistrale (3h/semaine).
- Des exercices seront donnés durant ces séances pour illustrer les notions nouvellement introduites.
- Les étudiants ayant un portable sont fortement encouragés à l'utiliser pendant le cours.
- Des séances d'exercices (2h/semaine) viendront appuyer les séances de cours. Ces séances se font en présence d'un assistant. La présence des étudiants à ces laboratoires est jugée importante.
- Il y aura 4 devoirs et 2 quizs.
- Un examen de mi-session et un examen final.
- Une page WebCT sera consacrée au cours.
|
Mardi : 13h00 à 15h00 et sur rendez vous (e-mail : dargham@uqo.ca)
|
1 |
Introduction et aperçu général
- Le langage C++ vs C
- Exemples de programmes C et C++
- Les éléments du langage C++
- Le pré-processeur et les librairies C++
|
06 sept. 2005 |
2 |
La programmation OO en C++
- Concepts de base
- La déclaration des variables
- La définition des classes
- Les instructions d'entrée/sortie
- Les structures de contrôle conditionnelles et itératives
- Les fonctions
|
13 sept. 2005 |
3 |
La récursivité
- La nature de la récursivité
- Trace des fonctions récursives
- Fonctions mathématiques récursives (Factoriel, ...)
- Étude de cas
|
20 sept. 2005 |
4 |
Les tableaux
- Les tableaux à une dimension
- Initialisation et réservation automatique
- Tableaux à plusieurs dimensions
- Passage de tableaux comme paramètres des fonctions
- Méthodes de recherche dans un tableau
|
27 sept. 2005 |
5 |
Les pointeurs et chaînes
- Les pointeurs
- Les opérateurs new et delete
- Les listes chaînées
- Pointeurs et tableaux
- Représentation d'une pile par une liste chaînée
|
04 oct. 2005 |
6 |
|
11 oct. 2005 |
7 |
|
18 oct. 2005 |
8 |
Les classes et abstraction de données (1)
- Rappel sur les structures
- Portée de classe et accès aux membres d'une classe
- Contrôle de l'accès aux membres
- Séparation entre l'interface et l'implantation
- Fonctions d'accès et fonctions utilitaires
- L'initialisation d'objets de classes : constructeurs
- L'utilisation des destructeurs
- Utilisation des membres de données et des fonctions membres
|
25 oct. 2005 |
9 |
Les classes et abstraction de données (2)
- Objets const (constants) et fonctions membres const
- Composition : Objets comme membres de classes
- Fonctions friend (amies) et classes friend
- Utilisation du pointeur This
- Membres de classes static
|
01 nov. 2005 |
10 |
La surcharge des opérateurs
- Fondements de la surcharge des opérateurs
- Restrictions de la surcharge des opérateurs
- Fonctions des opérateurs comme membres de classe et comme fonctions amies
- Surcharge d'opérateurs unaires et binaires
|
08 nov. 2005 |
11 |
L'héritage simple et multiple
- Introduction à l'héritage
- Classes de base et classes dérivées
- Membres protected
- Substitution des fonctions membres d'une classe de base dans une classe dérivée
- Les différentes formes d'héritage
- Emploi de constructeurs et de destructeurs dans des classes dérivées
- Polymorphisme et liaison dynamique
Étude de cas: Point, Cercle, Cylindre
|
15 nov. 2005 |
12 |
Le traitement des exceptions
- Bases de traitement des exceptions en C++ : try, throw, catch
- Lancement d'une exception
- Capture d'une exception
Exemple, Dépilage de la pile
|
22 nov. 2005 |
13 |
La gestion des fichiers
- Hiérarchie des données
- Créer un fichier à accès séquentiel
- Lire des données d'un fichier à accès séquentiel
- Mettre à jour des fichiers à accès séquentiel
|
29 nov. 2005 |
14 |
Tests et documentation de programmes
- Invariants, pré et postconditions
- Tests unitaires
- Tests d'intégration
- Révision
|
06 déc. 2005 |
15 |
|
13 déc. 2005 |
- Examen de mi-session : 30 %
- Examen final : 40 %
- Quizs : 15 %
- Devoirs : 15%
|
|
Références
- Notes de cours disponibles sur WebCT.
- Bjarne Stroustrup, The C++ programming language, Addison-Wesley 2000
- Deitel, Deitel, C++ How to program, Fourth edition, Prentice-Hall, 2002.
- Delannoy, C., Programmer en langage C++, Eyrolles, 1996.
- Frank L. Friedman, Elliot B. Koffman, Problem solving, abstraction, and design using C++, Fourth edition, Addison-Wesley, 2003.
- Budd, Timothy, An introduction to object-oriented programming, Third edition, Addison-Wesley, 2002.
La page web du cours se trouve sur WebCT.
|
|