Université de Pau et des Pays de l'Adour

Département informatique

Licence informatique et Master informatique Technologies de l'Internet

Tous les cours et ressources mis ici en ligne n’ont pas vocation à être utilisés à des fins de formation et/ou de conseil, dans un cadre commercial ou non, sans l’autorisation explicite de son auteur. Vous êtes donc invités à télécharger et utiliser le matériel pédagogique mis en ligne qu’à des fins personnelles. Dans le cas contraire, merci de me signaler les usages spécifiques que vous envisageriez.

Accès direct aux cours et travaux pratiques

Informations sur les configurations ici

Code accès aux salles en libre service

Licence informatique
UE Introduction aux systèmes d'exploitation (Semestre 1)

Syllabus

Cette UE s'intéresse aux bases de la manipulation des systèmes d’exploitation des ordinateurs. L’objectif est une initiation à la manipulation des systèmes d’exploitation des ordinateurs avec des notions de programmation « shell » sous le système d’exploitation UNIX principalement.
Cours TDs TPs Total étudiant ECTS
12h 0h 27h 39h 4

Contrôles sur table et examens des années précédentes

Cette UE est évaluée par un système de contrôle continu incluant des notes de TPs ainsi qu'un contrôle sur table à la fin du cours. Tout TP non rendu ou toute absence au contrôle donne lieu à la note zéro. Toutefois, un examen de rattrapage est organisé en fin d'année universitaire si la moyenne générale est inférieure à 10.

Cours (ici)

Travaux pratiques sous le contrôle de Mr. Jobard (ici)

Licence informatique
UE Programmation Orientée Objet (Semestre 4)

Syllabus

Cette UE donne de façon graduelle les éléments fondamentaux de la programmation orientée objet (dualité classe/instance, encapsulation, héritage, polymorphisme…). L'objectif central est de comprendre et évaluer les apports effectifs de la programmation par objets en termes de, pour l'essentiel, maintenabilité, réutilisabilité et fiabilité. L'étude du langage C++ et dans une moindre mesure celle de Python servent à la fois de cas d'école et d'illustrations.
Cours TDs TPs Total étudiant ECTS
15h 0h 43.5h 58.5h 6

Examens des années précédentes

Cette UE est évaluée par un examen ainsi que des notes de TDs et TPs.

Cours

Licence informatique
UE Technologie Orientée Objet (Semestre 5)

Syllabus

Cette UE donne les connaissances complètes pour la conception orientée objet des logiciels professionnels pour lesquels la notion d'architecture logicielle est centrale et cruciale à la qualité. Un objectif est la revue complète des mécanismes de programmation par objets du langage Java incluant en particulier l'idée de réutilisation via des bibliothèques clef (e.g., collections). Un autre objectif est de fournir aux étudiants une base de connaissances large et solide pour réaliser les travaux pratiques des autres UE de la licence informatique (programmation Java pour le parallélisme, le Web, etc.). La maîtrise de Java est en outre essentielle pour envisager une poursuite d'études en master informatique.
Cours TDs TPs Total étudiant ECTS
27h 13.5h 18h 58.5h 6

Examens des années précédentes

Cette UE est évaluée par un examen comptant pour 70% ainsi qu'un projet et une note d'appréciation du travail en TP comptant pour 30%.

Cours

