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

Hiver 2021
INF155 : Introduction à la programmation (4 crédits)


Modalités de la session d’hiver 2021


Pour assurer la tenue de la session d’hiver 2021, les modalités suivantes seront appliquées :


La plupart des cours de la session d'hiver seront donnés à distance. Les autres seront donnés en présence si la situation socio-sanitaire le permet. Cette information est disponible sur l’horaire de la session d’hiver diffusé sur le site de l’ÉTS ainsi que sur Cheminot.

L’étudiant inscrit à un cours à distance doit avoir accès à un ordinateur, un micro, une caméra et un accès à internet, idéalement de 10Mb/s ou plus. L’étudiant doit ouvrir sa caméra et/ou son micro lorsque requis, notamment pour des fins d’identification ou d’évaluation.


Les cours à distance pourraient être enregistrés, à la discrétion de l’ÉTS, afin de les rendre disponibles aux étudiants inscrits aux cours.


La notation des cours sera la notation régulière prévue aux règlements des études de l'ÉTS.


Les examens intra se feront normalement à distance. Les examens finaux se feront normalement en présence si la situation socio-sanitaire le permet.


Pour les examens (intra, finaux) qui devaient se faire à distance, leur surveillance se fera à l’aide de la caméra et du micro de l’ordinateur et pourrait être enregistrée. Ceci est nécessaire pour se conformer aux exigences du Bureau canadien d’agrément des programmes de génie (BCAPG) afin d’assurer la validité des évaluations.

Le contexte actuel oblige bien sûr l’ÉTS à suivre de près l’évolution de la pandémie de COVID-19, laquelle pourrait entraîner, avant ou après le début de la session d’hiver 2021, un resserrement des directives et recommandations gouvernementales. Nous vous assurons que l’ÉTS se conformera aux règles en vigueur afin de préserver la santé publique et que, si requis, elle pourrait aller jusqu’à interdire l’accès physique au campus universitaire et ordonner que toutes les activités d’enseignement et d’évaluation soient exclusivement données à distance pour tout ou partie de la session d’hiver 2021.

Des exigences additionnelles pourraient être spécifiées par l’ÉTS ou votre département, suivant les particularités propres à votre programme.

En vous inscrivant ou en demeurant inscrit, vous acceptez les modalités particulières de la session d’hiver 2021.


Nous vous rappelons que vous avez jusqu’au 17 janvier 2021 pour vous désinscrire de vos cours et être remboursé.


Pour les nouveaux étudiants inscrits au programme de baccalauréat uniquement, vous avez jusqu’au 31 janvier 2021 pour vous désinscrire de vos cours et être remboursé.




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’étudiante ou l’étudiant aura acquis des connaissances de base solides de l’algorithmique et de la programmation qui lui permettront de solutionner des problèmes reliés à sa discipline. Plus spécifiquement, 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’étudiant-e de maîtriser le fonctionnement des ordinateurs et de lui procurer une connaissance de la programmation pour qu’il/elle 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’étudiant-e 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 par vidéo-conférence

3 heures de laboratoire par semaine

Les laboratoires visent :

  • L’assimilation par l’expérience des notions vues au cours à travers des exercices proposés par l'enseignant-e;
  • Le développement de programmes donnés en travaux pratiques.



Utilisation d’appareils électroniques

- Micro-ordinateur connecté à Internet (vitesse d'au moins 10Mbs)
- Caméra Web
- Micro




Horaire
Groupe Jour Heure Activité
01 Lundi 13:30 - 17:00 Activité de cours
Mercredi 13:30 - 16:30 Laboratoire



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Yannick Roy Activité de cours ymyannick@gmail.com B-2564
01 Rachel Takla Laboratoire Rachel.Takla@etsmtl.ca



Cours

HORAIRE DES 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 : 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.

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

Tableaux dynamiques : Allocation et mémoire : les classes d’allocation, portée et durée de vie d’une variable : auto, static, extern et register. L’allocation programmée de mémoire.

9 à 13

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

Modules : modules de déclarations (.h) et de définitions (.c), du type et des fonctions  nécessaires à une architecture bien faite.

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’enseignant-e met à la disposition des étudiant-e-s 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’étudiant-e. 

Les séances de laboratoire permettent donc aux étudiant-e-s de réaliser ces exercices, tout en bénéficiant de l’assistance des chargés de laboratoires. Toutefois, les étudiant-e-s 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. 

À 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 étudiant-e-s 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’enseignant-e 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'individu. La méthode d’évaluation de l’implication de chaque individu est laissée à la discrétion de l’enseignant.

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




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 enseignant-e vous fera part à l’avance de tout changement à l’horaire d’évaluation en ce qui concerne les travaux pratiques.

Évaluation

Pondération

Semaine

Gr. 01

Examen intra I

15 %

5

1er fév.

Travail Pratique #1

10 %

5 7 fév.

Examen intra II

15 %

9 1er mars
Travail Pratique #2
 
15 % 9 7 mars

Travail Pratique #3

15 %

13 11 avril

Examen final

30 %

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 étudiant-e-s 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’enseignant-e 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'individu. La méthode d’évaluation de l’implication de chaque individu est laissée à la discrétion de l’enseignant.

À propos des examens Intra :

  • Chaque examen Intra est d'une durée de 1h30. 

À propos de l'examen final :

  • L'examen final est d'une durée de 3 heures.
  • Aucune documentation n'est permise, outre une même feuille de référence fournie en annexe, pour tous les groupes du cours.
  • Aucun appareil électronique n’est permis.
  • L’examen final aura lieu en présence si les conditions le permettent.

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
# Intra Groupe(s) Date
1 1 1 février 2021
2 1 1 mars 2021



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