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.

phd051013s.gif

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éneauSalleIntervenant
Jeu. 15h30-18h00M118/120AM
Ven. 09h15-11h45PV214AM
Ven. 09h15-11h45PV215KB
Ven. 09h15-11h45PV313MP
Ven. 13h15-15h45PV214AM
Ven. 13h15-15h45PV215MP

4. Contenu

4.1. Organisation

  1. Le matériel pédagogique est ici,
  2. Les évaluations et le carnet de notes sont sur moodle et sphere engine,
  3. Le code source est sur github !
  4. On communique surtout à l’oral pendant les cours,
  5. 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 syllabusExpressions, instructions, et variablesTP 1
2.Conditions et fonctionsJeu de rouletteTP 2
3.Itérations (while)ConversionsTP 3
4.Nombres réels approchésApproximation du nombre πTP 4
5.Itérations (for)Chaînes de caractèresTP 5
6.Les séquences : vecteursNombres premiersTP 6
7.Les séquences : listesEnsembles et dictionnairesTP 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 :

  1. Citer vos sources
  2. 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èmeBarèmePériode
Tutoriel UCAnCODE- 
JO20241224/10-25/10
ADDREV+ 124/10-25/10
ROULETTE+ 0.519/09-25/10
RWC2023+ 0.504/10-25/10
LUHN10+ 0.518/10-25/10
HELLOKIT+ 0.518/10-25/10
URL1321/11-22/11
TOILE+ 321/11-22/11
FISHNET1305/12-06/12
DAMIER+ 305/12-06/12
GOODIES_EZ1405/12-12/12
GOODIES+ 305/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éCoursNiveauBarème
1.Graphisme tortueA1Tout niveau20
2.Graphisme tortue 3DA2Difficile20
3.Convertisseur de base (shiny)A3Facile12
4.Coefficient de Gini (shiny)A3Facile12
5.Estimation de la moyenne (shiny)A3Facile12
6.Manipulation de polynômesA4Difficile20
7.Estimation d’aires par la méthode de Monte CarloA5Difficile20

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 :

  1. les conversions de base (c.f. QCM moodle) ;
  2. les lectures de code (c.f. QCM moodle) ;
  3. 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.
  • 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

E-learning

phd031714s.gif

Notes de bas de page:

1

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.

Created: 2025-02-24 lun. 09:20