Java avancee I_3eme - Institut Universitaire Quisqueya

Download Report

Transcript Java avancee I_3eme - Institut Universitaire Quisqueya

INSTITUT UNIVERSITAIRE QUISQUEYA-AMERIQUE
(INUQUA)
Département des sciences informatiques
DESRUISSEAUX BEATY
Enseignant :
Ing. syst, DBA & responsable du système d’information à L’INUQUA,
Professeur de programmation.
Email : [email protected]
Coordonateurs
GHISLAIN LEVESQUE
BRUEL GERANCON
Cours
:
PRG-300 Programmation avancée I
Description du cours
Approfondir les connaissances des étudiants sur les concepts avancés de la programmation
orientée objet. Les principaux sujets abordés : le développement d'interfaces utilisateur
(GUI) avec SWING, les connexions aux bases de données avec JDBC, la persistance des
objets (JPA, JDO, Hibernate), la sérialisation, l'interaction avec le réseau (les protocoles
TCP et UDP), l'appel de méthodes distantes (RMI), l'internationalisation, le développement
de composants (Beans), la gestion de la mémoire, la sécurité, introduction aux applications
d'entreprises (EJB). Ce cours comprend une séance hebdomadaire de deux heures de
laboratoire.
OBJECTIFS GÉNÉRAUX
Ce cours vise à poursuivre l'apprentissage des concepts orientés objet et à initier les étudiants à la
conception ainsi qu'à la programmation d'interfaces utilisateur à l'aide du langage Java. À la fin de ce
cours, les étudiants devront donc appliquer une approche de développement par objets afin de
résoudre une situation problématique donnée. Ils seront en mesure de d évelopper des applications
Java en mettant en œuvre des fonctionnalités avancées du langage tels que : composants swing,
threads, sérialisation d'objets,...), conception des projets en architecture client/serveur.
De plus, ce cours amorce l'atteinte de la compétence permettant la production par les étudiants
d'interfaces utilisateur. En particulier, les étudiants utiliseront différentes classes de composantes
Java (JButton, JTextField, etc..) et pourront ainsi gérer les événements captés par les objets en
question
OBJECTIFS Spécifiques
De façon plus spécifique, ce cours devra permettre à l'étudiant de :
 S’approprier le langage de programmation Java.
 Codifier des classes Java chacune servant de modèle à une série d’objets.

Valider le fonctionnement des classes grâce à des classes de tests.
 Connaître les différentes fonctionnalités de l’environnement de programmation utilisé.

Générer une version exécutable des applications réalisées.

Programmer des interfaces utilisateur reliées aux modèles objet.

