IFT 1025 – Programmation 2 – Hiver 2023

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:

Aperçu

La deuxième partie du cours comporte 6 modules:

  1. Module 7: Exceptions
  2. Module 8: Fichiers et sérialisation
  3. Module 9: Architecture client-serveur et programmation événementielle
  4. Module 10a: Introduction aux interfaces graphiques et l’infographie
  5. Module 10b: Architecture des applications graphiques
  6. 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

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

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

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é.