NFP121

Programmation Avancée (6 crédits)

an 11- an 12

Avertissements :
  • pour suivre avec profit cette UE il faut suivre régulièrement le cours (1h30 + 1h de compléments, présentation du TP de la semaine), un TD (1h30) et rendre régulièrement des travaux hebdomadaires (TP)

  • les documents associés aux cours (au format PDF) sont accessibles sur le net au fur et à mesure du déroulement du cours (cf. ci-dessous).

L'activité de programmation étant primordiale dans ce cours, les TD seront des TP/TD comportant :

  • une partie de spécification d'un exercice (en séance au cnam)

  • une partie de réalisation d'un exercice (sur machine "à la maison").

  • Le travail réalisé sera rendu chaque semaine sur le web sous deux formes. 

    • un projet Java qui sera testé automatiquement
    • une page html de compte rendu du travail réalisé.
  • pour participer à ces TP il faut d'abord vous identifier par votre nom (en CAPITALES de préférence) et votre matricule cnam (qui vous servira de password, et vous identifiera pour les points de bonus) : pre_inscription aux tp

Les TP seront réalisés par défaut avec 'BlueJ version > 2.5.2' en Java 1.6.

Unité en FOD Nationale au second semestre début des cours le 6 Mars

Consultez régulièrement le forum

Les Travaux Pratiques 2012

Les Exercices Dirigés en salle du premier semestre 2011
 

Annales...

Programme (NFP 121 - Programmation Avancée 2012 en FOD)


1. 6/03/12 Introduction, vocable, les essentiels :

classes, instances,
visibilité, héritage,
spécialisation, surcharge

2.  13/03/12 Une Classe, et les aspects impératifs du langage :
          pas de nouveaux exercices proposés (cf. 1)

Classes abstraites, interfaces, classes internes, classes anonymes,
méthodes, passage de paramètres,
instructions, exceptions, assertions

3.  20/03/12 Interfaces, plusieurs Classes, introduction au "Design Pattern"

Héritage, liaison dynamique,
Paquetages, les patrons "adapter" et "proxy"

4.1 27/03/12 Programmation évènementielle

Patron Observateur/Observé,
IHM, Applet, MVC
application des classes internes, anonymes et des adaptateurs

4.2 06/04/12 Swing (uniquement les transparents 56 à 72)

IHM, JApplet, MVC

5-1. 13/04/12 Collections

Les Collections : traitement de manière uniforme tous les agrégats d'éléments
Quelques patrons : Itérator, Template Method et Fabrique

5-2. 13/04/12 néricité

Généricité : typage plus rigoureux, à faire : ce QUIZ sur la généricité

6.  04/05/12 Structures de données et Patterns de conception

Les patterns : composite, visiteur, décorateur, commande,.. ...

7.  11/05/12 Introspection et réflexivité en Java

Typage dynamique, les Java Beans, l'outil BeanBox

8.  18/05/12 Programmation des Entrées/Sorties

Les Apis I/O et le Pattern Décorateur. Clients au protocole TCP

9. 25/05/12 XML et JAVA

SAX et JDOM

10. 1/06/12 Injection de dépendance

A la recherche du couplage faible, séparation de la configuration et de l'utilisation

11.  8/06/12 Expressions Régulières

la méthode split, la classe Scanner, les opérateurs avides, réticents et possessifs

12  15/06/12 Programmation Concurrente

La classe Thread, l'instruction synchronized

13  22/06/12 Programmation Concurrente et Révisions

Les variables conditions, les méthodes wait et notify, le patron Singleton revisité

 

 

 

14 Révisions en Web Conférence

Parcours des patrons vus en cours et/ou en ED, échantillon de questions ...



 

Une suite Java possible au Cnam :

 

 

 

 

 

 

Programme prévisionnel
 


 

 

xx  Programmation Concurrente

Serveurs au protocole TCP

xx  Programmation par contrats

Pré et post assertions, héritage, usage de Jass et jass-modern (annotations), syntaxe JML

1x. OCL.
         Tranparents : 1 par feuille , 2 par feuille

1x. Expressions Régulières.
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille

xx.  JVM (Java Virtual Machine)

xx.   Révisions

xx  MVC, IHM et swing

MVC
IHM Swing, JApplet

 

 

 

Programme et supports de cours NFP121 2009-2010


1. Structure des applications objets avec JAVA et UML :
       transparents : 1/page , 2/page , 3/page

packages, classes, instances,
visibilité, héritage,
spécialisation, surcharge

2. Types primitifs, Aspects impératifs du langage :
          Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille , pas de nouveaux exercices proposés (cf. 1)

Sémantique de l'égalité,
méthodes, passage de paramètres,
instructions, exceptions

3. Assert, Interfaces, Types et Classes
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille

assert,
introduction aux structures de données récursives,
classes abstraites, interfaces, classes internes, classes anonymes.

4. Programmation évènementielle
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille

Pattern Observateur/Observé
IHM Awt et Swing,
application des classes internes, anonymes et des adapteurs

5. Généricité et Collections:
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille
         un petit QUIZ sur la généricité JAVA depuis 1.5

Les Collections : traiter de manière uniforme tous les agrégats d'éléments
Généricité : typage plus rigoureux

6. Structures de données et Patterns de conception
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille

Les patterns : composite, itérateur, visiteur, ...

7. Introspection et réflexivité en Java:
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille

typage dynamique, Atelier Java Beans

8. Programmation des Entrées/Sorties:
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille

 les Apis I/O et le Pattern Décorateur

9. XML et JAVA :
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille

SAX et JDOM

10. JVM (Java Virtual Machine)
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille

11. Programmation concurrente.
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille

12. OCL.
         Tranparents : 1 par feuille , 2 par feuille

13. Expressions Régulières.
         Tranparents : 1 par feuille , 2 par feuille , 3 par feuille , 4 par feuille , 6 par feuille

xx. Et ensuite  : ...