|
Collège François-Xavier Garneau |
PLAN DE COURS
PROGRAMME : Programmeur-programmeuse analyste 903.64
SPÉCIALISATION : Développement de logiciels
|
COURS |
|
Titre: |
Programmation I |
|
|
Numéro: |
420-101-90 |
PPA- (31) |
|
Pondération: |
3-3-3 |
3 unités |
|
|
|
|
|
Session: |
A01 |
|
|
Durée: |
17 semaines |
|
|
Horaire: |
|
|
|
|
|
|
|
Début |
27 août 2001 |
|
|
Congé |
|
|
|
Fin |
21 décembre 2001 |
|
|
Lieu: |
|
|
|
Théorie |
|
|
|
Laboratoire |
|
|
|
|
|
|
|
Professeur: |
Jules Carmichael |
Tél. : 825-2449 |
|
Bureau: |
H-0307 |
|
|
Disponibilité: |
à déterminer |
|
|
SITUATION DU COURS ET PRÉALABLE |
Première session ; aucun préalable spécifique à l'informatique
Présentation générale
Ce cours prépare l'élève à jouer
plusieurs rôles puisqu'il fait partie d'un tronc commun à plusieurs
spécialisations : programmeur(e)-analyste, réseautique, commerce électronique,
etc. C'est à l'une ou l'autre de ces tâches que préparera la séquence des cours
de programmation que suivront les étudiantes et les étudiants inscrits dans
l'un de ces programmes. Le cours de Programmation I est le premier de cette
séquence. Ce cours s’intéresse plus particulièrement à la résolution de
problèmes, à l’algorithmique et à la programmation orientée objet. Nous verrons
que celle-ci se réalise en plusieurs étapes. L’accent du cours portera sur la
nécessité de bien comprendre un problème posé, décomposer le problème en
plusieurs petits problèmes plus simples à résoudre, trouver des solutions à ces
petits problèmes et enfin transposer ces solutions en séquences d’opérations
que l'on pourra ensuite traduire dans un langage de programmation. L’approche
utilisée sera une approche dite “orientée objet” qui utilise comme élément de
base ce qui est connu sous le nom de “classe”. Ce cours constitue la base de
tous les cours de programmation d'une AEC en informatique et permet d'acquérir
de bonnes habitudes de programmation.
Objectifs
généraux
·
Proposer
une solution à un problème sous forme algorithmique.
·
Résoudre
des problèmes dans un contexte familier en respectant les différentes étapes de
résolution d'un problème.
·
Comprendre
les notions de variable et de constante dans le contexte d'un algorithme, des
langages de programmation et d'un ordinateur.
·
Comprendre
le principe des entrées-sorties.
·
Comprendre
la notion d'instruction.
·
Reconnaître
les différentes structures algorithmiques de base (séquentielle, conditionnelle
et répétitive).
·
Dans
un contexte précis et selon des critères donnés, déterminer une structure
algorithmique appropriée.
·
Vérifier
la validité d'un algorithme.
·
Définir
les structures de base et leurs règles.
·
Représenter
les structures de base.
·
Connaître
la syntaxe de base du langage C++.
·
Utiliser
les structures de données élémentaires (vecteurs, matrices, chaînes de
caractères) dans un algorithme.
·
Traduire
un algorithme en langage C++ en respectant des normes établies.
·
Comprendre
et utiliser la notion d’objet et de programmation orientée-objet.
Objectifs
spécifiques
1. Notion d'algorithme
·
Identifier les étapes conduisant à la rédaction d'un
algorithme solutionnant un problème simple.
·
Définir la notion d'algorithme.
·
Concevoir des algorithmes de "gros bon sens".
2. Étapes
de la résolution d'un problème
·
Identifier les contraintes et les objets impliqués dans un
problème à partir d'un énoncé.
·
Identifier, dans un problème particulier, les objets et les
données fournies en entrée et les résultats attendus.
·
Déterminer les étapes établissant le lien entre les données
fournies et les résultats attendus dans le cadre d'un problème particulier.
3. Notion
d’objets, de variables et de constantes
·
Distinguer les éléments constants et variables dans un
énoncé.
·
Identifier les types des éléments (entier, réel, caractère,
chaîne de caractères).
·
Nommer de façon significative les constantes et les
variables intervenant dans un problème.
4. Notion
d'objets et d’Entrée-Sortie
·
Distinguer les variables de travail des variables d'entrée
ainsi que les résultats attendus.
·
Comprendre les mécanismes d’échanges d’informations entre un
programme et son environnement.
5. Notion
d'instruction
·
Utiliser l'instruction d'affectation et les instructions
d'entrée/sortie.
·
Formuler des expressions arithmétiques simple faisant
intervenir des variables et des constantes.
·
Appliquer les priorités des opérateurs arithmétiques.
·
Évaluer des expressions en tenant compte de la compatibilité
des type de données
·
Écrire des classes possédant des propriétés et des méthodes
6. Structure
algorithmique de base et structures de contrôle
·
Connaître la structure séquentielle.
·
Utiliser les structures conditionnelles simples et emboîtées
en respectant les règles d'utilisation.
·
Écrire des conditions composées.
·
Évaluer des conditions composées.
·
Connaître la priorité des opérateurs logiques.
·
Utiliser les structures répétitives en respectant les règles
d'utilisation.
·
Choisir la structure algorithmique de base appropriée à un
problème donné.
·
Faire la trace d'un algorithme.
·
Utiliser des techniques de base de mise au point
(débuggage).
7. Les
tableaux
·
Définir la notion de tableaux.
·
Reconnaître le contexte où il est avantageux d'utiliser des
tableaux plutôt que plusieurs variables ou plusieurs objets distincts.
·
Résoudre des problèmes impliquant des tableaux.
8. Les
chaînes de caractères
·
Définir la notion de chaîne de caractères.
·
Résoudre des problèmes impliquant des chaînes de caractères.
9. L'environnement
de développement Visual C++
·
Utiliser l'environnement Visual C++ pour écrire, compiler et
déboguer des programmes.
·
Savoir interpréter les messages d'erreurs pour corriger les
erreurs.
10. Les
bases du langage C++
·
Connaître et utiliser les mots réservés du C++ vus au cours.
·
Utiliser les types
de données appropriés (int, char, float, class, etc).
·
Nommer significativement les constantes, variables, les
classes, les objets et les méthodes.
·
Utiliser de façon appropriée les instructions étudiées.
·
Utiliser adéquatement les fonctions d'entrées/sortie
·
Formuler des messages de sollicitation significatifs.
·
Maîtriser l'usage des opérateurs et expressions
(arithmétiques, relationnels, et logiques).
·
Maîtriser la compatibilité des types et la conversion d'un
type à un autre.
·
Employer des fonctions pré définies dans une expression.
·
Documenter adéquatement un programme (fonction main() et les
méthodes).
Matériel
utilisé
Nous
utiliserons le logiciel Visual C++ version 6, le système d'exploitation Windows
98 et un traitement de texte.
Deitel et Deitel
Cours et exercices
Les Éditions Reynald Goulet Inc.
ISBN 2-89377-158-0
Ce livre est obligatoire pour ce cours.
Roger Paquet & Richard Wildi
INITIATION À
L'ALGORITHMIQUE ET AU LANGAGE C++
ISBN 2-922338-98-3
Michel Michaud
1. Algorithmes et ANSI/ISO C++
Loze-Dion Éditeur Inc.
ISBN 2-921180-54-5
En plus du
livre, le professeur distribuera, en cours de session, des notes et des
exercices supplémentaires.
Méthodologie
utilisée
Les cours
seront donnés sous forme d'exposés magistraux et accompagnés d'exercices
pratiques faits en classe. il est
important de noter qu'une participation active au cours favorisera l'élève dans
son apprentissage (il faut comprendre par ceci que le fait de poser des
questions est important).
Évaluation
Il y aura deux (2)
examens qui totaliseront 60% de la note finale. Le reste des notes (40%) sera
accumulé par des travaux, des devoirs et éventuellement des petits tests.
Si une moyenne de 53% n'est pas atteinte dans les examens et une moyenne
de 60 % dans les travaux, la note maximale pour le cours sera de 55%.