OLD – M1, convention de stage

Voici enfin les documents attendus pour préparer votre convention de stage! Lisez attentivement les informations qui suivent, on rajoute quelques points de suivi pour éviter les problèmes qui sont assez courants…

La procédure générale à suivre: Procédure.

Attention: avant de rentrer votre demande de convention sous Elipse, on vous demande de remplir le formulaire ci-joint, qui reprend les informations demandées dans Elipse: FormulaireConventionUCBL. Ce formulaire devra être retourné au responsable des stages et au secrétariat de département pour vérification avant de commencer toute saisie sous Elipse (étape 1.4)

  • Pour un stage en France, ce document devra être daté, signé et cacheté par l’organisme d’accueil (OA). Il est en effet nécessaire que le secrétariat de l’OA valide les informations: s’il y a une erreur sur l’adresse de l’OA, la convention ne sera pas signée par l’UCBL en bout de chaîne et tout sera à recommencer. Assurez-vous d’avoir les bonnes informations, que votre encadrant de stage n’a pas forcément: il faut que votre encadrant de stage s’en assure auprès de son secrétariat.
  • Pour un stage à l’étranger, envoyez (sauf cas particulier/avis contraire du responsable des stages de M1) un exemplaire de convention vierge à l’organisme d’accueil (2015-CONVENTION_STAGE_FR_EN-v1.2 et la notice explicative 2015-Notice_Convention_Stage_FR_EN-v1.1), afin de vous assurer qu’ils acceptent ce modèle. Il y a souvent des refus de signature pour raisons juridiques. Si problème, alerter immédiatement le responsable des stages, en donnant les raisons précises du refus de la convention.Dans le cas contraire, faites suivre un mail de l’encadrant (ou de quelqu’un de l’administration à l’organisme d’accueil) au secrétariat du DI et au responsable des stages indiquant explicitement l’accord pour signer la convention de stage Elipse, et précisant les coordonnées à mentionner pour l’organisme d’accueil.
    Lorsque des modifications sont demandées sur le modèle de convention, il faut d’abord les faire valider via le responsable des stages et le responsable d’année. Si tel est le cas, un avenant à la convention sera préparé, tenant compte des modifications demandées. Il faut alors saisir le stage sous Elipse, afin d’avoir les données du stage dans le système d’information (le circuit de validation reste le même sous Elipse).

Voici en complément la copie d’écran pour l’étape « Sésame »: Sesame Lyon 1, et le guide Elipse: Guide Lyon 1.

Une précision : le module à sélectionner sous Elipse est « ENS – Stage de recherche de 12 semaines » (même si le stage peut faire 11 semaines).

Une fois la demande approuvée, fin du premier acte.

Deuxième acte : signatures de la convention. Le circuit est le suivant  (vous devez vous charger de la première étape; on décrit les étapes suivantes pour que vous puissiez expliquer si nécessaire) :

  • il faut apporter un timbre au secrétariat du DI pour un courrier, entre 50 et 100 grammes, pour le pays concerné, pour ce que l’on appelle ci-dessous l’enveloppe magique;
  • le secrétariat du DI édite 4 exemplaires de la convention, et se charge de récupérer deux signatures : la vôtre et celle de votre tuteur pédagogique à l’ENS Lyon;
  • le secrétariat du DI envoie les 4 exemplaires à l’organisme d’accueil, ainsi que l’enveloppe magique, qui est affranchie avec le timbre susmentionné;
  • sur place (à l’organisme d’accueil), les 4 exemplaires sont signés par le tuteur du stage et par la personne qui représente l’organisme d’accueil, et les 4 exemplaires, ainsi que l’enveloppe magique, sont envoyés à l’UCBL.
  • La dernière signature est enfin ajoutée côté UCBL. 2 exemplaires sont ensuite envoyés à l’organisme d’accueil dans l’enveloppe magique (l’un d’entre eux est pour vous; c’est le troisième voyage de l’enveloppe magique, et cette fois c’est elle le medium — elle est décidément vraiment magique, cette enveloppe), 1 autre est envoyé au secrétariat du DI.

Tous les mails doivent être adressés au responsable des stages (Frédéric Vivien pour le M1) et au secrétariat (Amel Zagrarni) avec comme objet: « [StageM1] vos NOM et Prénom ». N’hésitez pas à discuter avec votre tuteur pédagogique si vous avez besoin d’aide, ou à contacter le responsable des stages.

N’attendez pas pour lancer la procédure, ça peut être long! Dès que le responsable des stages a validé votre stage, envoyez le formulaire à votre organisme d’accueil pour récupérer toutes les informations. Bon courage!

