Archives de catégorie : Saisons

Julien Grenet : « La transparence et l’obstacle : les algorithmes d’affectation des élèves aux établissements d’enseignement » (11/05/2017)

Orateur

Julien Grenet (CNRS, École d’Économie de Paris, Institut des Politiques Publiques)

Titre

« La transparence et l’obstacle : les algorithmes d’affectation des élèves aux établissements d’enseignement »

Vidéo

Résumé

Pour organiser l’affectation des élèves aux établissements d’enseignement (écoles élémentaires, collèges, lycées, universités), de plus en plus de pays ont recours à des procédures dites « de choix régulé ». Ces procédures centralisées s’appuient sur des algorithmes qui, à l’image du mécanisme d’acceptation différée de Gale et Shapley, visent à satisfaire au mieux les vœux d’affectation tout en tenant compte de règles de priorité pour départager les élèves lorsque la demande excède le nombre de places disponibles dans une école donnée. En France, plus d’un million de collégiens et de lycéens participent
chaque année aux procédures affectation automatisées Affelnet et Admission Post-Bac. Comment fonctionnent les algorithmes mobilisés dans le cadre de ces procédures ? Sont-ils équitables ? Constituent-ils un levier efficace pour réduire les inégalités sociale face à l’école ?

Informations

Jeudi 11 mai 2017, 14h-15h30.

LIP6, salle 25-26/105 (attention, salle inhabituelle !).

Documents

Samuel Goyet : « Les interfaces de programmation (API) web : écriture informatique, industrie du texte et économie des passages » (08/06/2017)

Orateur

Samuel Goyet (GRIPIC, Paris-Sorbonne, COSTECH, UTC Compiègne)

Titre

« Les interfaces de programmation (API) web : écriture informatique, industrie du texte et économie des passages »

Résumé

Dans cette intervention, je propose d’étudier les interfaces de programmation (API) Web du point de vue des sciences humaines, et plus particulièrement des sciences de l’information et de la communication. Nous partons du principe qu’une API est un « architexte » (Jeanneret, Souchier, 1999), soit un outil d’écriture informatique qui permet tout autant que contraint l’écriture. Envisagée de ce point de vue, une API est une procédure informatique qui a intégré la chaîne de production contemporaine des textes de réseau. Une API a donc un rôle éditorial : elle participe à l’établissement de ces textes selon certains attendus culturels et techniques.

Nous souhaitons interroger ce rôle éditorial, en nous situant entre technique et sémiotique : comment les API Web contemporaines, par leur composante informatique, travaillent et informent les textes de réseau ? Quelle est la conception du texte qui est propagée et industrialisée par ces outils ? Nous faisons l’hypothèse d’un lien entre le mode de fonctionnement d’une API et des formes qu’elle permet de produire : parce qu’une API est une procédure informatique, elle obéit à certains principes de cette science, et ces principes travaillent les formes à venir. En même temps, parce qu’elle sert à la production de pages web, elle s’insère dans une histoire pluriséculaire de la page et du texte, dans une certaine culture visuelle dont elle ne peut se départir mais qu’elle reconfigure.

Nous étudierons la documentation des API de Facebook et de Twitter, les formes que ces API permettent de produire, tant dans leur composante sémiotique (widgets, timelines, etc.) que technique (le code source qui en permet l’affichage). Nous mettrons en évidence deux couples de notions à l’œuvre : le couple modularité/abstraction du texte ; le couple discrétisation / manipulabilité de ces modules. Nous montrerons que ces dynamiques sont inhérentes à l’histoire de l’informatique et de la programmation, et s’inscrivent dans une histoire longue du texte. Enfin, nous ferons l’hypothèse que dans le cadre d’une « industrie de la circulation » (Jeanneret, 2014) contemporaine où la valeur se crée par la réappropriation et la circulation des textes, l’abstraction et la modularité permise par les API Web trouvent une nouvelle utilité.

Informations

Jeudi 8 juin 2017, 14h-15h30.

LIP6, salle 25-26/105.

Documents

Jean-François Perrot : « Un objet pédagogique : la verticale multilingue » (20/04/2017)

Orateur

Jean-François Perrot (LIP6)

Titre

Un objet pédagogique : la verticale multilingue

Résumé

Il s’agit de traiter un même programme en plusieurs langages de niveaux différents (du genre Python, C, assembleur MIPS), en prêtant attention aux changements de perspective induits par ces transitions.

