Calendrier des semaines

# Date Cours # Date Cours # Date Cours
1 2024-01-12 Chapitre 1 6 2024-02-16 Chapitre 4 (pratique) 11 2024-03-29 Férié
2 2024-01-19 Chapitre 2 7 2024-02-23 Chapitre 5 12 2024-04-05 Présentations d’articles
3 2024-01-26 Chapitre 3 8 2024-03-08 Chapitre 6 (en ligne) 13 2024-04-12 Présentations d’outils
4 2024-02-02 Chapitre 4 9 2024-03-15 Rencontres d’étape (en ligne) 14 2024-04-19 Lecture d’articles
5 2024-02-09 Chapitre 4 (suite) 10 2024-03-22 Intra 15 2024-04-26 Projets

Évaluation

Évaluation Pondération Échéance
Examen intra 30% Semaine 10
Présentation d’articles 30% Semaine 12-13
Présentation d’outil 30% Semaine 14-15
Participation au cours 10%

La matière de l’intra porte sur le contenu des chapitres 0 à 6. Des exercices de révisions sont disponibles, ainsi que les solutions.

Pour l’examen, vous pouvez venir avec deux pages de notes (format lettre, recto-verso, donc 4 faces) manuscrites comme aide mémoire.

Contenu du cours

Code source des exemples

Articles et outils

Chaque chapitre reprend en sa fin une sélection d’articles et d’outils qui peuvent être utilisés pour les présentations. Selon vos intérêts, vous pouvez sélectionner d’autres articles et outils.

Pour les articles, les critères suivants doivent être respectés :

Pour les outils, vous pouvez consulter les listes suivantes reprenant divers outils d’analyse de programmes :

Veuillez valider le choix d’article et d’outil avec l’enseignant au plus tard pour l’intra. Pour la lecture de l’article, référez-vous à How to Read a Paper

Livrables

Pour l’article et l’outil :

  • Présentation (10%) de 30 minutes, incluant du temps pour les questions.
  • Mini-rapport (5%) de 3 à 5 pages résumant la présentation et prenant en compte les commentaires.

Travail de session

Le travail de session vise à approfondir un domaine en lien avec le cours et peut prendre plusieurs formes : compte-rendu de lecture dans un sous-domaine du cours ou connexe, mise en œuvre pratique de concepts vu en cours, développement de logiciel, etc.

Pour référence, vous pouvez consulter la page du cours de l’édition précédente qui liste les projets de session réalisés cette année.

Livrables

  • Choix du sujet (5%)
  • Rencontre d’étape (5%)
  • Présentation finale (10%) : 30 minutes, incluant du temps pour les questions.
  • Mini-rapport résumant la présentation (10%) : un rapport de 3 à 5 pages en PDF, incluant un titre et un court résumé du projet (un ou deux paragraphes).

Présentations

Quelques conseils pour une présentation efficace :

  • Les diapositives sont un support visuel, et amènent un élément complémentaire à la présentation orale.
  • Éviter des liste de points quand ce n’est pas pertinent.
  • Éviter d’inclure de longues phrases sur les diapos.
  • Éviter de simplement lire le contenu des diapositives.
  • Illustrer avec des exemples
  • Inclure des figures et autres visualisations quand c’est pertinent.
  • Inclure des numéros de diapositives.
  • Inclure les résultats (tableau, graphes)
  • S’il y a de la formalisation, c’est utile à avoir dans la présentation s’il y a des questions pointues.
  • Environ une diapo par minute de présentation : pour une présentation de 25 minutes, avoir environ 25 diapos.
  • Utiliser une taille de police assez grande pour que cela soit lisible par tout le monde dans la salle
  • Éviter des contraste de couleur trop faibles (e.g., gris sur blanc)
  • S’assurer de l’absence de fautes de français, et une utilisation consistante des la capitalisation

Exemple de structure pour la présentation d’article :

  • Titre de l’article, auteurs, nom de la conférence, date
  • Introduction, mise en contexte : quel est le problème qu’on vis à résoudre, pourquoi c’est important.
  • Éléments de base : introduire les concepts essentiels nécessaires (si c’est pertinent)
  • État de l’art : qu’est-ce qui existe avant cet article pour résoudre le problème
  • Approche : comment le problème est-il traité
  • Résultats : comment l’approche est évaluée, quelles sont les questions de recherche, quels sont les résultats, comment les interpréter
  • Limitations
  • Conclusion : qu’est-ce que cet article implique
  • Discussion / critique de l’article : réflexion de votre part
  • Il est important de faire le lien avec les concepts pertinents vus au cours au travers de la présentation

Pour la présentation d’outil, les points éléments sont importants :

  • Faire le lien avec le cours
  • Donner des exemples
  • Expliquer les limitations, idéalement au travers d’exemples
  • Expliquer si l’outil donne lieu à des faux positifs / faux négatifs
  • Expliquer comment l’outil fonctionne, comment il est implémenté

Image docker

Pour les exercices pratiques utilisant LLVM, vous pouvez utiliser l’image Docker fournie :

$ docker run -v /chemin/vers/code/:/code -it \
    registry.gitlab.info.uqam.ca/inf889a/slides/llvm
# export PATH=/llvm-project/build/bin/:$PATH
# clang -S -emit-llvm /code/hello.c

Références