OLD – Stage de recherche M1, évaluation

Préambule: contactez D. Hirschkoff (ou votre tuteur) si vous avez des problèmes durant le stage, ou pour toute question.

Re-préambule : vous ne pouvez pas supposer qu’un(e) spécialiste du domaine où vous avez travaillé en stage relira votre rapport ou assistera à votre soutenance. Il faut donc que vous adaptiez votre rendu en conséquence. Cela ne signifie pas jeter toute la technique à la poubelle, mais il faut être capable de choisir les points techniques que vous souhaitez traiter, et de les amener. En règle générale, les étudiants de M1 ont plutôt tendance à vouloir mettre trop de technique, comme s’ils s’adressaient à leur encadrant de stage.

Rapport

Vous devez envoyer votre rapport à Daniel Hirschkoff au plus tard le 28 août 2018 à midi (heure de Lyon), par mail. 20 pages maximum, vous pouvez au besoin pointer vers une « annexe » en ligne (l’annexe peut être un fichier contenant des preuves, un fichier contenant tous vos résultats numériques, un article écrit avec vos encadrants, du code que vous avez produit..). Vous pouvez écrire en anglais, mais ne le faites que si votre niveau d’anglais rend cela possible. Il est souhaitable que votre encadrant valide votre rapport en le relisant (ce qui signifie l’écrire suffisamment en avance pour qu’il y ait le temps d’une relecture et de corrections).

Au sujet du contenu:

  • décanter / situer

sachez expliquer et motiver la question que vous avez étudiée: d’où vient-elle, pourquoi on se pose cette question, quel était l’état de la science au début de votre stage, quels sont les travaux existants pertinents.

  • présenter

si vous avez 10 résultats, ne les présentez pas tous de façon détaillée, faites un « travail éditorial » de sélection; si vous en n’avez aucun, racontez ce qui aurait pu marcher, quelles pistes ont été tentées.

  • commenter la démarche

vous êtes encouragés à raconter dans votre rapport comment se sont passées les choses: les pistes qui n’ont pas marché, des interactions/collaborations avec votre encadrant et d’autres chercheurs dans le cadre du stage, des initiatives que vous avez prises.

  • ne mettez pas les aspects expérimentaux sous le tapis: si vous avez codé quelque chose de non ridicule, ou utilisé des outils, parlez-en (taille du  code, outils/langages utilisés, utilisations futures escomptées, choix d’implémentation, etc.).

Présentation

Informations préliminaires: les soutenances auront lieu les 5 et 6 septembre 2018, à l’ENS Lyon, dans les salles B1 et B2. 20 minutes de soutenance, suivies de 5 minutes de questions. Le planning est disponible ici.

Faites au moins deux répétitions! On vous coupera la parole brutalement au bout du temps imparti, et c’est une catastrophe si à ce moment-là vous n’avez pas encore abordé la partie 3 de votre expose qui en comporte 5. C’est aussi catastrophique si vous terminez au bout de 8 minutes. Mettez-vous la pression, faire une présentation propre/claire n’est pas un exercice qui s’improvise, et c’est très différent d’une discussion scientifique à bâtons rompus. Pour ce qui est du contenu de la présentation, mêmes remarques que pour le rapport. Cela ne sert a rien de noyer l’auditoire sous des tonnes de détails techniques. Tâchez de faire comprendre la question que vous avez traitée, et votre contribution, de façon compréhensible pour un auditoire non spécialiste, tout en évitant de trop glisser sous le tapis les choses plus techniques.

Points organisationnels : ayez vos transparents au format pdf sur une clef usb, pour le cas où il y aurait les sempiternels problèmes techniques pour la projection.  Ayez de quoi projeter vos transparents (nous fournissons le vidéoprojecteur, pas la machine). Une bonne solution consiste à vous mettre d’accord entre étudiants qui présentent à la même session, afin de partager un ordinateur, que l’on connecte pendant la pause qui précède la session).

Vous pouvez sauf cas particulier assister à la présentation de vos camarades, à partir du moment où ceux-ci sont d’accord.

Vous pouvez présenter en français ou en anglais, mais ne soyez pas prétentieux, n’optez pour l’anglais que si votre niveau le permet.

Cours pour non spécialistes

Bonjour à tous,

Dans le cadre de sa démarche d’interdisciplinarité, l’ENS de Lyon propose aux étudiants, enseignants et chercheurs une palette de cours pour non spécialistes d’un semestre, pour acquérir des compétences dans une discipline qui leur est étrangère et les outils indispensables à l’interdisciplinarité.

