Title: D
1Déroulement
- Les algorithmes dans lhistoire
- Des définitions dun algorithme
- Algorithme et langages de programmation
- Les structures de bases de lalgorithmique
- Les premiers pas avec AlgoBox
1
2Déroulement
- Les différents langages informatiques
- Des activités pour la classe de Seconde
- Des prolongements pour les classes de Première
et de Terminale
- Des conseils pédagogiques
- Une présentation de plusieurs logiciels à
caractère pédagogique
- Ce que disent les programmes officiels
2
3Historique
- Les algorithmes ne sont pas nés avec
linformatique - Lalgorithme dEuclide pour calculer le PGCD de
deux entiers est vieux de plus de 2000 ans ! - Des descriptions précises dalgorithmes sont
présents dans la Chine ancienne. - (Par exemple, pour extraire des racines carrées
à partir de divisions effectuées sur une
surface à calculer ) - L origine du mot algorithme est lié au nom
du savant arabe du IXe siècle Al-Khwarizmi. - Ce savant arabe a publié plusieurs méthodes
pour le calcul effectif de racines dune équation
du second degré et grâce à lui les chiffres
arabes ont pu se diffuser en occident.
4Définitions
- Des définitions plus modernes dun
algorithme - Une définition simple
- Un ensemble dinstructions pour résoudre un
problème. - Une définition plus complète à partir de 5
propriétés (selon Knuth) - Finitude Un algorithme doit toujours se
terminer après un nombre fini détapes. - Précision Chaque étape dun algorithme doit
être définie précisément les actions à
transposer doivent être spécifiées rigoureusement
et sans ambiguïté pour chaque cas. - Entrées Quantités, prises dans un ensemble
dobjets spécifié, qui sont données à
lalgorithme avant quil ne commence. - Sorties Quantités qui ont une relation
spécifiée avec les entrées. - Rendement Toutes les opérations que
lalgorithme doit accomplir doivent être
suffisamment élémentaires pour pouvoir être en
principe réalisées dans une durée finie par un
homme utilisant du papier et un crayon.
5Algorithme et langage de programmation
- Algorithme et langage de programmation
- Un algorithme est rédigé dans un pseudo-langage
(en Français). - Il peut ensuite être implémenté dans un langage
de programmation donné. - En quoi a-t-on besoin dun langage spécial,
distinct des langages de programmation
compréhensibles par les ordinateurs ? - Parce que lalgorithmique exprime les
instructions résolvant un problème donné
indépendamment des particularités de tel ou tel
langage. - Pour prendre une image, si un programme était une
dissertation, lalgorithmique serait le plan, une
fois mis de côté la rédaction et lorthographe.
Or, vous savez quil vaut mieux faire dabord le
plan et rédiger ensuite que linverse - Apprendre lalgorithmique, cest apprendre à
manier la structure logique dun programme
informatique.
6Les 3 étapes dun algorithme les entrées
- Les 3 étapes dun algorithme
- Les entrées (ou la déclaration et la saisie des
données) - Le traitement
- Les sorties (ou laffichage / limpression des
données transformées) - Les entrées
- Il sagit de repérer les données nécessaires à la
résolution du problème. - Ces données peuvent être numériques, ou sous
forme de textes (on dit souvent chaines de
caractères), ou de type logique (deux valeurs
possibles, vrai ou faux), ou enfin de type
graphique (des points). - Dans cette phase peut aussi figurer ce quon
appelle lentrée des données, qui peut se
manifester par la saisie de caractères ou de
nombres sur le clavier, ou la lecture de la
position du pointeur de la souris, ou encore par
la lecture dun fichier contenant ces nombres ou
caractères.
6
7Les 3 étapes dun algorithme le traitement
- Les 3 étapes dun algorithme
- Les entrées (ou la déclaration et la saisie des
données) - Le traitement
- Les sorties (ou laffichage / limpression des
données transformées) - Le traitement
- Il sagit de déterminer toutes les étapes des
traitements à faire et donc des "instructions" à
donner pour une exécution automatique. - Si ces instructions sexécutent en séquence, on
parle dalgorithme séquentiel. - Si les opérations sexécutent sur plusieurs
processeurs en parallèle, on parle dalgorithme
parallèle. Si les taches sexécutent sur un
réseau de processeurs on parle dalgorithme
réparti ou distribué. - Nous ne traiterons ici que des algorithmes
séquentiels.
7
8Les 3 étapes dun algorithme les sorties
- Les 3 étapes dun algorithme
- Les entrées (ou la déclaration et la saisie des
données) - Le traitement
- Les sorties (ou laffichage / limpression des
données transformées) - Les sorties
- Les résultats obtenus peuvent être affichés sur
lécran, ou imprimés sur papier, ou bien encore
conservés dans un fichier.
9Les 3 étapes dun algorithme un exemple simple
- Les 3 étapes dun algorithme
- Les entrées (ou la déclaration et la saisie des
données) - Le traitement
- Les sorties (ou laffichage / limpression des
données transformées) - Un exemple simple
On se donne deux points A et B du plan. a. Tracer le cercle de centre A passant par B. b. Tracer le cercle de centre B passant par A. c. Nommer C et D les points dintersection de ces cercles. Construire le polygone ADBC. Cet algorithme décrit la construction dun losange dont une diagonale est AB. Les entrées sont les points A et B. Le traitement de la construction est décrit dans les phases a. b. et c. La sortie est le polygone ADBC.
9
10Les 3 briques de base
- Les 3 briques de base pour écrire les
instructions du traitement - Affectation de variables
- Structure alternative (Si Alors . Sinon)
- Structures répétitives ( Boucles Pour et
Tant Que)
10
11Affectation de variables identificateur
- Affectation de variables
- Les données de lalgorithme peuvent être stockées
dans des variables ou mémoires . - Ces données sont représentées par un nom (un
identificateur). - Les identificateurs sont des suites de lettres et
chiffres (sans espaces) qui doivent être choisies
judicieusement pour que lalgorithme soit
immédiatement lisible et interprétable. - Les données peuvent avoir un type
- numériques
- chaines de caractères
- booléen (Vrai ou Faux)
- listes (numériques ou de chaînes de caractères)
11
12Affectations de variables exemples daffectation
- Affectation de variables
- Exemples daffectation dune variable
- A ? 2 La variable nommée A
prend pour valeur 2 quel que soit - sa valeur précédente
- Compteur ? Compteur 1 La variable nommée
Compteur prend pour
valeur la valeur courante de Compteur
1 (Attention ! ce nest pas une équation
!) - C ? 2
- D ? 3
- E ? C D à la fin des 3
instructions E a pour valeur 5.
12
13Affectation de variables exemple permutation
de variables
- Affectation de variables
- Exercice proposer un algorithme qui permute les
contenus de deux variables numériques.
Réponse Temp ? A On utilise une variable
temporaire nommée ici Temp A ? B B ? Temp
13
14Structure alternative
- Structure alternative
- Si condition alors
- traitement 1
- Sinon
- traitement 2
- FinSi
Remarque Lévaluation de la condition est un
booléen (qui a pour valeur Vrai ou
Faux). Exemple Si N gt 10 alors Afficher
Le nombre N est strictement supérieur
à 10 Sinon Afficher Le nombre N
est inférieur ou égal à 10 FinSi
14
15Structures répétitives boucle pour
- Structures répétitives boucle Pour
- Pour I 1 à N Faire
- traitement
- I Suivant
On effectue les instructions nommées
traitement N fois.
Exemple Que fait cet algorithme ? Pour I 1 à
10 Faire Afficher II I Suivant
Réponse Cet algorithme affiche tous les carrés
des entiers naturels compris entre 1 et 10.
15
16Structures répétitives boucle Tant Que
- Structures répétitives boucle Tant que
- Tant que condition Faire
- traitement
- FinTantQue
On effectue les instructions nommées
traitement tant que la condition est vérifiée.
Exemple Que fait cet algorithme ? I ? 1 Tant
que I lt 100 Faire Afficher I I ? I
2 FinTantQue
Réponse Cet algorithme affiche tous les entiers
naturels impairs compris entre 1 et 100.
16
17Structures répétitives boucle répéter
- Structures répétitives boucle Répéter
Jusquà . - Répéter
- traitement
- Jusqu à Condition
On effectue les instructions nommées
traitement jusqu à ce que la condition ne
soit plus vérifiée.
17
18La suite de Syracuse présentation du problème
- La suite de Syracuse
- Présentation du problème
- La suite de Syracuse d'un nombre entier N est
définie par récurrence, de la manière suivante - u0 N
- Pour tout entier n naturel
- si un est pair alors un1 un/2
- si un est impair alors un1 3un 1
- On se propose décrire un algorithme en
pseudo-code qui en entrée lit lentier N,
calcule et affiche les 5 premiers termes de cette
suite.
18
19La suite de Syracuse algorithme
- La suite de Syracuse
- Algorithme suite de Syracuse
Données N entier I indice Traitement Lire N Pour I 1 à 5 Afficher N Si N est pair alors N ? N/2 Sinon N ? 3N1 FinSi FinPour Premier terme de la suite Indice du terme courant de la suite un On demande la saisie de lentier N On effectue une boucle avec 5 itérations. On affiche le terme courant de la suite. On teste la parité du terme courant de la suite. On calcule le terme suivant de la suivant selon le résultat du test de parité.
19
20La suite de Syracuse avec AlgoBox
La suite de Syracuse avec AlgoBox
20
21La suite de Syracuse Programme AlgoBox
La suite de Syracuse avec AlgoBox
Programme AlgoBox 1 VARIABLES2 N
EST_DU_TYPE NOMBRE3 I EST_DU_TYPE
NOMBRE4 DEBUT_ALGORITHME5 LIRE
N6 POUR I ALLANT_DE 1 A 57 DEBUT_P
OUR8 AFFICHER N9 SI (N 2
0) ALORS10 DEBUT_SI11 N
PREND_LA_VALEUR N/212 FIN_SI13
SINON14 DEBUT_SINON15 N
PREND_LA_VALEUR 3N116 FIN_SINON17
FIN_POUR18 FIN_ALGORITHME
21
22La suite de Syracuse tests et conjecture
La suite de Syracuse avec AlgoBox
- Tester lalgorithme avec différentes valeurs de
N. - Modifier lalgorithme pour afficher les 20
premiers termes de la suite. - Quelle conjecture peut-on émettre sur la suite
de Syracuse ?
Réponse Quel que soit le nombre N de départ, la
suite de Syracuse admet un terme qui a pour
valeur 1.
22
23La suite de Syracuse version 2
La suite de Syracuse avec AlgoBox
Modifier lalgorithme précédent pour sarrêter
au premier terme de la suite égal à 1 et coder le
programme AlgoBox correspondant.
Algorithme suite de Syracuse (version 2) Algorithme suite de Syracuse (version 2)
Données N entier I indice Traitement Lire N Tant que N ltgt 1 Faire Afficher N Si N est pair alors N ? N/2 Sinon N ? 3N1 FinSi FinTantQue Premier terme de la suite Indice du terme courant de la suite un On demande la saisie de lentier N On effectue une boucle avec un test darrêt. On affiche le terme courant de la suite. On teste la parité du terme courant de la suite. On calcule le terme suivant de la suivant selon le résultat du test de parité.
23
24La suite de Syracuse programme Algobox Version 2
La suite de Syracuse avec AlgoBox
Suite de Syracuse (version 2) programme AlgoBox
Suite_syracuse_V2 - 23.08.2010 1 VARIABLES 2
N EST_DU_TYPE NOMBRE 3 I EST_DU_TYPE
NOMBRE 4 DEBUT_ALGORITHME 5 LIRE N 6
TANT_QUE (N ! 1) FAIRE 7 DEBUT_TANT_QUE 8
AFFICHER N 9 SI (N 2 0) ALORS 10
DEBUT_SI 11 N PREND_LA_VALEUR N/2 12
FIN_SI 13 SINON 14
DEBUT_SINON 15 N PREND_LA_VALEUR
3N1 16 FIN_SINON 17
FIN_TANT_QUE 18 AFFICHER N 19 FIN_ALGORITHME
24
25La suite de Syracuse le risque !
La suite de Syracuse avec AlgoBox
Quel est le risque encouru par le dernier
algorithme ?
Réponse Si la conjecture de Syracuse est
erronée il peut exister des entiers N tels que
aucun terme de la suite de soit égal à 1. Dans
ce cas la condition N ltgt 1 de la boucle Tant Que
sera toujours vraie et le programme bouclera
indéfiniment !
Information A ce jour, la conjecture de Syracuse
nest pas démontrée.
26La suite de Syracuse prolongements
La suite de Syracuse avec AlgoBox
Prolongements Etude de la longueur et de
laltitude du vol liés à la suite de Syracuse
Longueur du vol Pour un premier terme u0
donné, on appelle longueur du vol de la suite
lentier l tel que ul 1 pour la première fois.
Altitude maximale du vol Pour un premier terme
u0 donné, on appelle altitude maximale du vol le
maximum des termes de la suite .
27La suite de Syracuse prolongements algos
La suite de Syracuse avec AlgoBox
Prolongements Etude de la longueur et de
laltitude du vol liés à la suite de Syracuse
- Proposition dalgorithmes à implémenter avec
AlgoBox - Calculer longueur et altitude pour un vol donné
de la suite. - Afficher graphiquement (sous forme dhistogramme)
les longueurs et altitudes de vol de la suite
pour 1 u0 u_max - (avec u_max 10 ou 100 ou 1000 ou 1000)
- et déterminer le vol de longueur maximale et
daltitude maximale - pour 1 u0 u_max
28La suite de Syracuse prolongements lg vols
La suite de Syracuse avec AlgoBox
Prolongements Longueurs des vols de la suite
pour 1 u0 100
29La suite de Syracuse prolongements altitude
vols
La suite de Syracuse avec AlgoBox
Prolongements Altitude des vols de la suite
pour 1 u0 100
30Exécuter un programme en mode pas à pas
Il est possible dexécuter un programme AlgoBox
en mode pas à pas. Pour chaque ligne
dinstruction est affiché le contenu de chaque
variable.
31Le mode pas à pas est utile pour mettre au point
un programme en cas derreur logique par
exemple. Il est également utile du point de vue
pédagogique pour expliquer le déroulement dun
programme aux élèves.
32Il est possible de représenter des points et des
segments avec AlgoBox à partir de coordonnées. On
utilise pour cela, longlet Dessiner dans un
repère .
33Il est possible dutiliser une fonction numérique
à une variable avec AlgoBox. On utilise pour
cela, longlet Utiliser une fonction
numérique .
On définit la fonction nommée F1. Et on utilise
simplement dans les instructions F1(a) pour
limage de a par la fonction F1 par exemple.
34Portraits Al-Khawarizmi - Pascal
Mathématicien, géographe, astrologue et astronome
musulman perse dont les écrits, rédigés en langue
arabe, ont permis l'introduction de l'algèbre en
Europe. Il est à l'origine des mots
algorithme (qui n'est autre que son nom
latinisé "algoritmi" 3) et algèbre (issu
d'une méthode et du titre d'un de ses ouvrages)
ou encore de l'utilisation des chiffres arabes
Al-Khawarizmi (783 - 850)
Savant, philosophe et écrivain, il est l'inventeur d'une machine arithmétique nommée Pascaline.
Blaise Pascal (1623-1662)
35Portraits Babbage et Lovelace
Fils unique d'un banquier, cet anglais, algébriste de talent, renoncera à une carrière prometteuse de savant pour consacrer sa vie à la construction d'un calculateur mécanique. Il est l'inventeur de la Machine à différences puis de la Machine Analytique.
Charles Babbage (1791-1871)
Fille du poète romantique Lord George Byron et d'une mathématicienne et féministe, épouse de William King (futur comte de Lovelace), elle sera l'élève puis la collaboratrice de C. BABBAGE. Elle est aussi à l'origine du "Principe des machines à calculer". Un langage porte son prénom en mémoire de ses travaux.
Augusta Ada King Lady LOVELACE (1814-1852)
36Portraits Boole et Von NEUMAN
Mathématicien anglais, il publie en 1854 les Lois de la pensée. Dans ce livre, il décrit comment toute la logique peut être définie par un principe simple le binaire.
George BOOLE (1815-1864)
(Prononcer noy-man).Il a été l'un des personnages clés des débuts de l'informatique. Il publia de nombreux articles sur l'algèbre et la mécanique quantique avant de se consacrer à la construction d'ordinateurs et à la modélisation mathématique de la réaction en chaîne de la bombe A. Ses "machines IAS" sont à l'origine de "l'Architecture Von NEUMANN", c'est à dire celle des ordinateurs tels que nous les connaissons.
John Von NEUMANN (1903-1957)
36
37Portraits Hopper et Turing
Cette américaine, mobilisée comme auxiliaire dans la marine américaine fut affectée aux travaux de programmation et d'exploitation de l'ENIAC. Puis, devenue une grande spécialise de la programmation des ordinateurs, elle sera l'une des principales créatrices du COBOL.
Grace Murray HOPPER (1906 - 1992)
Mathématicien anglais, maître-assistant à Cambridge dès 23 ans. Il a conçu en 1936 une machine logique capable de résoudre tous les problèmes que l'on peut formuler en termes d'algorithmes. Pendant la guerre, il participera à la réalisation de la Bombe, première machine électromécanique de décryptage des messages codés avec l'Enigma Allemande.
Alan TURING (1912 - 1954)
37
38Portraits Ritchie et Cerf
Cet ingénieur des laboratoires Bell, est l'auteur du langage C. En 1973, avec K. THOMPSON, il réécrira dans ce nouveau langage le système d'exploitation UNIX.
Dennis RITCHIE (1941)
C'est l'un des pères de l'Internet. Encore étudiant de l'université de Los Angeles, il fut l'un des auteurs du protocole TCP/IP et développa avec une équipe de chercheurs les premiers outils utilisant ce mode de communication. Il est aujourd'hui président de l'Internet Society qui surveille les nouveaux standards d'Internet.
Vinton G. CERF (1943 - )
38
39Portraits Stroustrup et Gosling
Créateur du langage C basé sur le langage C
mais en lui donnant une dimension de Langage
Orienté Objet.
Bjarne STROUSTRUP (1950 - )
Créateur du langage Java basé sur le langage
C. La particularité principale de Java est que
les logiciels écrits dans ce langage sont très
facilement portables sur plusieurs systèmes
dexploitation.
James Gosling (1955 - )
39
40Portraits Gates et Jobs
Ancien président (et fondateur avec P. ALLEN) de Microsoft. Cette société est à l'origine du MS-DOS, de Windows, du Basic-Microsoft puis de Visual Basic.
Bill GATES (1951 - )
S. WOZNIAK (à gauche) et S. JOBS (à droite).Fondateurs de la société Apple. Après son éviction d'Apple S. JOBS créera la société Next avant d'être rappelé pour redresser Apple.
Steve JOBS (1955 - 2011)
40
41Portraits Stallman et Torvalds
Fondateur du projet GNU, lancé en 1984 pour développer le système d'exploitation libre GNU et donner ainsi aux utilisateurs des ordinateurs la liberté de coopérer et de contrôler les logiciels qu'ils utilisent. Il est également le créateur (entre autres) de l'éditeur Emacs et du compilateur gcc.
Richard STALLMAN (1953 - )
Travaillant maintenant aux Etats-Unis mais Finlandais d'origine, il a construit en 1991 un nouveau système d'exploitation de type UNIX appelé Linux. Ayant choisi de le diffuser suivant le principe des logiciels libres, Linus TORVALDS ne retire aucune royaltie de son travail sur le noyau Linux. Cela n'empêche pas sa popularité de croitre de jours en jours.
Linus TORVALDS (1969 -)
41
42Portraits Page, Brin et Zuckerberg
Créateurs du moteur de recherche Google. Ces deux
jeunes brillants nord-américains ont lancé leur
moteur de recherche en 1999. Ce mot vient du
terme "googol" qui désigne un chiffre, un 1 suivi
de 100 zéros, traduisant l'exhaustivité du moteur
de recherche.
Larry Page (1973 - )
Sergey Brin (1973 - )
Créateur de Facebook C'est en 2004 que la
première version de Facebook voit le jour pour
mettre en relation les étudiants de Harvard.
Mark Zuckerberg (1984 - )
42
43Langages info machine-assembleur
Les différents langages informatiques
- Définition
- Un langage informatique est destiné à décrire
l'ensemble des actions consécutives qu'un
ordinateur doit exécuter.
- Langage machine
- langage utilisé par le processeur (code binaire,
suite de 0 et de 1) peu compréhensible par un
humain
- Langage assembleur
- langage intermédiaire , proche du langage
machine, mais plus lisible par un humain.
(dépendant du processeur, donc non portable)
43
44Langages info interprétés/compilés 1
Les différents langages informatiques
- Langages plus évolués
- plus facilement compréhensible que le langage
machine. - portabilité peut être implémenté facilement
sur différentes machines
- Langages interprétés / langages compilés
définition - Un programme écrit dans un langage interprété a
besoin d'un programme auxiliaire (l'interpréteur)
pour traduire au fur et à mesure les instructions
du programme. - Un programme écrit dans un langage dit "compilé"
va être traduit une fois pour toutes par un
programme annexe (le compilateur) afin de générer
un nouveau fichier qui sera autonome,
c'est-à-dire qui n'aura plus besoin d'un
programme autre que lui pour s'exécuter (on dit
d'ailleurs que ce fichier est exécutable).
44
45Langages info interprétés/compilés 2
Les différents langages informatiques
- Langages interprétés / langages compilés
comparaison - Un programme écrit dans un langage compilé a
comme avantage de ne plus avoir besoin, une fois
compilé, de programme annexe pour s'exécuter. - De plus, la traduction étant faite une fois pour
toute, il est plus rapide à l'exécution. - Toutefois il est moins souple qu'un programme
écrit avec un langage interprété car à chaque
modification du fichier source (fichier
intelligible par l'homme celui qui va être
compilé) il faudra recompiler le programme pour
que les modifications prennent effet.
45
46Langages info exemples 1
Les différents langages informatiques
Quelques exemples de langages couramment utilisés
Langage Domaine d'application principal Compilé/interprété
ADA Le temps réél langage compilé
BASIC Comme son nom l'indique... langage interprété
C Programmation système langage compilé
C Programmation système objet langage compilé
Cobol Gestion langage compilé
Fortran Calcul scientifique langage compilé
Java Programmation orientée internet langage intermédiaire
MATLAB Calcul mathématique langage interprété
Mathematica Calcul mathématique langage interprété
LISP Intelligence artificielle langage intermédiaire
46
47Langages info exemples 2
Les différents langages informatiques
Quelques exemples de langages couramment utilisés
Langage Domaine d'application principal Compilé/interprété
Pascal Enseignement langage compilé
Prolog Intelligence artificielle langage interprété
Perl Traitement de chaînes de caractères langage interprété
Python Enseignement Domaine scientifique Langage de script langage compilé à la volée
47
48Modes de présentation des activités
Différents modes de présentation des activités
algorithmiques
- Guidé Algorithme à compléter.
- A interpréter Que fait un algorithme donné ?
- Plus libre Algorithme à concevoir par les
élèves à partir dune description. - A la main Faire tourner manuellement
un algorithme donné. - Evolutif Faire évoluer un algorithme donné
pour le généraliser ou laméliorer.
49Travail demandé aux élèves
Le type de travail demandé aux élèves
- Ponctuel Un exercice court sur un seul
algorithme. - Un défi sous forme ludique.
- Dossier à constituer Série dalgorithmes et de
programmes à restituer sur une période donnée
concernant un thème particulier (géométrie
plane en seconde par ex.) - Exemple Sur 7 semaines pendant
laccompagnement personnalisé entre deux
périodes de vacances scolaires. - Exposé Sur un thème donné (Ex jeux de
hasard) - Avec présentation multimédia
- Partie algorithmique historique
mathématiques.
50Contenu des activités à proposer
Conseils sur les activités à proposer
- Avoir des objectifs peu ambitieux au départ.
- Privilégier les algorithmes qui présentent un
intérêt certain. - Avec lexpérience, présenter des activités qui
mélangent plusieurs outils logiciels - Par exemple, GeoGebra AlgoBox ou AlgoBox
XCas. - Toujours inclure si possible la partie
mathématique pure dans lactivité proposée et
faire percevoir lutilisation dun logiciel comme
un simple outil - de conjecture ou bien de confirmation dun
résultat théorique. - Les activités de simulation liées à la loi des
grands nombres sont à mon avis les plus
spectaculaires . - (mise en correspondance dune loi de probabilité
avec une simulation).
51Activités Seconde
Des activités pour la classe de Seconde
Extrema dune fonction avec la calculatrice
Sujets dexposé lié aux calculs de probabilités
(AlgoBox)
Simulation de l'intervalle de fluctuation au
seuil de 95 (AlgoBox)
Parallélogramme et vecteurs (AlgoBox)
Milieu d'un segment, parallélogramme, distance
entre deux points, nature d'un triangle (XCas et
AlgoBox)
52Activités Première-Terminale
Des prolongements pour les classes de Première et
de Terminale
- Algorithme pour déterminer les solutions d'une
équation du second degré (AlgoBox, Calculatrice,
Xcas)
- Divers algorithmes concernant des problèmes
d'arithmétique Programmes Visual Basic
diviseurs d'un entier, nombre premiers (crible
Eratosthène), nombres parfaits, répartition des
nombres premiers, nombres de Carmichael
53Logiciel XCas 1
53
54Logiciel Xcas 2
- Présentation le couteau suisse des
mathématiques - calcul formel arithmétique, intégration,
dérivation, limites, ... - graphes de fonction, paramétrique, dans le plan
et l'espace - tableur et statistiques calcul approché et
exact - géométrie interactive dans le plan et l'espace
- programmation
- tortue logo
- unité physiques opérations usuelles et
conversion
Exemple Déterminer si un triangle donné est
isocèle en fonction de la donnée des coordonnées
de ses 3 sommets.
55Logiciel XCas points négatifs/positifs
- Points positifs
- Possibilité dutiliser la richesse des
fonctions de géométrie et de calcul formel de ce
logiciel multi-usage. - La syntaxe est en français.
- Points négatifs
- Editeur libre ? source derreurs de syntaxe
nombreuses, difficiles à gérer avec un groupe
délève en simultanée. - Interface du logiciel un peu fouillie et qui
date !
56Logiciel Scratch
57Logiciel Scratch
Présentation Scratch est un logiciel de
programmation destiné à apprendre la
programmation aux enfants à partir de 7 ans. On
peut créer facilement animations, jeux, musiques,
en y ajoutant de linteractivité. Le principe
repose comme les montages Légo avec des briques
que lon monte et que lon démonte.
Exemple Tracé dun carré
58Logiciel Scratch points négatifs/positifs
- Points positifs
- Approche ludique de la programmation
- Pas de problème de syntaxe à mémoriser
- Animation graphique et intégration de sons
possibles - Manipulation par blocs proche de la démarche
algorithmique - La syntaxe est en français.
- Points négatifs
- Manipulation des blocs pas toujours aisée
- L approche ludique peut masquer le sérieux
dun algorithme.
59Environnement Excel / Visual Basic
60Environnement Excel / Visual Basic
Présentation Le tableur Excel de Microsoft
Office possède un environnement de développement
avec un langage de programmation appelé Visual
Basic ( for Applications (VBA)). Les
macros-commandes sont enregistrées
automatiquement dans ce langage
Exemple Simulation de n lancers de 2 dés.
Etude des fréquences observées de
la somme des deux dés.
61Environnement Excel / Visual Basic points
négatifs/positifs
- Points positifs
- Possibilités très riches de mêler les
fonctionnalités de calcul et graphiques du
tableur avec de la programmation. - Possibilité dobtenir à partir dune macro une
portion dun code du programme.
- Points négatifs
- Syntaxe en Anglais
- Phase dapprentissage du langage plus longue
quavec dautres approches.
62Logiciel Javas Cool
63Logiciel Javas Cool
Présentation Java's Cool est un environnement
de programmation destiné à l'apprentissage du
java. Le logiciel dispose d'un macro langage
masquant la complexité de java.
Exemple Ecriture dune fonction calculant la
division de deux entiers.
64Logiciel Javas Cool points négatifs/positifs
- Points positifs
- Apprentissage dun langage très utilisé dans
le domaine du développement informatique. - Puissance du langage
- Modules dapprentissage préparés ( Proglets )
- Points négatifs
- La complexité du langage JAVA est toujours
sous-jacente. - (Fort typage des données, notion dobjet
difficilement contournable) - Syntaxe en anglais.
- Ecriture des programmes dans un éditeur libre ?
de nombreuses sources derreur possibles - Nécessité de compiler le source du programme
- (messages du compilateur souvent difficiles à
comprendre).
65Logiciels préconisés
Concernant les logiciels à utiliser
- Pour la classe de seconde, les logiciels que je
préconise sont - AlgoBox notamment pour linitiation
- Xcas pour des applications sur la géométrie
plane - Eventuellement Excel/VBA pour des applications
sur les probabilités
Concernant les briques de base à enseigner
Il me semble réaliste au niveau de la classe de
seconde de se limiter aux 3 premières briques
(Affectation de variables, Structure
conditionnelle et boucles) Les autres
briques (Fonctions procédures et
paramètres) pourront être abordées en classe de
Première et Terminale.
66Notion de fonction
Notion de fonction
- Une fonction est un petit programme qui en
général renvoie une valeur. - Elles permettent un découpage de lalgorithme qui
rend sa compréhension et son développement plus
facile. - Une fonction a une liste de paramètres en entrée
et une valeur en retour. - Une fonction qui ne retourne rien est appelée une
procédure.
67Notion de fonction somme de deux entiers
Notion de fonction
- Exemple fonction qui calcule la somme de deux
nombres.
- Résultat somme(ab)
- retourner (a b)
- Exemple dappel de cette fonction
- resultat somme(1216)
68Notion de fonction PGCD de deux entiers
Notion de fonction
- Exercice écrire en pseudo-code une fonction qui
retourne le PGCD de deux entiers naturels et
limplémenter avec Visual Basic.
69Notion de fonction PGCD de deux entiers
(pseudo-code)
Notion de fonction
Resultat PGCD( entier a, entier b)
debut Si b lt a alors temp ? b b ? a a ?
b Finsi r ? mod(ab) tant que r ltgt 0 a ?
b si r ltgt 0 alors b ? r FinSi r ?
mod(ab) Fin TantQue retourner b fin
70Notion de fonction PGCD (pgm VBA)
Notion de fonction
Public Function pgcd(a, b) As Integer If a
lt b Then temp b b a a
b End If r a Mod b While r ltgt 0
a b If r ltgt 0 Then b
r r a Mod b End If
Wend pgcd b End Function
Sub test_pgcd() a InputBox("Valeur de a")
b InputBox("Valeur de b") a CInt(a)
b CInt(b) c pgcd(a, b) Cells(1, 1)
c End Sub
71Récursivité
Notion de récursivité
- Une fonction qui fait appel à elle-même dans
son corps est dites récursive - De nombreux problèmes ont des solutions
récursives naturelles - Les langages de programmation moderne permettent
lutilisation de la récursivité.
72Récursivité exemples
Notion de récursivité
- Exemples
- Calcul de la factorielle dun entier 0! 1 et
pour n1 n! n.(n-1)! - Calcul des nombres de Fibonacci F0 0, F1 1
et - pour n 2 Fn Fn-1 Fn-2
- Calcul du coefficient binomial C(k,n) C(0,n)
C(n,n) 1 et pour 1kltn, C(k,n) C(k-1,n-1)
C(k-1,n) - Résolution du problème des tours de Hanoi
73Récursivité factorielle (algo itératif)
Notion de récursivité
- Exemple calcul de la factorielle dun entier
-
- Algorithme itératif
- entier factorielle_iteratif(entier n)
- Début
- res ? 1
- Pour i 1 à n
- res res i
- i Suivant
- retourner res
- Fin
74Récursivité factorielle (algo récursif)
Notion de récursivité
Exemple calcul de la factorielle dun entier
2. Algorithme récursif entier factorielle
(entier n) Début Si n 0 alors retourner
1 Si n 1 alors retourner 1 retourner n
factorielle(n 1) Fin
75Récursivité tours de Hanoï
Notion de récursivité
- Exemple tours de Hanoï
-
- Le problème des tours de Hanoï est un jeu de
réflexion imaginé par le mathématicien français
Édouard Lucas, et consistant à déplacer des
disques de diamètres différents d'une tour de
départ à une tour d' arrivée en passant
par une tour intermédiaire et ceci en un
minimum de coups, tout en respectant les règles
suivantes - on ne peut déplacer plus d'un disque à la fois,
- on ne peut placer un disque que sur un autre
disque plus grand que lui ou sur un emplacement
vide. - On suppose que cette dernière règle est également
respectée dans la configuration de départ.
76Récursivité tours de Hanoï animation
Notion de récursivité
Exemple tours de Hanoï
Étapes de la résolution du problème avec 4
disques.
77Récursivité tours de Hanoï principe de
résolution
Notion de récursivité
Exemple tours de Hanoï Principe de la
résolution Pour déplacer une tour de N disques
de a vers b, on déplace la tour des N-1 premiers
disques de a vers c, puis le disque N de a vers
b, puis la tour des N-1 disques de c vers b.
78Récursivité tours de Hanoï algorithme
Notion de récursivité
Exemple tours de Hanoï Ce qui conduit
naturellement à lalgorithme récursif suivant
nombre nombre de disques utilisés de
emplacement de départ à emplacement de
destination par emplacement intermédiaire
Déplacer (nombre, de, à, par) Si nombre gt 0
alors Déplacer (nombre - 1, de, par, à)
Bouger-un-disque (de, à) Déplacer (nombre -
1, par, à, de) Fin-si
79Récursivité tours de Hanoï complexité
exponentielle
Notion de récursivité
Exemple tours de Hanoï On peut montrer
facilement par récurrence que pour une tour de n
disques, le nombre de déplacements est de 2n
1. Ainsi, un jeu à 64 disques requiert un
minimum de 264- 1 déplacements. En admettant
qu'il faille 1 seconde pour déplacer un disque,
ce qui fait 86 400 déplacements par jour, la fin
du jeu aurait lieu au bout d'environ 213 000
milliards de jours, ce qui équivaut à peu près à
584,5 milliards d'années, soit 43 fois l'âge
estimé de l'univers (13,7 milliards d'années) !
On dit que cet algorithme a une complexité
exponentielle.
80Récursivité tours de Hanoï complexité
exponentielle
Notion de récursivité
Exercice Ecrire une version récursive du
calcul du PGCD de deux entiers naturels.
Resultat PGCD(ab) Si b 0 alors retourner
a Sinon r ? mod(ab) PGCD(br) FinSi
81Pourquoi mathématiques et algorithmique sont-ils
si intimement liés ?
Pourquoi mathématiques et algorithmique sont-ils
si intimement liés ?
Notion mathématique Notion similaire en algorithmique/programmation
Organisation dune démonstration en géométrie (surtout) en chaînons déductifs successifs Programmation en modules
Raisonnement par disjonction des cas Structures conditionnelles (Si alors . ) ou bien Switch case
Fonction Notion reprise quasiment à lidentique
Raisonnement par récurrence Récursivité
82BO outils logiciels
83BO objectifs pour le lycée
84BO seconde activités
Classe de Seconde
85BO seconde Fonctions et expressions
algébriques
Classe de Seconde points du programme liés à
lalgorithmique
- Fonctions Même si les logiciels traceurs de
courbes permettent dobtenir rapidement la
représentation graphique dune - fonction définie par une formule algébrique, il
est - intéressant, notamment pour les fonctions
définies par - morceaux, de faire écrire aux élèves un
algorithme - de tracé de courbe.
- Expressions Les élèves apprennent à développer
des stratégies - algébriques sappuyant sur lobservation de
courbes, lanticipation - et lintelligence du calcul. Le cas échéant,
cela - saccompagne dune mobilisation éclairée et
pertinente des logiciels de calcul formel.
86BOseconde Equations, géométrie
Classe de Seconde points du programme liés à
lalgorithmique
- Equations Encadrer une racine dune équation
grâce à un - algorithme de dichotomie.
- Pour un même problème, combiner résolution
graphique et contrôle algébrique. Utiliser, en
particulier, les représentations graphiques
données sur écran par une calculatrice, un
logiciel. - Configurations Le cadre de la géométrie repérée
offre la possibilité de du plan traduire
numériquement des propriétés géométriques et
permet de résoudre certains problèmes par la mise
en œuvre dalgorithmes simples. - Géométrie On entraîne les élèves à
lutilisation autonome dun logiciel de
géométrie dans lespace.
87BOPremiere_SSecond_deg, Dérivation, Suites
Classe de Première S points du programme liés à
lalgorithmique
- Second degré Proposer des activités
algorithmiques. - Dérivation Si nécessaire dans le cadre de la
résolution de problèmes, le calcul de la
dérivée dune fonction est - facilité par lutilisation dun logiciel de
calcul formel. - Lutilisation des outils logiciels facilite
lintroduction du - nombre dérivé.
- Suites Mettre en œuvre des algorithmes
permettant dobtenir - une liste de termes dune suite et de calculer
un terme de - rang donné.
- Lutilisation du tableur et la mise en œuvre
dalgorithmes - sont loccasion détudier des suites définies
par une - relation de récurrence.
88BOPremière_Ssuites, Statistiques
Classe de Première S points du programme liés à
lalgorithmique
Suites Sens de variation On peut utiliser
un algorithme ou un tableur pour traiter des
problèmes de comparaison dévolution et de
seuil. Approche de la notion de limite Le
tableur et les logiciels de géométrie dynamique
et de calcul sont des outils adaptés à létude
des suites, en particulier pour lapproche
expérimentale de la notion de limite. Statistiq
ues On utilise la calculatrice ou un logiciel
pour déterminer la variance et lécart-type
dune série statistique. Des travaux réalisés à
laide dun logiciel permettant de faire
observer des exemples deffets de structure lors
de calcul de moyennes.
89BOPremièreSProba,Echantillon
Classe de Première S points du programme liés à
lalgorithmique
Probabilités On exploite les fonctionnalités
de la calculatrice ou dun logiciel pour
déterminer lespérance, la variance dune série
de données. On peut simuler la loi
géométrique tronquée avec un algorithme.
On peut simuler la loi binomiale avec un
algorithme. Echantillonnage Lintervalle de
fluctuation peut être déterminé à laide
dun tableur ou dun algorithme.
90BOPremières_ES_Lsecond_deg,fonctions,suites
Classe de Premières ES et L points du programme
liés à lalgorithmique
- Second degré Proposer des activités
algorithmiques. - Etude de fonctions Lutilisation des outils
logiciels facilite lintroduction du nombre
dérivé. - Si nécessaire dans le cadre de la résolution
de problèmes, le calcul de la dérivée dune
fonction - est facilité par lutilisation dun logiciel
de calcul - formel.
- Suites Mettre en œuvre des algorithmes
permettant dobtenir une liste de termes
dune suite et de calculer un terme de rang
donné. - Lutilisation du tableur et la mise en œuvre
dalgorithmes sont loccasion détudier des
suites définies par une relation de récurrence.
91BOPremières_ES_LSuites,Stats
Classe de Premières ES et L points du programme
liés à lalgorithmique
Suites Sens de variation On peut utiliser
un algorithme ou un tableur pour traiter des
problèmes de comparaison dévolution, de seuil et
de taux moyen. Statistiques On utilise la
calculatrice ou un logiciel pour déterminer la
variance et lécart-type dune série
statistique. Des travaux réalisés à laide dun
logiciel permettant de faire observer des
exemples deffets de structure lors de calcul
de moyennes.
92BOPremières_ES_LProba,Ecchantillonnage
Classe de Première S points du programme liés à
lalgorithmique
Probabilités À laide de simulations et
dune approche heuristique de la loi des
grands nombres, on fait le lien avec la
moyenne dune série de données. On
exploite les fonctionnalités de la calculatrice
ou dun logiciel pour déterminer lespérance
dune variable aléatoire. Coefficients
binomiaux En pratique, on utilise une
calculatrice ou un logiciel pour obtenir les
valeurs des coefficients binomiaux, calculer
directement des probabilités et représenter
graphiquement la loi binomiale. On peut
simuler la loi binomiale avec un algorithme.
Echantillonnage Lintervalle de
fluctuation peut être déterminé à laide dun
tableur ou dun algorithme.
93BOTSSuites,Continuité
Classe de Terminale S (projet) points du
programme liés à lalgorithmique
Suites Dans le cas dune limite infinie,
étant donnés une suite croissante (un) et un
nombre réel A, déterminer à laide dun
algorithme un rang à partir duquel un est
supérieur à A. Continuité sur Des
activités algorithmiques sont réalisées dans le
cadre un intervalle, de la recherche de
solutions de léquation f (x) k . théorème
des valeurs intermédiaires
94BOTSIntégration,Espace,Proba
Classe de Terminale S (projet) points du
programme liés à lalgorithmique
Intégration Pour une fonction monotone
positive, mettre en œuvre un algorithme pour
déterminer un encadrement dune intégrale.
Géométrie On étudie quelques exemples de
sections planes du dans lespace cube. Ce
travail est facilité par lutilisation dun
logiciel de géométrie dynamique. Probabilités
Conditionnement, indépendance Des activités
algorithmiques sont menées dans ce cadre,
notamment pour simuler une marche
aléatoire. Loi uniforme sur a,
b. Linstruction nombre aléatoire dun
logiciel ou dune calculatrice permet
dintroduire la loi uniforme sur 0,1.
95BOTSIntégration, Proba
Classe de Terminale S (projet) points du
programme liés à lalgorithmique
Probabilités Loi uniforme sur a,
b. Linstruction nombre aléatoire dun
logiciel ou dune calculatrice permet
dintroduire la loi uniforme sur
0,1. Approfondissement Méthode de
Monte-Carlo.
96BOTS Suites, Loi normale
Classe de Terminales ES-L (projet) points du
programme liés à lalgorithmique
Suites Limite de la suite (qn), q étant un
nombre réel strictement positif. Étant
donné une suite (qn) avec 0 lt q lt 1, mettre en
œuvre un algorithme permettant de déterminer un
seuil à partir duquel qn est inférieur à un
réel a positif donné. Loi normale Utiliser
une calculatrice ou un tableur pour obtenir une N
N (µ, s) probabilité dans le cadre dune loi
normale N (µ, s).
97Objectifs pour les lycéens
Objectifs visés pour des lycéens
- Les objectifs formateurs de lalgorithmique
- familiariser les élèves avec les grands principes
dorganisation dun algorithme - gestion des entrées-sorties,
- affectation dune valeur et mise en forme dun
calcul, en opérant essentiellement sur des
nombres entiers.
- Les objectifs opérationnels de
lalgorithmique - décrire certains
algorithmes en langage naturel ou dans un langage
symbolique - en implémenter quelques uns à
laide dun tableur ou dun petit programme
réalisé sur une calculatrice ou avec un logiciel
adapté - interpréter des algorithmes plus
complexes.