D - PowerPoint PPT Presentation

About This Presentation
Title:

D

Description:

Title: Enseigner l'algorithmique en lyc e Author: Hugues MALHERBE Keywords: Algorithmique - informatique lyc e Last modified by: Portable HM Created Date – PowerPoint PPT presentation

Number of Views:96
Avg rating:3.0/5.0
Slides: 98
Provided by: HuguesM
Category:
Tags: donald | knuth

less

Transcript and Presenter's Notes

Title: D


1
Déroulement
  • Les algorithmes dans lhistoire
  • Des définitions dun algorithme
  • Algorithme et langages de programmation
  • Les structures de bases de lalgorithmique
  • Un premier algorithme
  • Les premiers pas avec AlgoBox

1
2
Déroulement
  • Une galerie de  portraits 
  • 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
  • Un bilan des 2 journées

2
3
Historique
  • 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.

4
Dé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.

5
Algorithme 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.

6
Les 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
7
Les 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
8
Les 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.

9
Les 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
10
Les 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
11
Affectation 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
12
Affectations 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
13
Affectation 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
14
Structure 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
15
Structures 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
16
Structures 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
17
Structures 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
18
La 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
19
La 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
20
La suite de Syracuse avec AlgoBox
La suite de Syracuse avec AlgoBox
20
21
La 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
22
La 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
23
La 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
24
La 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
25
La 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.
26
La 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 .

27
La 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


28
La suite de Syracuse prolongements lg vols
La suite de Syracuse avec AlgoBox
Prolongements Longueurs des vols de la suite
pour 1 u0 100

29
La suite de Syracuse prolongements altitude
vols
La suite de Syracuse avec AlgoBox
Prolongements Altitude des vols de la suite
pour 1 u0 100

30
Exé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.

31
Le 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.

32
Il 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 .

33
Il 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.
34
Portraits 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)
35
Portraits 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)
36
Portraits 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
37
Portraits 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
38
Portraits 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
39
Portraits 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
40
Portraits 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
41
Portraits 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
42
Portraits 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
43
Langages 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
44
Langages 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
45
Langages 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
46
Langages 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
47
Langages 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
48
Modes 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.

49
Travail 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.

50
Contenu 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).

51
Activité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)
52
Activité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

53
Logiciel XCas 1
53
54
Logiciel 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.
55
Logiciel 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  !

56
Logiciel Scratch
57
Logiciel 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é
58
Logiciel 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.

59
Environnement Excel / Visual Basic
60
Environnement 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.
61
Environnement 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.

62
Logiciel Javas Cool
63
Logiciel 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.
64
Logiciel 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).

65
Logiciels 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.
66
Notion 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.

67
Notion 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)

68
Notion 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.

69
Notion 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
70
Notion 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
71
Ré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é.

72
Ré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

73
Ré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

74
Ré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
75
Ré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.

76
Récursivité tours de Hanoï animation
Notion de récursivité
Exemple tours de Hanoï
Étapes de la résolution du problème avec 4
disques.
77
Ré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.
78
Ré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
79
Ré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.
80
Ré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
81
Pourquoi 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é

82
BO outils logiciels
83
BO objectifs pour le lycée
84
BO seconde activités
Classe de Seconde
85
BO 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.

86
BOseconde 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.

87
BOPremiere_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.

88
BOPremiè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.
89
BOPremiè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.
90
BOPremiè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.

91
BOPremiè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.
92
BOPremiè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.
93
BOTSSuites,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
94
BOTSInté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.
95
BOTSInté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.
96
BOTS 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).
97
Objectifs 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.
Write a Comment
User Comments (0)
About PowerShow.com