Introduction à la programmation

Transcription

Introduction à la programmation
Introduction à la programmation
Séance 1 passer d'une idée à un programme informatique
Séance 2 exemples de programmes, programmes complexes
Séance 3 coût d'un algorithme, jeu du pendu
Séance 4 trois algorithmes classiques
Xavier Dupré
http://www.xavierdupre.fr
[email protected]
Séance 1 : de l'idée au programme
programe
Plan :
1. un cas concret : former des couples ayant des goûts commun
1.1 comment fait-on ?
1.2 que comprend une machine ?
1.3 le faire faire par une machine
2. autre utilisation des informations collectées
2.1 statistique : combien d'élèves ont...
2.2 lien entre voie maths/éco et ...
3. à quoi sert l'informatique, où est-il utilisé ?
4. récapitulatif
1. cas concret : comment fait-on ?
idée : former des couples de personnes semblables
moyen : regrouper les personnes ayant des réponses similaires
questions : écrire les réponses sur une feuille de papier suivi d'un pseudonyme
1. plus de 10 livres lus par an
2. plus de 10 films au cinéma
3. un ordinateur à la maison
4. aime les jeux vidéo
5. aime la science fiction
6. fille ou garçon
7. pensez-vous vous ennuyer jusqu'à la fin du cours
8. êtes-vous marié
9. voie éco / voie maths
On échange ?
1. cas concret : comment fait-on ?
qu'a-t-on fait :
1. on a formé des couples d'élèves ayant des goûts semblables
2. on a formé des couples d'élèves ayant un grand nombres de réponses communes
3. on cherche pour chaque élève un autre élève
ayant le plus grand nombre de réponses communes
découpage en éléments simples :
1. représentation d'une réponse : 0 ou 1
2. représentation de 9 réponses : 9 nombres 0 ou 1 successifs
3. calcul du nombre de réponses communes :
somme des différences → c'est une distance
4. recherche de l'autre élève le plus proche : quel est l'élève qui minimise la distance
1. cas concret : comment fait-on ?
cas concret : 3 élèves
1. Simplet :
2. Blanche Neige :
3. La sorcière :
[0,0,0,1,1,1,0,0,0]
[0,0,1,0,1,1,0,0,1]
[1,1,1,1,1,1,1,1,1]
matrice des distances
Simplet Blanche Neige La sorcière
Simplet
0
3
6
Blanche Neige
3
0
5
La sorcière
6
5
0
conclusion : tout le monde aime Blanche Neige !
Si A est le plus proche voisin de B, B est-il le plus proche voisin de A ?
1. cas concret : ce que comprend la machine
cas concret : N élèves
personne 1 :
personne i :
personne N:
[0,0,0,1,1,1,0,0,0]
...
[1,1,1,1,1,1,1,1,1]
matrice des distances
pour une personne i, la personne la plus proche est :
- dont la distance à i est la plus petite
- la personne j telle que la case (i,j) contient la plus petite
valeur de la ligne i et vérifiant j différent de i
comment fait-on pour trouver le minimum ?
peut-on décomposer en actions simples telles que :
- faire des additions
- comparer deux valeurs
- répéter la même opération n fois
1. cas concret : ce que comprend la machine
deux étapes :
1. calculer la matrice des distances pour Blanche Neige – Simplet – La sorcière
2. trouver le plus proche voisin de Blanche Neige
Simplet Blanche Neige La sorcière
Simplet
0
3
6
Blanche Neige
3
0
5
La sorcière
6
5
0
1. Simplet :
2. Blanche Neige :
3. La sorcière :
[0,0,0,1,1,1,0,0,0]
[0,0,1,0,1,1,0,0,1]
[1,1,1,1,1,1,1,1,1]
distance entre Simplet et Blanche Neige
somme12 = 0
pour toutes les réponses
si réponse Simplet ≠ réponse Blanche Neige
somme12 = somme12 + 1
distance entre Simplet et La sorcière
...
somme13 = 0
pour toutes les réponses
si réponse Simplet ≠ réponse Sorcière
somme13 = somme13 + 1
1. cas concret : calcul des distances
distance entre Simplet et Blanche Neige
somme12 = 0
pour toutes les réponses
si réponse Simplet ≠ réponse Blanche Neige
somme12 = somme12 + 1
distance entre Simplet et La sorcière
somme13 = 0
pour toutes les réponses
si réponse Simplet ≠ réponse Sorcière
somme13 = somme13 + 1
distance entre Blanche Neige et La sorcière
somme23 = 0
pour toutes les réponses
si réponse Blanche Neige ≠ réponse Sorcière
somme23 = somme23 + 1
Simplet Blanche Neige La sorcière
Simplet
0
Somme12
somme13
Blanche Neige Somme12
0
Somme23
La sorcière
Somme13
Somme23
0
1. cas concret : le plus proche voisin
seconde étape : trouver le plus proche voisin de Blanche Neige
Simplet Blanche Neige La sorcière
Simplet
0
Somme12
somme13
Blanche Neige Somme12
0
Somme23
La sorcière
Somme13
Somme23
0
si somme12 < somme23 alors
c'est Simplet
sinon
c'est la sorcière
1. cas concret : pour 3, c'est facile, pour N ?
Avec 3 individus, le nombre d'opérations est humainement envisageable.
Avec N individus, comment fait-on ?
individu j le plus proche de i
matrice des distances
individu i
réponse en TD
Séance
2.
autre utilisation
1 : de l'idée
des
auinformations
programe
De quoi dispose-t-on ?
- pour chaque individu
- un pseudonyme
- 9 réponses binaires à 9 questions
1. plus de 10 livres lus par an
2. plus de 10 films au cinéma
3. un ordinateur à la maison
4. aime les jeux vidéo
5. aime la science fiction
6. fille ou garçon
7. pensez-vous vous ennuyer jusqu'à la fin du cours
8. êtes-vous marié
9. voie éco / voie maths
Que peut-on en faire ?
Séance
2.
autre utilisation
1 : de l'idée
des
auinformations
programe
Que peut-on en faire ?
Simple :
- calculer la proportion de voie éco, voie maths
- calculer la proportion de ceux qui lisent
Moins simple :
- comparer la proportion des filles qui lisent
et des garçons qui lisent
Encore moins simple
- former des groupes d'élèves ayant des réponses communes
Compliqué ?
- deviner qui se cache derrière les pseudonymes
en posant des questions (exemple demain)...
Séance
2.
calculer
1 : la
deproportion
l'idée au programe
de ...
les données
pseudo A voie éco
pseudo B voie maths
pseudo C voie maths
pseudo D voie éco
pseudo E voie éco
calcul de la proportion de voie éco
prop = 0
si pseudo A a fait voie éco alors prop += 1/5
si pseudo B a fait voie éco alors prop += 1/5
si pseudo C a fait voie éco alors prop += 1/5
si pseudo D a fait voie éco alors prop += 1/5
si pseudo E a fait voie éco alors prop += 1/5
vrai
vrai
vrai
résultat :
prop = 3/5
pour N pseudo
prop = 0
pour tous les pseudo i allant de 1 à N :
si pseudo i a fait voie éco alors prop += 1/N
Séance
3.
à quoi1sert
: del'informatique
l'idée au programe
L'informatique est aujourd'hui utilisé partout, cela sert à :
1- à effectuer des tâches inaccessibles à l'homme
calculer
- météo
- calculs de résistance des matériaux
- résolution d'équations, inversion d'une matrice 1000x1000
- trier 10000 titres de livres par ordre alphabétiques
- recherche un mot dans plusieurs millions de pages internet
- ...
2- à répéter la même opération autant de fois que nécessaire
automatiser
- envoyer un mail
- à lire un chèque automatiquement
- à envoyer de la publicité à plusieurs milliers de personnes
- à reconnaître une plaque d'immatriculation (péage à Stockholm)
- ...
Séance
3.
à quoi1sert
: del'informatique
l'idée au programe
L'ordinateur se sait faire que des calculs :
1- l'ordinateur manipule des informations ou des données qu'il reçoit
- un nombre
partie description
- un tableau, une liste
- une matrice
- un graphe (un arbre généalogique par exemple)
- du texte
- ...
2- et il en construit d'autres grâce à des algorithmes
- multiplier un nombre
partie action
- rechercher le maximum dans un tableau
- inverser une matrice
- déterminer la descendance d'un individu
- déterminer statistiquement l'auteur d'un texte
- ...
Séance
3.
à quoi1sert
: del'informatique
l'idée au programe
Branches de l'informatiques
1- stockage de l'information : base de données, fichiers, mp3, divX, zip...
2- communication : réseaux, internet, ...
3- calcul : prévision, reconnaissance, image de synthèses, trading, ...
4- représentation : via un écran, une imprimante, une carte son,
via ce qu'on appelle un périphérique
Séance
3.
à quoi1sert
: del'informatique
l'idée au programe
En finance
- réception en temps réel des prix (Bloomberg, Reuters, ...)
- stockage (base de données, SQL, ...)
- calcul, des risques, prévisions, ... (Excel, C++, Matlab, Visual Basic)
En économie
- stockage de l'information (base de données, SQL)
- estimation de modèles économiques (SAS, Excel,
Visual Basic, Python, Matlab, C++)
En statistique, actuariat
- stockage de l'information (base de données, SQL, Oracle)
- statistique descriptive (SAS,
- estimation de modèles (SAS, C++, Python)
Séance
4.
récapitulatif
1 : de l'idée au programe
L'informatique utilise des données de types variés
- nombre
- matrice
- graphe,
- texte, ...
L'ordinateur manipule les données grâce à un algorithme.
Cet algorithme est une longue liste de petites opérations qui sont de trois types :
- un calcul (addition, mutliplication, soustraction, division)
- une comparaison (ou test) < > == != <= >=
si ce nombre vaut ceci alors je fais ceci
s'il est plus grand que cela alors je fais cela
- une répétition (ou boucle) :
je répète N fois cette liste d'opérations
ou je répète cette liste d'opérations tant qu'une certaine condition est vraie
Séance 1 : de l'idée au programe
fin
retour sur les exemples de la séance