Apport scientifique

mercredi 25 novembre 2015
par  Malika More (webmestre), Pierre Pelletier

PAGE EN COURS D’ÉLABORATION

Retour à la page principale

Accès à la partie pédagogique


Le contenu scientifique de cette partie de la formation est destiné aux enseignants. Tout en restant, nous l’espérons, accessible aux collègues de toutes origines, aussi bien néophytes que confirmés dans le domaine de la science informatique, il va volontairement très au-delà du contenu de l’activité destinée aux élèves. Il s’agit de répondre aux interrogations personnelles des enseignants, d’alimenter leur réflexion à l’occasion de la préparation d’une séance en classe, et de leur permettre de se sentir à l’aise vis-à-vis d’éventuelles questions des élèves.

Les notions d’informatique à acquérir pour les enseignants dans ce module sont divisées en six chapitres. Chacun d’entre eux comporte une ou plusieurs vidéos de trois à cinq minutes chacune. Les textes et les diapositives utilisés sont disponibles sous forme de fichiers séparés à la suite de chaque vidéo.

Dans chaque chapitre, vous trouverez aussi :

  • la partie de la fiche scientifique correspondant au chapitre actuel, toutes les notions qui y sont évoquées sont normalement mieux détaillées dans les vidéos mais peut-être souhaitez-vous un support écrit.
  • une rubrique Avez-vous retenu, comportant quelques questions sur le contenu des vidéos (et leurs réponses)
  • éventuellement, une rubrique Pouvez-vous définir, récapitulant les mots techniques introduits dans le chapitre, s’il y en a (les définitions sont à retrouver dans le glossaire )
  • une rubrique Notions importantes, listant les points essentiels abordés dans les vidéos
  • éventuellement, des Questions/Réponses pour apporter quelques compléments d’information qui ne sont pas abordés dans les vidéos
  • une rubrique Question(s) d’approfondissement, comportant une ou des questions pour aller plus loin sur les idées présentées dans les vidéos, pour relier les chapitres entre eux, pour réfléchir à des points non abordés dans les vidéos,... (et leurs réponses)

Enfin, nous vous proposons une page supplémentaire, à consulter plutôt à la fin de la formation, pour vérifier si vous avez retenu l’essentiel du contenu de cette partie d’apport scientifique :


1. Introduction et présentation du langage Gobot

PNG - 4.7 ko
  • Introduction : Qu’est-ce-qu’un langage de programmation ? À quoi est-il destiné ?

  • Présentation du langage Gobot inventé pour l’activité en classe.

  • Fiche scientifique :
PDF - 315.9 ko
  • Avez-vous retenu :
    • En quoi un homme est-il différent d’un robot ?
    • Les langages de programmation diffèrent-ils seulement par leur compatibilité avec certains types de machines ?
    • Dans le langage Gobot inventé pour l’activité en classe, quelles sont les instructions ?

Réponses

  • Pouvez-vous définir :
    • Instructions
    • Programme
    • Langage de programmation

(Les réponses se trouvent dans le glossaire)

  • Notions importantes :
    • Existence de langages spécifiques dits langages de programmation, destinés à permettre à des êtres humains de faire exécuter des tâches par des machines
    • Les briques de base des langages de programmation s’appellent des instructions.
    • Dissymétrie entre l’être humain (le programmeur) et l’ordinateur ou le robot.


2. Syntaxe et sémantique

PNG - 35.3 ko

  • Les langages de programmation ont tous des points communs, qui sont présentés dans cette partie.

  • Fiche scientifique :
PDF - 338 ko
  • Avez-vous retenu :
    • Quelles sont les deux catégories de symboles dans le vocabulaire d’un langage de programmation ?
    • Quel est le vocabulaire du langage Gobot ?
    • Pourquoi est-il important de comprendre la sémantique d’un langage ?
    • À quoi peut-on comparer un langage de programmation ?
    • Quelles sont les différences les plus importantes entre un langage naturel et un langage de programmation ?

Réponses

  • Pouvez-vous définir :
    • Vocabulaire
    • Sémantique
    • Syntaxe

