Logo ÉTS
Session
Cours
Responsable(s) Anis Boubaker

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Anis Boubaker


PLAN DE COURS

Automne 2018
INF145 : Programmation avancée et langage C (4 crédits)





Préalables
Aucun préalable requis
Unités d'agrément
Total d'unités d'agrément : 64,8 100,0 %




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours



Objectifs du cours

Ce cours a pour objectif de procurer une connaissance moderne de la programmation afin qu’un étudiant puisse solutionner des problèmes reliés à sa discipline.

Le langage de programmation utilisé est le C ANSI 89.

De façon plus spécifique, ce cours devra permettre à l’étudiant de :

  • acquérir les notions de programmation de base;
  • acquérir une connaissance du langage C ;
  • utiliser et implémenter des types de données abstraits (pile, file et liste)



Stratégies pédagogiques

Ce cours a pour objectif de procurer une connaissance moderne de la programmation afin qu’un étudiant puisse résoudre des problèmes reliés à sa discipline.

Le langage de programmation utilisé est le C ANSI 89.

De façon plus spécifique, ce cours devra permettre à l’étudiant de :

  • acquérir les notions de programmation de base;
  • acquérir une connaissance du langage C ;
  • utiliser et implémenter des types de données abstraits (pile, file et liste).



Utilisation d’appareils électroniques

Micro-ordinateur.




Horaire
Groupe Jour Heure Activité
01 Lundi 09:00 - 12:30 Activité de cours
Mercredi 09:00 - 12:00 Laboratoire
02 Mardi 13:30 - 17:00 Activité de cours
Vendredi 13:30 - 16:30 Laboratoire



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Pierre Bélisle Activité de cours Pierre.Belisle@etsmtl.ca B-2524
01 Francis Bourdeau Laboratoire Francis.Bourdeau@etsmtl.ca
01 Hugues Saulnier Laboratoire Hugues.Saulnier@etsmtl.ca B-2568
02 Éric Thé Activité de cours Eric.The@etsmtl.ca B-2568
02 Hugues Saulnier Laboratoire Hugues.Saulnier@etsmtl.ca B-2568
02 Éric Thé Laboratoire Eric.The@etsmtl.ca B-2568



Cours

Ce tableau est donné à titre indicatif. Il se peut que votre enseignant modifie l’ordre de présentation des notions pour des raisons pédagogiques.

 

COURS

MATIÈRE

1 à 4

Description première de la qualité de programmation attendue : commentaires, indentation, utilisation de constantes symboliques et choix des identificateurs.

Notions élémentaires de programmation : types de base du C avec leurs opérateurs et conversions automatiques, variables, entrées/sorties de base, instructions conditionnelles et itératives et l’algorithmie de base, comparaison et compatibilité des types numériques, opérateurs binaires.

Commandes au préprocesseur : #define, #include, et #if..#endif.

Fonctions : déclaration, commentaires standard à la déclaration, paramètres effectifs et paramètres formels, valeur de retour, passage par valeur, portée et durée de vie des variables, factorisation et modules de fonctions.

Pointeurs : l’indirection, déclaration, initialisation et assignation, passage par adresse.

Tableaux : déclaration, initialisation, accès aux éléments, passage en paramètre, tableaux de tableaux et algorithmes de base, déclarations de types (avec typedef), fouilles et tris.

Chaînes de caractères : chaînes littérales et fonctions offertes par le langage.

5 à 8

Pointeurs et adresses : arithmétique des adresses, pointeurs génériques (void *).

Classes d’allocation : auto, static et extern.

Tableaux dynamiques : allocation dynamique de mémoire (calloc, malloc, realloc et free).

Enregistrements : déclaration, accès aux membres et passage en paramètre.

Fichiers texte et binaire : le FILE * et ses fonctions classiques.

Modules : modules de déclarations (.h) et de définitions (.c), définitions de types et implémentations des fonctions nécessaires à une architecture bien faite, encapsulation de données et de traitements.

Piles et files : première implémentation sur tableaux.

9 à 13

Chaînage dynamique : nœuds et références chainées.

Listes chaînées : intérêt, fonctionnement et implémentations.

Piles et files : implémentations avec chaînage dynamique.

Notions complémentaires (si nécessaires) et révision finale.




Laboratoires et travaux pratiques

3 heures et demie de cours par semaine.

3 heures de laboratoire par semaine.

Les laboratoires visent :

  • l’assimilation par l’expérience des notions vues au cours;
  • la mise au point de programmes donnés en travaux pratiques.

 

La séance de laboratoire pourra être jumelée avec celle du cours de façon à ce que chaque rencontre hebdomadaire se compose d’une période de théorie et d’une période de laboratoire.




