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é

 

(À être repris à une date à confirmer)

Fin

21 décembre 2001

 

Lieu:

 

 

Théorie

 

 

Laboratoire

 

 

 

 

 

Professeur:

Jules Carmichael

Tél. : 825-2449

[email protected]

[email protected]

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 environ­nement.

 

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 cons­tan­tes.

·           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'utili­sa­tion.

·           É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.

BIBLIOGRAPHIE

 

Deitel et Deitel

COMMENT PROGRAMMER EN C++

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++

Une approche orientée objet

Les Éditons Roger Pâque Inc.

ISBN 2-922338-98-3

 

Michel Michaud

INTRODUCTION À LA PROGRAMMATION

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

 

Hosted by www.Geocities.ws

1