Année 2009
·
Présentation
et objectifs du cours
Le qcm de l'examen et
son corrigé et le texte de l'examen et une sorte de corrigé.
Le premier qcm avec corrigé. Et résultats.
Le deuxième qcm et les résultats
le troisième qcm et les résultats (notes finales)
Ce cours est une introduction à la programmation en Java. Les objectifs du cours sont :
· Structures de données en Java (tableaux, notions de classes, d’objets et références). Cependant la programmation objet et en particulier la liaison dynamique ne sera introduite que partiellement.
1. Rappels et compléments Java
·
Structures de
contrôles
o
Conditionnelles,
boucles, méthodes
·
Structures de données
o
Types primitifs
o
Tableaux
o
Classes-objets (sans héritage)
·
Références, créations d’objets, copie d’objets, comparaison
·
Passage
de paramètres et références
2.
Tableaux, boucles et invariants
o
Tableaux
à plusieurs dimensions
o
Pré, post conditions, Invariants
o
Exemples
: tri par insertion, tri par sélection, tri bulle
3.
Notions élémentaires de complexité
o
Généralités,
grand O, grand theta, pire-cas, meilleur-cas, moyenne
o
Logarithmique, linéaire, quadratique… faisable infaisable
o
Exemples : recherche linéaire recherche dichotomique. Tris
simples
o
Exemples
: tris
4.
Récursion
o
Principes
généraux
o
Diviser pour régner
o
Tour de Hanoï (non traité)
o
Quick-sort
o
Tri
–fusion
5.
Structures de données et introduction aux types abstraits de données
·
Structures
récursives:
o
Listes
o
Piles
o
Piles et récursion (non-traité)
o Arbres (non
traité)
o Applications
aux expressions arithmétiques
·
types abstraits de données et interfaces Java: exemple des
Piles
o Type abstrait
de données
o Interface
o Notion
d'héritage
·
Quelques utilisations des piles:
o
expressions arithmétiques:
§ formes infixes,
préfixes, postfixes
§
évaluation
des expressions postfixes avec une Pile
6.
Quelques compléments Java (n’a pas été traité cette année)
§
Généricité
en Java
§ Introduction à
la programmation objet java
§
Collections
§ Il existe de très nombreux ouvrages sur Java :
The Java Programming language fourth
edition Addison-Wesley Ken Arnold, James Gosling, David Holmes
§ Sur l’algorithmique en général il existe aussi de nombreux ouvrages. On conseille (mais ce livre va bien au-delà du cours)
Algorithmes en Java (3ème édition) Pearson R. Sedgewick
§ L’enseignement est organisé en Cours TD et TP: La responsable est Hugues Fauconnier (Hugues.Fauconnier [at] liafa.jussieu.fr). L'enseignement a lieu au deuxième semestre et comporte deux heures de cours, deux heures de Travaux dirigés et deux heures de Travaux pratiques.
|
Jour |
Heure |
Salle |
|
Vendredi |
10h30-12h30 |
Amphi 13E |
§ TDs :
|
Jour |
Heure |
Salle |
Enseignant |
groupe |
|
Lundi |
10h30-12h30 |
125C |
David Duris |
In1 |
|
Lundi |
10h30-12h30 |
164E |
Jaap Boender Jaap.Boender[at]pps.jussieu.fr |
In2 |
|
Mercredi |
10h30-12h30 |
122C |
Yann Stozecki strozecki[at]logique.jussieu.fr |
In3 |
|
Mercredi |
10h30-12h30 |
164E |
Yan Jurski Yan.Jurski[at]liafa.jussieu.fr |
In4 |
|
Jeudi |
8h30-10h30 |
124C |
Tahina Ramananandro
Tahina.Ramananandro[at]normalesup.org |
In5 |
|
Vendredi |
8h30-10h30 |
314B |
Cédric Herpson Cedric.Herpson[at]lip6.fr |
MaIn |
· TPs ;
|
Jour |
Heure |
Salle |
Enseignant |
groupe |
|
Jeudi |
10h30-12h30 |
Script S 5X |
David Duris duris[at] |
In1 |
|
Lundi |
16h30-18h30 |
Script S 5X |
Jaap Boender Jaap.Boender[at]pps.jussieu.fr |
In2 |
|
Vendredi |
8h30-10h30 |
Script S 5X |
Yann Stozecki strozecki[at]logique.jussieu.fr |
In3 |
|
Mardi |
14h30-16h30 |
Script S 4G |
Yan Jurski Yan.Jurski[at]liafa.jussieu.fr |
In4 |
|
Jeudi |
14h30-16h30 |
Script S 5X |
Tahina Ramananandro
Tahina.Ramananandro[at]normalesup.org |
In5 |
|
Mercredi |
10h30-12h30 |
Script S 5N |
Cédric Herpson Cedric.Herpson[at]lip6.fr |
MaIn |
· Contrôle continu :
o
Trois QCM
pendant le cours
o
Un
ou deux TP-TD notés
·
Examen final
·
Note
finale= max (50% examen+50% contrôle continu, examen)
· Les vacances de printemps ont lieu du 13 au 24 avril
·
Les
enseignements se terminent le 7 mai (mais il est possible qu’il y ait un
rattrapage le 11 ou 12 mai)
·
Examens entre
le 18 et le 29 mai
·
Soutien du 2
juin au 12 juin
·
Deuxième
session du 15 au 27 juin
|
date |
Résumé du cours |
Remarques |
Documents pour ce cours |
|
30 janvier |
IntroductionClasses et objets |
Exemple : compte bancaire. |
Les exemples : Programmes java : |
|
6 février |
Suite de l’exemple. On a abordé : · Notion de classe et d’objet ·
Constructeurs ·
Références :
types primitifs/ types références ·
Méthodes de
classe ou d’instance ·
Variables
de classe variables d’instance |
Les exemples sont les même que ceux de la semaine dernière |
Résumé rapide des notions abordées dans le cours |
|
13 février |
pas de cours |
|
|
|
20 février |
classes et objets, Encapsulation, Passage de paramètes des méthodes Méthode toString et introduction à la porgrammation objet, tableaux |
La partie sur les tableaux n’a été traitée que partiellement |
|
|
27 février |
Introduction à la complexité : Ordre de grandeur, grand 0, logarithme, linéaire, quadratique, exponentielle, Recherche linéaire recherche dichotomique |
|
|
|
6 mars |
notions d’invariants, précondition postcondition |
|
|
|
13 mars |
constructions d’algorithmes de tri par invariant (tri par sélection, tri par insertion, tri bulle) qcm en fin du cours |
||
|
20 mars |
récursion : expressions, diviser pour régner |
|
|
|
27 mars |
diviser pour régner : recherche dichotomique Tri fusion évaluation du tri fusion |
Des exemples d’application de diviser pour régner : |
|
|
3 avril |
tri fusion : évaluation quick sort structures récursives : listes chainées Class Object |
|
|
|
10 avril |
Structures récursives : Listes La classe Object Exemple de listes : tri par insertion Introduction aux types abstraits de données : exemple des piles |
|
|
|
|
|
|
|