Plan du cours SCI6373 - Programmation documentaire (Été 2025)
3 crédits
Préalables : SCI6001 ou SCI6002, SCI6005
Professeur : Yves Marcoux
Courriel : yves.marcoux@umontreal.ca
Site Web du cours : https://cours.ebsi.umontreal.ca/SCI6373/E2025/
Les cours se donnent le matin (9h-12h) et/ou l'après-midi (13h30-16h30) sur quinze demi-journées entre le 26 mai et le 6 juin 2025.
Description officielle
Introduction à la programmation procédurale et orientée-objet. Développement d'applications documentaires dans un langage de scriptage orienté-objet. Aperçu d'autres langages. Notions d'algorithmique et de complexité.
Objectifs d'apprentissage
À la fin du cours, l’étudiante :
Possèdera les rudiments de la programmation procédurale et orientée-objet moderne.
Plus spécifiquement, l'étudiante :
- Comprendra le concept de scriptage en général et dans le contexte du Web en particulier.
- Comprendra l'articulation client-serveurs du point de vue programmatique.
- Pourra développer à partir de zéro des scripts pour des traitements simples.
- Pourra adapter des scripts complexes existants.
Méthodes pédagogiques
Modalités :
- Les cours ont lieu en présentiel.
- Les mini-quiz ont lieu pendant les périodes en classe.
- Des activités supervisées de laboratoire ont lieu pendant les périodes en classe.
Cours de trois (3) crédits, ce qui correspond à 135 heures de travail pour l’étudiante1 : 45 heures en classe + 90 heures de travail personnel.
Lien vers la page StudiUM du cours.
1 Dans ce cours, la question des épicènes est habituellement réglée par l’utilisation du féminin.
Contenu du cours
Le cours est une introduction à la programmation dans les environnements de scriptage. Le principal langage utilisé est le JavaScript. Un projet de fin de session permet d’intégrer les connaissances acquises. Les étudiants sont appelés à explorer un autre langage ou environnement de programmation (de type scriptage ou non).
L’accent est mis sur le scriptage de pages Web pour exécution en navigateur côté client, mais l’exécution côté serveur sera aussi touchée (si possible avec accès à une base de données), de même que le scriptage au niveau du système d’exploitation pour la manipulation de fichiers en lot. Une connaissance de base de HTML et de CSS est présupposée.
Le langage ou l’environnement choisi pour exploration et la nature du projet de fin de session doivent être approuvés par le professeur.Le cours est une introduction à la programmation dans les environnements de scriptage. Le principal langage utilisé est le JavaScript en environnement navigateur Web. Une progression de travaux pratiques permet d’intégrer les connaissances acquises.
Les étudiantes sont aussi appelées à explorer et à présenter devant la classe une API simple (Application Programming Interface) ou un environnement de programmation autre qu’un navigateur Web. Dans des cas particuliers, le travail d’exploration peut prendre la forme d’un projet de développement d’envergure suffisante. Il peut aussi prendre la forme d’une exploration de ressources programmables disponibles aux laboratoires d’informatique documentaire de l’EBSI : micro:bit, Raspberry Pi et Arduino (à confirmer).
Le sujet de l’exploration doit être approuvé par le professeur. Les modalités de la présentation seront discutées en classe.
Le cours SCI6005 Information numérique et informatique documentaire est préalable. Ce préalable est précisé plus avant dans la lecture Introduction au cours, à faire le premier jours du cours.
En plus des activités évaluées, plusieurs exercices non évalués sont proposés. Il est important de faire tous ces exercices.
Calendrier des activités
Date | Activité(s) | Évaluation |
---|---|---|
2025-05-26 | AM – C1
PM
| |
2025-05-27 | AM – C2
PM
| |
2025-05-28 | AM – C3
PM – C4
| AM
|
2025-05-29 | AM - C5
PM – C6
| AM
PM
|
2025-05-30 | AM – C7
PM – C8
|
AM
|
2025-06-02 | AM – C9
PM – C10
| AM
|
2025-06-03 | AM – C11
PM
| AM
|
2025-06-04 | AM – C12
PM
| AM
PM
|
2025-06-05 | AM – C13
PM
| |
2025-06-06 | AM – C14
PM – C15
| AM – C14
|
Les contenus et leur répartition sont sujets à ajustement. Les moments des évaluations sont des cibles qui pourraient bouger légèrement.
Évaluation
Activité | Pondération |
---|---|
Trois exercices courts à remettre le lendemain (3 × 5%)* | 15% |
Deux « mini-quiz » en classe (2 × 15%)* | 30% |
TP1 à 3 : Projets de programmation (10% + 10%* + 15%) | 35% |
Présentation en classe du travail d’exploration | 20% |
* Les évaluations marquées d’un * sont individuelles. Les autres peuvent être soit individuelles, soit en équipes de deux personnes.
Les heures de remise seront précisées dans StudiUM.
Voir ici la méthode de calcul de la note finale du cours (notez que l’évaluation avec seuil ne s’applique pas à ce cours).
Pour vous aider à suivre l’évolution des vos résultats au cours du trimestre, et notamment connaître les notes requises dans les évaluations à venir pour atteindre une cote donnée, un Évaluateur de réussite est disponible. N’hésitez pas à l’utiliser.
Politiques, règlements et directives
1. Modes de communication
Le mode de communication privilégié du professeur vers vous est la section Messages du professeur de la page StudiUM du cours.
Le professeur peut également vous joindre par courriel. L’adresse utilisée sera celle enregistrée dans Mon accès UdeM; assurez-vous qu’elle soit valide et fonctionnelle en tout temps. SVP, lire votre courriel tous les jours.
Le mode de communication privilégié pour joindre professeur est en présence, en classe. Le courriel est également acceptable. Souvent, je demande confirmation par courriel d’un échange verbal, afin de ne pas oublier.
L’adresse courriel du professeur est <yves.marcoux@umontreal.ca>. SVP, inscrire la mention [SCI6373] (incluant les crochets) au début de la ligne sujet de votre message.
Vous pouvez aussi poser des questions dans le forum Vos questions-réponses sur la page StudiUM du cours.
2. Autres règlements et politiques
L’utilisation d’outils d’intelligence artificielle pour réaliser les activités évaluées est interdite et constitue une infraction au règlement disciplinaire.
Tous les règlements, politiques et directives énoncés dans le Guide étudiant de la MSI s’appliquent, incluant le Code d’honneur de l’EBSI. Une attention particulière est à porter aux éléments suivants :
Travaux en équipe
Pour les travaux réalisés en équipe, le professeur se réserve le droit d’évaluer séparément chaque membre d’une équipe.
Règlement disciplinaire sur le plagiat ou la fraude concernant les étudiants
Toute infraction au règlement sur le plagiat ou la fraude sera traitée suivant la procédure indiquée dans le règlement.
Retard dans la remise des travaux
Tout retard non justifié dans la remise d’un travail sera sanctionné : 5% de la note est retranché par jour de calendrier de retard jusqu’à un maximum de 35%; à la 8ième journée de calendrier, la note F ou zéro (0) est attribuée.
Qualité de la langue
Un maximum de 10% de la note globale d’un travail pourra être retranché pour mauvaise qualité de la langue dans les travaux (ne s’applique pas aux quiz).
Ressources
Bibliographie
1. Lectures obligatoires
- Marcoux, Yves. « Introduction au cours ». En ligne <https://cours.ebsi.umontreal.ca/SCI6373/E2025/matthem/intro-au-cours.html>.
- Marcoux, Yves. « Introduction aux expressions JavaScript ». En ligne <https://cours.ebsi.umontreal.ca/SCI6373/E2025/matthem/introExpJS.html>.
2. Lecture très utile
- McPeak, Jeremy; Wilton, Paul. Beginning JavaScript 5th Edition, 2015. En ligne via Sofia – Université de Montréal.
3. Lectures recommandées
- Broussard, Meredith. Artificial unintelligence : how computers misunderstand the world. Cambridge, Massachusetts : The MIT Press, 2018. En réserve à la BLSH : QA 76.9 C66 B76 2018.
- Chandra, Vikram. Geek Sublime : Une vision esthétique, littéraire, mathématique et pleine d’autodérision du codage. Paris : Robert Laffont, 2014, 332 pp. Version anglaise : Geek Sublime: The Beauty of Code, the Code of Beauty. En réserve à la BLSH : PN 56 T37 C36 2014.
- cgarcia. « Pourquoi tout le monde devrait apprendre à coder ? », codelearn.fr, 2022-12-13. En ligne <https://codelearn.fr/blog/pourquoi-tout-le-monde-devrait-apprendre-a-coder/>.
- Mozilla Developer Network. « Référence JavaScript. » En ligne <https://developer.mozilla.org/fr/docs/Web/JavaScript/>.
- Reich, Yoram, and Eswaran Subrahmanian. “We Are Not Users: Gaining Control Over New Technologies.” Communications of the ACM, vol. 64, no. 11, 2021, pp. 37–39. En ligne via Sofia – Université de Montréal.
4. Ressources utiles et/ou amusantes
- Goodman, Danny; et al. JavaScript Bible Seventh edition. Indianapolis, Ind. : Wiley Pub., c2010, env. 2000 pp. En ligne via Sofia – Université de Montréal. Exemplaire papier de la 5e édition en réserve à la BLSH : QA 76.73 J39 G66 2004. À considérer comme ouvrage de référence.
- Breeding, Marshall. ASIS&T Bulletin, December 2008/January 2009. “The Viability of Open Source ILS.” En ligne <https://doi.org/10.1002/bult.2008.1720350207> à partir de .umontreal.ca.
- Colford, Scot. ASIS&T Bulletin, December 2008/January 2009 “Explaining Free and Open Source Software.” En ligne <https://doi.org/10.1002/bult.2008.1720350205> à partir de .umontreal.ca.
- Morgan, Eric Lease. “Open Source Software in Libraries.” ASIS&T Bulletin, December 2008/January 2009. En ligne <https://doi.org/10.1002/bult.2008.1720350204> à partir de .umontreal.ca.
- Classements de langages de programmation selon différents critères. TIOBE, UBUNTUPIT, PYPL, etc.
- Code Studio. Site pour apprendre aux jeunes à programmer dans différents environnements attrayants. En ligne <https://code.org/>.
- Donovan, Ryan. “Teaching developers about the most lightweight web ‘framework’ around, VanillaJS.” The Overflow (Stack Overflow), 2021-12-21. En ligne <https://stackoverflow.blog/2021/12/21/podcast-402-teaching-developers-about-the-most-lightweight-web-framework-around-vanillajs/> (transcription disponible).
- Freeman, Jason; Brian Magerko; Doug Edwards; Tom Mcklin; Taneisha Lee; Roxanne Moore. 2019. EarSketch: engaging broad populations in computing through music. Commun. ACM 62, 9 (August 2019), 78–85. En ligne <https://doi.org/10.1145/3333613>.
- Krill, Paul. “Scripting Languages Spark New Programming Era.” InfoWorld, 2008-06-23. Résumé en ligne <https://technews.acm.org/archives.cfm?fo=2008-06-jun/jun-25-2008.html&hdr=1#367980>. Article complet au <https://www.infoworld.com/article/2651797/application-development/scripting-languages-spark-new-programming-era.html>.
- Mohan, Mehul. “Why JavaScript Is the Programming Language of the Future.” freecodecamp.org, 2020-04-04. En ligne <https://www.freecodecamp.org/news/future-of-javascript/>.
- Marji, Majed. Le grand livre de Scratch. Paris : Eyrolles 2017. En réserve à la BLSH : 005.13 M3444g 2017.
- Mighton, John. All things being equal : why math is the key to a better world. Canada: Alfred A. Knopf, 2020. En réserve à la BLSH : QA 10.7 M54 2020.
- Mohan, Mehul. “Why JavaScript Is the Programming Language of the Future.” En ligne sur freeCodeCamp, 2020-04-04.
- Morgan, Nick. JavaScript for Kids: A Playful Introduction to Programming. Los Angeles (É.-U.) : No Starch Press, 2015, 305 pp. Version française à l’UdeM : Javascript pour les kids. Paris : Eyrolles 2017. En réserve à la BLSH : 006.77 M8494j 2017.
- Scratch. Langage de programmation graphique pour apprendre aux jeunes à programmer dans un environnement attrayant. En ligne <https://scratch.mit.edu/>.
- Stavely, Allan M. Writing in software development. New Mexico Tech Press, 2011. En réserve à la BLSH : QA 76.76 D63 S73 2011.
- W3Schools. JavaScript Tutorial. En ligne <https://www.w3schools.com/js/>.
- Wikipedia. “Ajax (programming).” En ligne <http://en.wikipedia.org/wiki/AJAX>.
- Wikipedia. “Model-view-controller.” En ligne <http://en.wikipedia.org/wiki/Model-view-controller>.
- Wikipedia. “Software as a service.” En ligne <https://en.wikipedia.org/wiki/Software_as_a_service>.
- Wright, Nolan. “Why JavaScript Will Become The Dominant Programming Language Of The Enterprise.” readwrite, 2013-08-09. En ligne <https://readwrite.com/2013/08/09/why-javascript-will-become-the-dominant-programming-language-of-the-enterprise>.
5. Références diverses
- Babcock, Charles. “Ajax 101: From Toolkits To Strategy, How Companies Can Put It To Use.” InformationWeek, 2006-06-12. En ligne <https://www.informationweek.com/ajax-101-from-toolkits-to-strategy-how-companies-can-put-it-to-use/d/d-id/1044053>.
-
Ecma International. ECMAScript® 2024 Language Specification, Standard ECMA-262, 15th edition, June 2024. En ligne (PDF et HTML) <https://www.ecma-international.org/publications/standards/Ecma-262.htm>.
C’est la spécification ultime du JavaScript, mise à jour pratiquement à chaque année. Malheureusement, illisible pour les non spécialistes.
- Festa, Paul. “Standards Activists Target Scripts.” CNET News 2005-07-19. En ligne <https://www.cnet.com/news/standards-activists-target-scripts/>. Résumé en ligne <http://technews.acm.org/archives.cfm?fo=2005-07-jul/jul-22-2005.html&hdr=2#item14>.
- Festa, Paul. “Will Ajax help Google clean up?” CNET News, 2007-06-21. En ligne <https://www.cnet.com/news/will-ajax-help-google-clean-up/>.
- Karasavvas, Theodoros. “Node.js makes fullstack programming easy with server-side JavaScript.”The Overflow, 2021-10-25. En ligne <https://stackoverflow.blog/2021/10/25/node-js-makes-fullstack-programming-easy-with-server-side-javascript/>.
- Krill, Paul. “JavaScript creator ponders past, future.” InfoWorld, 2008-06-23. En ligne <https://www.infoworld.com/article/2174329/javascript-creator-ponders-past-future.html>.
- Kumar, Ritesh. “On Scripting Languages” OSnews, 2004-05-13. En ligne <https://www.osnews.com/story/7038>.
- Microsoft Corp. “Windows Script Host.” 2015-05-07. En ligne <https://msdn.microsoft.com/en-us/library/9bbdkx3k(v=vs.84).aspx>.
- Savill, John. “How do I run a windows script from the command line?” WindowsITPro. En ligne <https://www.itprotoday.com/devops-and-software-development/how-do-i-run-windows-script-command-line>.
- Subrahmanian, Eswaran, et al. We Are Not Users : Dialogues, Diversity, and Design. MIT Press, 2020. En réserve à la BLSH : NK 1510 S827 2020 (Aménagement). En ligne via Sofia – Université de Montréal.