Semestre 4 – Système 1 et Interfaces graphiques

Objectifs

Système 1

Acquisition des connaissances de base sur le fonctionnement d’un système d’exploitation (ordonnancement processus/mémoire/fichier, communication, POSIX IPC).

Interfaces graphiques

Ce cours est une première introduction à la conception d’interfaces graphiques.

Il s’agit surtout de montrer une étape supplémentaire du développement d’application : la communication homme-machine. Les étudiants seront initiés à la programmation événementielle.

Prérequis

Système 1
  • Architecture 1 du semestre 3
  • Langage C
Interfaces graphiques
  • Algorithmique et Programmation 1 du semestre 1.
  • Algorithmique et Programmation 2 du semestre 2.
  • Algorithmique et Programmation 3 du semestre 3.
  • Programmation avancée du semestre 3.

Contenu pédagogique de l’UE

Système 1
  • Composants et rôles généraux d’un système d’exploitation.
  • Processus (création, pile d’exécution…).
  • L’ordonnancement : allocation du processeur (contraintes, stratégies, étude de cas Unix/Linux).
  • Gestion de la mémoire (mémoire virtuelle, pagination à la demande).
  • Les systèmes de gestion de fichiers (Unix, Linux, Windows).
  • Gestion des entrées/sorties (interruption, buffer cache…)
  • Mise en œuvre sous Unix/Linux (POSIX) : création de processus, signaux, tube, files à messages (mécanisme IPC)
  • Enchaînement/communication d’applications (fichiers, pipe, script-shells…)
Interfaces graphiques

Deux approches seront étudiées : l’utilisation d’une bibliothèque s’appuyant sur le langage de programmation vu dans les cours de programmation antérieur (Gtk+ si le langage C est utilisé comme support, Swing si le langage Java est utilisé comme support) pour programmer une interface et l’utilisation d’un concepteur d’interfaces permettant une création par manipulation directe (Glade pour Gtk+, netbeans ou eclipse pour Swing).

  • Présentation de la bibliothèque
  • Les bases de la programmation d’interfaces graphiques : l’approche événementielle
  • Les composants d’interface
  • Création d’interfaces par manipulation directe : le concepteur d’interfaces

Les étudiants seront amenés à concevoir de petites applications graphiques puis progressivement à transformer une application non graphique, non événementielle en une application graphique événementielle.

Il s’agira de faire évoluer des programmes étudiés dans les cours d’algorithmique et programmation vers des applications donnant plus de place à l’utilisateur.

Exemple de réalisation

Projet « Démineur » : jeu développé individuellement, en langage java, pour « Interfaces graphiques ».

Nicolas