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)
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 20Littérale/grade réduitPour 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 obligatoire si :
- Note initiale < 10
- le rattrapage peut être demandé par l'étudiant si :
- Note initiale < 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