Adaptation : Introduction à l’objet et aux systèmes d’exploitation et microprocesseur
Présentation
Pour la partie Introduction à l’objet, ce cours permet de rattraper l'UE Java 1 de L2, pré-requis de l'UE Java 2 de L3. Ce cours d'initiation aborde trois concepts fondamentaux de la programmation objet : l'encapsulation, la composition et l'héritage. Le langage Java sert de support à l'apprentissage par la mise en pratique de ces concepts.
L'UE est organisée en 3 leçons comportant chacune une séance de travaux dirigés et une à deux séances de travaux pratiques :
- Encapsulation : modèle de données structurées, enfouissement, initialisation, consultation, mise à jour, interface d'interactions
- Composition : références d'objet, changement d'état, interaction, délégation
- Héritage : extension de structure, extension de comportement, mise à jour de comportement, liaison dynamique, polymorphisme
Pour la partie systèmes d’exploitation et microprocesseurs,
Le cours débute par une description de l’architecture des ordinateurs et du fonctionnement d’un processeur basique. Dans un second temps, le rôle et les fonctionnalités d’un système d’exploitation sont précisés, puis la notion de processus en tant que support de l’exploitation multi-tâches, est présentée.
Ce cours couvre les pré-requis nécessaires pour suivre l’UE “Architecture et Système 2” du niveau L3 :
- Machine à programme enregistré, processeurs séquentiels
- Langage machine et assembleur (Intel64)
- Fonctions et structure générale des systèmes d’exploitation
- Notion de processus, gestion des ressources partagées par sémaphore
Pré-requis nécessaires
Pour aborder ce cours, il est utile d'avoir déjà programmé dans un langage de programmation procédural et d'avoir un minimum de connaissances sur :
- les types, les variables, les opérateurs
- les instructions de contrôle (appels, boucles, conditionnelles)
- l'algorithmique élémentaire (tri, recherche de max, calcul, etc.)
- les éléments constitutifs d’un ordinateur
Objectifs
Partie Introduction à l’objet
L'objectif est triple :
- mettre en évidence l'intérêt essentiel de la programmation objet, i.e. sa nature intrinsèquement modulaire et extensible
- donner les premiers éléments méthodologiques de conception qui permettent de déterminer les objets utiles à la réalisation d'un programme en précisant leurs responsabilités et leurs interactions
- consolider la maîtrise du langage Java, de ses constructions élémentaires, et de son API standard
Compétences visées
Partie Introduction à l’objet
- Traduire la spécification d'un programme en système d'objets en assignant des responsabilités.
- Concevoir un programme à la fois ouvert à l'extension et fermé à la modification.
- Mobiliser à bon escient les constructions du langage Java et de son API.
Partie Systèmes d'exploitation et microprocesseurs
- Comprendre comment les services fournis par le matériel d’un ordinateur sont rendus accessibles aux applications numériques.
- Etre sensibilisé à la problématique du partage des ressources matérielles d’un ordinateur entre plusieurs applications.
Bibliographie
Partie Introduction à l’objet
- Mickaël Kerboeuf : Fondements de la programmation orientée objet avec Java 8. Références Sciences, Ellipses, décembre 2016, ISBN 9782340014824.
- Mickaël Kerboeuf : Algorithmique et programmation objet. Références Sciences, Ellipses, mai 2020, ISBN 9782340037984.
- James Gosling, Bill Joy, Guy Steele et Gilad Bracha : The Java(TM) Language Specification (3rd Edition). Addison-Wesley Professional, 2005, ISBN 0321246780.
- Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides : Design Patterns, Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., 1995, ISBN 0-201-63361-2.