Vie étudiante

UCAnCODE : apprentissage de la programmation

Vous voulez réviser vos examens, gagner de l'expérience en programmation, ou vous êtes simplement curieux, nous organisons et participons à des concours et hackathons. Ces événements sont ouvert à tous (de la L1 au M2) ! Pour vous entraîner, nous avons intégré ces activités dans de nombreux cours de votre cursus.

Nous présentons ici diverses activités mises en place ces dernières années autour de l’apprentissage de la programmation et de l’algorithmique en cycle de Licence et de Master à la faculté des sciences de l’Université Côte d’Azur. Ces activités concernent l’évaluation des compétences en programmation à travers des exercices intégrés au cursus, et l’organisation ou la participation à des concours de programmation.

De nombreux concours de programmation existent à travers le monde pour mettre en pratique les connaissances en algorithmique et programmation des étudiants et se confronter à d’autres. En général, les étudiants participent en équipe et doivent résoudre un maximum de problèmes dans les délais impartis. Les étudiants soumettent leur programme à un juge automatique, qui accepte ou refuse la soumission. Certains concours se déroulent uniquement en présentiel, d’autres uniquement en ligne, ou un savant mélange des deux.

Le plus prestigieux concours est probablement l’ICPC dont les origines remontent aux années 70 et dont les dernières éditions ont réuni plus de 50000 étudiants de 3000 universités. Ces concours sont très répandus et organisés par de nombreux acteurs : universités, conférences, entreprises, associations, ou même cabinet de recrutement. En informatique, on retrouve fréquemment les exercices posés dans ces concours dans les entretiens d’embauche d’entreprises, comme les géants du web (GAFAM - Google/Apple/Facebook/Amazon/Microsoft).

Au sein de notre Université, ces exercices sont maintenant intégrés tout au long de la formation des étudiants. Les modalités varient en fonction des objectifs poursuivis : apprentissage, renforcement, évaluation, compétition …

Nous rappelons d’abord l’intérêt pédagogique des ces activités avant détailler les activités mises en place à l’Université.

Intérêt pédagogique

Malgré leur ancienneté, ces activités restent pédagogiquement innovantes. Elles associent

  1. la pédagogie inversée, les étudiants préparent le concours à la maison ;
  2. la pédagogie active, les étudiants appréhendent de nouveaux concepts seuls pour résoudre certains des problèmes ;
  3. la pédagogie par problèmes dans laquelle les étudiants regroupés par équipes travaillent ensemble à résoudre un problème pour lequel ils n’ont pas toujours reçu une formation particulière.

Par ailleurs, les modalités sont flexibles : travail individuel ou en groupe ; en présentiel ou en distanciel ; degré d’autonomie ; synchrone ou asynchrone ; jugements automatiques ou manuel.

Intégration dans le cursus pédagogique

Ces activités sont intégrées dans plusieurs cours de Licence et de Master que ce soit pour les travaux pratiques ou les contrôles.

Nous ne donnerons pas ici une liste exhaustive des cours concernés, mais présenterons rapidement le plus emblématique du cycle Master. Le cours Programming Challenge proposé en Master 1 Informatique est entièrement dédié à ces activités. Le cours commence par un tutoriel que l’on peut suivre en autonomie. Puis, il continue avec des séries d’exercices accompagnés de supports de cours. Ses modalités d’évaluation reposent sur la participation à un concours de programmation.

En cycle Licence, ces activités sont introduites beaucoup plus progressivement que ce soit pour la difficulté des exercices que l’autonomie demandée. Par exemple, les premières activités du cours ne sont pas notées, sans limite de temps, et un modèle est fourni aux étudiants. Les dernières activités sont notées, plus aucun modèle n’est fourni, et il y a une date d’échéance.

Il existe de nombreuses ressources supplémentaires en ligne pour s’entraîner quel que soit son niveau d’études.

Ces activités sont accessibles grâce à la plate-forme Sphere Engine qui occupe maintenant un rôle central dans cette démarche pédagogique. Sans un entraînement adéquat, il est difficile de participer à des concours de programmation et illusoire d’espérer bien y figurer.

Concours de programmation

Nous présentons maintenant les concours de programmation auxquels les étudiants ont participé depuis 2016. Cela a évolué en fonction des objectifs pédagogiques, des partenariats, et des contraintes techniques, administratives, ou sanitaires.

Concours interne UCAnCODE

De 2016 à 2018, le département d’informatique a organisé des concours de programmation au Petit Valrose à Nice ouverts à tous. En général, le concours avait lieu le vendredi après-midi précédant la période d’examens. Les participants, en binôme, avaient 4 heures pour résoudre 7 problèmes originaux ou plus.

Le succès de ces concours a augmenté au fur et à mesure ainsi que les moyens nécessaires à leur organisation et les besoins logistiques et techniques. En 2019, nous avons donc fait le choix de nous concentrer sur l’intégration des activités dans les cursus et de participer uniquement à des concours externes.

Google Hash Code

Depuis 2018, le département d’informatique organise un hub pour le Google HashCode, un concours mondial de programmation. Les participants, en équipe de 2 à 4, ont 4 heures pour résoudre un seul problème. Ils soumettent leur solution à un juge automatique, qui accepte ou refuse la solution et leur attribue un score. L’objectif est d’obtenir le score le plus élevé possible dans les délais impartis.

Ce concours s’adresse surtout aux étudiants du cycle Master de par la difficulté du problème et la taille des instances à résoudre.

Coding Battle

Depuis 2019, le département d’informatique organise un hub pour la Coding Battle, un concours national de programmation. Les participants, en équipe de 1 ou 2, ont 2 heures pour résoudre six problèmes. Ils soumettent leur programme à un juge automatique, qui accepte ou refuse la solution. L’objectif est de résoudre le plus grand nombre de problèmes dans les délais impartis.

Ce concours s’adresse surtout aux étudiants du cycle Master, car la rapidité est un facteur essentiel de réussite, mais les étudiants de Licence peuvent participer, car les trois premiers exercices sont abordables.

Affluence aux concours

Le tableau ci-dessous récapitule l’affluence aux différents concours de programmation depuis 2016.

Concours Date #étus
Coding Battle Octobre 2022 35
HashCode Février 2021 8
Coding Battle Octobre 2020 40
HashCode Février 2019 79
UCAnCODE Décembre 2018 199
UCAnCODE Avril 2018 148
HashCode Mars 2018 58
UCAnCODE Décembre 2017 120
UCAnCODE Mai 2017 66
UCAnCODE Décembre 2016 55
UCAnCODE Juin 2016 40
UCAnCODE Mai 2016 40

Comité scientifique

Le comité scientifique est composé de deux membres.

  • Arnaud Malapert, Maı̂tre de conférences, Université Côte d’Azur, CNRS, I3S.
  • Marie Pelleau, Maı̂tre de conférences, Université Côte d’Azur, CNRS, I3S.

Depuis 2016, le comité scientifique a reçu l’aide d’une trentaine d’universitaires et d’étudiants. Les niveaux d’implication varient du simple encadrement d’étudiants à la construction d’exercices originaux et de supports de cours.

Derniers posts