7

Click here to load reader

PROGRAMMATION ORIENTÉE OBJET (HORS … · Session automne 2013 INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME) 2 De comprendre et exploiter l’utilité de la visibilité

  • Upload
    dokhue

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROGRAMMATION ORIENTÉE OBJET (HORS … · Session automne 2013 INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME) 2 De comprendre et exploiter l’utilité de la visibilité

 

Session automne 2013  INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME)  1 

 

  Responsable(s)  du cours : 

Pierre Bélisle 

Frédérick Henri 

Crédits :  4 

  

INF111 PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME) 

Préalable(s) :  Aucun PLAN DE COURS – SESSION AUTOMNE 2013 

   1. Coordonnées de l’enseignant 

Groupe 01   Pierre Bélisle ([email protected])  bureau B‐2524  2. Descriptif officiel du cours 

Cours  destiné  aux  étudiants  ayant  déjà  suivi  un  cours  de  programmation.  Acquérir  des connaissances approfondies de  la programmation orientée objet  (encapsulation, héritage et  polymorphisme)  qui  permettront  de  passer  plus  facilement  à  la  conception  orientée objet. Le langage de programmation utilisé est Java.  Application  des  notions  orientées  objet  acquises  selon  des  principes  de  programmation avancée tels que des algorithmes de tri et de fouilles (itératifs et récursifs),  l’implantation de  structures  de  données  (pile,  file,  liste,  arbres),  la  gestion  et  la  levée  d’exception, l’utilisation de certaines classes de l’api Java (Vector, Sequence, Map, Observable/Observer, Date,  Random)  et  l’utilisation  de  composants  Swing  pour  la  construction  d’interfaces‐utilisateurs graphiques (GUI).  Séances de laboratoire permettant l'application des notions de programmation.  

3. Objectifs spécifiques du cours  

Ce  cours  a  pour  objectif  d’enseigner  les  principes  de  la  programmation  orientée‐objet (encapsulation, héritage et polymorphisme) en insistant sur des notions de programmation plus  approfondies  que  les  types  primitifs  (int,  char, …),  les  structures  de  contrôle  et  les structures de données de base telles que les tableaux. 

 De façon plus spécifique, ce cours devra permettre à l'étudiant :   

❏ D'utiliser un environnement de programmation Java (BlueJ, Eclipse, JCreator ou autres).  

 

❏  D'apprendre  à  programmer  dans  le  paradigme  orienté‐objet  avec  le  langage Java.    

De comprendre les relations d’héritage, d’agrégation et de composition. 

École de technologie supérieureService des enseignements généraux 

Page 2: PROGRAMMATION ORIENTÉE OBJET (HORS … · Session automne 2013 INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME) 2 De comprendre et exploiter l’utilité de la visibilité

 

Session automne 2013  INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME)  2 

 

De  comprendre  et  exploiter  l’utilité  de  la  visibilité  des  attributs  et  des méthodes (encapsulation). 

De comprendre et pouvoir exploiter le polymorphisme.  

❏  Être  en mesure de  programmer  (et d’utiliser)  des  types de données  abstraits (piles, files et listes) avec différentes implémentations. 

 

❏ Utiliser les composants Swing pour la création d’interface graphique.  

L’étudiant doit au préalable avoir une compréhension des concepts suivants1 :  

❏ Types de base (Entier, réel, booléen, caractère). 

❏ Opérateurs sur les types de base (+, ‐, *, /, %, …). 

❏ Types composés (chaînes de caractères et tableaux). 

❏ Structures de contrôle (sélection, itération). 

❏ Structures de programme (bloc principal, procédures et fonctions). 

❏ Passage de paramètres (par valeur, par référence, formel et actuel). 

❏ Entrées (clavier) et sorties (écran).  4. Stratégies pédagogiques utilisées 

Les deux premiers cours serviront à une révision de concepts présumés comme étant déjà connus  et  à  l’apprentissage  de  ceux‐ci  en  Java.    Les  cours  suivants  présenteront  les concepts  de  programmation  orientée‐objet  et  des  applications  de  ceux‐ci  à  l’aide  de notions de programmation plus approfondies et de l’utilisation des composants Swing.  3 heures de cours magistraux par semaine  3 heures de laboratoire par semaine    Les laboratoires visent :  

