Hiver 2005 : IFT 1170 Programmation Java et applications Site Web : http://www.iro.umontreal.ca/~dift1170/ Objectifs du cours : Ce cours vise à familiariser l’étudiant à la programmation orientée objet (POO) avec Java de manière à exploiter au mieux l’esprit de réutilisation du code. Un sous-ensemble des librairies disponibles en JAVA sera décrit. Horaires : Section Théorie Horaire Travaux pratiques Salle Horaire Labo. A Lundi 16:30 à 18:30 Z-205 Lundi 14:30 à 16:30 X-117 B Lundi 16:30 à 18:30 Z-205 Lundi 18:30 à 20:30 X-117 C+D Jeudi 12:30 à 14:30 Z-200 Jeudi 10:30 à 12:30 X-115 L Samedi 10:30 à 12:30 #14 Samedi 08:30 à 10:30 #13 M Samedi 10:30 à 12:30 #14 Samedi 12:30 à 14:30 #13 Campus Longueuil (en face du métro Longueuil) : http://www.campusregionaux.umontreal.ca/clongueuil.html Le Van Nguyen ([email protected]) enseigne les sections A+B. Youssef Kadri ([email protected]) enseigne les sections C+D. Michel Reid ([email protected]) enseigne les sections L+M. Début des cours théoriques : jeudi 06 janvier 2005 Début des travaux pratiques : semaine du 10 janvier 2005 (y compris la section A) Intra : samedi 19 février 12:30 à 14:30 (20 %) Final : samedi 16 avril 10:30 à 13:15 (40 %) Préalable : L’étudiant doit déjà connaître les éléments de base suivants de la programmation : les boucles de répétition, les tableaux à un seul indice, les sous-programmes avec paramètres dans un des langages de programmation suivants : C, C++ ou JAVA. Les cas exceptionnels peuvent être évalués : Le Van (514) 343-7410 IFT 1170, Hiver 2005 DESI le 10 janvier 2005 1 Population cible : Ce cours de programmation s’adresse à une population d’étudiants qui a déjà une connaissance de base d’un langage de programmation structurée en C ou en Java et qui désirent connaître les fondements d’un langage de programmation de plus en plus utilisé. Le langage JAVA est utilisé aussi dans les cours du niveau baccalauréat en informatique dans presque toutes les universités au Canada, aux États-Unis et en Europe, etc. Le cours IFT 1170 est un préalable reconnu pour les cours suivants : IFT 1166 : La programmation orientée objet avec C++ (Aut, Hiver, Été) IFT 1176 : Aspects avancés en Java (Aut, Hiver, Été) IFT 2810 : Structures de données (Aut, Automne, Été : cours du DIRO) etc . . . Contenu du cours (Hiver 2005) : Avant l'intra : - Le cours IFT 1170. - Programmer rapidement en Java les notions de base vues dans un cours préalable : . types primitifs : int, byte, short, long, float, double, char, boolean . opérateurs . la sélection simple avec if (condition) instruction . la sélection multiple avec switch ... . les 3 boucles : do . . . while, while . . . et for . . . . les tableaux à un seul indice . méthodes avec return et méthodes de type void - Programmation orientée objet (POO) : niveau simple . premier concept de la POO : encapsulation . classe : attributs (champs de données, membres données) méthodes simples . objet : déclaration, création, application de méthodes . identité et égalité : distinction entre objet et valeur - Utilisation de certaines classes prédéfinies : . Integer, Double, Math, String, StringTokenizer, Date, … - Programmation orientée objet (POO) : niveau intermédiaire . classe avec plusieurs constructeurs . accesseurs : accéder aux membres privés via méthode get…(), . modificateurs : imposer la valeur d'un membre via set…() . surcharge des méthodes . variables de classe, variables d'instance . transmission des paramètres en JAVA . clauses de visibilité : public, private, protected, … . tableau d'objets vs vecteur (class Vector) . données vs référence en JAVA, liste linéaire chaînée simple . signature de méthodes et le mot clé this . redéfinition de méthodes (exemples : toString, equals, . . .) IFT 1170, Hiver 2005 DESI le 10 janvier 2005 2 Semaine d’activités libres : 28 février au 06 mars (pas de cours ni de démonstration, les labos seront ouverts pour la pratique libre (P.L.)) Examen intra (barème : 20 %) : samedi 19 février de 12:30 à 14:30 Après l'intra : - Programmer en Java, autres notions de programmation : . recherche avec une sentinelle, recherche dichotomique . récursivité (tri rapide Quick Sort, etc …) - Programmation orientée objet (POO) : niveau avancé . héritage simple et polymorphisme : une classe à une autre (polymorphism across Classes) signature de méthodes et les mots clés this, super . classe et méthodes abstraites, interface . applications pratiques des interfaces (exemple : une seule méthode "trier" pour des tableaux de natures différentes : tableau des employés, tableau des pays, etc). . gestion des fichiers binaires, fichiers de type texte . héritage multiple vs interface . structure de données : liste linéaire chaînée d'objets . HTML et applets Examen final (barème : 40%) : date à confirmer au premier cours Travaux pratiques : à compter de la semaine du 10 janvier 2005: Semaine du 10 janvier 2005: - Familiarisation avec l'environnement de travail et JAVA - Préparation et réalisation de quelques numéros du TP1. Les autres semaines sont réservées pour la réalisation des travaux de programmation. L'énoncé des TPs est distribué une semaine à l'avance, ceci permet à l’étudiant de préparer son programme et de le mettre au point pendant les séances prévues à cet effet. Outre les périodes de démonstration, vous pouvez profiter des périodes de pratiques libres (P.L.) pour compléter vos travaux ou réviser la matière vue au cours théorique. Références : Les notes de cours : disponibles sur le site du cours (à parler au premier cours). - Claude Delannoy "Programmer en JAVA" (édition Eyrolles) - Deitel et Deitel "Comment programmer en JAVA" Les éditions Reynald Goulet Inc. - Laura Lemay … " JAVA Plate-Forme" (édition Campus Press) - John Lewis et William Loftus "Java software solutions" , second edition Addison-Wesley - Walter Savitch "JAVA An Introduction to Computer Science & Programming" , second edition Prentice Hall. IFT 1170, Hiver 2005 DESI le 10 janvier 2005 3 Inscription : 1. étudiants réguliers : à votre faculté ou département 2. étudiants libres : à Longueuil (voir le personnel du Campus Longueuil) OU au 3150 Jean-Brillant, porte C-1010 (près du métro Côte-des-Neiges) téléphone (514) 343-7338 à compter du 15 décembre 2004. Veuillez vous inscrire tôt pour vous assurer d'avoir une place et pour obtenir votre code d’accès aux laboratoires dès le début du trimestre d’hiver 2005. Avantages de la POO vs la programmation traditionnelle : (statistique chez IBM) Temps Lignes de code nb. de lignes moy. d'1 méthode Programmation procédurale (En moyenne) 35 jours 5827 39 avec POO (En moyenne) 17 1059 6 Pages Web : 1) du cours : http://www.iro.umontreal.ca/~dift1170/ 2) de la DESI : http://www.desi.umontreal.ca/ 3) du Guichet étudiant pour le cours IFT 1170 : http://www.progcours.umontreal.ca/cours/ Cours suivant de Java IFT 1176 Aspects avancés en Java (été 2005 : UDM , aut 2005 : Longueuil) Préalable : IFT 1170 Description IFT 1176 3 crédits AHE js Aspects avancés en Java Héritage et exception en Java. Interfaces usager . Collections. Java Beans, JDBC. Programmation parallèle et sur réseau. Sujets de ce cours Rappel des notions d'héritage et d'exception Classes abstraites et interface. Interfaces usager graphiques (GUIs) et SWING, Applets Collections framework Java Beans, Servlets, Processus parallèles, … Java Data Base Connextion (JDBC), …. Site du cours IFT 1176 : http://www.iro.umontreal.ca/~dift1176 Bonne session! Équipe du IFT 1170, Hiver 2005 IFT 1170, Hiver 2005 DESI le 10 janvier 2005 4