Modules et idées pour les cours d'informatique
Portefeuille AI
Voici quelques-uns des modules que j'ai développés l'année dernière pour initier les étudiants de Techniques de l’informatique aux concepts de l'apprentissage automatique. En cours de route, j'ai remarqué que certains concepts de base sont faciles à saisir, tandis que d'autres sont plus délicats et nécessitent un bagage plus important en mathématiques. Voici quelques exercices de laboratoire et des projets plus substantiels, ainsi que le matériel de base utilisé pour présenter ces idées aux étudiants. N'hésitez pas à les réutiliser !
Algorithmes génétiques / apprentissage par renforcement
Hiver 2020, avec Swetha Rajagopal
Audience :4ème trimestre Sciences de l'informatique Technologie
Aperçu
Cette activité est basée sur Robby le robot décrit dans le chapitre 9 du livre Complexity : A Guided Tour, et fortement influencée par un projet donné par mes merveilleux collègues physiciens Jon Sumner, Sameer Bhatnagar et Jean-Francois Briere. Leur version se trouve ici. La tâche de Robby consiste à collecter des canettes de soda vides qui sont éparpillées dans son monde quadrillé, en suivant des instructions encodées dans un ensemble de 243 génomes.
Matériau
Avant de commencer l'activité, nous avons passé en revue la présentation ci-dessous et vu la démo (une version plus longue du gif avec le meilleur algorithme de certaines générations). Il était très motivant pour les élèves de voir Robby passer d'une situation où il ne faisait pratiquement rien dans les premières générations (ou pire encore, où il recevait des points négatifs à plusieurs reprises parce qu'il se heurtait à un mur) à un score presque parfait à la 1000e génération. Un élève a demandé si cet algorithme prouvait l'eugénisme ?
Présentation : GA
Instructions : RobbyTheRobot
Notes
- La visualisation de l'amélioration de Robby est une partie importante de ce projet et améliore grandement la motivation. Nous avons utilisé Monogame, mais au moment de la rédaction du présent document, il semble qu'il ne soit plus activement soutenu.
- Vous pouvez fournir autant ou aussi peu de code que vous le souhaitez, en fonction du temps alloué aux étudiants.
- Le test unitaire d'une application utilisant un générateur de nombres pseudo-aléatoires est un défi : les élèves doivent comprendre la graine et l'utiliser de manière appropriée.
Algorithme de classification - K-Voisins les plus proches
Hiver 2020, avec Swetha Rajagopal
Audience :4ème trimestre Sciences de l'informatique Technologie
Aperçu
Cette activité a été utilisée dès la première semaine de cours, afin d'éliminer toute trace de programmation après les vacances d'hiver ! Les étudiants ont été initiés aux bases de la classification et de l'algorithme KNN par le biais d'une discussion au tableau blanc. Le reste de la période a été consacré à l'implémentation de l'algorithme KNN.
Matériau
Contexte et instructions : KNN
Notes
- Certains algorithmes se prêtent bien à des exercices de courte durée qui peuvent être abordés en une ou deux séances de laboratoire. KNN est l'un de ces algorithmes, tout comme la régression de base et Naïve Bayes. Les prérequis mathématiques ne dépassent pas le niveau du lycée.
- vous pouvez fournir autant ou aussi peu de code que vous le souhaitez, en fonction du temps alloué aux étudiants
Génération de texte avec un modèle de niveau de caractère
Automne 2019, avec Josiane Gamgo
Audience :5ème trimestre Sciences de l'informatique Technologie
Aperçu
Au moment où cette activité a été entreprise, OpenAI venait de décider que le modèle de langage transformateur GPT-2 complet était trop dangereux pour être rendu public (une décision qui a été renversée quelques mois plus tard... ). Cette décision a ouvert une discussion sur la nature probabiliste de la plupart des algorithmes d'apprentissage automatique et a jeté les bases de l'introduction de la génération de texte "dans le style de" Shakespeare.
Crédit gif : Davide Catalano et Kevin Armstrong Rwigamba
Matériau
Nous avons regardé l'excellent court-métrage "Sunspring", qui nous a été chaudement recommandé. Bien qu'il commence à dater d'un point de vue technique, le jeu des acteurs est merveilleux, et la séquence d'ouverture montrant tous les textes utilisés pour entraîner le réseau neuronal était une transition naturelle vers l'entraînement que nous devrions faire sur notre générateur de textes de Shakespeare.
Vidéo :
Source : https://arstechnica.com/video/watch/sunspring-sci-fi-short-film
Instructions : TextGenerator
Notes
- Ce projet comportait une phase de formation claire suivie d'une phase de génération. La phase d'entraînement a été longue : nous disposions d'un corpus de 4,5 Mo de tous les textes de Shakespeare et nous utilisions PHP, un langage qui n'est pas particulièrement rapide. Nous avons persisté nos données d'entraînement dans un magasin Redis (une base de données SQL était beaucoup trop lente) et nous avons utilisé AWS Educate pour avoir un environnement avec suffisamment de mémoire et de puissance.
- La visualisation à l'aide d'une application web basée sur JavaScript est une exigence qui peut être ajoutée car elle rend le résultat final beaucoup plus attrayant (le gif est tiré du travail de deux étudiants).
Collection de matériel d'initiation à l'IA et à la ML
Si vous enseignez l'informatique, vous vous êtes probablement tourné vers Stanford's Nifty Assign ments - . une collection de travaux intéressants et astucieux pour les étudiants de CS0 à CS2 pour trouver de l'inspiration. Ils ne sont pas nécessairement liés à l'IA, mais Dan Pomerantz et moi-même avons utilisé un devoir sur un système de recommandation comme base pour une librairie en ligne il y a quelques années.
Le site Model AI Assignments "cherche à rassembler et à diffuser les meilleures conceptions de devoirs de la communauté de l'enseignement de l'intelligence artificielle (IA)". Le niveau de ces devoirs est plus élevé que celui de Nifty, mais vous pouvez vous en inspirer (notez que vous trouverez une variante de Robby le Robot ).
J'ai pensé qu'il serait intéressant de créer un référentiel de devoirs et de modules liés à l'IA qui fonctionnent au niveau CS0-CS2, ce qui est le cas de nos étudiants. Ma faible tentative se trouve dans le dépôt DawsonNiftAI. Je reviendrai bientôt alimenter ce dépôt !