Algo & Prog avec R
Université Côte d’Azur
Table des matières
1. Intervenants
- Arnaud Malapert (responsable), Marie Pelleau, Kenza Benjelloun.
2. Introduction
L’intelligence ce n’est pas ce que l’on sait, mais ce que l’on fait quand on ne sait pas.
Jean Piaget , Six études de psychologie.
Ce cours est une initiation à l’algorithmique et à la programmation dans le langage R. R est un logiciel libre1 (Projet GNU) pour la manipulation de données, le calcul numérique, les statistiques, le graphisme … R propose aussi une large palette de techniques avancés : modèles linéaires et non-linéaires ; tests statistiques ; analyse de séries temporelles ; classification ; partitionnement. R peut être étendu par les utilisateurs et de nombreuses extensions sont disponibles sur cran.
En tant que scientifique, vous appliquerez des techniques dans votre cursus, puis dans votre métier, qui exigent la maîtrise des concepts fondamentaux en algorithmique et programmation.
En tant qu’être humain, vous utilisez déjà quotidiennement des systèmes informatiques sans nécessairement les comprendre.
Ce cours vous aidera à mieux appréhender les logiques et limites des systèmes informatiques ce qui fera de vous un meilleur utilisateur, et peut-être un programmeur ;)
Ce cours est inspiré du cours de Python de Jean-Paul Roy et Bruno Martin que je remercie pour le partage.
3. Calendrier
3.1. Semainier
3.2. Agenda
3.3. Salles
Toutes les salles du vendredi sont au 2ème et 3ème étage du Petit Valrose. La salle M118/120 du jeudi est à l’étage le plus bas du bâtiment M. Les initiales de l’intervenant sont indiquées dans la troisième colonne.
Créneau | Salle | Intervenant |
---|---|---|
Jeu. 15h30-18h00 | M118/120 | AM |
Ven. 09h15-11h45 | PV214 | AM |
Ven. 09h15-11h45 | PV215 | KB |
Ven. 09h15-11h45 | PV313 | MP |
Ven. 13h15-15h45 | PV214 | AM |
Ven. 13h15-15h45 | PV215 | MP |
4. Contenu

