Description:
Concepts avancés : classes, objets, héritage, interfaces, réutilisation, événements. Introduction aux structures de données et algorithmes : listes, arbres binaires, fichiers, recherche et tri. Notions d’analyse numérique : précision.
Liens:
- StudiUM
- Co-enseignant (partie 1): François Major
- Catalogue Officiel
Aperçu
La deuxième partie du cours comporte 6 modules:
- Module 7: Exceptions
- Module 8: Fichiers et sérialisation
- Module 9: Architecture client-serveur et programmation événementielle
- Module 10a: Introduction aux interfaces graphiques et l’infographie
- Module 10b: Architecture des applications graphiques
- Module 11: Multithreading
Réunions
- Lundi et mardi: chaque section a 1 heure avec le prof (annulé, pas de cours, sauf le lundi 6 et mardi 7 mars)
- Temps pour écouter les vidéos
- Lundi et mardi: chaque section a 2 heures avec les auxiliaires («démos»)
- Démonstration des sujets pratiques et discussion du TP
- Mercredi et jeudi: chaque section a 2 heures avec le prof. («théorie»)
- 1 heure: Temps structuré, activités avec le prof
- 1 heure: Temps non structuré / disponibilité pour répondre à des questions
Matériel
Module 7: Exceptions
- Théorie: mercredi 8 et jeudi 9 mars
- Diapositives: ~/IFT1025/07.Exceptions/Exceptions.pdf
- Vidéos (01:17:02):
- 7.1-Erreurs (00:16:02)
- 7.2-Lancer une exception (00:17:27)
- 7.3-Trajet de transmission d’une exception 🥔🧤 (00:11:12)
- 7.4-finally (00:13:00)
- 7.5-Exigence catch-or-specify (00:19:31)
Module 8: Fichiers et sérialisation
- Théorie: mercredi 15 et jeudi 16 mars
- Diapositives: ~/IFT1025/08.Fichiers/Fichiers.pdf
- Vidéos (01:21:54):
- 8.1-Types de mémoire (00:11:22)
- 8.2-Fichiers (00:21:22)
- 8.3-Streams (00:13:36)
- 8.4-Sérialisation (00:17:34)
- 8.5-Random Access et Index (00:18:00)
Module 9: Architecture client-serveur et programmation événementielle
- Théorie: mercredi 22 et jeudi 23 mars
- Diapositives: ~/IFT1025/09.Événements/Evenements H21.pdf
- Vidéos (01:06:48):
- 9.1-Architecture Client-Serveur (00:09:50)
- 9.2-Sockets (00:16:19)
- 9.3-Programmation événementielle (00:23:21)
- 9.4-Interfaces fonctionnelles (00:17:18)
Module 10a: Introduction aux interfaces graphiques et l’infographie
- Théorie: mercredi 29 et jeudi 30 mars
- Diapositives: ~/IFT1025/10.Animation et infographie 2D/Interfaces-graphiques H21.pdf
- Vidéos (00:43:34):
- 9b.1-Introduction aux interfaces graphiques (00:16:49)
- 9b.2-Arbre de scene et elements graphiques (00:18:52)
- Comment Michalis a installé JavaFX sur son Eclipse (00:07:53)
Module 10b: Architecture des applications graphiques
- Théorie: mercredi 5 et jeudi 6 avril
- Diapositives: ~/IFT1025/10.Animation et infographie 2D/Interfaces-graphiques H21.pdf
- Vidéos (00:52:31):
- 9b.3-Evenements (00:07:27)
- 9b.4-Layouts (00:18:52)
- 9b.5-MVC (00:26:20)
Module 11: Multithreading
- Théorie: mercredi 12 et jeudi 13 avril
- Diapositivies: ~/IFT1025/11.Multithreading/Multithreading.pdf
- Vidéos (01:13:29):
- 10.Threads (00:15:42)
- 11.Ordre d’execution (00:10:51)
- 12.Interference entre les threads (00:14:44)
- 13.Synchronization (00:10:44)
- 14.Interblockage (00:09:07)
- 15.Threads et JavaFX (00:12:21)
Démos
Les démos se font avec les auxiliaires:
Démonstration/illustration et discussion des sujets pratico-pratiques (compétences de programmeur). Discussion et aide avec le TP. (Les étudiants feront des exercises sur le matériel avec le professeur pendant les heures de «théorie».)
Plan:
- Démo 1:
- Outils de programmation: IDEs, mode de débogage, ligne de commandes et javac
- lundi 6 et mardi 7 mars
- Démo 2:
- Controle de versions et programmation sociale: git, Github. Code reviews.
- lundi 13 et mardi 14 mars
- Démo 3:
- Distrubution du code: Jars, Manifest.MF, Javadoc
- lundi 20 et mardi 21 mars
- Démo 4:
- Testing: JUnit, TestFX
- lundi 27 et mardi 28 mars
- Démo 5:
- Moteurs de production (build automation tools): ant, maven, gradle
- lundi 3 et mardi 4 avril
- Démo 6:
- Interoperabilité avec autres langages du JVM: Groovy, Kotlin, Scala, Clojure, Jython
- mardi 11 avril (lundi UdeM fermé!)
Évaluation
3 quiz (10% chacun) en-ligne:
- Q1: Modules 7 & 8 – mardi 21 mars
- Q2: Modules 9 & 10a – mardi 4 avril
- Q3: Modules 10b & 11 – mercredi 19 avril
1 TP de 20 points (TP2):
- Date de mise en ligne: 10 mars
- Date limite de remise: 14 avril (juste avant la période d’examens)
Il y a un seuil de 50% à atteindre sur l’ensemble des tests en-ligne pour passer le cours.
Forum
Nous utiliserons Piazza comme le principal moyen de communication et discussion
- https://piazza.com/umontreal.ca/winter2023/1025
- Pour toutes les communications concernant le cours, utilisez Piazza.
- Pour tout autre problème et pour demandes confidentielles, contactez-moi à famelis@iro.umontreal.ca
Annonces affichées sur Piazza, seront supposées avoir été vues par tous les étudiants.
- Nous allons essayer de répondre à tous vos messages sur Piazza avant la fin du prochain jour ouvrable.
- Nous ne promettons rien quant au délai de réponse aux courriels (messages hors Piazza).
- Nous ne pouvons pas garantir de répondre en dehors des heures de bureau ou pendant les fins-de-semaine et les jours fériés. Nous ne nous attendons pas non plus à ce que vous répondiez pendant ces périodes.
- Aucune garantie de réponse (sur Piazza ou autre) le jour où un TP ou un quiz est dû.
- Si vous posez une question par message direct, nous allons donner une réponse (anonymisée) sur un des canaux publics du Piazza
- Utilisez votre nom complet sur Piazza (comme sur StudiUM). NB: l’UdeM vous permet d’utiliser un prénom choisi!
Autres points
Nous acceuillons chaleureusement vos commentaires, même anonymes. Vous pouvez utiliser la boîte de suggestions anonymes .
Les soumissions tardives ne seront pas acceptés. Il n’y aura pas de prolongation et il n’est pas possible de refaire ou de faire plus de travail pour augmenter une note. Mais: «Life happens», surtout quand les enfants et la famille sont impliqués. Planifiez, si possible. Demandez des accommodements le plus tôt possible. Il y toujours beaucoup de choses à faire. Respirez. Aucun cours ne vaut votre santé.