La San José State University aide ses élèves à apprendre par eux-mêmes les bases de la programmation

Le département informatique de la San José State University était confronté à un problème de capacité des machines virtuelles et cherchait un moyen d'étendre ses ressources afin de proposer à ses élèves des exercices de programmation, sans aucune restriction.

Les étudiants qui s'initient à l'informatique ont, pour beaucoup, du mal à appliquer les concepts fondamentaux de la programmation. Cay Horstmann, professeur d'informatique à la SJSU, souhaitait les aider à apprendre à programmer par eux-mêmes, afin qu'ils progressent plus vite. Malheureusement, les exercices de codage étaient souvent réutilisés d'une année sur l'autre, et les étudiants trouvaient facilement les solutions en ligne. M. Horstmann a donc cherché un moyen d'obliger les étudiants à trouver les réponses par eux-mêmes.

"Le dimanche soir, à l'heure où les étudiants planchent sur leurs travaux, 20 machines virtuelles peuvent s'exécuter simultanément, s'adaptant automatiquement à la charge de travail."

Cay Horstmann, Professeur d'informatique, San José State University

Proposer une formation concrète et pratique destinée à tous les étudiants

La création d'un système qui aide les élèves à apprendre par eux-mêmes était d'autant plus capitale que des étudiants de filières non informatiques, telles que la biologie et le droit, commençaient à s'intéresser à la programmation pour leurs recherches ou une meilleure productivité. L'époque où cette matière était réservée aux développeurs en herbe est révolue.

"La programmation a le vent en poupe, et les départements informatiques doivent se préparer à cet engouement", indique Cay Horstmann. "Les étudiants des cursus généraux suivent des cours d'informatique afin de gagner en efficacité dans leur propre discipline. Face à la pénurie de professeurs d'informatique, il fallait qu'ils puissent apprendre par eux-mêmes."

Cay Horstmann a entendu parler du programme Google Cloud Platform (GCP) Education Grant par le biais de l'association SIGCSE (Special Interest Group on Computer Science Education), et a déposé un dossier en vue de bénéficier de crédits GCP sans frais. Les crédits lui ont été accordés pour utiliser les produits GCP de son choix. Il a ainsi pu développer l'outil de vérification automatique CodeCheck, et proposer des centaines d'exercices de programmation à ses étudiants.

CodeCheck est un programme Web destiné à former les élèves à la programmation dans de nombreux langages. En ayant la possibilité de personnaliser les exercices, les enseignants obligent les étudiants à trouver la solution par eux-mêmes plutôt que de la chercher en ligne. Les serveurs du département informatique étant déjà saturés, Cay Horstmann a développé CodeCheck avec Google Compute Engine, des machines virtuelles dotées d'une puissance de calcul illimitée. Il a choisi Stackdriver pour ses opérations de surveillance, de journalisation et de diagnostic, et Cloud SQL pour son évolutivité et sa praticité.

"Le dimanche soir, à l'heure où les étudiants planchent sur leurs travaux, 20 machines virtuelles peuvent s'exécuter simultanément, s'adaptant automatiquement à la charge de travail", déclare Cay Horstmann.

Désormais, les professeurs d'informatique de la SJSU ont la possibilité d'utiliser les outils de cloud computing pour enseigner la programmation à leurs étudiants, sans avoir à se préoccuper des capacités des serveurs de l'école. Leurs cours peuvent ainsi accueillir un plus grand nombre d'étudiants, y compris des étudiants qui n'ont pas choisi l'informatique comme matière principale. Les étudiants apprennent à gérer un système distant, à adapter le système aux charges de travail, à consigner des données et à effectuer des déploiements automatisés.

Encourager les étudiants à apprendre par eux-mêmes

CodeCheck fournit aux étudiants un retour en temps réel sur leur codage, de sorte qu'ils savent tout de suite si leur solution fonctionne ou pas. L'outil ne corrige pas les erreurs des élèves, et ces derniers doivent les trouver par eux-mêmes. Avant, les étudiants ne recevaient la correction de leur travail que plusieurs semaines après l'avoir remis, si bien qu'ils oubliaient souvent le raisonnement qu'ils avaient suivi pour arriver au résultat.

Selon des enquêtes, les étudiants trouvent les exercices en ligne très pratiques. Ils n'ont pas peur de commettre des erreurs, et ne se sentent pas obligés de terminer dans des délais précis.

