Cours donnés par des enseignants d'autres sections

CONCEPTS ET LANGAGES ORIENTÉS OBJETS

12X003

Enseignant

J.-L. FALCONE

Période

Semestre de printemps

Crédits ECTS
4
Pré-requis
expérience en programmation (env. 3 semestres) ; connaissance d’un langage statiqueemnt typé (C, Scala , Swift, etc.) et de la syntaxe de base du C ou d’un langage apparenté (Javascript, C#, PHP, etc.)
Évaluation
examen oral et TP évalués
Sessions d’examen
juin - septembre
01

Volume d’enseignement

Heures de cours par semaine et par période
PériodeCoursExercicesTPTotal
Par semaine22None4
Par semestre2828None56

Cours

2par semaine

28par semestre

Exercices

2par semaine

28par semestre

TP

Nonepar semaine

Nonepar semestre

Total

4par semaine

56par semestre

02

Objectifs

Fleuron du génie logiciel des années 80-90, la programmation dite orientée-objet est devenue incontournable. En effet, presque tous les langages de programmation créés ces 30 dernières sont définis comme étant orientés-objet. Cependant si l’on compare les capacités de ces langages et leur utilisation, on se rend compte que l’étiquette d’orienté objet recoupe des réalités et des usages relevant de compréhensions très différentes, voire incompatibles.

Pour y voir plus clair parmi les différents concepts et définitions de la programmation orientée-objet, le cours se concentrera sur le langage Java. De la programmation à la modélisation, les notions principales seront abordées par le biais d’exemples pratiques et réels (cf. contenu). Elles seront ensuite généralisées et comparées avec leur implémentation dans d’autres langages orientés-objet (Swift, python, javascript, smalltalk. . . ) afin de dégager des principes plus généraux.

Après avoir suivi ce cours, les étudiant-e-s seront capables de :

Programmer en Java. Expliquer les principes et les constructions de l’approche orientée-objet. Concevoir et organiser un programme selon l’approche orientée objet.

03

Contenu

Langage Java : environnement, types, syntaxes, librairie standard. Concepts théoriques : encapsulation, abstraction, polymorphismes, généricité. Concepts pratiques : classes, instances, interfaces, héritage, types génériques. Modélisation : analyse, diagrammes UML.

Les notions ci-dessus ne figurent pas dans l’ordre où elles seront abordées. Documentation : Copie des slides PPT et ouvrages de référence. Préparation pour : Génie logiciel.