Travaux pratiques, progression

  1. N°INSEE
  2. Leap year
  3. Lotto!
  4. Horner
  5. Currency
  6. Currency++
  7. Projet 2020-2021 ici… (commun avec l'UE Conception des Applications Internet)

Modalités de contrôle du projet

Le travail est fait en binôme (monôme toutefois accepté). Il y a un rapport à rédiger de moins de 10 pages qui donne les (grands) choix faits dans l'application. Il faut aussi déposer, au format ZIP uniquement, le code source de votre projet au plus tard le dernier jour de travail avant les vacances de Noël (note zéro si non reçu avant minuit). Dépôt ici. Merci de signaler par un e-mail à l'enseignant le dépôt (bien mentionner aussi les membres du binôme dans l'e-mail).
Licence informatique
UE Conception des Applications Internet (Semestre 5)

Syllabus

Cette UE s'intéresse à la programmation avancée, côté client, des interfaces homme-machine Web avec les langages JavaScript et TypeScript. La programmation côté serveur est quant à elle traitée plus succinctement avec la plateforme Node.js. L'idée est d'étudier une approche orientée objet propre (héritage, polymorphisme, encapsulation/visibilité…) de programmation de manière à créer des architectures évolutives en symbiose avec les toutes dernières technologies Web : WebRTC, WebSockets, Web Workers… La réutilisation et le packaging de bibliothèques JavaScript est un point clef abordé. L'étude de classes et d'interfaces pour des sites Web multimédia hautement interactifs est aussi abordée : HTMLCanvasElement, modèle événementiel (CustomEvent, Promise)…
Cours TDs TPs Total étudiant ECTS
15h 7.5h 16.5h 39h 4

Examens des années précédentes

Cette UE est évaluée par un examen comptant pour 70% ainsi qu'un projet et une note d'appréciation du travail en TP comptant pour 30%.

Cours

Travaux pratiques, progression

  1. N°INSEE
  2. Face detection
  3. Drag & drop
  4. Jeu de découverte de personnage
  5. Projet 2020-2021 ici… (commun avec l'UE Technologie Orientée Objet)

Modalités de contrôle du projet

Le travail est fait en binôme (monôme toutefois accepté). Il y a un rapport à rédiger de moins de 10 pages qui donne les (grands) choix faits dans l'application. Il faut aussi déposer, au format ZIP uniquement, le code source de votre projet au plus tard le dernier jour de travail avant les vacances de Noël (note zéro si non reçu avant minuit). Dépôt ici. Merci de signaler par un e-mail à l'enseignant le dépôt (bien mentionner aussi les membres du binôme dans l'e-mail).
Master Technologies de l'Internet
Composants et Services Logiciels (Semestre 3)

Syllabus

Cette UE est à la frontière du génie logiciel et des systèmes distribués. Elle vise à étendre la problématique de la programmation et de la modélisation orientées objet aux paradigmes de « composant » et « service ». Le programme abordé traite des notions de Component-Based Development et Service Computing (concepts, caractérisation, panorama des modèles de composants technologiques, différence/similitude composant/service…). Les technologies Enterprise JavaBeans™ (EJB) et Web Services servent d'illustrations.
Cours TDs TPs Total étudiant ECTS
18h 9h 9h 36h 4

Examens des années précédentes

Cette UE est évaluée par un examen comptant pour 70% ainsi qu'un projet et une note d'appréciation du travail en TP comptant pour 30%.

Cours

Travaux pratiques

  1. Java annotation: here
  2. Enterprise JavaBeans™ (EJB), “entity” versus “session”: here
  3. Enterprise JavaBeans™ (EJB), “local” versus “remote” interface: here
  4. Enterprise JavaBeans™ (EJB), exercise #1: here
  5. Enterprise JavaBeans™ (EJB), exercise #2: here
  6. Enterprise JavaBeans™ (EJB), exercise #3: here
  7. Enterprise JavaBeans™ (EJB) with JavaServer Faces (JSF), NYCP: here
  8. Enterprise JavaBeans™ (EJB) with JavaServer Faces (JSF), GPAO: here
  9. Node.js: here

Web Services

  1. The Railcar control system application is a Java EE application. At this time, the client program is a simplified Java SE program that graphically displays the status of the railcars and the terminals. For that, the client program continuously requests the Java EE (server-side) program to ask for the status of railcars and the terminals. However, two Web services offered by the server-side program are not yet used:
    @javax.jws.WebService(serviceName = "Railcar_new_destination")
    @javax.ejb.Stateless()
    public class Railcar_new_destination {
        @javax.ejb.EJB
        private Control_center_local _control_center = null;
    
        @javax.jws.WebMethod(operationName = "railcar_new_destination")
        @javax.jws.Oneway
        public void railcar_new_destination(@javax.jws.WebParam(name = "railcar") String railcar, @javax.jws.WebParam(name = "terminal") String terminal) {
            assert (_control_center != null);
            _control_center.railcar_new_destination(railcar, terminal);
        }
    }
    
    @javax.jws.WebService(serviceName = "Terminal_new_destination"
    @javax.ejb.Stateless()
    public class Terminal_new_destination {
        @javax.ejb.EJB
        private Control_center_local _control_center = null;
    
        @javax.jws.WebMethod(operationName = "terminal_new_destination")
        @javax.jws.Oneway
        public void terminal_new_destination(@javax.jws.WebParam(name = "terminal") String terminal, @javax.jws.WebParam(name = "another_terminal") String another_terminal) {
            assert (_control_center != null);
            _control_center.terminal_new_destination(terminal, another_terminal);
        }
    }
    Railcar_new_destination means that a new destination has been requested in a given railcar to stop at a given terminal. Terminal_new_destination means that a new destination has been requested in a given terminal to stop at another given terminal.
    The project consists in building a browser-based user interface that is able to:
    • call on demand the above two Web services with parameters entered through the user interface. These two Web services are probably not rich enough at this time in terms of parameters and returned values. In other words, adaptations/extensions are required.
    • get at initialization time, the entrance terminals (their names especially). On purpose, an additional dedicated Web service must be developed.
    • get (in a cyclic way, through a timer for instance) the status (on the transportation infrastructure) of the user ("Where am I?", e.g., "T1", "R1 between T1 and T2", etc.) and refresh the user interface accordingly.
    Note: at this time, identities of Web services requesters are not managed. Other adaptations/extensions are also required so that the existing server-side program manages passengers in a consistent way. Otherwise, the exposure of the Java EE program, in terms of architecture especially, is probably unfit for calls from a browser. More precisely, it is imposed that all Web services run in a RESTful mode and carried data are based on JSON.

Projet 2020-2021

En partant du cahier des charges de l'étude de cas Prison de Nantes, implanter une architecture micro-services (Node.js/Express ou Java EE/JAX-RS) autorisant une utilisation CRUD (Create, Read, Update, Delete) des données ainsi que la mise à disposition des 5 cas d'utilisation associés : Incarcération, Préventive, Libération définitive, Condamnation et Réduction de peine. Le programme principal est juste un programme de test d'appel des Web services construits (pas necessité d'interface homme-machine).

Modalités de contrôle du projet

Le travail est fait en binôme (monôme toutefois accepté). Il n’y a pas de rapport à rédiger, l’évaluation se faisant (en partie) sur la base d'un oral sur machine avec présentation commentée du travail réalisé (la date de l'oral sera communiquée en temps utile par e-mail). Il faut aussi déposer, au format ZIP uniquement, le code source de votre projet au plus tard le dernier jour de travail avant les vacances de Noël (note zéro si non reçu avant minuit). Dépôt ici. Merci de signaler par un e-mail à l'enseignant le dépôt (bien mentionner aussi les membres du binôme dans l'e-mail).