Académique Documents
Professionnel Documents
Culture Documents
Université de la Manouba
Ecole Nationale des Sciences Informatique
Nous remercions également Mademoiselle Ben Ali et Madame Souileh pour l’aide et
les conseils concernant les missions évoquées dans ce rapport, qu’ils nous ont apportés lors
des différents suivis. Nous espérons que ce travail soit au niveau de leurs attentes et de la
confiance qu’ils ont bien voulu nous donner.
Nous n'oublions pas nos parents pour leur contribution, leur soutien et leur patience.
Enfin, nous adressons nos plus sincères remerciements à tous nos proches et amis, qui nos ont
toujours soutenues et encouragées au cours de la réalisation de ce projet.
Merci à tous et à toutes.
Table des figures
Introduction .................................................................................... 5
Chapitre1: Présentation du projet ............................................. 6
1.2 Motivation du travail ..........................................................................................................................6
1.1 Intégration du TIC dans l’enseignement ..............................................................................................6
1.3 Les arbres binaires ..............................................................................................................................7
1.4 Travail demandé ............................................................................................................................... 10
2.1 Fonctionnalités à implémenter .......................................................................................................... 10
2.2 Critères d’évaluation ......................................................................................................................... 11
2. Langage de programmation ....................................................................................... 12
3.1 Solutions envisageables .................................................................................................................... 12
2.2 Solution retenue ............................................................................................................................... 12
2.3 Conclusion ........................................................................................................................................ 13
Chapitre2 :Conception de l’interface ....................................... 14
1. Le splashscreen .................................................................................................................................... 14
2. La fenêtre principale ............................................................................................................................ 15
3. les fenêtres de dialogues ...................................................................................................................... 16
3.1 Création d’un arbre binaire ............................................................................................................... 17
3.2 Recherche d'un élément dans un arbre binaire .................................................................................. 18
3.3 Calcul de la taille .............................................................................................................................. 20
3.4 Calcul du nombre de feuille .............................................................................................................. 21
3.5 Création d'un arbre binaire de recherche .......................................................................................... 22
3.6 Adjonction d'un élément .................................................................................................................. 23
3.7 Suppression d'un élément .................................................................................................................. 24
4. Conclusion ................................................................................................................... 25
Chapitre3: Implémentation des fonctionnalités…… ............. 26
1. Modularité ............................................................................................................................................ 26
2. Présentation des principales classes ...................................................................................................... 27
2.1 Module affichage ............................................................................................................................... 27
2.2 Module traitement .............................................................................................................................. 28
2.3 Module de gestion de fichiers ........................................................................................................... 33
3. Améliorations possibles ........................................................................................................................ 35
3.1 Utiliser les onglets ............................................................................................................................ 35
3.2 Pouvoir imprimer les arbres ............................................................................................................ 35
3.3 Intégration d’autres fonctionnalités ................................................................................................. 35
3.4 Discussion en ligne........................................................................................................................... 36
4. Conclusion ............................................................................................................................................ 36
Conclusion…. ................................................................................. 37
Annexe…. ........................................................................................ 38
Introduction
C’est dans ce contexte que se situe ce travail qui consiste à la réalisation d’une
application pédagogique à l’usage des enseignants et leurs étudiants. Celle-ci doit être un
support de cours d’algorithmique sur les arbres ainsi qu’une base de travail individuel pour
chaque étudiant. Cette application s’appuie particulièrement sur la visualisation
d’algorithmes. Elle doit faciliter la compréhension de ces algorithmes en déroulant ceux-ci
tout en montrant les modifications subies par l’arbre.
Chapitre I
Présentation du projet
I. Motivation du travail
Les TIC1s sont à l’origine de grandes innovations dans tous les secteurs d’activité à travers le
monde entier. Cette révolution inclue aussi le domaine éducatif qui s’est évolué grâce à elle.
La question qui se pose maintenant est : Comment peut-on profiter des facilités apportées par
les TICs et améliorer la qualité de l’enseignement et de l’apprentissage?
Les TICs s’imposent de plus en plus comme support incontournable dans l’apprentissage des
différents savoirs et comme moyen d’exécution pratique en même temps ce qui justifie la
1
Les technologies de l’information et de la communication
Les arbres binaires constituent l’une des plus importantes structures de données d’une part et
l’une des plus difficiles à apprendre et à enseigner de l’autre ce qui amènent beaucoup
d’informaticien à penser à résoudre ce problème en réalisant des applications pédagogiques
traitant cette structure.
Parcours en profondeur
Nous distinguons 3 sous types de parcours en profondeur (infixe, post fixe, préfixe).
Figure1.2. Le parcours préfixé Figure1.3. Le parcours infixé Figure1.4. Le parcours post fixe
on traite le contenu du nœud dès on traite le contenu du nœud après on traite le contenu du nœud après
qu'on est dessus, ensuite on avoir parcouru et affiché le contenu avoir parcouru et affiché ses deux
parcourt son fils gauche puis son de son fils gauche; une fois que fils.
fils droit. c'est fait, on parcourt et on affiche
son fils droit.
Recherche d’élément
La recherche se fait en effectuant l’un types de parcours précédant et en comparant chaque fois la
valeur du nœud à celle de la valeur recherchée.
Cette création se fait par insertions successives des nœuds dans un ordre croissant des clés dans le
sous arbre gauche et décroissant dans le sous arbre droite, pour obtenir à la fin un ABR2 dont la
manipulation est beaucoup plus simple.
Adjonction d’élément aux feuilles dans un ABR
L'insertion d'un nœud commence par une recherche : on cherche la clé du nœud à insérer ;
lorsqu'on arrive à une feuille, on ajoute le nœud comme fils de la feuille en comparant sa clé à
celle de la feuille : si elle est inférieure, le nouveau nœud sera à gauche ; sinon il sera à droite.
Suppression d’élément d’un ABR
Suppression d'une feuille : Il suffit de l'enlever de l'arbre
Suppression d'un nœud avec un enfant : Il faut l'enlever de l'arbre en remplaçant par son fils.
Suppression d'un nœud avec deux enfants : On remplace le nœud par son successeur le plus
proche ou son plus proche prédécesseur. Puis on applique à nouveau la procédure de suppression
à N, qui est maintenant une feuille ou un nœud avec un seul fils.
De la diversité des opérations effectuées sur les arbres binaires on peut déduire l’importance
de la structure arborescente.
L’utilisation des arbres en tant que structure abstraite est illustré par :
2
Arbre Binaire de Recherche
Donc pour manipuler un document il suffit de bien savoir manipuler les arbres.
Structure efficace en mémoire : arbres de recherche (search trees).
Représentation des expressions arithmétiques et dérivation.
Nous pouvons donc conclure de ce qui précède que les arbres binaires permettent de
structurer les données d’une manière facilitant leurs manipulations et implémentation
algorithmique.
Mais malgré leur importance, les étudiants n’aiment pas les manipuler puisque ils les trouvent
difficiles à bien saisir, ceci est due peut être à le fait qu’ils sont habitués à travailler avec des
structures séquentielles non arborescentes.
Essayant de franchir cet handicape, nous avons choisi de réaliser ce projet afin de pouvoir
faciliter la tâche de compréhension des algorithmes manipulant un exemple des structures
arborescentes (les arbres binaires) et peut être participer au développement de EAD3.
Ouvrir un
Aller au cours
nouveau fichier
/ exercice
2. Critères d’évaluation
Cette application sera utilisée par chacun de l’étudiant et du professeur, d’où elle doit être
simple en manipulation, riche en connaissances et bien représentée pour faciliter
l’apprentissage d’une part et encourager l’étudiant à l’utiliser d’autre part.
Ensuite, cette dernière doit jouer en quelque sorte le rôle du professeur, en cas de son
utilisation dans l’EAD, d’où l’interface graphique doit être présentée dans un cadre
pédagogique et elle doit aussi être interactive et conviviale.
Pour fixer les logiciels nécessaires pour l'implémentation nous avons été invités à choisir le
langage de programmation qui peut servir le mieux pour le développement de notre
application.
1. Solutions envisageables
Application
Solution Avantages Inconvénients
exécutable
- Interface spécifique à
- Rapidité
chaque plate-forme
Langage C C - Simplicité de
- Portage difficile entre
codage
systèmes
Langage C ++ C++ - Rapidité - Idem «100 % C»
- Rapidité - manque de
Langage Python Python
-Simplicité de codage bibliothèques spécifiques
- Affranchissement
- Dégradation de la
des plates-formes
Langage Java Java vitesse d’exécution (Java
- Simplicité de
semi-compilé)
codage
2. Solution retenue
IV. Conclusion
Nous avons présenté dans ce chapitre la cadre générale ou se situe notre application en
précisant les objectifs de cette dernière. Ainsi nous avons essayé d’expliquer d’une manière
brève les diverses fonctionnalités offertes par notre interface graphique qui sera le sujet du
chapitre suivant.
Chapitre II
Conception de l'interface
un splashscreen
une fenêtre principale
ensemble de fenêtre de dialogue
I. Le splashscreen
L'idée d'avoir un splashscreen nous a poussé à réfléchir sur le thème à adopter pour notre
interface, nous avons décidé d'implémenter un thème qui dévoile l'aspect pédagogique de
notre application nous avons choisi donc un thème scolaire de façon à approcher l'application
de l'étudiant et l'enseignant en s'inspirant de leur milieu universitaire et par conséquence
garantir une continuité entre la réalité et l’environnement numérique.
On a nommé notre application SimBTree (SIMilator Binary Tree), ce nom représente bien le
sujet de notre projet. Le logo est constitué d'une structure abstraite symbolisant un arbre suivi
par le nom de l'application,
Le choix de la couleur verte est bien étudiée, en effet ce couleur est dans l'esprit de notre
programme puisqu'il fait référence à la nature spécialement les arbres de même ce couleur
symbolise un environnement paisible qui favorise la stabilité et la concentration ce qui
coïncide avec l'objectif pédagogique de notre projet.
Afin de l'organiser selon nos souhaits nous l'avons découpée en diffèrent parties explicités par
la figure ci-dessous:
Barre d’outils
Zone de dessin
Zone d’explication
Afin d'organiser les menus de façon intuitive, nous avons conservé le menu « Fichier » et
« Aide »communs à tous les programmes. Nous avons ajouté d'autres menus spécifiques aux
fonctionnalités de notre programme. Nous donnons ci-dessous l'organisation de notre menu:
Barre d'outils: elle intègre des boutons permettant un accès rapide aux fonctionnalités
principales de l'application qui sont les fonctionnalités relatives à la manipulation des
arbres binaires ainsi l'accès à des ressources pédagogiques qui nous parons
indispensables pour assurer une certaine compréhensibilité des traitements à simuler.
Zone de dessin: c'est la zone ou sera représenté l'arbre binaire à manipuler ainsi que
les explications accompagnés. Cette Zone de dessin sera affichée à partir de la barre de
menu Fichier/Nouveau. Nous avons essayé ici de respecter notre orientation à avoir
une interface graphique très proche à l'environnement universitaire d'où la zone de
dessin prend la forme d'un tableau vide ainsi l'interface propose un bouton pour
changer le curseur par un bâton.
Il faut noter que le tableau vide correspond à un arbre vide.
Zone des explications: cette zone est réservé pour fournir à l'utilisateur des
explications lui permettant de comprendre la démarche adopté et par la suite
l'algorithme implémenté dernière le traitement en cours.
Cette fenêtre est conçus afin de permettre à l'utilisateur d'entrer les données à stoker dans les
nœuds de l'arbre ainsi choisir le positionnement de chacun de ces derniers par rapport à son
nœud père. Son fonctionnement est explicité par le diagramme de séquences ci-dessous.
Ce diagramme montre la création d’un arbre binaire en procédant par adjonction, en effet,
l’utilisateur peut insérer des nœuds comme il le souhaite mais c’est l’application qui se charge
de créer l’arbre et de l'afficher.
Initialement on commence par un arbre vide à laquelle on ajoute en premier lieu un nœud
racine puis on termine par le reste des nœuds et c'est l'utilisateur qui contrôle la position du
nœud à insérer soit fils gauche soit fils droite du nœud parents sélectionnée.
Cette fenêtre de dialogue permet grâce à sa composition et l'état de ses boutons de guider
l'utilisateur de façon implicite à bien choisir la prochaine tache à effectuer de manière à
satisfaire ses besoins et de lui imposer le respect de certains règles ce qui nous paraît
intéressant de point de vue pédagogique: A l'ouverture de la fenêtre seule le bouton racine et
Terminer sont actifs: l'utilisateur est appelé à choisir entre créer un arbre non vide en passant
obligatoirement par la création d'un nœud racine ou choisir de conserver l'arbre vide en
appuyant sur Terminer.
Les boutons Ajouter fils gauche et Ajouter fils droite change leur état d'activation en fonction
du nœud sélectionné si un nœud possède un fils gauche et un autre droite les deux boutons
sont désactives, ce ci informe l'utilisateur qu'un arbre binaire ne peut avoir au maximum que
deux fils.
Figure 2.4. Fenêtre de dialogue de l’opération de recherche d'un élément dans l'arbre
Pour mieux appréhender l'utilisateur, cette fenêtre de recherche offre ce dernier la possibilité
de faire une exécution pas à pas via les deux boutons Suivant et Précédant qui seront activés
suite à l'action sur le bouton Valider et ils permettent de suivre graphiquement le parcours de
l'arbre et le déroulement de la recherche.
Le faite d'implémenter deux modes d'exécution: exécution à la fois et exécution pas à pas
totalement contrôlé par l'utilisateur à pour intérêt de ne pas bloquer l’utilisateur avec des
effets qui prennent le contrôle de l’application.
L’appui sur le bouton calculer permet le calcul et l'affichage du résultat, pour convaincre
l'utilisateur cette fenêtre de dialogue propose deux boutons précédant et suivant permettant de
suivre pas à pas le comptage des nœuds internes en indiquant graphiquement à chaque pas la
nature du nœud parcouru.
Comme pour la fenêtre de dialogue du calcul de la taille de l'arbre, cette fenêtre fonctionne
conformément au diagramme de séquences suivant:
De même, cette fenêtre propose une exécution pas à pas permettant d'expliquer à l'utilisateur
le déroulement du comptage.
Cette fenêtre est composé d'un ensemble de check box permettant à l'utilisateur de choisir un
ordre de création plutôt d'insertion dans l'arbre binaire de recherche à créer conformément au
rendu de l'un des parcours proposés. Les fonctionnalités de cette fenêtre sont résumées par le
diagramme suivant:
Le faite d'appuyer sur le bouton insérer engendre l'insertion d'un nœud avec la donnée
figurant dans la liste ordonnée de rendu de parcours, ce nœud sera accroché à la racine créée
suite à l'appui sur le bouton valider, l'arbre binaire est de nouveau redessiné mais plus le
nouveau nœud inséré notre application permet de représenter sur la zone de dessin les
opérations de comparaison effectué à chaque insertion.
L'utilisateur peut ne pas terminer la transformation de son arbre binaire est ceci se fait par
fermeture de la boite de dialogue.
Cette fenêtre a pour rôle de permettre à l'utilisateur de faire entrer la donnée à stocker dans le
nœud à ajouter ainsi lui permettre de commander le déroulement de cette opération.
L'ajout d'un nœud est l'une des opérations basiques de manipulation des arbres binaires de
recherche, elle obéit à des règles d'infériorité et de supériorité qui régissent l'agencement des
nœuds dans ce type d'arbre, donc pour bien comprendre ce traitement l'utilisateur est invité à
suivre pas à pas les opérations de comparaison avant d'achever l'insertion et l'affichage de
l'arbre modifié.
Cette fenêtre est conçue conformément à l'algorithme de suppression d'un nœud, en effet, elle
présente en plus de l'outil de sélection du nœud à supprimer trois boutons:
IV. Conclusion
Nous avons présenté dans ce chapitre l’organisation de l’interface graphique de l’application
ainsi nous avons donné une description détaillée de l’ensemble des interactions utilisateur
application afin de préciser l’ensemble des fonctionnalités à implémenter, cette phase
d’implémentation sera alors le sujet du chapitre suivant.
Chapitre III
I. Modularité
L’une des avantages du concept orienté objet est d'assurer une organisation en module de
façon à avoir un code simple facilement maintenable.
• Un module de traitement qui effectue toutes les opérations sur l'objet arbre notamment
dérouler les algorithmes à utiliser.
Cette décomposition rend le traitement des données indépendant de l'affichage et vice versa.
Par exemple l’affichage d'un arbre ne tient pas compte du format utilisé pour représenter
l'arbre.
Module d’affichage
MainFrame
Nous allons présenter les classe module par module pour pouvoir saisir l’utilité de
chacune.
1. Module d'affichage
La classe LabelMult: cette classe est créée afin de pouvoir instancier une étiquette
multiligne ce qui n'est pas fournie par la bibliothèque graphique Swing, Ce genre
d'étiquette est utilisé pour la zone d'explication. La méthode employé est basé sur
l'utilisation de la classe StringTokenizer de JAVA qui nous a permis de découper une
chaine de caractère en sous chaines à la rencontre du caractère de retour à la ligne
« \n » et associer à chaque sous chaine obtenu un Jlabel.
2. Module de traitement
Un arbre binaire est un arbre enraciné c'est à dire qu'elle peut être accessible à partir d'un
nœud qu'est sa racine. En se basant sur ce concept, pour pouvoir manipuler les arbres binaires
nous avons fait recours à deux classes:
• La classe Nœud: dans cette classe on a représenté un objet Nœud principalement par 3
attributs: sa valeur, son fils gauche et son fils droite et bien d'autres attributs mais qui
ne sont pas liés au concept nœud mais plutôt utilisé par les méthodes de dessin qu'on
va l'expliciter plus tard.
• La classe Arbre: cette classe renferme les fonctions de traitement des arbres:
Calcul taille.
Parcours en largeur.
L’opération de création d’arbre n’est pas implémentée par une fonction mais elle est
formulée par un ensemble de fonctionnalités offertes par la classe arbre et la classe
d’affichage mainFrame.
Une fois un nœud sera sélectionné la détection d’une action sur l’un des boutons d’ajout des
fils permet d’additionner un fils gauche ou droite au nœud sélectionné ceci est assuré par la
classe mainFrame ce dernier permet de mettre fin à cette opération suite à une action sur le
bouton terminer.
Début
non
Double clic
oui
Détermination du nœud sélectionné
non
Nœud sélectionné est encadré en rouge
oui
Double clic
non
Ajouter fils gauche ou fils droite au nœud sélectionné si possible
non
Terminer=faux
oui
Fin
Après la création de l’arbre, il est très utile pour l’utilisateur de l’application ainsi pour nous
en tant que développeur d’effectuer un aspect visuel à cette structure qu’on est en train de
traiter.
• Non orienté
• Sans cycle
• Connexe
Plus simplement un arbre binaire peut être représenté complétement par des structures
géométriques : un ensemble de cercles reliés par des lignes. Une telle structure est fournie par
les classes awt.Graphics et awt.Graphics2D, ces dernières offrent un ensemble de fonctions
permettant de dessiner et de mettre en forme des objets graphiques.
Ce problème d’affichage peut être résolu par l’utilisation de deux bibliothèques externes
JAVA : JGraphic et Jung.
Comme nous l’avons vu, plusieurs bibliothèques peuvent être utilisée mais nous avons choisi
d’utiliser les classes Graphics et Graphics2D puisque elles sont internes et plus simple à gérer.
Procédure dessiner_Arbre (DON A :arbre, posX :entier, posY :entier pasX :entier,pasY :entier)
Debut
Si (A< > nil) alors
Si (A .fg < >nil)
Dessiner_ligne(posX+10 , posY+20 , posX – pasX/2 , posY+ pasY)
Dessiner_Arbre (A .fg , posX-pasX/2 – 10, posY+pasY , pasX/2 , pasY)
Fin Si
Dessiner_nœud (A , A .info , posX , posY)
Si (A .fd < > nil )
Dessiner_ligne(posX+10 , posY+20 , posX + pasX/2+10 , posY+ pasY)
Dessiner_Arbre (A .fd , posX+pasX/2 – 10, posY+pasY , pasX/2 , pasY)
Fin Si
Fin Si
Fin
Afin de mettre en œuvre les fonctions de suppression et d’ajout d’un élément dans une ABR,
on a suivi aussi les algorithmes usuels. Mais la comparaison faite lors de la réalisation de ces
opérations est de deux types : lexicographique et numérique.
Suivant le types du donnés saisies lors de la création de arbre on choisit l’une des deux
comparaisons :
Si tous les éléments de l’arbre sont des donnés numérique, on considère que ce dernier
est un arbre de nombres réels et la comparaison se basera sur un ordre numérique.
Début
Fin
Afin de faciliter à l'utilisateur l'usage de l'application nous avons doté SimBTree par un
manuel accessible à partir de la barre de menu.
Vu les fonctionnalités un peu limités de notre application, un fichier HTML contenant une
explication détaillé de chacune des opérations offertes est satisfaisant pour représenter ce
manuel. Pour la création de ce manuel nous avons utilisé NVU.
Du coté JAVA, la lecture de ce manuel est géré par la classe Help qui à pour rôle de charger
le fichier HTML correspondant dans un JEditorPane doté d'un écouteur des liens hypertextes.
Nous avons choisis le format PDF pour représenter les cours et les exercices fournies avec
SimBTree. Ce choix est justifié par le fait que ce format a l'avantage de préserver la version
d'origine d'un document destiné à être converti en ce format sans nuire à la mise en forme
(polices d'écritures, images, objets graphiques…) de plus le format PDF présente une
indépendance vis à vis de l’application et le système d’exploitation utilisés pour le lire ou
l’imprimer ce qui coïncide avec notre objectif d'avoir une application portable.
Java ne fournit pas une bibliothèque standard pour la manipulation du format PDF d'où il faut
utiliser une bibliothèque externe. Vu que le caractère ouvert de ce format, plusieurs
bibliothèques java sont fournies. Parmi lesquelles nous avons choisi ICEpdf qu'est une
librairie Java, open-source, gratuite, qui permet de générer, afficher et imprimer des fichiers
PDF,de même, ICEpdf est très léger et simple à implémenter.
SimBTree offre à l'utilisateur la possibilité d'enregistrer sous la forme d'un fichier de caractère
un arbre créé au sein de l'application pour pouvoir le charger et le réutiliser ultérieurement.
L’ordre d'enregistrement des nœuds est celui l'ordre résultant d'un parcours en largeur.
Le chargement d'un arbre à partir d'un fichier respectant le format déclaré ci-dessus consiste à
construire un arbre à partir des nœuds décrits par chacun des lignes de fichier.
Les opérations d'enregistrement et de chargement sont implémentées par deux méthodes
statiques de la classe OpenSave.
Afin de rendre l'utilisation du logiciel plus intéressante on pourra utiliser des onglets qui
permettront de traiter plusieurs graphes en même temps. On pourra donc dérouler les
algorithmes sur deux arbres différents et pouvoir comparer les résultats en basculant entre les
différents onglets. Cela apportera une plus grande facilité d'utilisation et évitera d'ouvrir
plusieurs instances du logiciel pour manipuler plusieurs arbres.
L'utilisateur peut être intéressé par l'idée de garder une trace graphique d'un arbre sur lequel il
travaille. L'option d'impression lui sera ainsi d'une grande utilité. En plus les résultats sont
mieux interprétés lorsqu'on les a sous les yeux.
4. Discussion en ligne
Etant donné que notre application est principalement pédagogique, il sera utile d’ajouter une
rubrique dont les étudiants peuvent s’interagir à distance avec leurs professeurs d’ASD1 afin
de les interroger et de leurs demander l’aide dans le cadre d’un forum sur internet.
IV.Conclusion
Dans ce chapitre, nous avons présenté l’application conçue pour la simulation graphique
des traitements sur les arbres binaires, par le langage de programmation JAVA. On a essayé
de développer une interface graphique présentable, fiable et interactif tout en explicitant le
principe de programmation adopté.
1
Algorithmique et Structure de Donnés
Département Informatique 36 EDDAHECH.S & KHAYAT.A /2010
Conclusion
Pour mener à bien ce projet de première année, nous avons dû approfondir nos
connaissances autant du point de vue de la manipulation des arbres binaires que du point de
vue de la programmation Java ; ceci nous a offert l’occasion de mettre en pratique ce que
nous avons appris.
De plus, ce projet nous a permis de nous familiariser avec la démarche de création d’une
application pédagogique complète. En effet, nous avons développé cette application afin
qu’elle soit utilisée au cours de l’ASD, d’où l’implémentation d’une interface et des
fonctionnalités dans ce cadre.
Ensuite, le travail en binôme a été une nouveauté pour nous les deux et nous a montré
qu’il est indispensable pour atteindre les meilleurs résultats. En effet, travailler à deux permet
d’apprendre mutuellement et d’échanger des connaissances et de penser et trouver les
solutions ensemble.
Compte tenu du succès de cette expérience, nous visons réaliser d’autres applications
pédagogiques manipulant d’autres structures de données comme les fils, les piles, les listes
chainées et les graphes et pourquoi ne pas assembler toutes ces dernières dans une seule
application facilitant la compréhension de l’ASD aux étudiants.
[3] H. Laugié, “ JAVA et Eclipse Développez une application JAVA ”, ENI, 2008
[4] G.Bracha. J.Gosling. G.Steele and B.Joy, “The JAVA Language Specification, Second
Edition”, Sun, 2000
Netographie
[1]http://www.icepdf.org/docs/v4_0_0/viewer/javadocs/org/icepdf/ri/common/package-
summary.html le 15 Juillet 2010
[2] http://www.javadocexamples.com/java_source/org/jgraph/GPGraphpad.java.html le 15
Juillet 2010
[3] http://java.sun.com/j2se/1.4/pdf/j2d-book.pdf le 30 Juillet 2010
[4] http://forum.hardware.fr/hfr/Programmation/Java/dessiner-arbre-java-sujet_100000_1.htm
le 01 Aout 2010
[5] http://java.sun.com/developer/technicalArticles/J2SE/Desktop/new_tech/ le 02 Aout 2010
[6] http://fr.wikipedia.org/wiki/Java_%28langage%29 le 11 Aout 2010
[7] http://www.ceremade.dauphine.fr/~touati/PAYS2_www/pays2.pdf le 22 Aout 2010
[8]http://www.commentfaiton.com/fiche/voir/6221/comment-rediger-un-rapport- le 01
Septembre 2010