C2. Codage
Contenus d’apprentissage
Codage
C2.1
utiliser le codage pour démontrer sa compréhension des concepts algébriques, y compris les variables, les paramètres, les équations et les inéquations.
- utiliser le codage pour démontrer sa compréhension :
- en exécutant le code;
- en lisant le code;
- en modifiant le code;
- en créant du code.
- utiliser des variables dans le code pour :
- sauvegarder temporairement des données;
- accéder aux données sauvegardées;
- modifier les valeurs des données sauvegardées.
- utiliser des paramètres dans le code pour :
- agir en tant qu’espace réservé pour représenter une quantité qui influe sur le résultat d’un objet mathématique, mais est vue comme étant constante (p. ex., en y = ax, a est le paramètre);
- définir des valeurs qui sont fournies par le programme principal aux sous-programmes lors de l’exécution de sous-programmes.
- utiliser des équations et des inéquations dans le code pour :
- affecter des valeurs à une mémoire (p. ex., y = 2x + 3 : si x est défini comme 2, y se verra attribuer la valeur 7);
- incrémenter un compteur (p. ex., compteur = compteur + 1 : incrémente la valeur du compteur de 1 et met à jour la valeur de la variable);
- vérifier l’égalité (p. ex., y = 3x − 2 : si la valeur 5 est attribuée à y et la valeur 2 à x, ce test d’égalité sera faux, puisque 5 n’est pas égal à 4);
- vérifier un intervalle (p. ex., y < 3x − 2 : si la valeur 5 est attribuée à y et la valeur 2 à x, ce test est faux, puisque 5 n’est pas inférieur à 4).
Les enseignantes et enseignants peuvent :
- donner aux élèves l’occasion de partager leurs expériences antérieures en codage et les outils ou environnements de codage qu’elles et ils ont utilisés;
- fournir aux élèves un code qui intègre les concepts algébriques présentés précédemment et organiser une discussion sur la manière dont ces concepts sont utilisés dans le codage;
- encourager les élèves à collaborer avant d’écrire le code afin de planifier leur approche en utilisant des organigrammes pour organiser leurs pensées;
- fournir aux élèves des occasions d’utiliser la pensée algébrique et le codage pour résoudre divers problèmes tout au long du cours;
- appuyer les élèves à établir des liens entre leur compréhension des variables, des paramètres, des équations et des inéquations et l’utilisation de ces éléments dans le codage des tableurs, des systèmes de calcul formel (CAS), les outils graphiques et géométriques virtuels et les langages de programmation textuels.
Remarque :
Les apprentissages de C2.1, C2.2 et C2.3 sont interreliés et ce fait doit être pris en compte durant l’enseignement.
- Quelles variables sont utilisées dans cet exemple de codage?
- Quelles valeurs sont contenues dans les variables et pourquoi sont-elles importantes pour le programme et le problème à résoudre?
- Quelles sont les façons dont les variables (ou les paramètres, les équations et les inéquations) sont utilisées dans le codage?
- Expliquez pourquoi il est important de comprendre les équations et les inéquations lorsque vous travaillez avec des énoncés conditionnels dans le codage.
- Comment utilise-t-on le signe égal dans le codage?
Fournissez aux élèves un pseudocode et posez-leur des questions sur les variables, les paramètres et les équations inclus. Par exemple, demandez-leur de lire le pseudocode ci-dessous qui compare deux relations linéaires, qui reporte deux relations linéaires afin que les élèves les comparent graphiquement et ensuite demandez-leur de formuler les questions suivantes :
- Quels sont :
- les variables du code;
- les paramètres du code;
- les équations du code?
- Que représente totalPoints = 10?
- Que représente valeurY = tauxDeVariation * valeurX + valeurInitiale?
Programme principal
valeurInitiale = 3 |
tauxDeVariation = 2 |
totalPoints = 10 |
exécuter le sous-programme tracerRelation (valeurInitiale, tauxDeVariation, totalPoints) |
valeurInitiale = 0 |
tauxDeVariation = 3 |
totalPoints = 10 |
exécuter le sous-programme tracerRelation (valeurInitiale, tauxDeVariation, totalPoints) |
Sous-programme tracerRelation
sous-programme tracerRelation (valeurInitiale, tauxVariation, totalPoints) |
valeurX = 0 |
valeurY = valeurInitiale |
répéter totalPoints fois |
tracer point (ValeurX, ValeurY) |
valeurX = ValeurX + 1 |
valeurY = tauxVariation * ValeurX + valeurInitiale |
Le pseudocode ne représente pas un langage de programmation spécifique. Il peut être adapté pour fonctionner avec une variété de langages de programmation ou d’environnements.
Demandez aux élèves de déterminer les variables, les paramètres ou les équations nécessaires pour créer un code permettant d’effectuer une tâche spécifique. Par exemple, demandez aux élèves :
- Quelles sont les variables nécessaires à l’écriture du code pour représenter une relation linéaire?
- Quels sont les paramètres nécessaires dans le code pour que la droite ait une pente positive?
- Quelle équation peut être utilisée dans le code pour déterminer la valeur de y d’une relation linéaire?
Invitez les élèves à exécuter un court programme. Avant de lire le code, et en fonction du résultat du programme, demandez-leur de prédire les équations, variables, paramètres et inéquations qui sont probablement inclus dans le code. Ensuite, laissez aux élèves invitez-les à lire le code et à vérifier leurs prédictions.
C2.2
créer du code pour décomposer des situations en étapes computationnelles pour représenter des concepts et des relations mathématiques, et pour résoudre des problèmes.
- situations qui peuvent être décomposées en étapes de calcul :
- générer une suite de nombres pour répondre à un critère précis;
- déterminer la densité d’un sous-ensemble de nombres dans un ensemble;
- déterminer si une relation est linéaire ou non linéaire;
- générer des résultats pour des valeurs données pour une relation linéaire;
- déterminer la proportionnalité de deux volumes;
- examiner les effets sur le volume de la modification de la taille d’une des dimensions;
- déterminer le montant des paiements d’un prêt en fonction de différents taux d’intérêt.
Les enseignantes et enseignants peuvent :
- intégrer des tâches de codage dans tous les domaines pour donner un sens aux concepts mathématiques;
- établir des liens avec les apprentissages antérieurs en codage du palier élémentaire, comme l’utilisation de boucles, des instructions conditionnelles et des sous-programmes;
- créer et faciliter des occasions pour les élèves de travailler en équipe pour décomposer des situations et s’entraider pour relever les défis;
- fournir aux élèves des sections de code à incorporer afin de les aider à comprendre le processus de décomposition de situations;
- amener les élèves à affiner leurs algorithmes en des étapes plus efficaces lors de la décomposition des situations;
- modéliser la résolution d’un problème plus petit pour un cas spécifique, puis le généraliser pour le résoudre pour plusieurs cas;
- démontrer les différentes façons dont les sous-programmes peuvent être utiles lors de la décomposition de problèmes;
- fournir des occasions pour les élèves de partager leurs approches du codage pour résoudre un problème afin de devenir conscients de diverses façons dont un problème peut être résolu.
Remarque :
Les apprentissages de C2.1, C2.2 et C2.3 sont interreliés et ce fait doit être pris en compte durant l’enseignement.
- Quelles sont les différentes composantes de ce problème qui doivent être prises en compte pour le résoudre?
- Quelles structures de codage (p. ex., instructions conditionnelles, événements répétitifs) seront utiles pour résoudre ce problème?
- Dans ce bloc de code, l’ordre des étapes est-il important pour représenter cette situation? Que se passerait-il si les étapes restaient les mêmes, mais qu’elles étaient ordonnées différemment? Cela changerait-il le résultat du programme?
Demandez aux élèves d’écrire un code basé sur la logique d’un logigramme pour représenter un concept mathématique qu’elles et ils apprennent. Par exemple, fournissez aux élèves le logigramme ci-dessous et expliquez comment suivre les étapes pourrait générer l’ensemble des carrés parfaits de 1 à 100. Demandez aux élèves d’écrire, d’exécuter et de modifier leur code jusqu’à ce que le résultat souhaité soit atteint. Ensuite, demandez aux élèves de modifier leur code afin que le programme détermine les carrés parfaits de 1 à 500, ou de 1 à 1 000. De façon alternative, demandez aux élèves de modifier leur code afin que le programme détermine les cubes parfaits de 1 à 100, ou de 1 à 500.
Demandez aux élèves de travailler d’abord de concert pour créer un logigramme montrant les étapes nécessaires pour déterminer si une relation est linéaire ou non linéaire. Demandez-leur ensuite d’écrire le code à l’aide d’un langage de programmation textuel ou par blocs. Enfin, demandez aux élèves d’exécuter le code et de déterminer les zones du logigramme qui doivent être modifiées si le code exécuté n’a pas produit le résultat souhaité.
Proposez aux élèves un problème qui peut être résolu à l’aide d’un code.
- Demandez-leur de travailler en petits groupes pour déterminer les étapes nécessaires à la résolution du problème.
- Invitez chaque élève à créer un logigramme décrivant ses étapes.
- Demandez aux élèves de comparer leurs logigrammes au sein de leur groupe, en déterminant les ressemblances et les différences.
- Invitez ensuite les élèves à créer un pseudocode à partir de leurs logigrammes. (Remarque : Au fur et à mesure que les élèves créent leur pseudocode à partir de leurs logigrammes, elles et ils peuvent avoir besoin d’ajuster leur logigramme.)
- Demandez aux élèves d’écrire, d’exécuter et d’ajuster leur code maintenant à partir de leur pseudocode avec un langage de programmation textuel ou par blocs jusqu’à ce qu’elles et ils obtiennent le résultat escompté.
C2.3
lire du code pour prédire son résultat, et modifier le code pour ajuster des contraintes, des paramètres et des résultats pour une situation similaire ou pour une nouvelle situation.
- prédire les résultats pour :
- visualiser les mathématiques;
- s’assurer que le code s’exécutera correctement;
- déconstruire le code pour en comprendre le but et le sens.
- modifier le code pour :
- simplifier le code;
- déboguer le code afin d’obtenir les résultats souhaités;
- résoudre des problèmes similaires;
- produire des résultats différents;
- l’appliquer à de nouvelles situations mathématiques.
Les enseignantes et enseignants peuvent :
- faciliter et créer des occasions pour les élèves de travailler en équipe ou en binômes pour résoudre des problèmes et s’entraider pour relever les défis;
- utiliser la lecture et la modification du code comme point de départ pour aider les élèves à coder, et ensuite continuer par leur faire écrire leur propre code;
- utiliser la lecture et la modification de codes comme outils pour améliorer l’apprentissage des élèves en mathématiques;
- choisir un langage de codage avec lequel les élèves sont familiers en fonction de leurs expériences antérieures ou établir des liens entre un nouveau langage de codage et un langage qu’elles et ils connaissent déjà;
- reconnaître et encourager le partage des différentes connaissances et expériences que les élèves apportent au codage.
Remarque :
Les apprentissages de C2.1, C2.2 et C2.3 sont interreliés et ce fait doit être pris en compte durant l’enseignement.
- Quelles sont les stratégies que vous utilisez pour lire le code afin de déterminer son résultat?
- Qu’est-ce qui arrive à chaque variable lorsque le code est exécuté? Est-il conforme à vos attentes? Si cela n’est pas le cas, pourquoi?
- Lorsque vous modifiez ce code, qu’allez-vous conserver et qu’allez-vous devoir changer?
- Si nous effectuons certaines étapes dans un ordre différent, obtiendrons-nous une sortie différente?
Fournissez aux élèves des exemples de code, de pseudocode ou de logigramme et demandez-leur de prédire quel pourrait être le résultat. Par exemple, fournissez-leur le logigramme et le pseudocode suivants pour résoudre ce problème : Quelle est la quantité d’espace vide dans le cylindre qui n’est pas occupé par le cône?
Demandez aux élèves :
- Qu’est-ce qui est identique et qu’est-ce qui est différent entre le pseudocode et le logigramme?
- Le pseudocode et le logigramme ont-ils le même résultat? Expliquez pourquoi ou pourquoi pas.
espaceVide = 0 |
volumeCylindre = 0 |
volumeCône = 0 |
hauteur = 0 |
rayon = 0 |
sortie « Saisir la hauteur du cylindre et du cône. » |
assigner l’entrée de l’utilisateur comme hauteur |
sortie « Entrer le rayon de la base circulaire du cylindre et du cône. » |
assigner l’entrée de l’utilisateur comme rayon |
volumeCylindre = π * rayon^2 * hauteur |
volumeCône = volumeCylindre/3 |
espaceVide = volumeCylindre – volumeCône |
sortie « L’espace vide dans le cylindre qui n’est pas occupé par le cône est », espaceVide, « unités cubiques » |
Le pseudocode ne représente pas un langage de programmation spécifique. Il peut être adapté pour fonctionner avec une variété de langages de programmation ou d’environnements.
Fournissez aux élèves un exemple de pseudocode et demandez-leur de modifier le code pour une nouvelle situation. Par exemple, demandez aux élèves de modifier le code ci-dessous pour trouver le volume d’un cône, en utilisant leur compréhension de la relation entre le volume d’un cône et le volume d’un cylindre.
rayon = 0 |
hauteur = 0 |
volumeCylindre = 0 |
sortie « Quel est le rayon du cylindre? » |
assigner l’entrée de l’utilisateur comme rayon |
sortie « Quelle est la hauteur du cylindre? » |
assigner l’entrée de l’utilisateur comme hauteur |
volumeCylindre = π * rayon^2 * hauteur |
sortie « Le volume du cylindre est », volumeCylindre, « unités cubiques » |
Le pseudocode ne représente pas un langage de programmation spécifique. Il peut être adapté pour fonctionner avec une variété de langages de programmation ou d’environnements.
Fournissez aux élèves un exemple de code qui calcule la somme des 5 premiers termes de la suite $$\frac{1}{2}$$, $$\frac{1}{4}$$, $$\frac{1}{8}$$, $$\frac{1}{16}$$, $$\frac{1}{32}$$, .... Demandez-leur ensuite de modifier le code pour ajouter d’autres termes et d’explorer la limite de cette somme.
Fournissez aux élèves un exemple de code permettant de trouver la valeur minimale dans un ensemble de données et demandez-leur de modifier le code pour y trouver la valeur maximale.
Fournissez aux élèves un exemple de code permettant de déterminer le montant des intérêts gagnés chaque mois pour un investissement rapportant des intérêts simples. Demandez aux élèves de modifier le code pour un investissement dont les intérêts sont composés mensuellement.