Advanced Lectures on Operating systems

  • Bases de Unix au niveau sécurité.
  • Sécurité des systèmes d'exploitation.
  • Sécurité des applications.
  • Aspects de sécurité liés aux réseaux.
  • Moyens de lutte contre diverses nuisances (virus, spam).
  • Cryptographie et sécurité.
  • Questions d'actualité.

L'objectif du cours de Fonctionnement des Ordinateurs est l'introduction des concepts de base de l'architecture des ordinateurs.

Le cours commence par étudier comment les nombres sont représentés dans un ordinateur (représentations binaire, en complément à 2, à virgule flottante). Le cours se penche ensuite sur le fonctionnement des circuits logiques (combinatoires et séquentiels) et sur l'implémentation d'opérations élémentaires telles que l'addition de nombres par de tels circuits. L'architecture complète d'un processeur est ensuite introduite, en se basant sur l'architecture des processeurs MIPS, mise en oeuvre notamment dans la PlayStation de Sony ainsi que dans de nombreux modem-routeurs. Le cours montre comment chaque opération élémentaire réalisable par un processeur (instruction) peut être implémentée à l'aide de circuits logiques. De même, il explique comment des programmes en langage de haut-niveau sont traduits dans le langage du processeur (langage d'assemblage et langage machine).

Les mots-clé du cours sont: représentation binaire et en virgule flottante, unité arithmétique et logique (ALU), portes logiques, jeu d'instructions, langage d'assemblage et langage machine, registre, SRAM versus DRAM, processeur, mémoire cache, mémoire virtuelle, pipeline, compilation, éditeur de lien, objet re-positionnable, librairie, interruption, appel système

Le cours de Programmation et Algorithmique II permet aux étudiants de

  • Concevoir et comprendre des algorithmes et leur mise en oeuvre sous forme de programmes informatiques.
  • Comprendre et appliquer le paradigme de programmation orienté objet
  • Maîtriser les concepts de classe, instance, objet, méthode, interface, encapsulation, polymorphisme, héritage, composition, surcharge, early/late binding
  • Ecrire et comprendre un programme en langage Java.
  • Analyser la performance d'un algorithme (complexité algorithmique).
  • Utiliser quelques design patterns.
  • Comprendre et mettre en oeuvre des structures de données simples (listes chaînées, tableaux, tables de hachage).

Le projet consiste en un travail individuel comptant pour 15 ECTS, à effectuer normalement dans une équipe de recherche de l'université. Il s'agit donc d'un premier travail conséquent où l'étudiant est amené à se documenter et s'informer, apprendre de nouveaux concepts et outils, faire preuve d'indépendance et d'initiative, et gérer convenablement son temps.

Dans le cadre du projet : recherche bibliographique et lecture d'articles scientifiques en rapport avec le projet, rédaction du rapport de projet.

L'objectif du cours de Réseaux est l'introduction des concepts de base des réseaux informatiques.

Le cours est axé sur les principes mis en oeuvre dans le réseau Internet. Le cours est organisé selon une approche top-down. Cela signifie que le cours commence par discuter du fonctionnement des applications réseau connues par les étudiants telles qu'un navigateur Internet ou un client mail. Le cours explique ensuite de quoi dépendent les performances des communications entre applications, comment il est possible de réaliser une communication fiable entre applications en présence d'un lien de communication non fiable, comment les chemins au travers d'un réseau sont calculés de façon distribuée par les équipements du réseau, etc.

Les mots-clé du cours sont: bande-passante, délai, gigue (jitter), adresses MAC et IP, port, protocole de transport, protocoles de routage à état de lien (link-state), à vecteur de distance (distance-vector) et à vecteur de chemin (path-vector), HTTP, FTP, SMTP, POP, IMAP, DNS, UDP, TCP, ICMP, IP, DHCP, Ethernet, ARP, Token-Ring, OSPF, RIP, BGP

L'objectif du cours de Réseaux I est l'introduction des concepts de base des réseaux informatiques.

Le cours est axé sur les principes mis en oeuvre dans le réseau Internet. Le cours est organisé selon une approche top-down. Cela signifie que le cours commence par discuter du fonctionnement des applications réseau connues par les étudiants telles qu'un navigateur Internet ou un client mail. Le cours explique ensuite de quoi dépendent les performances des communications entre applications, comment il est possible de réaliser une communication fiable entre applications en présence d'un lien de communication non fiable, comment les chemins au travers d'un réseau sont calculés de façon distribuée par les équipements du réseau, etc.

Les mots-clé du cours sont: bande-passante, délai, gigue (jitter), adresses MAC et IP, port, protocole de transport, protocoles de routage à état de lien (link-state), à vecteur de distance (distance-vector), à vecteur de chemin (path-vector), HTTP, FTP, SMTP, POP, IMAP, DNS, UDP, TCP, ICMP, IP, DHCP, Ethernet, ARP, Token-Ring, OSPF, RIP, BGP

L'objectif du cours de Réseaux II est la présentation et la discussion d'aspects avancés des réseaux informatiques, en particulier des problèmes liés à la recherche dans ce domaine.

A cet effet, un petit nombre de thématiques sont couvertes par ce cours.

  • L'architecture du routage Internet et son évolution. En particulier, le fonctionnement du protocole standard BGP.
  • La "nouvelle" version du protocole IP (IPv6), son système d'adressage et les mécanismes d'auto-configuration.
  • Les communications sans fil, les standards tels que IEEE 802.11 et les problèmes de mobilité dans IP.
  • Les réseaux de capteurs sans fil et l'Internet des Objets. Comment les contraintes énergétiques mais également les ressources limitées de calcul et de mémoire des systèmes embarqués imposent de revoir l'ensemble de la pile réseau.
  • L'ingénierie des réseaux, l'acheminement par label (MPLS), les réseaux privés virtuels (VPNs) et la qualité de service (QoS).

Par ailleurs, les étudiants qui suivent ce cours sont invités à lire, comprendre en profondeur et présenter un article scientifique récent.

Génération de nombres aléatoires suivant une loi uniforme. Tests des séquences générées. Génération de nombres aléatoires suivant une loi non uniforme.