On présentera une réalisation de cette idée pour le programme du calcul itératif de la suite de Fibonacci sans limitation de la taille du résultat, en Python, C et MIPS. (Évidemment, le point essentiel est l’exigence de valeurs illimitées, rendue « naturelle » par Python.)

Outre l’augmentation spectaculaire de la taille du code, on voit apparaître des problèmes imprévus de divers ordres, comme une particularité de l’addition fib(n-1)+fib(n), ou du nombre de zéros qui apparaissent au début d’un quotient. Loin d’être un simple exercice de réécriture, l’expérience devient un projet logiciel complet, avec plusieurs tours de spirale, où Python joue un rôle précieux de boîte à outils pour la modélisation, où l’écriture en C a sa propre problématique, et où la réalisation en assembleur MIPS exige une démarche d’une rigueur de fer.

On discutera des vertus pédagogiques attendues de ce dispositif.

Informations

20 avril 2017, 14h-15h30.

LIP6, salle 24-25/405.

Documents

Liesbeth De Mol : Un code source sans code ? Le cas de l’ENIAC (22/06/2016)

Oratrice

Liesbeth De Mol (CNRS, Savoirs Textes Langages, Université de Lille 3)

Titre

« Un code source sans code ? Le cas de l’ENIAC »

Résumé

Qu’est-ce qu’un programme ? Qu’est-ce qu’un code (source) ? Est-ce un « texte » susceptible d’une analyse littéraire ou plutôt quelque chose qui réside dans les circuit électroniques de l’ordinateur ? Est-ce un objet technique ou formel ? D’un certain point de vue, ces questions purement philosophiques ont peu à voir avec une réalité quelle qu’elle soit. Mais en informatique, ces questions sont au cœur de la discipline et les réponses qu’on leur donne déterminent des décisions qui affectent jusqu’à la législation des logiciels : selon qu’on voie le code comme texte ou comme programme exécutable, la législation qui s’applique est celle du copyright ou du brevet. Ainsi, aucune philosophie du code source n’est innocente et la prudence s’impose à ce sujet.

De nos jours, il est de bon ton de ne plus parler du matérialité du logiciel : même en histoire de l’informatique, la tendance est de se concentrer sur les logiciels et d’ignorer la matérialité dans laquelle ils sont ancrés. Cette tendance est le résultat d’une des technique les plus importantes de l’informatique : l’abstraction. C’est l’abstraction qui nous permet d’oublier ce qui est caché sous une interface et de rendre ainsi transparents les logiciels. C’est l’abstraction qui permet le développement de logiciels qui n’ont plus besoin de renvoyer au niveau inférieur. Sans abstraction, pas de vrais logiciels. Sans abstraction, pas de vrai « langage » de programmation. Sans abstraction, l’industrie ne serait pas capable de créer ce vers quoi tendent les abstractions industrielles, et que Dijkstra décrit ainsi :

« [T]he computer user, as functioning in the development of computer products is not a real person of flesh and blood but a literary figure, the creation of literature, rather poor literature. […] [H]e is most uninspiring. He is stupid, education resistant if not education proof, and he hates any form of intellectual demand made on him, he cannot be delighted by something truly beautiful, because he lacks the education to appreciate beauty. Large sections of computer science are paralyzed by accepting this moron as their typical customer. »

Dans cet exposé, je voudrais effectuer un mouvement inverse en allant de l’abstraction vers la physicalité des calculs, en étudiant une pratique où il n’y a pas de « code » qui puisse être « compris » par la machine. Au contraire, il s’agit d’une pratique où c’est l’être humain qui doit comprendre la machine alors qu’elle peut coder ces idées. C’est la pratique de l’ENIAC original – une des premières machines électroniques et programmables. Dans cet exposé, j’expliquerai comment la machine peut être programmée. Le but de tel exposé est d’interroger ce que veut dire « code source » du point de vue de la machine. Cela me permet non seulement de montrer le contexte original de l’abstraction mais aussi d’introduire un point de vue matériel pour lequel il n’existe pas de logiciels. Ainsi, le vrai but de cet exposé est d’aller contre la tendance de cacher l’entrelacement du code, de la machine et des humains en le rendant transparent.

Informations

Mercredi 22 juin, 14h-15h30.