Ce cours est mis à disposition dans ce dépôt github selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale 4.0 International.
4.1. Organisation
- Le matériel pédagogique est ici,
- Les évaluations et le carnet de notes sont sur moodle et sphere engine,
- Le code source est sur github !
- On communique surtout à l’oral pendant les cours,
- et plus rarement par courriel pour les communications importantes.
Inscrivez-vous au cours sur moodle !
4.2. Autoformation
La partie sur la représentation des nombres et les conversions de base est partiellement en autoformation. Les seuls pré-requis sont de savoir additionner, multiplier par 2, et diviser par 2.
Un cours magistral est prévu. Mais les séances de travaux dirigés sont des questionnaires moodle accessibles en distanciel pendant tout le semestre. L’autoformation est importante. Elle est au programme du contrôle continu et de l’examen et vous aidera aussi pour les travaux pratiques.
4.3. Carte de référence
Nous vous avons préparé une superbe carte de référence en couleurs. Ce sera le seul document autorisé pendant les épreuves écrites. Apprenez à vous en servir !
4.4. Cours
Il y a 8 cours, chacun divisé en deux parties, accompagnés de leurs travaux pratiques. Les corrigés des travaux pratiques seront publiés au fur et à mesure.
#. | Cours (Partie I) | Cours (Partie II) | Travaux pratiques |
---|---|---|---|
1. | Présentation du syllabus | Expressions, instructions, et variables | TP 1 |
2. | Conditions et fonctions | Jeu de roulette | TP 2 |
3. | Itérations (while) | Conversions | TP 3 |
4. | Nombres réels approchés | Approximation du nombre π | TP 4 |
5. | Itérations (for) | Chaînes de caractères | TP 5 |
6. | Les séquences : vecteurs | Nombres premiers | TP 6 |
7. | Les séquences : listes | Ensembles et dictionnaires | TP 7 |
8. | Suite de Fibonacci | TP 8 |
4.5. Activités
Choisissez votre binôme sur moodle pour toutes vos activités ! Les activités sont évaluées pour le contrôle continu, mais ne sont pas au programme de l’examen. Les corrigés des activités ne sont pas publiés.
Les activités ont différents niveaux de difficultés. Nous ne pouvons pas vraiment prédire combien de temps il vous faudra pour terminer une activité. Choisissez judicieusement et n’hésitez pas à demander des conseils.
Quelques séances sont prévues pour les activités, mais l’essentiel du travail aura lieu en distanciel. N’hésitez pas à demander de l’aide pour choisir et réaliser les activités.
Nous vous demandons de respecter le code de conduite suivant pour les activités :
- Citer vos sources
- Le partage de code est interdit sauf avec votre binôme.
Exercices UCAnCODE
Les exercices UCAnCODE sont sur sphere engine. Les notes sont attribuées par le juge automatique. Les exercices UCAnCODE seront introduits en cours et pendant les travaux pratiques.
Vous pouvez aussi suivre en autonomie le tutoriel UCAnCODE si vous avez déjà des notions d’informatique ou de programmation. Ne paniquez pas si cela vous semble difficile au début.
Entrez votre adresse étudiante @etu.univ-cotedazur.fr dans le formulaire d’accueil.
Problème | Barème | Période |
---|---|---|
Tutoriel UCAnCODE | - | |
JO2024 | 12 | 24/10-25/10 |
ADDREV | + 1 | 24/10-25/10 |
ROULETTE | + 0.5 | 19/09-25/10 |
RWC2023 | + 0.5 | 04/10-25/10 |
LUHN10 | + 0.5 | 18/10-25/10 |
HELLOKIT | + 0.5 | 18/10-25/10 |
URL | 13 | 21/11-22/11 |
TOILE | + 3 | 21/11-22/11 |
FISHNET | 13 | 05/12-06/12 |
DAMIER | + 3 | 05/12-06/12 |
GOODIES_EZ | 14 | 05/12-12/12 |
GOODIES | + 3 | 05/12-12/12 |
Bonifications | + 3 |
L’exercice GOODIES a des bonifications pour les premiers binômes à résoudre le problème : 3pts pour le premier ; 2pts pour le second ; 1pt pour le troisième.
Mini-projets
Les mini-projets complètent et étendent des notions abordées en cours et vous font découvrir différentes applications. Vous devez déposer le projet sur moodle (un seul fichier de code source commenté) et faire une démonstration du projet. Le barème indique la note maximale possible pour une activité.
#. | Activité | Cours | Niveau | Barème |
---|---|---|---|---|
1. | Graphisme tortue | A1 | Tout niveau | 20 |
2. | Graphisme tortue 3D | A2 | Difficile | 20 |
3. | Convertisseur de base (shiny) | A3 | Facile | 12 |
4. | Coefficient de Gini (shiny) | A3 | Facile | 12 |
5. | Estimation de la moyenne (shiny) | A3 | Facile | 12 |
6. | Manipulation de polynômes | A4 | Difficile | 20 |
7. | Estimation d’aires par la méthode de Monte Carlo | A5 | Difficile | 20 |
Bug bounty
Toutes les contributions significatives au cours sont valables, par exemple :
- Correction de fautes d’orthographe.
- Correction ou amélioration des codes du cours ou des corrigés.
- Proposition d’exercices venant d’autres disciplines (biologie, économie, gestion …)
Pour soumettre une contribution, vous devez
- rendre un devoir à l’activité Bug Bounty sur moodle,
- ou poster une issue sur github.
La note sera intégrée comme un bonus sur la note finale.
5. Contrôle des connaissances
5.1. Épreuves écrites
Les épreuves écrites ont des durées différentes, mais suivent les mêmes modalités d’organisation.
- Le programme comprend l’autoformation et le cours, mais pas les activités.
- Il n’y a pas de question de cours.
- Le seul document autorisé est la carte de référence.
Une épreuve écrite se structure en trois parties :
- les conversions de base (c.f. QCM moodle) ;
- les lectures de code (c.f. QCM moodle) ;
- des exercices de programmation dérivés des travaux pratiques du cours, mais pas des activités.
Le barème des trois parties (X/Y/Z) somme toujours à 23, mais nous conservons votre note sur 20.
5.2. Barème
Première session
- L’examen terminal obligatoire (note \(N_t\)) est une épreuve écrite de 3h (barème indicatif - 3/4/16).
- La note \(N_c\) de contrôle continu est la moyenne :
- de la note maximale entre
- la note de partiel, une épreuve écrite de 2h (barème indicatif - 4/6/12) et
- la note d’examen terminal;
- et des 2 meilleures notes obtenues aux activités en les pondérant par leur barème.
- de la note maximale entre
- La note finale est \(N_1 = \max(N_t, 0.4 \times N_c + 0.6 \times N_t)\).
Seconde session
- La seconde chance (\(N_t^2\)) est une épreuve écrite de 3h (barème indicatif - 3/4/16).
- La note finale est \(N_2 = \max(N_1, N_t^2, 0.2 \times N_c + 0.8 \times N_t^2)\).
6. Communication
Notre mode de communication de prédilection est la discussion lors des travaux pratiques. Utilisez le courriel seulement pour les communications importantes ou officielles.
7. Ressources électroniques
Ressources BU
- Le livre de R : apprentissage et référence, Bernard Desgraupes.
Manuels, Livres, …
- Introduction à la programmation de R (V. Goulet)
- R pour les débutants (E. Paradis)
- Introduction à R (J. Barnier)
- A Tiny Handbook of R
- Manuels de référence
- Autre Documentation sur R (plusieurs langues)
E-learning
- Swirl : (tutoriel interactif dans la console R)
- Cours en vidéo (youtube)
- Coursera Data Scientists Tools
Notes de bas de page:
Un logiciel libre est un logiciel dont l’utilisation, l’étude, la modification et la duplication par autrui en vue de sa diffusion sont permises, techniquement et légalement, ceci afin de garantir certaines libertés induites, dont le contrôle du programme par l’utilisateur et la possibilité de partage entre individus.