Utilisation d'outils d'ingénierie

Nous utiliserons principalement le compilateur Visual C++ en évitant soigneusement toute librairie et toute fonction qui ne soient pas ANSI et en mettant l’accent sur la portabilité du code.




Évaluation
Évaluation Semaine Pondération Gr. 01 Gr. 02
Examen 1 5 15 % 9 octobre 2 octobre
Travail #1 5 10 % 10 octobre 5 octobre
Examen 2 9 15% 5 novembre  6 novembre
Travail #2 9 15 % 7 novembre 9 novembre
Travail #3 13 15 % 8 décembre 8 décembre
Examen final   30 % Période d’examens

 

À propos des travaux pratiques :

  • Les travaux ont pour but de mettre en pratique les connaissances acquises pendant les cours théoriques. Pour chacun d’eux, l’enseignant indiquera sur l’énoncé s’il doit être réalisé individuellement ou en équipe. Une équipe ne doit remettre qu’un seul rapport.
  • Il est à noter que pour les travaux en équipe, un membre peut recevoir une note inférieure ou égale à la note obtenue par l'équipe. Cette note individuelle est directement proportionnelle à l'implication de l'individu à l'ensemble du développement du travail.

À propos de l'examen final :

  • L'examen final est d'une durée de 3 heures.
  • Aucune autre documentation n'est permise.
  • L'utilisation de la calculatrice est interdite.

Une note moyenne pondérée de 50 % est exigée pour l’ensemble des évaluations à caractère individuel.  Ce seuil est une condition nécessaire à la réussite du cours mais ne la garantit pas.




Dates des examens intra
# Intra Groupe(s) Date
1 1 9 octobre 2018
1 2 2 octobre 2018
2 1 5 novembre 2018
2 2 6 novembre 2018



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/Examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.



Absence à un examen
• Pour les départements à l'exception du SEG :
Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice – Affaires départementales qui en référera au directeur du département. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat ou autre) à un examen entraînera l’attribution de la note zéro (0).

• Pour SEG :
Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l’étudiant devra justifier son absence auprès de son enseignant. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat ou autre) à un examen entraînera l’attribution de la note zéro (0).



Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiants doivent consulter le Règlement sur les infractions de nature académique (https://www.etsmtl.ca/A-propos/Direction/Politiques-reglements/Infractions_nature_academique.pdf ) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet.  À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et les étudiants sont invités à consulter la page Citer, pas plagier ! (https://www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).



Documentation obligatoire

S.O.




Ouvrages de références

Le choix d’un livre est laissé à la discrétion de l’étudiant. Voici quelques livres portant sur le langage C et diverses références plus spécialisées

 

 

MANUEL RECOMMANDÉ :

 

MILLER, Lawrence H. & Alexander E. QUILICI. The Joy of C – Programming in C, Wiley, 1997.

Excellent manuel sur le C complet. Rien n’est laissé au hasard. Tous les étudiants auraient avantage à connaître ce bouquin. Très longuement utilisé dans le cours INF155.

 

 

RÉFÉRENCES PLUS SPÉCIALISÉES :

  • DRIX, Philippe. Le langage C ANSI – Vers une pensée objet en Java, 3e éd., InterEditions, 1993. Ce livre s’adresse à un lecteur connaissant déjà la programmation (préférablement en Pascal) et l’amène aux portes de la programmation orientée objet. Son approche et ses objectifs correspondent très bien à la mentalité du cours. Son seul défaut est qu’il n’aborde pas les structures de données.
  • HARBISON III, Samuel P. & Guy L STEELE JR. C – A reference manual, 5e éd., Prentice Hall, 2002. Ce livre décrit le langage C et un style de programmation axé sur la portabilité et la maintenance. Il ne se veut pas un guide d’apprentissage de la programmation en C. En plus d’être extrêmement précis, il discute de la norme C99, ce qui est rare dans les livres de C pour l’instant.
  • BRASSARD, Gilles & Paul BRATLEY. Algorithmique – Conception et analyse, Masson, 1987. Un manuel avancé dépassant largement les objectifs de notre cours. Son intérêt se situe au niveau des algorithmes touchant les arbres et les graphes. Si vous souhaitez approfondir ces sujets ou étudier la notion d’algorithmie, alors ce livre devrait vous intéresser.
  • KOENIG, Andrew. C traps and pitfalls, 5e édition, Addison-Wesley, 1989. Un tout petit livre qui aborde les embûches courantes rencontrées par le programmeur en C. Bien que notre cours dépasse largement les notions présentées dans ce livre, celui-ci recèle des informations que tout étudiant doit savoir à la fin du cours.



Adresse internet du site de cours et autres liens utiles

L'enseignant en informera les étudiants s'il y a lieu.