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

Été 2023
INF155 : Introduction à la programmation (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

Au terme de ce cours, l’étudiant ou l'étudiante aura acquis des connaissances de base solides de l’algorithmique et de la programmation afin de pouvoir solutionner des problèmes reliés à sa discipline. Il aura fait l’apprentissage de méthodologies lui permettant d’aborder la programmation avec aisance, la conception d’algorithmes pour résoudre des problèmes de nature scientifique et la traduction de ces algorithmes en langage C.

Mémoire et programme : types de base et concept de variable, adresse et contenu, introduction à la notion de pointeur. Structure d’un programme :instructions et flot d’exécution. Langage de l’algorithme et langage de programmation. Structures de contrôle et algorithmes de base : structures séquentielles, structures décisionnelles et itératives. Fonctions : passage de paramètres, pointeurs et prototypes. Techniques de résolution de problème. Structures de données : tableaux statiques et chaînes de caractères, introduction aux structures. Manipulation de fichiers. Configuration matérielle et architecture des micro-ordinateurs.

Séances de laboratoire axées sur la réalisation d’exercices et de programmes en langage C dans un environnement graphique sur micro-ordinateur.




Objectifs du cours

Ce cours a pour objectif de permettre à l’étudiante et l'étudiant de maîtriser le fonctionnement des ordinateurs et de lui procurer une connaissance de la programmation pour qu’il puisse solutionner des problèmes reliés à sa discipline. Le langage de programmation utilisé sera le C ANSI. Bien que ce cours mette l’accent sur la portabilité du code et sa solution, nous utiliserons principalement le compilateur Visual C++ en évitant les librairies et fonctions qui ne sont pas ANSI.

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

  • concevoir des algorithmes pour résoudre des problèmes de nature scientifique;
  • posséder une bonne connaissance du langage C;
  • acquérir la méthodologie indispensable pour pouvoir aborder d’autres langages de programmation avec aisance.



Stratégies pédagogiques

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 en cours, à travers des exercices proposés par l'enseignante ou l'enseignant;
  • Le développement de programmes donnés en travaux pratiques.

À propos du format Hybride: 

Le cours sera donné à certains groupes selon un format hybride. Pour ces groupes, toutes les séances de cours et de laboratoire ainsi que l'encadrement des étudiantes et étudiants auront lieu à distance. La présence physique sera toutefois requise les jours des examens Intra et Final.




Utilisation d’appareils électroniques

Chaque étudiante ou étudiant doit disposer d'un ordinateur portable permettant d'exécuter l'environnement de développement du cours. L'ordinateur portable sera utilisé autant durant les séances de cours que de travaux pratiques. 




Horaire
Groupe Jour Heure Activité
01 Mardi 18:00 - 21:30 Activité de cours
Vendredi 18:00 - 21:00 Laboratoire



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Francis Bourdeau Activité de cours Francis.Bourdeau@etsmtl.ca
01 Francis Bourdeau Laboratoire Francis.Bourdeau@etsmtl.ca



Cours

HORAIRE DES COURS

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

COURS

MATIÈRE

1 à 4

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.

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

Compilation et commandes de préprocesseur : Étapes de compilation, commandes de 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 : indirection, déclaration, initialisation et assignation, passage par adresse.

5 à 8

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

Modules : concepts d'interface (.h) et d'implémentation/définition (.c), organisation de modules (dépendances, services offerts), masquage de l'information (représentation cachée).

Chaînes de caractères : construction d'une chaine de caractères et fonctions offertes par le langage.

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

9 à 13

Allocation dynamique de la mémoire : L’allocation programmée de mémoire, gestion de la mémoire allouée dynamiquement, tableaux 1D et 2D alloués dynamiquement, allocation dynamjque de structures de données..

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

Notions complémentaires optionnelles au gré de l’enseignant et parfois nécessaires aux travaux (piles, files ou récursion).

 




Laboratoires et travaux pratiques

À propos des séances de laboratoire:
Les laboratoires visent à mettre en application les notions présentées lors de cours théoriques. Pour chaque séance de laboratoire, l’enseignante ou l'enseignant met à la disposition des étudiantes et étudiants une suite d’exercices d’application directe des notions vues dans le cours qui le précède. La réalisation des exercices proposés fait partie intégrante de l’apprentissage de l’étudiante et de l'étudiant. 

Les séances de laboratoire permettent donc aux étudiantes et étudiants de réaliser ces exercices, tout en bénéficiant de l’assistance d'auxiliaires d'enseignement. Toutefois, les étudiantes et étudiants ayant fait leurs exercices avant la séance de laboratoire peuvent choisir de travailler sur la réalisation de leur travail pratique durant les séances de laboratoire.




Utilisation d'outils d'ingénierie

S.O.




Évaluation

Les dates de remise des travaux pratiques dans ce tableau sont données à titre indicatif. En cours de session, votre enseignante ou votre enseignant vous fera part à l’avance de tout changement à l’horaire d’évaluation en ce qui concerne les travaux pratiques.

Évaluation Pondération Semaine Gr01

Laboratoire noté #1

5%

4

26 mai

Laboratoire noté #2 5% 6
 
9 juin
Laboratoire noté #3 5% 7
 
16 juin

Examen intra

15 %

7 20 juin
Travail Pratique #1
 
15 % 9 9 juillet

Travail Pratique #2

15 %

13 6 août

Examen final

40 %

Période des examens finaux

 

À propos des travaux pratiques :

  • Les travaux pratiques visent à mettre en application, dans le cadre d'un problème réaliste, les concepts et les méthodes de programmation enseignés pendant les cours théoriques. Il est attendu des étudiantes et étudiants de produire des travaux qui permettent de résoudre le problème de l'énoncé MAIS SURTOUT de les réaliser selon les standards de qualité et les bonnes pratiques enseignés (respect des normes, décomposition en sous-programme/modules, etc.). La cohérence et l'optimalité des algorithmes implémentés constituent également des critères importants qui seront considérés. En tout état de cause, la note attribuée à l'exécution correcte du programme ne pourra excéder 40% de la note globale d'un travail pratique.

  • Pour chaque travail pratique, l’enseignante ou l'enseignant indiquera sur l’énoncé s’il doit être réalisé en équipe et, si tel est le cas, la taille de l’équipe. Une équipe ne doit remettre qu’un seul rapport.

  • Il est à noter que pour les travaux en équipe, chaque membre recevra une note inférieure ou égale à la note obtenue par l'équipe. Cette note individuelle est directement proportionnelle à l'implication de l'étudiante ou de l'étudiant. La méthode d’évaluation de l’implication de chaque individu est laissée à la discrétion de l’enseignante ou de l'enseignant.

  • En règle générale, les travaux proposés durant une session sont les mêmes pour tous les cours-groupes. Toutefois, en cas de différence, les enseignantes et enseignants s’assurent qu’il n’y ait pas de disparités en terme d’effort requis entre les cours-groupes. 

À propos des laboratoires notés :

  • Les laboratoires notés sont réalisés durant une séance de laboratoire. Ils visent à mettre en pratique la matière enseignée lors du cours précédent. 
  • La présence à l'ETS pour les laboratoires notés N'EST PAS demandée lorsque le cours-groupe est offert en format hybride. 
  • La documentation est permise.
  • L'évaluation est individuelle. 

À propos des examens Intra et Final :

  • L'examen Intra est d'une durée de 3h.
  • L'examen final est d'une durée de 3 heures. C'est un examen commun et cumulatif où les concepts présentés dans la fiche du cours seront évalués. 
  • Les examens se font sur l'ordinateur portable de l'étudiante ou de l'étudiant. Aucun appareil électronique, autre que l'ordinateur portable, n’est permis. 
  • Les examens se font au sein d'un environnement contrôlé (du type SafeExamBrowser). L'enseignante ou l'enseignant vous communiquera les détails pour la préparation de l'ordinateur portable en vue de l'examen Intra et Final. Les étudiantes et étudiants sont responsables de l'installation et de la vérification du fonctionnement de l'environnement de l'examen avant la tenue de l'examen et doivent signifier, le cas échéant, à leur enseignante ou enseignant tout problème au moins 5 jours ouvrables avant le jour de l'examen. 
  • Aucune documentation n'est permise, à l'exception de la même feuille de référence fournie à tous les groupes du cours.

Double seuil : 

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



Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 20 juin 2023



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.

Dispositions additionnelles

Dans le but de respecter la loi sur la langue française dans les universités, les travaux et le code doivent être, dans la mesure du possible, en français. En tout état de cause, les commentaires de code doivent obligatoirement être écrits en français uniquement. Ces règles s’appliquent autant au matériel fourni par les enseignantes et enseignants qu’aux documents et/ou travaux remis par les étudiantes et étudiants.




Absence à un examen
Dans les cinq (5) jours ouvrables suivants, 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 ou du SEG. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Dans tous les cas, l’étudiant doit effectuer sa demande en complétant le formulaire prévu à cet effet qui se trouve dans son portail Mon ÉTS/Formulaires. 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, Activité compétitive d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » 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/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-nature-academique ) 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

