1. Comprendre les traitements
1.1. L'exemple d'une application GPS
1.2. Compréhension
Des combinaisons
Un programme peut combiner plusieurs traitements pour définir des traitements plus complexes
- Vrai
- Faux
Algorithmes et programmes
Un algorithme est:
- l'expression d'une méthode pour résoudre automatiquement une tâche
- traduit en un programme informatique et implanté dans un ordinateur
- une suite de 0 et de 1
Une application indépendante ?
Lancer une application implique de lancer plusieurs traitements
- Vrai
- Faux
Algorithmes et puissance des ordinateurs
Il est nécessaire de disposer d'ordinateurs très puissants pour écrire de bons algorithmes
- Vrai
- Faux
Application et périphériques
L'exécution d'une application peut faire appel à des interactions avec l'extérieur de la machine par des périphériques. Donner des exemples de périphériques.
2. Les algorithmes
2.1. Introduction
2.2. Compréhension
Algorithmes et ordinateurs
Les premiers algorithmes ont été conçus
- sur un ordinateur de type PC
- par Dijkstra
- pendant la seconde guerre mondiale
- bien avant les ordinateurs
Recettes de cuisine
Un exemple classique d'algorithme utilisé dans la vie courante est une recette de cuisine comme la recette d'une omelette . Regardez cette recette et répondez aux questions suivantes :
- Décrire les actions de base qu'est supposé savoir faire l'utilisateur de cette recette
- Décrire les éléments utiles à l'exécution
2.3. Algorithmes et ordinateurs
2.4. Activité
Modèle de l'ordinateur
Le modèle décrit précédemment a été inventé par Von Neumann . En voici une description schématique . Les données et les programmes (instructions) sont-elles considérées de la même manière dans la mémoire ?
- Vrai
- Faux
Rôle des linguistes
Toute la communauté scientifique a participé au développement de l'informatique et tout particulièrement, les mathématiciens, les logiciens et les physiciens mais aussi les linguistes. En voici trois exemples :
- Qui a inventé le mot ordinateur ?
- Qui est Larry Wall ?
- Qui est Noam Chomsky ?
3. Combiner les instructions
3.1. La séquence
3.2. Compréhension
Une séquence
Quelle est la dernière valeur lue dans l'algorithme suivant
Ranger 4 dans la mémoire à l'adresse 12
Ranger 8 dans la mémoire à l'adresse 5
Lire la valeur de la mémoire à l'adresse 12
Ajouter 1 à cette valeur et la ranger dans la mémoire à l'adresse 12
Lire la valeur de la mémoire à l'adresse 12
Lire la valeur de la mémoire à cette valeur
3.3. L'alternative
3.4. Compréhension
combinaison et imbrications
L'exemple précédent du cours montre la combinaison de séquences et d'alternatives. Il est reproduit ici:
Accéder à l'adresse mémoire pour trouver le codage du numéro du symbole
Si le numéro est compris entre 65 et 90 Alors (si c'est une majuscule)
Ajouter 32
Ranger le résultat dans la mémoire a la même adresse
Fin du Si (sinon rien à faire -- laisser le contenu inchangé)
Ces différents modes de combinaison s'imbriquent les uns dans les autres et nous avons signifié cette imbrication en la soulignant par l'écriture, en modifiant les marges gauches devant chaque instruction. Quelles affirmations suivantes sont vraies
- le si est dans une séquence d'instructions
- une séquence d'instruction est imbriquée dans le si
- il y a 3 instructions en séquence
- il y a 4 instructions en séquence
- la séquence la plus longue est de deux instructions
Avec des si
On peut combiner des si avec d'autres si. Dans ce cas, pour éviter toute ambiguïté, il faut bien déterminer où les si commencent et se terminent. La fin d'un si correspond au dernier si non encore terminé.
Si Bertrand vient alors
Si Yasmine vient alors
J'invite Robert
J'invite Ahmed
Sinon
J'invite Dimitri
Fin du Si
Sinon
J'invite Fan
Fin du Si
Imaginons que Bertrand vient mais pas Yasmine, qui sera invité ?
- Robert
- Ahmed
- Dimitri
- Fan
3.5. La répétition
3.6. Compréhension
Combien de séquences
Dans l'algorithme du cours reproduit ici
Accéder à la mémoire à l'adresse du premier caractère du texte
Répéter tant que la valeur n'est pas 0
Si la valeur est comprise entre 65 et 90 Alors
Ajouter 32
Ranger le résultat dans la mémoire à l'adresse actuelle
Fin du Si
Ajouter 1 à l'adresse actuelle (pour passer au caractère suivant)
Accéder à la mémoire à la nouvelle adresse actuelle
Fin de la répétition
combien existe-t-il de séquences ?
Plus longue séquence
Dans l'algorithme du cours reproduit ici
Accéder à la mémoire à l'adresse du premier caractère du texte
Répéter tant que la valeur n'est pas 0
Si la valeur est comprise entre 65 et 90 Alors
Ajouter 32
Ranger le résultat dans la mémoire à l'adresse actuelle
Fin du Si
Ajouter 1 à l'adresse actuelle (pour passer au caractère suivant)
Accéder à la mémoire à la nouvelle adresse actuelle
Fin de la répétition
quelle est la longueur de la séquence la plus longue ?
4. Que peut faire un ordinateur ?
4.1. Récapitulons
4.2. Calculer et calculable
4.3. Compréhension
Différentes formes pour la répétition
La répétition dans les algorithmes et les programmes peut s'écrire de différentes façons au choix du concepteur de l'algorithme. Reprenons l'exemple de la machine à café contenant un réservoir d'eau gradué en niveau 1 tasse, 2 tasses, ... Considérons les algorithmes suivants qui utilisent une forme de répétition et l'action élémentaire
Verser1
qui verse une tasse et donc augmente de 1 le niveau d'eau dans le réservoir :
AlgoPour :
Pour i de 1 à 5 Faire
Verser1
Fin Pour
AlgoTantQue :
Tant Que le niveau est inférieur à 5 Faire
Verser1
Fin Tant Que
AlgoJusqua :
Répéter
Verser1
Jusqu'à arriver au niveau 5
Répondez aux questions suivantes :
A. Que font ces trois algorithmes si on commence avec un réservoir avec de l'eau au niveau 2 ? B. Donner une condition initiale sur le réservoir pour que les trois algorithmes ajoutent de l'eau jusqu'au niveau 5 C. L'eau étant déja au niveau 5, quel est le seul des 3 algorithmes qui laisse le niveau d'eau inchangé ?
Les minuscules en majuscules
On souhaite que la machine fasse la transformation de minuscules en majuscules, c'est-à-dire l'inverse de notre exemple illustrant le cours que nous rappelons ici:
Accéder à l'adresse mémoire pour trouver le codage du numéro du symbole
Si le numéro est compris entre 65 et 90 Alors (si c'est une majuscule)
Ajouter 32
Ranger le résultat dans la mémoire a la même adresse
Fin du Si (sinon rien à faire -- laisser le contenu inchangé)
- Pour transformer un caractère minuscule en majuscule, quelle instruction faut-il changer dans l'algorithme présenté ci-avant ?
- Pensez-vous qu'on puisse apprendre à une machine à faire cette nouvelle instruction ?
- Expliquez ce qu'il faut changer pour obtenir un algorithme qui prend en entrée une séquence de caractères et qui transforme les minuscules en majuscules et laisse tous les autres caractères inchangés ?
Informatique à l'école
Le code informatique va être enseigné à l'école, au collège et au lycée. Les professeurs des écoles et collèges devront être formés et se former pour cet enseignement. De nombreuses initiatives voient le jour. Vous pouvez regarder class'code qui est tout public. Quelles sont les instructions de base utilisées dans l'activité "débranchée" à destination des écoles introduites par cette vidéo
Conception des algorithmes
Cochez les affirmations vraies :
- Pour résoudre un problème il existe un seul algorithme.
- Pour résoudre un problème il existe des algorithmes plus efficaces que d'autres.
- Tout problème peut être résolu par un algorithme.
5. Algorithmes, programmes et applications
5.1. Machines, algorithmes et langages
5.2. Activité
Algorithme et programme
Algorithme et programme expliqués en une minute par Gérard Berry . L'ordinateur pense-t-il?
- Vrai
- Faux
Faut-il apprendre à coder ?
L'avis d'un président des États-Unis . Vous pouvez activer, au besoin, les sous-titres en anglais ou en français. Êtes-vous convaincu par ce discours ? N'hésitez à échanger vos points de vue sur le forum de ce cours, ...
Apprendre à coder
Parmi les nombreux sites disponibles, pourquoi pas Hour of Code où vous pouvez commencer par le module intitulé : Write your first computer program. Avez-vous réussi à écrire un programme ?
La répétition par Mark Zuckerberg (Facebook)
Mark Zuckerberg, président de Facebook, vous initie à la répétition dans Hour of Code . Cette vidéo vous a-t-elle donné envie d'en apprendre davantage ?
5.3. Coder ou programmer
5.4. Compréhension
Algorithmique et programmation
Le plus difficile est-il de
- concevoir l'algorithme
- traduire l'algorithme en programme ?
5.5. Activité
Langages de programmation
Il existe de nombreux langages de programmation. En voici quelques exemples
- pour les enfants, plus ou moins jeunes, apprendre en s'amusant avec Scratch
- pour les artistes, la conception artistique : processing
- pour le Web : javascript
- pour les statisticiens : le langage R
- l'un des plus répandus et des plus anciens : le langage C
- l'un des plus populaires pour apprendre : le python
Le programme le plus traditionnel et simple pour introduire un langage consiste à afficher "Bonjour" ou "Hello world" en anglais. Trouver comment s'écrit un tel programme en C, en python et javascript. Quel est celui que vous préfereriez apprendre ?
5.6. Les applications
6. Exemples de programmes
6.1. Introduction
6.2. Un correcteur orthographique en français
6.3. Classer et apprendre à classer des textes
6.4. Un jeu d'échec sur ordinateur
6.5. Compréhension
Application-correcteur
Un correcteur orthographique détecte toutes les fautes d'orthographe
- Vrai
- Faux
Application-echecs
Un ordinateur peut explorer toutes les positions possibles des pièces sur un échiquier
- Vrai
- Faux
Application-jeux
Les humains sont meilleurs que les programmes dans les jeux de dames, échecs et go.
- Vrai
- Faux
6.6. Activité
Autres jeux
7. Conclusion
7.1. Des programmes ... et des données
Annexe : réutiliser ce module
Archive IMS CC utilisable dans les LMS Moodle, Claroline, Blackboard, etc: module5.imscc.zip
Archive EDX : module5_edx.tar.gz