<- 25
temperature
if (temperature > 20) {
print("Il fait chaud")
}
Séance 3 : Fonctions, conditions et boucles
Apprendre R avec les LLMs
Plan de la séance
- Récap et partage (15min) : Retours sur les données
- Conditions if/else (45min) : Prendre des décisions dans le code
- Boucles (45min) : Répéter des opérations
- Créer ses propres fonctions (60min) : Structurer son code
- Mini-projet (45min) : Analyser des données avec vos fonctions
Production attendue : 3 fonctions personnalisées avec conditions et/ou boucles
Objectifs de la séance
- Utiliser des conditions pour adapter le comportement du code
- Utiliser des boucles pour répéter des opérations
- Créer des fonctions réutilisables
- Combiner ces concepts pour résoudre des problèmes réels
Récap et partage
Retours sur vos analyses de données
- Quelles difficultés avez-vous rencontrées ?
- Quelles fonctions intégrées avez-vous découvertes ?
- Comment les LLMs vous ont-ils aidé ?
Conditions if/else
Pourquoi des conditions ?
Imaginez que vous analysez des températures. Comment indiquer s’il fait chaud ou froid ?
On a besoin de tester une condition et agir différemment selon le résultat.
Exercice 1 : Première condition
Demandez à votre LLM de vous expliquer la structure if/else
en R avec un exemple simple.
Ensuite, testez ce code :
Questions à explorer avec votre LLM :
- Que se passe-t-il si
temperature <- 15
? - Comment ajouter un message pour “Il fait froid” ?
- Qu’est-ce qu’un opérateur de comparaison ? (
>
,<
,==
,!=
,>=
,<=
)
Laisser 10 minutes. Circuler pour vérifier la compréhension. Insister sur le fait que le LLM peut se tromper - tester le code est essentiel.
Exercice 2 : if/else complet
Créez un code qui :
- Prend une note (0-20)
- Affiche “Réussite” si la note est >= 10
- Affiche “Échec” sinon
Extension : Ajoutez une troisième catégorie avec else if
:
- “Excellent” si >= 16
- “Réussite” si >= 10
- “Échec” sinon
10 minutes. Faire un débriefing collectif. Demander à un étudiant de partager son code et son prompt.
Exercice 3 : Conditions et vecteurs
Problème : Vous avez plusieurs notes :
<- c(8, 12, 15, 9, 18) notes
Question : Comment classifier TOUTES ces notes ?
Demandez à votre LLM comment appliquer une condition à un vecteur.
Indices à explorer :
- La fonction
ifelse()
- La différence entre
if
etifelse()
15 minutes. C’est un concept important. Les étudiants découvriront la vectorisation. Certains LLMs proposeront des boucles, d’autres ifelse()
. Discuter les deux approches.
Boucles
Pourquoi des boucles ?
Vous avez 100 températures à classifier. Écrire 100 fois if/else
?
Les boucles permettent de répéter automatiquement des opérations.
Exercice 4 : Boucle for simple
Demandez à votre LLM d’expliquer la boucle for
en R avec un exemple.
Testez ce code :
for (i in 1:5) {
print(i)
}
Questions :
- Que fait
1:5
? - Que représente
i
? - Comment afficher les nombres de 10 à 20 ?
10 minutes. Concept fondamental mais peut être abstrait pour certains.
Exercice 5 : Boucle sur un vecteur
Reprenez vos notes de l’exercice 3 :
<- c(8, 12, 15, 9, 18) notes
Utilisez une boucle for
pour :
- Afficher chaque note
- Afficher chaque note avec son classement (Réussite/Échec)
Astuce : Combinez for
et if/else
!
15 minutes. Les étudiants vont combiner les deux concepts. Anticiper les confusions entre i (indice) et notes[i] (valeur).
Exercice 6 : Accumuler des résultats
Nouveau défi : Calculez la somme des notes sans utiliser sum()
.
Indices :
- Créez une variable
total <- 0
- Utilisez une boucle pour ajouter chaque note à
total
- Affichez le résultat final
Vérification : Comparez avec sum(notes)
10 minutes. Introduit le concept d’accumulation. Utile pour comprendre ce que font réellement les fonctions intégrées.
Boucle while (optionnel)
Demandez à votre LLM la différence entre for
et while
.
Exemple à tester :
<- 1
compteur while (compteur <= 5) {
print(compteur)
<- compteur + 1
compteur }
Que se passe-t-il si vous oubliez compteur <- compteur + 1
?
Optionnel car while
est moins utilisé en R. Mais bon pour comprendre les concepts de programmation. Attention aux boucles infinies !
Créer ses fonctions
Pourquoi créer des fonctions ?
Jusqu’ici, vous avez utilisé des fonctions : mean()
, sum()
, print()
…
Maintenant, vous allez créer vos propres fonctions !
- Réutiliser du code
- Éviter la répétition
- Rendre le code plus lisible
- Partager avec d’autres
Exercice 7 : Première fonction
Demandez à votre LLM d’expliquer comment créer une fonction en R.
Créez une fonction simple :
<- function(nom) {
dire_bonjour <- paste("Bonjour", nom)
message return(message)
}
# Test
dire_bonjour("Alice")
Questions :
- À quoi sert
function()
? - Qu’est-ce qu’un paramètre / argument ?
- À quoi sert
return()
?
15 minutes. Première fonction. Bien distinguer définition (function) et appel (dire_bonjour(“Alice”)).
Exercice 8 : Fonction avec condition
Créez une fonction classifier_note()
qui :
- Prend une note en paramètre
- Retourne “Excellent” si >= 16
- Retourne “Réussite” si >= 10
- Retourne “Échec” sinon
Testez avec plusieurs valeurs.
Extension : Que se passe-t-il si on passe une note négative ou > 20 ? Comment améliorer la fonction ?
15 minutes. Première fonction “utile”. L’extension introduit la validation des paramètres (concept important).
Exercice 9 : Fonction avec boucle
Créez une fonction calculer_moyenne()
qui :
- Prend un vecteur de nombres
- Utilise une boucle pour calculer la moyenne
- Retourne le résultat
Testez :
<- c(12, 15, 8, 14)
mes_notes calculer_moyenne(mes_notes)
Questions :
- Comment gérer les valeurs manquantes (
NA
) ? - Comparez votre résultat avec
mean()
15 minutes. Fonction plus complexe. Les étudiants réutilisent l’exercice 6. Discussion sur NA importante.
Exercice 10 : Fonction complète
Créez une fonction analyser_vecteur()
qui prend un vecteur et retourne :
- Le minimum
- Le maximum
- La moyenne
- Le nombre d’éléments
Défi : Comment retourner plusieurs valeurs ? Demandez au LLM !
Indice : liste ou vecteur nommé
15 minutes. Fonction avancée. Introduit le concept de retourner des structures de données complexes. Les étudiants découvriront les listes.
Mini-projet
Projet : Analyse de températures
Vous allez créer un petit système d’analyse météo.
Données :
<- c(15, 22, 18, 25, 12, 28, 20, 16, 24, 19) temperatures
Créez les fonctions suivantes :
classifier_temperature(temp)
: retourne “Froid”, “Doux” ou “Chaud”compter_par_categorie(vecteur_temp)
: compte combien de jours froids/doux/chaudsrapport_meteo(vecteur_temp)
: génère un rapport complet (min, max, moyenne, catégories)
Conditions, boucles, fonctions !
45 minutes. Projet synthèse. Les étudiants combinent tous les concepts. Circuler beaucoup. Encourager l’aide entre pairs. Certains iront plus loin (graphiques, etc.).
Critères du mini-projet
Votre code doit :
- ✅ Fonctionner sans erreur
- ✅ Contenir au moins 3 fonctions
- ✅ Utiliser des conditions (
if/else
) - ✅ Utiliser au moins une boucle
- ✅ Être commenté (expliquez ce que fait chaque fonction)
Bonus :
- Gérer les cas d’erreur (NA, vecteur vide, etc.)
- Créer des visualisations
- Tester avec d’autres données
Afficher les critères clairement. Certains étudiants auront besoin de plus de temps - c’est OK.
Retour sur l’utilisation des LLMs
Pièges courants avec les LLMs
Les LLMs peuvent :
- Proposer du code qui ne fonctionne pas
- Utiliser des fonctions qui n’existent pas
- Mélanger différentes versions de R
- Donner des explications approximatives
Votre responsabilité : TOUJOURS tester le code !
Exercice réflexif : Journal de bord
Dans votre journal, documentez :
- Un prompt qui a bien fonctionné : Pourquoi ?
- Une erreur du LLM : Comment l’avez-vous détectée ? Corrigée ?
- Votre code le plus complexe : Expliquez-le avec vos mots
- Une chose que vous ne comprenez pas encore : À approfondir
Plus vous serez précis dans vos prompts, meilleures seront les réponses. Donnez du contexte !
10 dernières minutes. Moment réflexif important. Les étudiants prennent du recul sur leur apprentissage.
Ressources et prochaines étapes
Pour aller plus loin
- Documentation R :
?function
,?if
,?for
- Pratiquez : La programmation s’apprend en codant !
- Debuggez : Les erreurs sont normales et instructives
- Partagez : Discutez de vos solutions avec vos pairs
Préparation prochaine séance
- Terminez le mini-projet si besoin
- Mettez à jour votre journal de bord
- Créez au moins une fonction originale qui vous serait utile
Questions à explorer : Comment sauvegarder ses fonctions ? Comment les partager ? (→ scripts, packages)
Questions ?
- Testez votre code
- Commentez votre code
- Documentez votre apprentissage
- Utilisez les LLMs comme assistants, pas comme rédacteurs
Bon courage et bon code ! 🚀