Appliquer différentes technologies Java (multithreading, protocole JDBC pour l’accès aux
bases de données.
Pre-requis
Le cours de programmation avancée en Java requiert les préalables suivants :

Programmation orientée objet

maitrise des notions de base du langage java
STRATÉGIES PÉDAGOGIQUES
 Un cours magistral par semaine au cours duquel l’étudiant sera amené à apprendre les
differentes notions relatives à la programmation avancée en java.
 Une seance de laboratoire dans laquelle l’étudiant assimile les notions vues au cours à
travers des exercices
Contenu
Voici un aperçu des thèmes qui seront traités dans ce cours.
Seance
Description
 Présentation du plan de cours
• Objectif
• Objectifs, Description, approches pédagogiques
Séance I
• Evaluation
 Introduction aux interfaces graphiques en JAVA

Presentation de la JFC
o API (AWT et SWING)
Séance II
 Architecture de SWING

Modele-Vue-Controeleur(MVC)
 Les conteneurs

Principes

Les conteneurs de haut niveau
o JFrame, Jdialog, JApplet

Les conteneurs utilitaires generaux
o JPanel, JToolBar, JscrollPane…
Séance III
 Les conteneurs (suite)

Les conteneurs utilitaires specifiques
o ContentPane, MenuBar, desktopPane ….
 Les composants swing

Principes

Les Etiquettes

Les composants textes
o Champ de texte, zone de texte, champ encryptee, champ
stylee…
Seance IV
 La gestion des positionnements

FlowLayout,
Séance V

BorderLayout

GridLayout,

BoxLayout
 Les composants swing (suite)

Les composants boutons
o Bouton poussoir, Bouton radio, case a cocher

Les composants listes
o Liste deroulante
o Liste simple

Séance VI
Les bordures
 Les composants swing (suite)

Les tableaux (JTables)
 Les arbres (JTree)
 Les boites d’option (JOptionPane)
Séance VII
 Synthèse et révision des séances 1 à 6
Examen intra
Séance VIII
 La gestion des positionnements (Suites)

Les autres gestionnaires,
o GridBagLayout
o CardLayout
o SpringLayout
o Les gestionnaires personnalisees
Séance IX
Séance X
 Mécanismes de gestion des événements pour les interfaces graphiques
utilisant SWING
 Notion d’écouteurs, d’adaptateurs
 Les evenements de bas niveau
 Architecture MVC ( Model-View-Controller)
Séance XI
 Les Applets JAVA
 Principes
Séance XII
Séance XIII
Séance XIV
 Communication avec les utilisateurs
 Applet et son environnement
 Mécanismes de connexion aux bases de données.
 Principes de JDBC.
 Utilisation des méta-données.
 Exploitation du ResultSet.
 Les Threads
 Utilité des processus légers
 La Classe Thread et l’interface Runnable
 Implémentation de Runnable
 Spécialisation de la classe Thread
 Les démons
 Le partage de ressources
 Bloquer un processus
 Les groupes de thread
 Synthese et revision des seances
Examen de fin de session
ÉVALUATION
Evaluation
Pondération
Examen intra
30%
Devoir
30%
Examen final
40%
Aucune documentation permise lors de la tenue des examens. Aucun support électronique
(calculatrice, ordinateur, téléphone, …)
Méthodologie

Après un exposé théorique sur les différentes notions, plusieurs programmes seront
développés et discutés en classe.

Les notions reliées aux exercices en classe seront vérifiées en laboratoire.
Règles départementales et institutionnelles

En vertu d'une règle départementale concernant les examens: Un ou une etudiant(e) doit
au moins obtenir 65 % de moyenne pour reussir le cours.

Une absence à un examen entraîne automatiquement la note de 0%, à moins de
préavis et entente avec le professeur ou motivation valable présentée dans un délai de
moins d’une semaine.

Le plagiat est strictement défendu durant un examen ou dans un travail, quiconque sera
pris à copier se verra attribuer la note 0 pour cet examen.

La présence en classe et en laboratoire est obligatoire. Une absence à plus de 40% des
heures de cours et de laboratoire entraîne automatiquement un échec.
OUVRAGES DE RÉFÉRENCES
 Deitel et Deitel. Comment programmer en Java2. Éditions Reynald Goulet, 3ème edition,
2000.
 Cay S. Horstmann et Gary Cornell. Au coeur de Java 2. Volume 1 - Notions
fondamentales. Campus Press, 1999.
 Cay S. Horstmann et Gary Cornell. Au coeur de Java 2. Volume 2 - Notions avancées.
Campus Press, 2000.
 David Arnow et Gerald Weiss. Introduction to Programming Using Java. An objectOriented Approach. Java 2 Update. Addison-Wesley, 2000.
 Laura Lemay et Rogers Cadenhead. Le programmeur java 2. Campus Press, 1998.
 John Lewis et William Loftus. Java Software Solutions. Foundations of Program Design.
Addison- Wesley, 2ème edition, 2000.
 Michael Foley and Mark McCulley. JFC unleashed. SAMS punblishing, 1999.
 Cay Horstmann. Computing concepts with Java 2 essentials. John Wiley et Sons, 2ème
edition, 2000.
 Jamie Jawoski. Java 1.2 unleashed. SAMS punblishing, 1998.
 Jaques Guyot et André Le Grand Michel Bonjour, Gilles Falquet. De l’esprit à la
méthode. Vuibert, 2ème edition, 1999.
 C. Thomas Wu. An Introduction to Object-Oriented Programming with Java.
WCB/McGraw-Hill, 1999.
Liens Internet
Java Version 6 Update 29
Java version 6 : SUN (Stanford University Network). www.java.sun.com.
http://java.sun.com
Normes de programmation Java pour la langue française
http://cyberzoide.developpez.com/java/javastyle/JavaStyle.pdf
Quelques environnements de programmation Java gratuit
http://www.jcreator.com/download.htm
http://www.bluej.org/download/download.html
http://www.netbeans.org/downloads/index.html (recommandé par Sun)
http://eclipse.org/downloads/index.php
www.jguru.com/portal/index.jsp.
Aide Java
http://java.sun.com/docs/books/tutorial/
http://java.sun.com/javase/6/docs/api/
Cours Java (français et anglais)
http://java.developpez.com/cours/