LIP6, salle 24-25/405.

Documents

Karine Chemla : Calculer avec des positions, calculer avec des tables en Chine ancienne (13/04/2016)

Orateur

Karine Chemla (ERC Advanced Research Grant SAW & SPHERE, CNRS-Université Paris Diderot)

Titre

Calculer avec des positions, calculer avec des tables en Chine ancienne

Résumé

Au nombre des traditions mathématiques que l’on peut identifier en Chine ancienne, l’une paraît faire un usage singulier de positions sur la surface matérielle sur laquelle les algorithmes étaient exécutés. C’est de fait en son sein que furent élaborées les nombreuses notations positionnelles que l’on peut repérer en Chine ancienne et qui distingue cette tradition d’autres traditions, en Chine ou ailleurs. L’exposé vise à repérer les contours de cette tradition ainsi qu’à esquisser le corpus de résultats et de pratiques qui s’y rattachent. Il vise également à mettre en évidence la persistance de cette tradition sur des siècles, tout en montrant comment de nouveaux résultats émergent dans ce cadre. L’exposé proposera enfin des hypothèses sur les raisons de cette longévité.

Informations

Mercredi 13 avril 2016, 14h-15h30.

LIP6, salle 24-24/405.

Documents

Yann Régis-Gianas : CallCC, un coup d’état sur le contrôle (23/03/2016)

Orateur

Yann Régis-Gianas

Titre

CallCC, un coup d’état sur le contrôle

Résumé

Lorsque Dijkstra publie son article « Go To Statement Considered Harmful », une fronde de programmeurs – dont Knuth – s’est élevée contre les restrictions d’expressivité proposées par l’informaticien néerlandais : en effet, la structuration du flot de contrôle par les seules procédures et boucles while interdisait certains idiomes de programmation fort utiles et répandus.

Cependant, les motivations de Dijkstra étaient légitimes : puisque l’on ne peut pas prédire les prédécesseurs d’un point de contrôle en présence du « goto », on ne peut pas raisonner localement sur les instructions d’un programme et cela interdit toute ambition de passage à l’échelle de la preuve de programme.

Seulement, l’expressivité du « goto » peut être retrouvée à l’aide d’opérateurs de contrôle inventés par Peter Landin plusieurs années auparavant : en présence de ces opérateurs, les points de contrôle deviennent des objets de première classe appelés continuations. En tant qu’objet du calcul, les points de contrôle du programme sont alors l’affaire du programmeur. Grâce à l’abstraction de type, il peut alors choisir de légiférer comme bon lui semble pour spécifier leur bon usage.

Informations

Mercredi 23 mars 2016, 14h-15h30.

LIP6, salle 24-24/405.

Documents

Nicolas George : La négociation de formats multimédia (17/02/2016)

Orateur

Nicolas George

Titre

La négociation de format dans libavfilter

Résumé

FFmpeg est un projet de logiciel libre dédié au décodage, à l’encodage et à la manipulation en général de données multimédia ; libavfilter est le composant de FFmpeg consacré à la modification du contenu des flux audio et vidéo, qu’il s’agisse de transformations élémentaires comme changer la résolution ou la fréquence ou d’opérations complexes faisant intervenir plusieurs flux de nature différente.

Afin d’assurer les meilleures performances, libavfilter doit sélectionner des formats pour les différents flux compatibles avec les filtres utilisés tout en évitant autant que possible les coûteuses conversions inutiles.

Dans cet exposé, nous examinerons le mécanisme employé pour choisir les formats. Il est optimisé pour gérer le plus simplement les cas les plus courants mais a été étendu progressivement quand de nouveaux besoins se sont fait sentir. Le résultat est assez typique de la manière dont FFmpeg progresse.

FFmpeg is a libre software project dedicated to decoding, encoding and general manipulation of multimedia data; libavfilter is the FFmpeg component dedicated to changing the contents of the audio and video streams, whether it is for simple transformations such as changing the resolution of frequency or for complex operations involving several streams of various nature.

In order to ensure best performance, libavfilter needs to select formats for all the streams that are compatible with the involved filters while avoiding as much a possible expensive useless conversions.

In this presentation, we will study the mechanism used to select the formats. It is optimised to handle in the simplest way the most common cases but was progressively extended when new needs have arisen. The result is quite typical of the way FFmpeg evolves.

