Types de données et objets Java

(IF2)

Licence d’informatique et math-info

Année 2009

 

 

·        Présentation et objectifs du cours

·        Bibliographie

·        Organisation

·        Validation

·        Calendrier

 

Nouvelles :

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)

 

 

 

 

 

Présentation et objectifs :

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.

 

 

Plan du cours :

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

 

 

 

 

Bibliographie

§  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

 

 

Organisation

 

           

§  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 
duris[at]logique.jussieu.fr

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]
logique.jussieu.fr

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

 

Validation :

·         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)

                       

                       

Calendrier :

·         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

Introduction 

Classes et objets

Résumé du cours

 

Exemple : compte bancaire.

Les exemples :

Compte.html

Identite.html

Main.html

Programmes java :

Compte.java

Identite.java

Main.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

Quelques exemples de programmes sur les tableaux

Résumé du cours

Résumé de la partie sur les tableaux

27 février

Introduction à la complexité :

Ordre de grandeur, grand 0, logarithme, linéaire, quadratique, exponentielle,

Recherche linéaire recherche dichotomique

 

recherche linéaire et recherche dichotomique

Résumé du cours sur la complexité

6 mars

notions d’invariants, précondition postcondition

 

Résumé du cours

13 mars

constructions d’algorithmes de tri par invariant (tri par sélection, tri par insertion, tri bulle)

qcm en fin du cours

les tris vus en cours 

Résumé du cours

20 mars

récursion : expressions, diviser pour régner

 

Résumé du cours

27 mars

diviser pour régner : recherche dichotomique

Tri fusion évaluation du tri fusion

qcm en fin du cours

les tris

TriFusion.java

Des exemples d’application de diviser pour régner :

recursion.java

Hanoi.html

Hanoi.java

Regle.html

Regle.java

Carre.html

Regle.java

Résumé du cours

3 avril

tri fusion : évaluation

quick sort

structures récursives : listes chainées

Class Object

 

les tris

 

Résumé du cours

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

 

qcm3.pdf

Noeud

tri par insertion

Liste et récursion et

Pile

 

Résumé du cours