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
1 19/01/2018 Histoire La mécanographie
2 26/01/2018 Société Peut-on empêcher le téléchargement illégal ?
3 02/02/2018 Société Peut-on faire des programmes impossibles à pirater ?.
4 09/02/2018 Histoire L'informatique dans les années 50-60. Test de VM/370
5 16/02/2018 Limites Cantor, Russel, Gödel, Turing.
23/02/2018 Supprimé (prof HS)
02/03/2018 "interruption pédagogique" d'hiver
6 09/03/2018 Limites Autour de l'indécidabilité. Pourquoi a-t-on inventé le λ-calcul ?
7 16/03/2018 Vérité Les assistants de preuve
23/03/2018 Relache cette semaine (J'étais à post-scryptum)
8 30/03/2017 Données Y a-t-il plus d'information dans votre ADN ou dans Wikipédia ?
9 06/04/2018 données Comment conserver des données ?
13/04/2018 Cours reporté cause grève SNCF.
10 20/04/2018 Données Peut-on produire du hasard avec des machines ?
27/04/2018 interruption pédagogique de printemps
04/05/2018 interruption pédagogique de printemps
11 11/05/2018 Vérité L'informatique bouscule les maths : le théorème des 4 couleurs
12 ? ??/05/2018
Charles Bouillaguet
dernière modification : 12/04/2018 à 22:25: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
  1. HECI Challenge #0
  2. HECI Challenge #1
  3. HECI Challenge #2
  4. HECI Challenge #3

HECI Challenge #0 (26/01/2018)

Montrez un screenshot (pris sur votre machine) d'un OS non-Microsoft pré-1980.

Le jury a constaté que :

  • J. Littiere a envoyé a envoyé un mail le jeudi 1er février, à 18:35, accompagné d'une pièce-jointe éléphantesque de 8Mo. Il s'agit d'une photo de son ordinateur, prise avec son fidèle Samsung Galaxy A5. Le mail précise que son auteur "avoue ne pas être sûr de la version que j'ai lancé" et que "elle date peut être d'après 1980".

HECI Challenge #1 (2/2/2018)

Corriger le pseudo-code des fonctions stabilize et notify qui figurent dans les notes de cours pour qu'il soit correct. Vous pouvez vous inspirer de l'article de recherche original.

HECI Challenge #2 (2/2/2018)

Un code C obfusqué est disponible ici. L'objectif consiste à modifier le programme pour qu'il affiche "HECI 2018"

Le jury a constaté que :

  • S. Danneels a envoyé a envoyé un mail le samedi 17 février, à 19:06, Dans lequel elle dit "Je n'ai aucun mérite" et que "Il [lui] faudrait essayer de comprendre". Le mail contient en pièce jointe l'image suivante, dans laquelle HECI n'est pas écrit en majuscules et où il manque un espace.

HECI Challenge #3 (9/3/2018)

Deux fichiers source Haskell sont disponibles ici et . L'objectif consiste à écrire des programmes qui ont des types spécifiés grace à une petite API.

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)
  • 15 mars 2018 : les groupes doivent avoir remis une première version.
  • 31 mars 2018 : les groupes doivent avoir remis les rapports sur les travaux des autres.
  • 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, ...).

Groupes constitués

Les binomes portent un numéro (arbitraire) :

  1. Sonja ICHEVA, Qianqian SHA et Ling MA : Alan Turing, Konrad Zuse, John von Neumann.
  2. Anas TAIBI et Mohamed KADDOU : Le développement des bases de données, de leur naissance à la standardisation de SQL.
  3. Mehdi MALAMELLI : L'informatique dans la conquête spatiale.
  4. Hugo ALDER et Aurélien SILLE : la cryptanalyse de la machine Enigma.
  5. Jérémie LITTIERE : Histoire des système de réservation de billets (d'avion, de train, ...).
  6. Marc CANIPEL : La cryptanalyse de la machine Enigma.
  7. Thomas ARBLAY : Alan Turing, Konrad Zuse, John von Neumann : leurs vies, leurs oeuvres.
  8. Valentin DAMBRINE, Hajar "Bob" BOUHALLAF : L'histoire des réseaux.
  9. Brahim DJARALLAH, Mohamed Amine WARAY : La cryptanalyse de la machine Enigma.
  10. Alexandre TROUCHAUD : Histoire des ordinateurs de 1955 à 1975.
  11. Sophie DANNEELS : L'enseignement de l'informatique à Lille-1, des années 1970 aux années 1990 (cours, hardware, langages, ...).
  12. Corwin FEVRE : L'informatique dans les satellites.
  13. Jules SPICHT et Rémy RAES : "Internet" avant le web.
  14. Aymane BOUZIANE : Histoire des système de réservation de billets (d'avion, de train, ...).

Rédaction des rapports sur les versions intermédiaires

Chaque personne doit rédiger deux rapports sur deux mémoires d'autres binomes (cf. tableau ci-dessous). Le rapport doit contenir :

  • Un bref résumé (10 lignes...)
  • Une critique détaillée du travail : tel aspect est bien, je trouve tel passage flou, tel autre passage est complètement pipeauté, il manque une explication sur telle chose, il faudrait une image, l'image fournie ne va pas, il y a une incohérence, j'aimerai en savoir plus sur tel aspect...
  • Une synthèse de votre avis (le mémoire reste à la surface des choses, le fond est bien mais la forme est à améliorer, le rapport m'a donné envie d'en savoir plus sur tel truc, le rapport est intéressant, le rapport est ennuyeux, etc.).
  • Ne pas hésiter à relever les fautes d'orthographe ou autres erreurs

L'idéal est d'être critique (relever les défauts éventuels) mais constructif (proposer des solutions ou des idées d'amélioration). Pour ne pas faire des reproches (ou des éloges) gratuits à quelqu'un, il faut justifier son avis.

On peut traiter le mémoire de manière linéaire : écrire son opinion sur chaque paragraphe, dans l'ordre. Ou bien on peut classer ses remarques par thème (d'abord les aspects positifs, puis les parties floues, puis les parties incompréhensibles...)

NomRapport #1Rapport #2rapports rendus ?
Alder 2 5 OK
Arblay 4 11 OK
Bouhallaf 6 12 OK
Bouziane 1 13 OK
Canipel 13 11 OK
Dambrine 4 10 OK
Danneels 6 14 OK
Djarallah 7 10 en attente
Fevre 7 14 OK
Icheva 2 5 OK
Kaddou 3 9 OK
Littiere 2 13 OK
Ma 4 10 en attente
Malamelli 1 9 OK
Raes 8 14 OK
Sha 3 8 en attente
Sille 3 11 OK
Spicht 7 9 OK
Taibi 1 5 OK
Trouchaud 6 12 OK
Waray 8 12 OK

le script AMPL qui a affecté les rapports aux personnes et le script Python qui a parsé la sortie... Optimisation effectuée par GLPK (glpsol --math reviews.ampl).

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 :