Informations

Mercredi 17 février 2016, 14h-15h30.

LIP6, salle 24-24/405.

Enregistrement et documents

Christine Proust et Baptiste Mélès : La calculatrice mésopotamienne MesoCalc (20/01/2016)

Orateurs

Christine Proust (CNRS, SPHERE, Université Paris-Diderot) et Baptiste Mélès (CNRS, Archives Henri-Poincaré, Université de Lorraine)

Titre

MesoCalc, la calculatrice mésopotamienne en JavaScript

Résumé

La calculatrice MesoCalc, créée en 2013, permet de pratiquer en toute simplicité l’arithmétique paléo-balylonienne : elle intègre la notation sexagésimale positionnelle, le calcul flottant et les principales opérations arithmétiques historiquement attestées. La calculatrice est destinée aussi bien aux assyriologues,aux historiens des mathématiques, qu’aux simples curieux. Disponible en ligne sur la page http://baptiste.meles.free.fr/site/mesocalc.html, ce logiciel est libre et gratuit.

D’abord, nous exposerons les bases des mathématiques mésopotamiennes grâce à des exercices scolaires qui servaient précisément à les enseigner à de jeunes scribes dans l’antiquité. Ensuite, nous ouvrirons le capot de MesoCalc. En décrivant comment ces notions ont été traduites dans le langage de programmation JavaScript, nous montrerons que les calculs sont effectués dans MesoCalc de manière aussi proche que possible du calcul sexagésimal, un peu par coquetterie — on plaidera officiellement le souci de probité historique — mais aussi pour de très prosaïques raisons techniques. L’arithmétique de JavaScript n’est exacte que jusqu’à 2 puissance 53, limite que les scribes mésopotamiens transgressaient allègrement ; il a donc fallu ruser avec le langage et réécrire toute son arithmétique élémentaire pour lui permettre d’atteindre ce qui nativement transcende ses facultés.

Accessible à tous, l’exposé ne présuppose aucune connaissance préalable des mathématiques mésopotamiennes ou de la programmation informatique.

Informations

Mercredi 20 janvier 2016, 14h-15h30.

LIP6, salle 24-24/405.

Stefano Zacchiroli : Archivage et indexation de codes sources (16/12/2015)

Orateur

Stefano Zacchiroli

Titre

Large-scale source code archival, publishing, and indexing with Debsources

Résumé

The source code commons is a thing. Largely thanks to more than 30 years of Free and Open Source Software (FOSS) development we now dispose of hundreds of billion lines of publicly available source code.

When properly systematized, by providing uniform ways to access both the actual source code and related metadata, such an immense corpus is an invaluable resource for scholars in several fields of software studies, e.g., evolution, history, maintenance, and quality assurance. If properly archived, the same corpus can increase the chances that humanity will not lose a strategic part of its digital heritage.

