Introduction à la programmation orientée objet < Retour

Section: Sciences de l'ingénieur industriel
Codification: SC203
Introduction à la programmation orientée objet
Année académique: 2018-2019
Période de l'année: Q1
Département: Département ingénieur industriel de Pierrard-Virton
Secteur: Les sciences et techniques
Domaine: Sciences de l’ingénieur et technologie
Responsable de l'UE: Myriam NEMRY
Autres enseignants:
Caroline LIBERATORE
Intitulé de l'AA: Introduction à la programmation orientée objet
Code AA: PR203
Niveau EQF: 6
Cycle: 1
Localisation: 2B
Unité obligatoire: Oui
Langue d'enseignement: F
Langue d'évaluation: F
Pondération: 80
Crédits: 4
Volume horaire: 45
Place de l'UE dans le profil d'enseignement du programme
Contribution au profil d'enseignement
nb capacités à afficher 11
Communiquer avec les collaborateurs
  • Rédiger tout document relatif à une situation ou un problème
Agir de façon réflexive et autonome, en équipe, en partenariat
  • Organiser son travail personnel de manière à respecter les échéances fixées pour les tâches à réaliser
  • Mobiliser et actualiser ses connaissances et compétences
  • Collaborer activement avec d'autres dans un esprit d'ouverture
Analyser une situation en suivant une méthode scientifique
  • Identifier, traiter et synthétiser les données pertinentes
  • Rechercher les ressources nécessaires
  • Effectuer des choix appropriés
Concevoir ou améliorer un système technique
  • Elaborer des procédures et des dispositifs
  • Concevoir des applications répondant à des spécifications
Utiliser des procédures et des outils spécifiques aux sciences et techniques
  • Utiliser le logiciel approprié pour résoudre une tâche spécifique
  • Exécuter des tâches pratiques nécessaires à la réalisation d’un projet
Lien avec d'autres UE
  • UE prérecquise(s) :
  • Cette UE est prérequise pour les UE : SC306
  • UE corequise(s) :
