Java avancé

Présentation

Ce cours est une initiation aux principes de conception et de programmation objet avec le langage Java. À l'issu de ce cours, les constructions du langage doivent être maîtrisés. Les actions élémentaires du compilateur et de la machine virtuelle doivent être connus. Certains principes fondamentaux de conception objet doivent également être acquis. Ils doivent pouvoirs être mis en pratique naturellement en Java.

La programmation objet avec le langage Java est abordée dans ce cours du point de vue d'un programmeur C. Les notions élémentaires d'algorithmique procédurale et de programmation C sont donc requises pour aborder ce cours (e.g. types, variables, classes d'allocation, instructions, structures de contrôle, appel de fonctions et passages de paramètres). Dans un premier temps, elles sont rappelées et placées dans le contexte particulier du langage Java. Dans un deuxième temps, la programmation objet proprement dite est détaillée.

La programmation événementielle pour le développement d'IHM, la programmation réseau avec les sockets, ou encore l'accès aux bases de données avec JDBC sont des usages avancés du langage Java et de son API. Ils ne sont pas traités dans ce cours d'initiation.

La dernière partie du cours est consacrée aux principaux outils de développement associés à Java : outils de tests unitaires et de non-régression, générateurs de documentation, outils de contrôle de la qualité du code, et outils de travail collaboratif.

Descriptif

Le cours s'adresse à des étudiants d'horizons divers. Il est structuré en parties suffisamment indépendantes pour qu'un étudiant déjà familier du langage Java puisse les aborder dans un ordre quelconque. Les premières parties présentent les origines et les principes fondateurs du langage Java, ainsi que ses constructions élémentaires du point de vue d'un programmeur C.

La partie suivante présente les concepts fondamentaux de la programmation objet, ainsi que leur mise en pratique en Java, avec en particulier les notions centrales de classe et d'interface.

La partie suivante aborde les notions complémentaires, notamment d'exception, d'assertion, de généricité, d'annotation et d'introspection. Les classes de l'API essentielles pour démarrer rapidement un développement Java comme les collections, les flots de données ou les fils d'exécution sont présentées à la suite.

Enfin, la dernière partie présente les principaux outils de développement associés à Java : outils de tests unitaires et de non-régression, générateurs de documentation, outils de contrôle de la qualité du code, et outils de travail collaboratif.

Bibliographie

"Fondements de la programmation orientée objet avec Java 8", M. Kerboeuf, Ellipses, 2016, Références sciences, 9782340-014824.

Modalités de contrôle des connaissances

Session 1 ou session unique - Contrôle de connaissances

Nature de l'enseignementModalitéNatureDurée (min.)NombreCoefficientRemarques
UECCTravaux Pratiques1/3
UECTEcrit - devoir surveillé12012/3

Session 2 : Contrôle de connaissances

Nature de l'enseignementModalitéNatureDurée (min.)NombreCoefficientRemarques
UECTEcrit - devoir surveillé12011Pas de report de CC, même favorable.