Vous êtes ici : FIL > Portail > Master Informatique > M1S2 > HECI

HECI : Histoire et Epistémologie du Calcul et de l'Informatique

Au menu : la vérité, la justice, le hasard, la conscience, ... et des logiciels du passé.

Responsable

Charles Bouillaguet

Volume horaire

Cette unité est une unité optionnelle du M1S2 du master science - mention informatique.

L'enseignement est organisé sous la forme d'une séance hebdomadaire de 3h durant 12 semaines. Le contenu de cette séance (cours, TD, TP) varie d'une semaine à l'autre.

Crédits

Valider ce cours rapporte 5 ECTS.
Charles Bouillaguet
dernière modification : 03/09/2016 à 16:29:30

Nouveauté 2017

En 2017, une nouveauté sera introduite dans HECI : une série de TPs sur des systèmes d'exploitations des années 1960-1970.

Objectifs

  • Présenter les moments importants de l'histoire de l'informatique.
  • Montrer comment fonctionnaient certains anciens logiciels.
  • Montrer que le développement de l'informatique produit des outils ayant un contenu philosophique intéressant (qu'est-ce que le hasard ?) et pose des problèmes délicats (qu'est-ce que "l'intelligence" artificelle... ou "naturelle" ?).
  • Discuter, d'un point de vue scientifique et technique, quelques "problèmes" posés à la société actuelle par le développement de l'informatique (est-il possible d'interdire le piratage ? Les ordinateurs vont-ils aggraver le chômage ? La "vie privée" est-elle encore possible ?)

Contenu

Vu le nombre et la variété des sujets mentionnés ici, il ne pourra pas s'agir de développements très poussés dans chaque direction, mais plutôt de dresser un panorama d'un certain nombre de questions. De plus, tous les sujets ne seront pas nécessairement abordés.

Histoire des machines à faire des calculs

  • Instruments de calcul anciens.
  • De Pascal à Babbage.
  • La mécanographie.
  • La naissance du calcul électronique, l'Eniac, Turing et Enigma...
  • Apparition des langages de programmation, des OS, du web, etc.

Histoire des idées liées au développement de l'informatique

Des thèmes possibles :
  • Est-ce que les ordinateurs peuvent devenir intelligents ? Discussions autour de l'intelligence artificielle, le test de Turing, les sciences cognitives et le computationnalisme. L'objection de Lucas. Penrose. "L'intelligence artificielle". Que signifient les victoires des ordinateurs sur des êtres humains dans des jeux ?
  • Y a-t-il des calculs impossibles ? La théorie du calcul. Où se situe la limite de ce qui est calculable ? Thèse de Church (équivalence des modèles de calcul), qu'est-ce qu'un ordinateur ? L'indécidabilité et son interpréation. La machine de Turing. La faillite du programme de Hilbert, Gödel (le concept de système formel, l'opposition vrai/démontrable, la notion de modèle, etc.)
  • Qu'est-ce qu'un calcul difficile ? Effectivité et praticabilité. Classes de complexité, notion de faisabilité. Modèles de calcul classique et quantique. Franchissement de la barrière de Turing. Rapports avec la physique.
  • Programmer et démontrer un théorème mathématique, est-ce différent ? Isomorphisme de Curry-Howard. Lambda-calcul, preuves dans des systèmes logiques et programmes correctement typés.
  • Une démonstration faite par ordinateur et trop complexe pour être vérifiée par l'homme est-elle valide ? Réflexion sur la notion de "preuve" et de démonstration automatique. Exemple du théorème des 4 couleurs et de sa preuve assistée par ordinateur. Preuves formelles. Les ordinateurs peuvent-ils mettre les mathématiciens au chômage ?
  • Qu'est-ce que le hasard ? Des machines (déterministes...) peuvent-elles choisir "au hasard" ? Différentes notions, plus ou moins fortes, de hasard. Les fonctions rand() sont-elles "vraiment" aléatoires ? Comment un ordinateur peut vérifier si quelque chose est "aléatoire" ? Comment tester la "qualité" d'un générateur aléatoire ? Hasard et secret, application à la cryptographie.
  • Est-ce que le génome humain contient plus d'information que Wikipedia ? Comment "mesurer" l'information ? Comment peut-on dire qu'une donnée contient beaucoup ou peu d'information ? Y a-t-il des données "simples" et d'autres "complexes" ? La théorie (classique et algorithmique) de l'information et son utilisation en épistémologie (le principe du rasoir d'Occam), en physique (entropie....), en mathématiques (décimales de pi).

Problèmes "sociétaux" liés au développement de l'informatique

  • Est-il possible d'empêcher la copie non-autorisée de films ? Le partage sur internet de tout et n'importe quoi ? Peut-on faire des programmes impossible à pirater ou à "cracker" ? La notion de propriété intellectuelle a-t-elle encore un sens ?
  • Les ordinateurs sont capables d'accomplir des tâches "intellectuelles" de plus en plus sophistiquées (par exemple de battre un champion d'echecs en 1997, de Go en 2008, de Jeopardy en 2011.....). Est-ce qu'un grand nobmre de tâches actuellement accomplies par des êtres humains ne risquent pas d'être effectuées par des machines dans l'avenir ? Cela ne risque-t-il pas d'aggraver le chômage ?
  • L'affaire PRISM a révélé que les agences de renseignements de tous les pays espionnent les communications de tous les citoyens de manière assez étendue. Les grandes entreprises de l'internet vivent en partie grâce aux données qu'elles accumulent sur nous tous. Est-il techniquement possible de partager de plus en plus d'informations en ligne... tout en restant anonyme ?

Bibliographie

A venir...
Charles Bouillaguet
dernière modification : 03/09/2016 à 16:45:08
Séance Thème Cours Remarque
1 20/01/17 Histoire La mécanographie
2 27/01/17 Société Peut-on empêcher le téléchargement illégal ? BONUS : HECI Challenge #1
3 3/02/17 Société Peut-on faire des programmes impossibles à pirater ?.
4 10/02/17 Vérité (NEW) L'informatique bouscule les maths : le théorème des 4 couleurs, partie I (notes, slides)
17/02/17 Relache cette semaine
interruption pédagogique de printemps
5 2/03/17 TP : assistant de preuve en Haskell. Cours : machines de Turing et indécidabilité
6 10/03/17 Prof malade
7 17/03/17 Histoire TP : VM/370. Cours : les ordinateurs de 1960 : IBM 1401 et IBM 7090
8 24/03/17 Données Y a-t-il plus de données dans Wikipédia ou dans votre ADN ?
9 31/03/17 Hasard Peut-on génerer des nombres aléatoires avec une machine déterministe ? Deadline "plan détaillé"
0xa 7/04/17 Données Face à une nature hostile, peut-on sauver nos données ?
interruption pédagogique de printemps
interruption pédagogique de printemps
0xb 27/04/17 Intelligence Qu'est-ce que l'apprentissage ?
0xc à définir Intelligence Jeux de stratégie : la victoire des programmes
Charles Bouillaguet
dernière modification : 06/05/2017 à 09:51:04

L'évaluation s'effectue avec un examen en fin de semestre et le rendu d'un mémoire. Deux notes seront attribuées à chaque étudiant durant le semestre :

  • M : une note sur 20 évaluant un mémoire rendu en fin de semestre
  • EX : une note sur 20 d'un devoir surveillé en fin de semestre.

La note finale sur 20 (N) est calculée comme une moyenne pondérée de ces notes :

N = sup(EX, (2EX+M)/3)

Pour la seconde session d'examen, la note M de mémoire est conservée. Seule la note EX d'examen est remplacée par la note obtenue lors de la seconde session.

L'unité acquise apporte 5 ECTS.

Annales

Charles Bouillaguet
dernière modification : 06/05/2017 à 08:54:12
Pas encore ouvert
Charles Bouillaguet
dernière modification :

Travail à faire

Si vous êtes un groupe de n personnes, vous devez rédiger un mémoire d'environ 20'000*n signes sur un sujet lié à l'histoire de l'informatique.

A titre indicatif, quand on lit à voix haute, on lit environ 1000 signes par minute.

Les valeurs admissibles de n sont 1, 2, 3 ou 4. À mon avis, la valeur 4 n'est pas la plus facile à gérer pour vous.

Organisation

  • 1er fevrier 2018 : les groupes doivent choisir (c.a.d. avoir déclaré leur choix par email)
  • 31 mars 2018 : les groupes doivent avoir remis une première version.
  • 20 mai 2018 : les mémoires doivent être rendus par email.

Sujets possibles

Voici une liste de sujets potentiels. Si vous avez d'autres idées, le responsable est ouvert à toutes vos suggestions.

  1. Les systèmes d'exploitation avant 1975.
  2. lambda-calcul, machines de turing, Plankalkül, FLOW-MATIC, ... : les langages de programmations, des années 1930 jusqu'à 1961.
  3. Histoires des réseaux, de 1945 à TCP/IP.
  4. Le développement des bases de données, de leur naissance à la standardisation de SQL.
  5. La course à la puissance : histoire des supercalculateurs de 1940 à 1990.
  6. Alan Turing, Konrad Zuse, John von Neumann : leurs vies, leurs oeuvres.
  7. L'enseignement de l'informatique à Lille-1, des années 1970 aux années 1990 (cours, hardware, langages, ...).
  8. Histoire des "ordinateurs" du Z3 (1941) à 1955 (hardware, "programmation").
  9. Histoire des ordinateurs de 1955 à 1975.
  10. La cryptanalyse de la machine Enigma.
  11. Histoire du traitement automatisé des données dans le secteur bancaire.
  12. Histoire des système de réservation de billets (d'avion, de train, ...).
Charles Bouillaguet
dernière modification :

Avec quoi peut-on faire des calculs ?

Qu'est-ce qu'une preuve mathématique ?

  • E : un programme dont la vocation est de (tenter de) décider des formules de la logique du premier ordre. Il se classe régulièrement dans les premières places de la Competition organisée par la conférence annuelle sur la démonstration automatique.
  • Robbins Algebras Are Boolean : une page de William McCune qui raconte comment la conjecture vieille de 60 ans a finalement été démontrée par ce programme.
  • La page Wikipedia sur le théorème des 4 couleurs.
  • Un article de "vulgarisation" sur la preuve formelle du théorème des 4 couleurs

Autour de l'indécidabilité

Peut-on empêcher le partage illégal de fichiers ?

Peut-on faire des programmes impossibles à pirater ?

Y a-til plus d'information dans Wikipédia ou bien dans votre ADN ?

Petit guide de survie pour vos données

Un ordinateur peut-il avoir un esprit ?

Un ordinateur peut-il apprendre

  • L'article de 1988 qui montre qu'on peut apprendre des disjonctions en-ligne de manière efficace.
  • L'article de 1984 qui pose le problème de l'apprentissage de manière rigoureuse, et démontre que des classes non-triviales de fonctions booléennes sont apprenables.
Charles Bouillaguet
dernière modification :