Articulation avec d'autres activités d'apprentissage
  • Activités d'apprentissage supports + acquis d'apprentissage préalables requis

    Le cours de programmation Java se veut agnostique vis-à-vis du système d'exploitation à l'image du langage Java dont un atout majeur reste précisément sa portabilité: un programme Java peut s'exécuter sous Windows, Linux, Android, Rasberry voire même Arduino. On fera référence à la version 8 de Java SE, qui est actuellement la plus utilisée dans le monde industriel. Il suffira de pouvoir installer correctement une distribution de Java SE 8 sur un poste de travail de type WIndows, Linux ou Raspberry.
    La première partie ne requiert qu'un simple éditeur tel que NotePad++ ou gedit. Plus tard, on explorera un environnement intégré de développement (Eclipse ou Netbeans) et on apprendra à utilser de bonnes conventions d'organisation de code avec l'utilisation d'un système de gestion de dépendances (Maven ou Gradle).
    Comme, en principe, le cours s'adresse à des novices en programmation, il est nécessaire d'avancer de manière très progressive
    (avec un nombre d'heures limité). La première partie introduira des notions de base en programmation procédurale. Il pourra facilement établir une analogie avec du code écrit dans tout autre langage procédural tels que C ou Matlab, utilisés dans le cadre d’autres cours.
    Puis on introduira les notions de programmation orientée objet, avec quelques élements de base de représentation UML. Ces notions sont, en effet, intéressantes en lien avec un cours de gestion de projet impliquant des systèmes informatiques pour ce qui concerne la rédaction de spécifications fonctionnelles ou "cahier de charges".
    Malgré l'intitulé du cours, à l'ère de l'IoT et du BigData, on ne peut éviter d'évoquer rapidement le paradigme de programmation fonctionnelle qui revient en force après 20 années de mise aux oubliettes. On passera rapidement en revue la manière dont Java supporte ce paradigme depuis la version 8 (tout comme C++ depuis la version 14).
    Enfin, on appliquera toutes ces notions avec le développement d'une interface graphique exploitant le paquetage JavaFX inclu dans Java SE8. Il pourra être intéressant pour l'étudiant de développer une application cliente, appelée HMI (Human Machine Interface) dans le milieu industriel, en lien avec d'autres cours pratiques mettant en oeuvre des capeturs et/ou un bus d'entreprise.

  • Activités d'apprentissage complémentaires

    Une aptitute certaine pour la logique et les mathématiques sont des atouts indéniables pour ce cours. Toutefois, le bénéfice qu' un étudiant peut retirer d'un cours de progarmmation Java dépend également de sa capacité à rechercher des informations pertinentes dans les documentatons en ligne sur les nombreuses API Java. Cette aptitude sera donc également un objectif du cours qui permettra à l'étudiant d'aller au delà du contenu du syllabus pour rechercher comment appliquer la programmation Java dans ses projets futurs. Il s'agit donc de guider l'étudiant pour être finalement capable d'appliquer efficacement le principe de "reusability" cher à la programmation orientée objet et d'interface spécifique à Java. Les étudiants sont encouragés à développer leur créativité en proposant des idées de développement d'applications en lien avec d'autres cours pour aller au delà du contenu du syllabus qui donne quelques éléments de base.

Acquis d'apprentissage spécifiques sanctionnés par l'évaluation

L’étudiant sera capable, au terme de l’activité de 45h organisée au 1er quadrimestre de :

--- de coder des algorithmes simples dans le paradigme procédural tel que supporté par Java.
--- d’organiser un code selon le paradigme de la programmation orientée objet tel que supporté par Java. Il sera capable de coder en Java des spécifications fonctionnelles simples formulées dans le langage de modélisation standard UML
--- de comprendre le fonctionnement de programmes simples développés en Java comprenant plusieurs paquetages.
--- d’organiser le code d’une application selon des conventions bien établies
--- de comprendre l’intérêt des outils de gestion de dépendances de paquetages tels que Maven ou Gradle et d’outils de gestion de version (Git, SVN...)
--- de comprendre la documentation d’API Java
--- de développer des interfaces graphiques simples avec JavaFX

Contenu

Un syllabus (en anglais) est disponible sur le site Moodle de l'école:
A. BASICS IN IMPERATIVE PROGRAMMING
1 Getting Started with our first Java Program
2 Let's explain the program
3 Variables and assignment
4 Basic Arithmetic Operations
5 Reading user input
6 Conditional statements and binary values
7 Loop statements
B. BASICS IN PROCEDURAL PROGRAMMING
8 Methods
9 ArrayList as generic "Objects Container"
10 Array
11 About using binary values
12 Methods and parameters passing
13 Good practices in code-writing and problem solving
C. BASICS IN OO PROGRAMMING
14 Object-oriented programming
15 About the special String type
16 The methods toString, equals, hashCode
17 Interface
18 Better software design with source code organizing
19 Exceptions
20 File handling
21 Object Polymorphism
22 Inheritance of class features
23 More advanced tips in Java Programming
23 Suggestion of readings to go further
D. TOWARDS FUNCTIONAL PROGRAMMING
24 What is functional programming?
E. PROGRAMMING GRAPHICAL USER INTERFACES
25 Graphical User Interface programming with JavaFX

Le cours théorique est constitué de 6 séances de 2h. Les séances d'exercices sont constituées de 13 séances de 2h. Néanmoins théorie et exercices ne seront pas toujours vraiment dissociés: les exercices progressifs seront l'occasion d'introduire pas à pas, de nouveaux concepts en les illustrant de manière concrète. Le travail de groupe peut être envisagé s'il facilite la progession plus rapide d'un plus grand nombre d'étudiants.
Méthodes d'enseignement-apprentissage mises en oeuvre

Le cours théorique est constitué de 6 séances de 2h. Les séances d'exercices sont constituées de 13 séances de 2h.
Néanmoins théorie et exercices ne seront pas toujours vraiment dissociés: les exercices progressifs seront l'occasion d'introduire pas à pas, de nouveaux concepts en les illustrant de manière concrète.
Le travail de groupe peut être envisagé s'il facilite la progession plus rapide d'un plus grand nombre d'étudiants.

Modalités d'évaluation de l'activité d'apprentissagee
Septembre - JanvierSeconde Session
TravauxExercices(s)
Pondération : 20%
Exercice(s)
Pondération : 20%
ExamensExamen (3h)
Pondération : 80%
examen (3h)
Pondération : 80%

Pondération en % par rapport au total de l’activité d’apprentissage ou de l’UE si l’évaluation est intégrée.

Ressources
Supports indispensables pour atteindre les acquis d'apprentissage

    Syllabus (en anglais) et série d'exercices disponible sur le serveur Moodle de l'école.
    Des synthèses seront disponibles après le cours .

Sources et référence

    Le syllabus fait référence à plusieurs liens en ligne.

Actualités et agenda

Voir toutes les actualités