L'assimilation des notions vues au cours à l’aide d’exercices.  

La mise au point des programmes donnés en travaux pratiques (si les exercices sont finis). 

 5. Contenu du cours 

  La première période de trois heures sert à présenter le plan de cours, l’approche pédagogique utilisée et les différents modèles d’évaluation.    

Unité  MATIÈRE  HEURES 

Environnement Java. 

Programmation de base en Java. o Types primitifs (variables et littéraux), conversion de type 

(typecasting), opérateurs (+, ‐, *, >=, <=, …), instructions de contrôle (if‐else, while,  for), entrées/sorties (Scanner(), 

                                                            1 Peu importe le langage de programmation qui a été utilisé.

Page 3: PROGRAMMATION ORIENTÉE OBJET (HORS … · Session automne 2013 INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME) 2 De comprendre et exploiter l’utilité de la visibilité

 

Session automne 2013  INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME)  3 

 

Unité  MATIÈRE  HEURES 

System.out), programme principal (main()).

Normes de programmation 

Introduction aux classes et aux objets  o Définitions 

Classe,  objet,  méthodes,  procédures,  fonctions, paramètres effectifs et formels 

o Modificateurs d’accès private et public o Classes String, Arrays, Math o Bloc de code et visibilité des objets 

Les paquetages (package) java.lang et java.util de Java 

Les API de Java 

Programmation de base en Java. 

Référence et passage de paramètres par référence 

Tableaux en Java 

Tris et fouilles sur tableaux 

Conception dans le paradigme orientée‐objet  o Encapsulation o Définition  d’une  classe :  méthodes  (comportement), 

encapsulation  (avec private),  constructeur,  classes  immuables et  accesseurs  (get),  classes  mutables  et  mutateurs  (set), destructeur  (finalize),  surcharge  (overload)  et  redéfinition (override). 

o Classe Object et ses méthodes clone, copy et equals o static o this() 

Commentaire Javadoc 

5‐6  Héritage (classe ou interface), composition, 

généralisation/spécialisation, super() 

Polymorphisme (late binding) 

7  Examen intra (pour les cours 01 à 06) 3

8 ‐13  

GUI (Graphical User Interface) o Composants Swing (Jframe, Jbutton, , …) o JTextField, JMenuBar, JMenu, JMenuItem, JRadioButtonItem, 

Layout Manager, … o Gestion d’évènements (bas et haut niveau). 

Observer/Observable  

Gestion d’exception (try‐catch). 

Classe interne (inner class) 

Classes enveloppeurs (wrapper) Integer, Double, ... et conversion automatique (autoboxing et unboxing) (java 5.0 et +). 

 

Chaînage dynamique  

Types de données abstraits (TDA) : o Pile (LIFO) o File (FIFO)Types de données abstraits suite(TDA) : o Liste 

18 

Total  39

Page 4: PROGRAMMATION ORIENTÉE OBJET (HORS … · Session automne 2013 INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME) 2 De comprendre et exploiter l’utilité de la visibilité

 

Session automne 2013  INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME)  4 

 

  6. Laboratoires ou travaux pratiques  

Trois heures de laboratoire par semaine (Total 36 heures)  

7. Évaluation 

Évaluation  Pondération  Date  Détail 

Travaux pratiques 10%12% 13% 

24 sept. au 11 oct.18 oct. au 5 nov. 5 nov. au 6 déc. 

Le premier travail peut être individuel. 

Test de validation du cours 

10%  Un petit test en ligne à réaliser en classe avant les séances de labo. 

Durée : 30 minutes à livre  ouvert. 

À l’essai : Si ça ne donne pas les résultats escomptés (peu importe la raison), ces tests seront remplacés par des quiz manuscrits. 

Examen intra semestriel  (3 heures) 

20%  18 octobre  Semaine 1 à 6 

Les examens sont manuscrits. 

Examen final (3 heures)  35%  Période d’examens finaux 

Aucune documentation permise lors de la tenue des examens.  Aucun support électronique (calculatrice, ordinateur, téléphone, …) 

 8. Documentation obligatoire 