Plus que des conférences de sensibilisation, ces cours de base, qui peuvent être validés dans le cadre du Diplôme de l’ENS, permettent de comprendre les concepts et d’intégrer le langage et la culture d’une autre discipline.

Vous trouverez tous les détails pour les inscriptions et les programmes sur : http://www.ens-lyon.fr/cours-pour-non-specialistes/

Au programme de ce premier semestre par exemple , des cours sur le cancer et les maladies virales, la modélisation mathématique, les principes économiques fondamentaux ou encore l’utilisation des cartes géographiques… Inventez-vous votre propre parcours !

Ces cours ont lieu le lundi de 16h30 à 18h30.

Catherine Hänni
Chargée de mission pour l’interdisciplinarité à l’ENS de Lyon

Stages

Stages

Attention :

  1. Pour chaque étudiant et chaque stage, le choix du stage doit être validé par votre tuteur et la commission des études . Chaque étudiant doit donc soumettre son choix de stage à la date requise.
  2. Vous devez remplir une convention de stage avant de commencer votre stage de fin d’études. Renseignez-vous dans le secrétariat de votre établissement d’inscription. L’établissement d’une convention , dans les conditions idéales, prends 3 à 4 semaines avec les jeux des navettes entre l’ENS lyon, votre laboratoire d’accueil et Lyon 1.

Pour plus d’info sur les modalités, sujets, durée se référer aux pages spécifiques :

au bureau des stages monod ou à l’espace stage sur le portail des études.

Documents pour établir la convention de stage: à venir…

Calcul formel

Programme de l’UE :

  • Pgcd et pgcd étendu : algorithmes d’Euclide et d’Euclide étendu (coût algébrique, coût arithmétique, propriétés, …), algorithme quasi-linéaire de Knuth et Schonhage.
  • Algorithmes sur les polynômes : évaluation, interpolation. Arbre des produits. Algorithmes quasi-linéaires pour l’évaluation multi-points et l’interpolation.
  • Algorithmique de l’algèbre lineaire : pivot de Gauss (sur un corps), applications (calcul d’image, de noyau, de déterminant, systèmes linéaires), méthodes multimodulaires et relèvement de Hensel sur Z ou K[X].
  • Résultant, élimination ; application au calcul de l’intersection de deux courbes algébriques planes.
  • Factorisation des polynômes sur Z/pZ : algorithme de Berlekamp, de Cantor-Zassenhaus, relèvement de Hensel d’une factorisation.
  • Application aux codes correcteurs d’erreurs : codes de Reed-Solomon. Algorithmes de décodage, de décodage en liste.

Nota: programme incomplet — à titre d’indication, voici le programme du cours de l’an dernier:

  1. Évaluation en un point : schéma de Horner, interprétation en termes de division euclidienne, optimalité dans le modèle de complexité non scalaire (pgms straight-line).
  2. Multiplication : racines (primitives) n-ièmes, transformée de Fourier discrète (DFT) et sa version rapide (FFT), DFT inverse, multiplication de polynômes par FFT, algorithme de Schonhage et Strassen, fonctionM(n).
  3. Division euclidienne : calcul rapide du reste à partir du quotient, polynômes réciproques, itération de Newton pour l’inversion modulo x^n en O(M(n)), équivalence de complexité entre division et multiplication.
  4. Évaluation multipoint et interpolation : algorithme de Lagrange, algorithme quadratique, arbre des sous-produits et algorithmes quasi-linéaires (somme de fractions, evaluation, interpolation), cas d’une progression géometrique (algorithme de Aho, Steiglitz, Ullman).
  5. Pgcd et pgcd étendu : algorithmes d’Euclide et d’Euclide étendu (analyse de coût, propriétés, …), algorithme quasi-linéaire de Knuth et Schonhage.
  6. Évaluation polynômiale en arithmétique flottante : standard IEEE 754, notations pour l’analyse des erreurs d’arrondi, stabilité (directe, inverse), conditionnement, error-free transforms et algorithmes TwoSum et TwoProd,technique de compensation appliquée au schéma de Horner.
  7. Algorithmique de l’algèbre lineaire : pivot de Gauss (sur un corps, sur Z ou K[X]), applications (calcul d’image, de noyau, de déterminant, systèmes linéaires) méthodes multimodulaires
  8. Résultant, élimination ; application au calcul de l’intersection de deux courbes algébriques planes ; sous-résultants et applications à l’analyse des variantes de l’algorithme d’Euclide étendu sur Z[X]
  9. Rappels sur les corps finis ; factorisation des polynômes sur les corps finis : algorithme de Berlekamp, de Cantor-Zassenhaus
  10. Relèvement de Hensel d’une factorisation ; bornes sur les facteurs d’un polynôme à coefficients entiers. Algorithme de Berlekamp-Zassenhaus pour la factorisation des polynômes à coefficients rationnels.