D'après Cay Horstmann, CodeCheck améliore également l'apprentissage et les performances aux tests. Dans un cours général Java dont les étudiants étaient divisés en deux groupes, le groupe bénéficiant de l'outil CodeCheck a obtenu des performances 50 % supérieures à celles du groupe de contrôle. De même, dans un cours sur les langages de programmation, le groupe utilisant CodeCheck a réalisé un score sur les questions de programmation Scheme 20 % plus élevé que le groupe de contrôle. Pour une question non traitée dans les exercices pratiques, en revanche, les deux groupes ont fourni des performances identiques. Dans un cours sur le langage C++ destiné à des étudiants provenant d'un autre établissement, où les exercices pratiques étaient obligatoires pour tous, le nombre moyen de tentatives de résolution par problème a diminué d'un tiers entre le début et la fin du cours, et le temps moyen nécessaire à la réalisation des exercices a été réduit de moitié.

Enseigner la programmation à tous

Les étudiants utilisent de plus en plus le cloud de manière innée, et les outils pédagogiques se doivent d'évoluer afin d'aider tous les étudiants, qu'ils suivent un cursus informatique ou non. Par exemple, passer des problèmes imagés basiques à la création de boucles constitue une avancée énorme en termes de conception, car la boucle doit fonctionner, quelles que soient les valeurs. Si beaucoup d'étudiants en comprennent le concept, sa mise en application est une autre paire de manches. En apprenant une méthode, ils commencent à comprendre comment appliquer le concept au codage.

Avec l'outil de vérification automatique, les étudiants commencent en douceur, avec cinq lignes de code. Cela peut sembler peu comparé aux 200 lignes de code qu'ils doivent écrire pour un devoir, mais le but est de leur apprendre la programmation étape par étape, afin de les amener progressivement à résoudre des exercices plus complexes.

"La programmation est devenue, au XXIe siècle, une compétence incontournable pour les hommes d'affaires, les scientifiques, les avocats, les journalistes… bref, tous ceux qui travaillent avec des données", explique Cay Horstmann. "Si les étudiants en informatique eux-mêmes échouent avec les méthodes d'enseignement traditionnelles axées sur les cours magistraux, les travaux pratiques et les devoirs, quid des étudiants pour lesquels l'informatique ne constitue qu'une matière secondaire ? C'est la raison pour laquelle j'ai choisi une approche qui a fait ses preuves : la méthode d'apprentissage basée sur la répétition."

"La programmation est devenue, au XXIe siècle, une compétence incontournable pour les hommes d'affaires, les scientifiques, les avocats, les journalistes… bref, tous ceux qui travaillent avec des données."

Cay Horstmann, Professeur d'informatique, San José State University

Exécuter l'outil de vérification automatique avec des opérations backend transparentes

Grâce aux puissantes capacités de surveillance et de diagnostic de Stackdriver, Cay Horstmann a pu résoudre les problèmes et s'assurer de la bonne utilisation de son outil de vérification automatique par les étudiants. Par exemple, l'outil est configuré pour bloquer toute commande susceptible d'effacer d'autres programmes ou d'arrêter la machine. Auparavant, il arrivait à Cay Horstmann de passer des heures à déboguer des programmes à la recherche du problème.

L'objectif premier de CodeCheck est de faciliter l'apprentissage de la programmation pour tous. Nul besoin de s'inscrire ni d'ouvrir une session pour l'utiliser. Les enseignants intègrent l'outil dans le système de gestion de l'apprentissage (LMS). Les étudiants travaillent ensuite directement dans ce LMS, et l'outil de vérification automatique indique les scores réalisés. Cloud SQL consigne le temps passé sur un devoir et le sauvegarde. Grâce à cette intégration, il suffit aux étudiants de cliquer sur "Enregistrer mon score" pour envoyer leur devoir, une fonction très pratique à la fois pour les enseignants et les étudiants.

"La programmation n'est plus seulement réservée aux développeurs, c'est une compétence d'avenir incontournable. Les départements informatiques doivent donc s'adapter afin d'aider les étudiants à apprendre à leur rythme", explique Cay Horstmann. "Avec CodeCheck, les étudiants ont tout le loisir de poursuivre leur apprentissage en dehors des cours."

Merci de vous être inscrit !

Parlez-nous de vos centres d'intérêt.