Aucune documentation obligatoire.  

9. Ouvrages de référence 

Autres références 

Horstmann, Cay, Big Java, 3rd Edition, San Jose State Univ., John Wiley & sons, 2007, 1248 pages. 

Horton’s, Ivor, Ivor Horton’s beginning Java™ 2, JDK™5 Edition, Indianapolis, Wiley Publishing, Inc., 2005, 1470 pages. 

Page 5: PROGRAMMATION ORIENTÉE OBJET (HORS … · Session automne 2013 INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME) 2 De comprendre et exploiter l’utilité de la visibilité

 

Session automne 2013  INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME)  5 

 

Liens Internet 

Java Version 6 Update 21  

Java version 6 

Normes de programmation Java pour la  langue française 

http://cyberzoide.developpez.com/java/javastyle/JavaStyle.pdf 

Quelques environnements de programmation Java gratuit 

http://www.netbeans.org/downloads/index.html (recommandé par Sun) 

http://eclipse.org/downloads/index.php 

http://www.jcreator.com/download.htm 

http://www.bluej.org/download/download.html 

Aide Java 

http://java.sun.com/docs/books/tutorial/  

http://java.sun.com/javase/6/docs/api/ 

Cours Java (français et anglais) 

http://java.developpez.com/cours/

Page 6: PROGRAMMATION ORIENTÉE OBJET (HORS … · Session automne 2013 INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME) 2 De comprendre et exploiter l’utilité de la visibilité

 

Session automne 2013  INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME)  6 

 

 INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME)  

ANNEXE I   1. Caractéristiques du cours 

Responsable(s) du cours : 

Coordonnées de l’enseignant : Groupe 01: Pierre Bélisle ([email protected]

Préalables :  Aucun 

Crédits : 4  2. Descriptif officiel du cours  

Cours  destiné  aux  étudiants  ayant  déjà  suivi  un  cours  de  programmation.  Acquérir  des connaissances approfondies de  la programmation orientée objet  (encapsulation, héritage et  polymorphisme)  qui  permettront  de  passer  plus  facilement  à  la  conception  orientée objet. Le langage de programmation utilisé est Java.  Application  des  notions  orientées  objet  acquises  selon  des  principes  de  programmation avancée tels que des algorithmes de tri et de fouilles (itératifs et récursifs),  l’implantation de  structures  de  données  (pile,  file,  liste,  arbres),  la  gestion  et  la  levée  d’exception, l’utilisation  de  certaines  classes  de  l’api  Java  (Vector,  Sequence,  Map, Observable/Observer,  Date,  Random)  et  l’utilisation  de  composants  Swing  pour  la construction d’interfaces‐utilisateurs graphiques (GUI).  Séances de laboratoire permettant l'application des notions de programmation.  

3. Répartition des unités d’agrément du BCAPG  

 

Maths Sciences naturelles 

Études complémen‐

taires Science du 

génie Conception en ingénierie  Total 

  0,0    0,0    0,0    0,0    0,0    0,0 

  4. Qualités (Qx) et compétences (Cy) enseignées et ou évaluées 

  

Page 7: PROGRAMMATION ORIENTÉE OBJET (HORS … · Session automne 2013 INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME) 2 De comprendre et exploiter l’utilité de la visibilité

 

Session automne 2013  INF111 – PROGRAMMATION ORIENTÉE‐OBJET (HORS PROGRAMME)  7 

 

5. Évaluation  

  Absence à un examen  Dans les cinq (5) jours ouvrables suivant la tenue de son examen, l’étudiant devra justifier son absence d’un examen durant  le trimestre auprès de son enseignant. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Toute absence non  justifiée par un motif majeur  (maladie certifiée par un billet de médecin, décès d’un parent immédiat ou autre) à un examen entraînera l’attribution de la note zéro (0). 

   Plagiat et fraude  

Les clauses du « Chapitre 10 : Plagiat et fraude » du « Règlement des études de 1er cycle » s’appliquent  dans  ce  cours  ainsi  que  dans  tous  les  cours  du  département.    Afin  de  se sensibiliser au respect de la propriété intellectuelle, tous les étudiants doivent consulter la page Citer, pas plagier!