Université du Québec en Outaouais Département d'informatique et d'ingénierie
Sigle : INF4033  Gr. 01
Titre : Techniques de programmation I
Session : Automne 2005   Horaire et local
Professeur : Dargham, Joumana
1. Description du cours paraissant à l'annuaire :

Objectifs

Permettre à l'étudiant de s'initier à l'application des techniques de programmation dans la résolution de problèmes et le développement d'algorithmes, indépendamment du langage de programmation. L'habiliter à la mise en pratique des techniques de conception, de mise au point et de documentation.

Contenu

Introduction à la résolution de problèmes : formulation du problème, conception structurale et détaillée des solutions, codage et vérification des programmes. Types de données de base. Programmes et sous-programmes : structures de contrôle, passage de paramètres. Tableaux. Types de données structurées. Travaux dans un langage de programmation de haut niveau.
2. Objectifs spécifiques du cours :

L'objectif général de l'activité est d'initier l'étudiant aux concepts et techniques inhérents à la programmation d'application.

Comme objectifs spécifiques, nous verrons à ce que l'étudiant soit adéquatement initié aux diverses technologies et outils entourant la conception, la programmation, et le déploiement de petites applications faisant usage des techniques de programmation couvertes en classe.

Les étudiants devront en effet, via les outils mis à leur disposition, effectuer les tâches généralement dévolues à un programmeur junior en entreprise.

Ces objectifs spécifiques seront atteints si l'on réussit à:

  • Initier l'étudiant à l'application des techniques de programmation dans la résolution de problème
  • Initier l'étudiant au développement d'algorithmes indépendants des langages de programmation
  • Développer l'habilité de l'étudiant à mettre en pratique des techniques de conception, de mise au point et de documentation.
  • Développer l'habilité de l'étudiant à concevoir, programmer, faire des essais, documenter et livrer des petites applications fonctionnelles.

3. Stratégies pédagogiques :
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 trois devoirs et deux quizs.
  • Un examen de mi-session et un examen final.
  • Une page WebCT sera consacrée au cours.
4. Heures de disponibilité ou modalités pour rendez-vous :
Jeudi : 13h00-15h00 et sur rendez vous (e-mail : dargham@uqo.ca)
5. Plan détaillé du cours sur 15 semaines :
Semaine Thèmes Dates
1    Introduction aux ordinateurs, aux langages de programmation et à la résolution des problèmes.
  • Organisation d'un ordinateur.
  • Les langages de programmation.
  • Les différentes étapes de développement d'un logiciel.
08 sept. 2005 
2    Description et conception d'un algorithme.
  • Définition d'un algorithme.
  • La déclaration des variables.
  • L'affectation.
  • Les entrées/sorties.
15 sept. 2005 
3    Connaissances de base.
  • Les conditionnelles.
  • Les répétitives.
  • Les tableaux.
  • Les fonctions.
  • La récursivité.
22 sept. 2005 
4    Introduction au Langage C.
  • Les éléments du langage C.
  • La déclaration des variables.
  • L'instruction d'affectation.
  • Les instructions d'entrée/sortie.
  • L'instruction return.
29 sept. 2005 
5    Les structures de contrôle.
  • Les Boucles.
  • Les branchements conditionnels.
  • Les branchements inconditionnels.
06 oct. 2005 
6    Semaine d'études. 13 oct. 2005 
7    Examen de mi-session. 20 oct. 2005 
8    Les fonctions.
  • Le prototype d'une fonction.
  • L'appel d'une fonction.
  • La définition d'une fonction.
  • Le passage des paramètres par valeur.
  • La portée des variables.
27 oct. 2005 
9    Les tableaux et chaînes de caractères.
  • Déclaration d'un tableau.
  • Accès à un élément du tableau.
  • Les tableaux comme arguments d'une fonction.
  • Les chaînes de caractères.
03 nov. 2005 
10    Environnement.
  • Le préprocesseur.
  • Le compilateur.
  • La Librairie C.
10 nov. 2005 
11    Les pointeurs.
  • Déclarations et initialisation des variables pointeurs.
  • Opérateurs de pointeurs.
  • Les pointeurs comme arguments d'une fonction.
  • Pointeurs et tableaux.
  • Tableaux de pointeurs.
17 nov. 2005 
12    Les structures de données.
  • La définition d'un type structuré.
  • L'accès au champ d'une variable de type structuré.
  • Allocation de la mémoire.
  • Les données de type structuré comme paramètres d'une fonction.
  • Les fonctions qui retournent des données de type structuré.
  • Un tableau de structures.
  • Exemples de types dérivés.
24 nov. 2005 
13    Les fichiers.
  • Définitions et propriétés.
  • Accès aux fichiers séquentiels.
  • Lire et écrire dans un fichier séquentiel.
  • Mise à jour d'un fichier séquentiel.
01 déc. 2005 
14    Révision par des exemples. 08 déc. 2005 
15    Examen final 15 déc. 2005 
6. Évaluation du cours :

L'évaluation est l'appréciation du niveau d'apprentissage atteint par l'étudiant par rapport aux objectifs des cours et des programmes.

Dans le cas spécifique du cours Techniques de programmation I l'attribution des notes se fera selon la répartition suivante :

  • Examen de mi-session 30%
  • Examen final 40%
  • Quizs 15%
  • Devoirs 15 %

L'étudiant doit avoir une moyenne des deux examens de 52% pour que les devoirs soient comptabilisés dans la note finale.

7. Politiques départementales et institutionnelles :
8. Principales références :
  • Notes de cours disponibles sur WebCT.
  • Jeri R. Hanly, Elliot B.Koffman, Problem solving and program design in C, Addison Wesley, 1996.
  • James Adair, Problem Solving, A Top-Down Approach, Scott, Foresman and company, 1989.
  • Henri-Pierre Charles, Initiation à l'informatique, Eyrolles, 1999.
  • Claude Delannoy, Le livre du C premier langage, Eyrolles, 1995.
  • Deitel, Deitel, Comment programmer en C++, Les éditions Reynald Goulet, 2000.
  • Brian W. Kernighan, Denis M.Ritchie, Le langage C, Norme Ansi, Masson, 1997.

La page Web du cours se trouve sur WebCT.

9. Page Web du cours :