Vie étudiante
UCAnCODE : apprentissage de la programmation
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
- la pédagogie inversée, les étudiants préparent le concours à la maison ;
- la pédagogie active, les étudiants appréhendent de nouveaux concepts seuls pour résoudre certains des problèmes ;
- 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 2023 | 55 |
Coding Battle | Octobre 2022 | 35 |
Coding Battle | Octobre 2021 | 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 quarantaine 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
- Coding Battle - Le Shaker 2023 · UCAnCODE
- Coding Battle - Le Shaker 2022 · UCAnCODE
- Coding Battle - Le Shaker 2021 · UCAnCODE
- Coding Battle - Le Shaker 2020 · UCAnCODE
- Games On Web 2020 · UCAnCODE
- Tutoriel UCAnCODE · UCAnCODE
- Google Hash Code 2019 · UCAnCODE
- Concours de Retro Gaming · UCAnCODE
- Google Summer of Code 2019 · UCAnCODE
- Google Hash Code 2019 · UCAnCODE
- Concours du 14 décembre 2018 · UCAnCODE
- Concours du 27 avril 2018 · UCAnCODE
- Google Hash Code 2018 · UCAnCODE
- Concours du 15 décembre 2017 · UCAnCODE
- Plus ›