Intervenants

Cours: Guillaume Hanrot et Jean-Michel Muller

TDs: Silviu Filip

Optimisation et programmation linéaire

Programme de l’UE :

  1. Les bases. Programme linéaire.
    Algorithme du Simplexe. Lemme de Farkas. Dualité. Ecarts complémentaires. Analyse de sensitivité.
  2. Programmation en nombres entiers.
    Polyèdres et Polytopes. Relaxation fractionnaire. Matrices totalement unimodulaires et TDI. Arrondis déterministes et aléatoires. Générations de coupes.
  3. Modélisation et applications classiques.
    Flots et réseaux de transport. Stratégies mixtes (jeux matriciels). Codes correcteurs. Compressed sensing.
  4. Extensions possibles.
    Ellipsoide. Oracles de coupe (Grotschel Lovasz Schrijver). Programmation semi-définie (Capacité Shannon, Fonction Theta, coupe minimum de Goemans et Williamson). Minimisation des fonctions sous-modulaires.

Intervenants

Cours: Stephan Thomassé

TDs: Guillaume Aupy

Cryptographie et sécurité

Programme de l’UE :

La cryptographie a pour objectif de sécuriser les communications, en présence de parties malhonnêtes. Cette discipline a de nombreux liens avec l’informatique théorique (théorie de la complexité, preuves de sécurité) mais également de nombreuses retombées pratiques : Les protocoles cryptographiques sont omni-présents dans la vie quotidienne (commerce électronique, cartes de paiement, vote électronique, etc).

Ce cours est une introduction aux différents aspects de la cryptographie contemporaine. Nous aborderons les thèmes suivants :

  • Chiffrement symétrique
  • Chiffrement asymétrique
  • Fonctions de hachage cryptographiques
  • Authentification
  • Générateurs pseudo-aléatoires
  • Preuves à divulgation nulle de connaissance
  • Infrastructure de clés publiques
  • Crytanalyse
  • Sécurité prouvée
  • Partage de secret

Nous décrirons également plusieurs applications pratiques des concepts théoriques développés : PGP, TLS/SSL, vote électronique.

Intervenants

Analyse de programmes et vérification de systèmes

Programme de l’UE :

  1. Structures ordonnées
    Ordres et topologies. Points fixes. Approximations et correspondances de Galois. Domaines de Scott
  2. Sémantiques dénotationnelles
    Domaines d’interprétation. Sémantique directe et par continuations.

    Correction et complétude de la Sémantique Axiomatique.
  3. Analyse de programmes
    3.1. Analyses dynamique et statique. Systèmes de types.

    3.2. Interprétation abstraite : principes, élargissement/rétrécissement,
    analyses avant et arrière, analyse polyédrale.
  4. Vérification
    4.1. Logiques modales. Structures de Kripke. Model checking.

    4.2. Systèmes réactifs. Logiques temporelles LTL et CTL.

Intervenants

Algorithmique et programmation parallèles

Programme de l’UE

Le parallélisme est devenu incontournable en informatique, le moindre processeur étant multi-cœurs. Cette UE a pour objet la conception d’algorithmes parallèles efficaces et leur mise en œuvre pratique.
Les séances de cours auront pour objet les modèles théoriques utilisés pour la conception et l’analyse des algorithmes et l’étude de problèmes algorithmiques particuliers (complexité, définition et analyse d’algorithmes, algorithmes d’approximations, etc.).
Les séances de cours seront accompagnées de six séances de TDs et de six séances de TPs. Les TPs auront pour but l’initiation à la programmation parallèle par passage de messages (MPI).

Plan indicatif des cours:

– Modèle théorique des réseaux de tri
– Modèle théorique des PRAMs
– Algorithmique sur anneau et grille de processeurs: produit matrice-vecteur, produit matrice-matrice, stencil 2D, etc.
– Ordonnancement de graphes de tâches avec et sans communications, avec ou sans contraintes de ressources: complexité, algorithmes d’approximations et heuristiques
– Analyse de dépendance et parallélisation automatique
– Exemple d’algorithme pour GPU

La note de contrôle continu est établie à partir d’un partiel organisé en milieu de semestre et d’un devoir à la maison de programmation.

Intervenants

Evaluation de performance

Programme de l’UE