Référence optionnelle

LAZARD, Emmanuel. Pratique performante du langage C, Ellipses, 2013.

Manuel de référence qui aborde l'intégralité de la matière. Les concepts y sont abordés par des exemples. Beaucoup de conseils sont donnés afin d'acquérir une méthode de programmation performante et d'éviter les pièges communs. 

Références utiles

DELANNOY, Claude. Programmer en langage C - Cours et exercices corrigés, 5e édition, Eyrolles, 2014.

Un autre bon ouvrage de référence qui couvre en grande partie la matière abordée dans ce cours de façon très pédagogique et illustrée par beaucoup d'exemples. 

MILLER, Lawrence H. et Alexander E. QUILICI. The Joy of C – Programming in C, 3e édition, John Wiley & Sons, 1997.

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

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.

HARBISON III, P. SAMUEL & Guy L. STEELE Jr. C – A reference manual, 5e édition, 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. Il est très avancé et dépasse très largement les notions présentées dans le cours.




Adresse internet du site de cours et autres liens utiles

https://ena.etsmtl.ca/course/view.php?id=542




Autres informations

Les séances de cours et de travaux pratiques des cours-groupes dont le mode d'enseignement est hybride sont offertes entièrement à distance. L'étudiante ou l'étudiant inscrit à un tel cours-groupe n'a donc pas besoin de se déplacer à l'École durant la session, sauf lors des évaluations en présence identifiées à la section "Évaluation".