(Les réponses se trouvent dans le glossaire)

  • Notions importantes :
    • Vocabulaire des langages de programmation figé et limité
    • Nécessité d’une syntaxe complètement rigide pour permettre l’exécution par une machine
    • Nécessité pour le programmeur de connaître la sémantique des instructions
    • Seuls les êtres humains peuvent déboguer un programme


3. Compilation

JPEG - 11.4 ko

  • Nous expliquons en détail comment, à partir d’un programme écrit dans un langage de programmation, celui-ci est exécuté par l’ordinateur.

  • Fiche scientifique :
PDF - 337.5 ko
  • Avez-vous retenu :
    • Quel est le langage de programmation de base pour un ordinateur ?
    • Quel type de langage a pu être développé grâce aux compilateurs et quel est leur intérêt ?
    • Quels sont les deux acteurs permettant de passer d’un algorithme à l’exécution par la machine ?

Réponses

  • Pouvez-vous définir :
    • Architecture
    • Écriture binaire
    • Assembleur
    • Langage source/ Langage cible
    • Langage de haut niveau
    • Compilateur
    • Algorithme

(Les réponses se trouvent dans le glossaire)

  • Notions importantes :
    • Nécessité d’une traduction pour pouvoir exécuter le programme.
    • Apparition des langages de haut niveau grâce à ces compilateurs, permettant une programmation plus aisée et intuitive.


4. Expressivité des langages de programmation

JPEG - 16 ko

  • De nombreux langages de programmation sont utilisés en pratique, mais on peut se demander si ils sont tous aussi "puissants". C’est ce à quoi nous allons nous intéresser dans cette partie. Dans cette première vidéo, on utilise le langage Gobot pour expliquer le concept d’expressivité.

  • Dans cette deuxième vidéo, nous nous intéressons au concept d’"expressivité absolue".

  • Fiche scientifique :
PDF - 375.8 ko
  • Avez-vous retenu :
    • Est-ce que tous les langages de programmations offrent les mêmes possibilités ?
    • Le langage Gobot peut-il réaliser tous les algorithmes ?
    • Existe-t-il des langages avec lesquels il est possible d’exprimer n’importe quel algorithme ?
    • L’expressivité d’un langage de programmation est-elle le seul facteur pour choisir un langage ?
    • Sous quelles conditions un langage de programmation est-il Turing-complet ?

Réponses

  • Pouvez-vous définir :
    • Expressivité d’un langage
    • Turing-complet

(Les réponses se trouvent dans le glossaire)

  • Notions importantes :
    • Les langages de programmation diffèrent selon leur expressivité.
    • Des langages capables d’exprimer tous les algorithmes existent, et la majorité des langages de programmation modernes en font partie.


5. Paradigmes de programmation

  • Il existe des milliers de langages de programmation pour commander des machines (ordinateurs, téléphones, robots ...). Ils sont souvent classés par catégories, correspondant à des principes de fonctionnement différents : ces catégories sont appelées des paradigmes de programmation. Chaque paradigme suggère sa propre façon de concevoir les programmes. Pour illustrer cela, nous donnons 3 vidéos ci-dessous, chacune présentant un certain paradigme de programmation à partir d’un exemple calculant le minimum d’une liste de nombres. Pour illustrer le paradigme impératif, nous utilisons un programme en Python, pour le paradigme fonctionnel, un programme en OCaml et pour le paradigme logique, un programme en Prolog. Ces trois programmes reposent sur le même algorithme, qui consiste à parcourir la liste du début à la fin (ou de la fin au début suivant le type de langage) en mémorisant la plus petite valeur rencontrée jusque là dans la liste.
  • Voici cet algorithme écrit en pseudo-code :

Binary Data - 18.2 ko

  • Voici tout d’abord la vidéo illustrant le paradigme impératif.

  • Voilà ensuite un exemple de paradigme fonctionnel.

  • Enfin, nous présentons le paradigme logique.

  • Fiche scientifique :
