v2.11.0 (6076)

Cours scientifiques - CSC_3X071_EP : Mécanismes de la programmation orientée-objet

Domaine > Informatique.

Descriptif

Ce cours présente les mécanismes avancés des langages de programmation, en particulier les traits orientés-objet de Java. Les fonctionnalités du langage sont présentées et utilisées dans des TDs de programmation. Leur fonctionnement est détaillé en montrant comment elles sont traduites, ou compilées, vers une machine abstraite. Cette approche permet également une ouverture vers l'architecture des ordinateurs.

Ce cours s'adresse aux élèves de première année ayant déjà acquis quelques connaissances en informatique avant leur entrée à l'École.

Niveau requis : Une aisance minimale en programmation, impérative ou fonctionnelle, ainsi qu'en algorithmique de base, est requise.

Modalités d'évaluation : Les étudiants sont évalués par un écrit de 2h, en fin de cours avec une modulation par contrôle continu en TDs.

Langues du cours : Français ou anglais

Objectifs pédagogiques

  • Connaitre et utiliser l'ensemble des fonctionalités de Java (à l'exception des threads)
  • Connaissance fine de l'utilisation de la pile (évaluation d'expression, fonctions...)
  • Programmer des structures de données classiques (files, files de priorité, piles, arbres, tableaux redimensionnables...) en utilisant l'orienté-objet et l'encapsulation
  • Savoir décrire la preprésentation mémoire de ces structures
  • Utiliser l'héritage
  • Savoir comment les programmes Java sont traduits en langage machine
  • Diférencier les phases de compilation (analyse syntaxique, génération de code)
  • comprendre et utiliser les optimisations de compilation
  • Utiliser une bibliothèque d'interface graphique
  • prouver des propriétés de programme (logique de Hoare)

3 heures en présentiel (10 blocs ou créneaux)

54 heures de travail personnel estimé pour l’étudiant.

Diplôme(s) concerné(s)

Pour les étudiants du diplôme Titre d’Ingénieur diplômé de l’École polytechnique

  • Familiarité avec la programmation (n'importe quel langage)
  • Connaissance d'un peu d'algorithmique, savoir calculer une complexité moyenne

Format des notes

Numérique sur 20

Littérale/grade réduit

Pour les étudiants du diplôme Titre d’Ingénieur diplômé de l’École polytechnique

Vos modalités d'acquisition :

  • Examen final 
  • Exercices (TDs)
  • quiz

Le rattrapage est autorisé (Max entre les deux notes)
  • le rattrapage est obligatoire si :
    Note initiale < 10
  • le rattrapage peut être demandé par l'étudiant si :
    Note initiale < 10
L'UE est acquise si Note finale >= 10
  • Crédits ECTS acquis : 4 ECTS

La note obtenue rentre dans le calcul de votre GPA.

Programme détaillé

  • Noyau Impératif
  • Machine abstraite et traduction du code source
  • Les appels de fonctions et leur compilation
  • Structures de données simples (objets sans méthodes), représentation mémoire (le tas)
  • Encapsulation de structures de données
  • Méthodes
  • Tableaux redimensionnables
  • Tables de hachage
  • Héritage
  • L'algorithme de Shunting-Yard
  • Interfaces graphiques
  • Threads
  • Logique de Hoare

Mots clés

langage de programmatio, Java, orienté-objet, code machine, machine abstraite, JVM, méthodes, algorithmique, structures de données

Méthodes pédagogiques

Cours magistraux vidéo, exercices de programmation
Veuillez patienter