We present our experiences in this field with Debsources (https://sources.debian.net/) a medium-sized (~3.5 billion lines of code), curated corpus of FOSS source code, extracted from more than 20 years of history of the Debian distribution. We discuss the need and challenges of bringing this experiment to the next level.

Informations

Mercredi 16 décembre, 14h-15h30.

LIP6, salle 24-24/405.

Julian Rohrhuber : Lecture errante. The close reading of sound algorithms leads astray – through the history of understanding, technology of sensibility, and matters of thought (13/01/2016)

Speaker

Julian Rohrhuber ( Institut für Musik und Medien, Robert-Schumann Hochschule Düsseldorf)

Title

Lecture errante. The close reading of sound algorithms leads astray – through the history of understanding, technology of sensibility, and matters of thought

Abstract

In this session, we will embark on a close reading of the source code of the programming language SuperCollider. With its inspirations coming from languages beyond the mainstream, and with its domain specificity, it is a good entry point for the reconsideration of the nature of functions, objects, and formalisms. Staying true to the principles of interactive and literate programming, reading code will thereby necessarily imply its writing, its operation, and listening to its sonic extensions. Thereby, we will broach some history and consequences of the concepts involved.

Informations

Mercredi 13 janvier 2016, 14h-15h30.

LIP6, salle 24-25/405.

Gérard Berry : Le langage Esterel (18/06/2015)

Orateur

Gérard BERRY (Collège de France)

Titre

Programmer en Esterel

Résumé

Esterel v5, créé en 1983 et développé jusqu’à 2001 à l’Ecole des mines de Paris et à l’Inria Sophia-Antipolis, est un langage parallèle synchrone spécifiquement conçu pour la programmation des systèmes réactifs événementiels : contrôle de processus en temps-réel, protocoles de communication, robotique, IHM, etc. Il a été industrialisé et utilisé dans de nombreuses applications dans des contextes académiques et industriels. Je montrerai d’abord ses idées principales et deux exemples de programmes simples.En 1999 a commencé en collaboration avec Intel Strategic Cad Lab de Portland le développement d’Esterel v7, un langage beaucoup plus riche destiné à la conception et la vérification des circuits électroniques mono- ou multi-horloges. Esterel v7 a été industrialisé par Esterel Technologies de 2001 à 2009. Il a été utilisé d’abord en recherche industrielle, puis en production réelle sur des circuits complexes. Couplé dans l’environnement Esterel Studio à un environnement mixte textuel / graphique, à un débogueur sophistiqué et à l’outil de vérification formelle Prover SL de Prover Technologies, il a permis de développer et vérifier rapidement des circuits sophistiqués, en particulier chez  Texas Instruments, NXP (ex Philips) et ST Microelectronics. Il a fait l’objet d’un processus de standardisation industrielle, malheureusement avorté prématurément avec son développement à cause de la crise de 2008 qui a bouleversé l’industrie électronique. Esterel v7 n’est malheureusement plus disponible, ayant été mis au congélateur par Synopsys, son nouveau propriétaire. Mais ses idées originales méritent d’être exposées et re-développées, et je montrerai son style de programmation à travers une présentation générale et une version réduite d’un filtre vidéo développé chez NXP.

Documents

Informations

Jeudi 18 juin, 14h-16h.

LIP6, salle 25-26/105.

Maarten Bullynck : Explorer MULTICS (21/05/2015)

Orateur

Maarten BULLYNCK (SPHERE, Paris 8)

Titre

Explorer les codes et textes de MULTICS

Résumé

Multics est (avec l’OS/360 d’IBM) l’un des grands projets de développement de systèmes d’exploitation dans les années 1960. Le système Multics fut développé à partir de CTSS (Compatible Time Sharing System), le système d’exploitation en temps partagé du MIT. Aujourd’hui, Multics est surtout connu pour avoir inspiré les programmeurs de Bell Laboratories dans la conception d’Unix.
Le noyau de Multics contient à peu près 54.000 lignes de code, dont la majorité est écrite en PL/1 mais quelques parties essentielles sont écrites en ALM, une sorte de macro-assembleur pour Multics. La lecture du code de Multics présente des difficultés: le code dans son ensemble est trop large et peu « littéraire » dans sa documentation locale ; il est particulièrement indigeste dans ses passages en assembleur. Heureusement, le développement de Multics est plutôt bien documenté par des rapports d’étape et des descriptions techniques. Ces documents éclairent ce qui se passe entre les différentes versions des modules Multics. Nous allons explorer le module de l’ordonnanceur et son évolution à travers le code et les documents techniques.

Documents

Informations

Jeudi 21 mai, 14h-16h.

LIP6, salle 24-25/405.

David Madore : Géométrie hyperbolique en JavaScript (30/04/2015)

Orateur

David MADORE (Télécom ParisTech)

Titre

Un jeu de labyrinthe dans le plan hyperbolique écrit en JavaScript

Résumé

La géométrie hyperbolique (géométrie non-euclidienne à courbure constante négative) peut présenter un attrait particulier pour le développement de jeux informatiques en ce qu’elle rend naturelle la création de mondes intrinsèquement labyrinthiques. Cette possibilité a cependant été peu explorée.

Nous expliquerons brièvement en quoi consiste la géométrie hyperbolique, ce qu’elle a de spécifique, et ce qui peut la rendre intéressante pour des jeux informatiques. Puis, à travers l’exemple d’un jeu de labyrinthe hyperbolique assez simple écrit en JavaScript, nous explorerons quelques uns des problèmes qui se posent pour implémenter en pratique cette géométrie hyperbolique (notamment, comment mettre des coordonnées et comment les rendre « périodiques »). Les spécificités du langage JavaScript pourront également être discutées.

Documents

Informations

Jeudi 30 avril, 14h-16h.

LIP6, salle 25-26/105.