PDF - 393.1 ko
  • Avez-vous retenu :
    • Est-ce qu’il existe un paradigme par langage de programmation ?
    • Quel paradigme permet une preuve plus simple de la correction d’un programme ?
    • Quel est le paradigme réalisant une lecture séquentielle, c’est-à-dire pas-à-pas, d’un programme ?

Réponses

  • Pouvez-vous définir :
    • Paradigme de programmation
    • Paradigme impératif
    • Paradigme fonctionnel
    • Paradigme logique
    • Fonction récursive

(Les réponses se trouvent dans le glossaire)

  • Notions importantes :
    • Existence de nombreux paradigmes très différents, faisant grandement varier l’aspect des programmes.
    • Importance de choisir un paradigme adapté au problème à résoudre.


6. Conclusion

  • Pour conclure, rappelons que l’utilisation des langages de programmation pour convertir un algorithme sous la forme d’un programme est la seule manière de commander à un ordinateur d’exécuter une tâche. Il s’agit donc d’une notion informatique qu’il est indispensable d’aborder.
  • Il existe de très nombreux langages de programmation de nos jour, chacun ayant ses particularités au niveau de la syntaxe, mais surtout au niveau du paradigme appliqué. Pour choisir un langage de programmation, il est donc très important de considérer quel paradigme sera le plus adapté à notre problème, car cela peut démultiplier la complexité et la longueur d’un code. Ainsi il est plus naturel d’écrire certains programmes dans certains paradigmes, comme notre algorithme de recherche du minimum où l’écriture en Prolog est la plus concise.Bien entendu, il faut aussi veiller à choisir un langage compatible avec la machine choisie.
  • Enfin, il faut savoir que encore aujourd’hui, de nombreuses équipes de recherche et développement sont mobilisées à travers le monde pour créer de nouveaux langages, adaptés aux nouvelles technologies et aux défis qui vont avec. Cela n’est pas facile au vu des nombreuses contraintes, notamment syntaxiques, pesant sur les langages. Par exemple il a fallu créer ces dernières années des langages permettant d’écrire des programmes pour les smartphones, les drones, ou encore pour les ordinateurs multi-coeurs, où les calculs sont réalisés en parallèle. Un effort considérable est ainsi fourni pour obtenir des langages de plus en plus faciles à manier et compatibles avec de plus en plus d’ordinateurs.

  • Fiche scientifique :
PDF - 254.9 ko
  • Avez-vous retenu :
    • Pourquoi est-ce-que les langages de programmation sont une notion importante en informatique ?
    • Quel est l’intérêt de bien choisir le paradigme de programmation selon lequel on va coder ?
    • Pourquoi les langages de programmation sont-ils encore un sujet de recherche ?

Réponses

  • Notions importantes :
    • Les langages de programmation permettent de communiquer des ordres à un ordinateur ou un robot.
    • Ces langages sont soumis à des règles très strictes pour lever toute ambiguïté.
    • Le choix du langage de programmation est important et doit être fait selon :
      • La compatibilité du langage avec la machine visée
      • L’expressivité du langage (secondaire de nos jours car ce n’est presque jamais un problème)
      • Le paradigme utilisé et son adéquation avec le programme que l’on souhaite écrire.
    • De nouveaux langages sont encore de nos jours créés, pour s’adapter aux nouvelles technologies et nouveaux besoins et pour simplifier leur utilisation.


7. Compléments.


Retour à la page principale

Accès à la partie pédagogique


Documents joints

MPEG4 - 7.1 Mo
MPEG4 - 7.1 Mo

Agenda

<<

2023

 

<<

Mars

 

Aujourd'hui

LuMaMeJeVeSaDi
  12345
6789101112
13141516171819
20212223242526
2728293031  
Aucun évènement à venir les 6 prochains mois

Contact

IREM de Clermont-Ferrand

Directeur :
Mickael Dos Santos
Tél. : +33 (0)4 73 40 76 95

Directeur adjoint :
Nicolas Billerey
Tél. : +33 (0)4 73 40 71 12

Secrétariat :
Françoise Toledo
Tél. : +33 (0)4 73 40 70 98

Chargée de mission :
Aurélie Roux

Webmestre :
Benoît Coly