Suite de l’atelier du semestre 3 (AGL2335 : environnement Java, types, conditions et boucles), ce cours du semestre 4 fait passer l’étudiant de petits programmes linéaires à de véritables applications structurées. Il étudie les tableaux (une et deux dimensions, recherche, tri), les tableaux dynamiques (ArrayList) et la manipulation des chaînes de caractères, puis la décomposition d’un programme en méthodes (paramètres, valeur de retour, surcharge, récursivité). Une étude de cas finale réunit ces notions dans une petite application orientée objet de gestion des notes d’une école de Niamey, dotée d’un module d’authentification qui stocke les mots de passe de façon sûre. Ces acquis préparent aux interfaces graphiques, au développement mobile Android et au développement sécurisé.
Objectifs d’apprentissage
- Déclarer, parcourir, rechercher et trier des tableaux à une et deux dimensions ; utiliser la classe Arrays.
- Gérer des collections de taille variable avec ArrayList et les parcourir en sécurité.
- Manipuler les chaînes (String, StringBuilder) : découpage, recherche, extraction, masquage de données sensibles.
- Écrire des méthodes réutilisables, surchargées ou récursives, avec validation de leurs paramètres.
- Concevoir une petite application orientée objet (classes, encapsulation, constructeurs) et la tester.
- Appliquer les bonnes pratiques de sécurité : validation des entrées, copies défensives, hachage des mots de passe.
Prérequis
AGL2335 (S3) : syntaxe Java, types, opérateurs, Scanner, if/switch, boucles. Algorithmique S1-S2.
Plan du cours
- Leçon 1 — Tableaux : déclaration, parcours, recherche et tri
- Leçon 2 — Tableaux dynamiques et chaînes de caractères
- Leçon 3 — Fonctions et méthodes
- Leçon 4 — Étude de cas : application de gestion des notes et authentification
Modalités d’évaluation
Volume horaire : 10 h de CM, 10 h de TD, 10 h de TP et 30 h de TPE ; 3 crédits. Évaluation : contrôle continu (TD, TP rendus et testés, projet de l’étude de cas, quiz, 40 %) et examen terminal (60 %).
Bibliographie
- Claude Delannoy, Programmer en Java, Eyrolles.
- Joshua Bloch, Effective Java, Addison-Wesley.
- Robert C. Martin, Clean Code, Prentice Hall.
- Oracle, The Java Tutorials et documentation de l’API Java SE (java.util, java.lang.String).
- OWASP, Password Storage Cheat Sheet et Input Validation Cheat Sheet (owasp.org).