L’objectif principal de ce cours est de présenter les techniques de base servant à l’évaluation qualitative et quantitative des performances de systèmes de communication et informatiques. L’accent sera mis sur les aspects théoriques mais sera illustré par l’analyse de plusieurs exemples de systèmes réels (réseaux de communication, de transport, de logistique). Ce cours comprendra aussi une introduction aux statistiques et abordera des questions de méthodologie expérimentale.

Plan indicatif :

  1. Rappels de probabilités
  2. Schémas de simulation & génération aléatoire
  3. Chaînes de Markov à temps discret
  4. Chaînes de Markov à temps continu & Files d’attente
  5. Processus de décision markoviens
  6. Réseaux de Petri
  7. Statistiques

Intervenants

Pré-requis

  • Des connaissances élémentaires de probabilités sont fortement recommandées (typiquement cf le cours « Probabilités » du L3 Informatique dont le contenu est décrit dans les pages L3)

Compilation

Programme de l’UE

Le compilateur est un outil fondamental pour l’informaticien, qui se situe au coeur de tout développement informatique. Le but de ce cours est de donner aux étudiants une compréhension globale du fonctionnement d’un compilateur en présentant les aspects fondamentaux de la compilation de code natif pour les langages impératifs et à objets. Un accent particulier sera mis sur les méthodes d’analyse sémantique et d’optimisation de programmes utilisées dans les compilateurs récents (icc, gcc, etc). Ces notions de base seront complétées par un panorama des développements récents de la recherche dans le domaine. Enfin, on insistera sur la mise en oeuvre logicielle des différents aspects de la compilation à travers l’écriture d’un compilateur pour un langage impératif simple dans le cadre des travaux pratiques.

Voir la page www du cours.

Plan indicatif du cours

  1. Analyse lexicale
    Automates finis, théorie des analyseurs lexicaux, optimisations, outil Lex.
  2. Analyse syntaxique
    Grammaires algébriques, analyse descendante/ascendante, gestion des erreurs, outil Yacc.
  3. Grammaires attribuées
    Evaluation dynamique, test de Kennedy-Warren, grammaires S-attribuées, schémas de traduction.
  4. Compilateur simple
    Organisation de la mémoire, traduction dirigée par la syntaxe, algorithme de Sethi-Ullman.
  5. Fonctions
    Activations, pile de controle, conventions d’appel, fonctions imbriquées.
  6. Production de code intermédiaire
    Représentations intermédiaires, forme SSA, optimisations élémentaires.
  7. Sélection d’instructions
    Pavage, complexité, programmation dynamique, algorithme de Koes & Goldstein
  8. Allocation de registres
    Interférences, coalescing, complexité, algorithmes « historiques » (Chaitin, Briggs), algorithmes de référence (IRC, Linear scan).
  9. Analyse de programme
    Analyse statique/dynamique, complexité, analyse de flot de données, exemples, limites.
  10. Compilation polyédrique
    Contrôle statique, opération, analyse de dépendences, ordonnancement, génération de code.
  11. Compilation des langages à objet
    Descripteurs, liaison dynamique, résolution des méthodes abstraites, héritage multiple.

Références

  1. Modern compiler implementation in C. Andrew Appel. Cambridge press.
  2. Compilers: principles, techniques and tools. Alfred Aho, Monica Lam, Ravi Sethi et Jeffrey Ullman. Interéditions.
  3. Parsing theory, volumes I et II. Seppo Sippu and Eljas Soisalon-Soininen. EATCS Monographs on Theoretical Computer Science.
  4. Principles of program analysis. Flemming Nielson, Hanne Riis Nielson, Chris Hankin. Springer.
  5. Theory of linear and integer programming. Alexander Schrijver. Wiley.

Intervenants

Systèmes distribués

Résumé

Cet enseignement se focalise sur les aspects algorithmiques des systèmes distribués (ou répartis). La mise en œuvre d’algorithmes distribués pour résoudre les problèmes de communication, d’allocation de ressources et de synchronisation seront abordés. Ainsi les  les problèmes d’élection de leader, les algorithmes à vagues, la détection de terminaison, les algorithmes de routages, la tolérance aux fautes, l’auto-stabilisation, etc. sont autant d’illustrations des points qui seront abordés dans cet enseignement. Différents types de mise en oeuvre de systèmes distribués seront également abordés au travers d’ERLANG, de CORBA ou encore de l’intergiciel DIET.

Intervenants

  • Eddy Caron, MdC ENS Lyon
  • Vincent Lanore, doctorant ENS Lyon

Langue

Anglais ou Français en fonction de la demande.