UQAM - Université du Québec à Montréal Faculté des sciences
Département d'informatique

INF600X - Sujets spéciaux en informatique et génie logiciel

Ce cours à contenu variable vise à permettre d'aborder de nouvelles approches prometteuses en informatique et génie logiciel non couvertes par les autres activités de la banque de cours.

INF600A Langages de script et langages dynamiques

Description

Le cours vise à introduire les étudiant-e-s à la programmation à l'aide de langages de script et de langages dynamiques.
Principales caractéristiques des langages de script. Introduction à un langage de script de bas niveau : variables, structures de données et de contrôle, définitions et appels de fonction, manipulation de chaînes et pattern-matching.  Introduction à un langage de script de haut niveau : Interprétation, compilation et exécution ; évaluation interactive ; variables, méthodes et typage dynamique ; structures de données (tableaux, chaînes, symboles, hashes) ; structures de contrôle ; définitions et appels de méthodes ; classes et modules ; manipulation de chaînes, expressions régulières et pattern-matching ; lambda-expressions et blocs/fermetures.

Utilisation d'un langage de script pour la coordination de programmes et de tâches (glue langage) ; traitement de données textuelles (pattern matching) ; mise en œuvre de DSL (langages spécifiques au domaine) avec interfaces coulantes. Exemples avancés d'outils et de DSL : cadre de tests unitaires, cadre de tests d'acception, assemblage de logiciels, développement d'applications en lignes de commandes.
Approfondissement d'un langage de script de haut niveau : Métaprogrammation,  extension de classes, méthodes appelées ou créées dynamiquement, appels indirects via des "hooks".

Ce cours comporte une séance de laboratoire (2 heures).

Préalables académiques

INF3180 Fichiers et bases de données ; INF3105 Structures de données et algorithmes

INF600C Sécurité des logiciels et exploitation de vulnérabilités

Description

Cours d'introduction à l'étude des vulnérabilités et à l'exploitation logicielle. Ce cours présente les concepts théoriques des vulnérabilités logicielles et les mises en oeuvre pratiques de l’exploitation de ces vulnérabilités en faisant appel aux notions de programmation, de système d'exploitation, et d’architecture.
Objectifs : Acquérir les ressources nécessaires à la recherche autonome de vulnérabilités logicielles. Saisir la gravité et l’impact réel des différents types de vulnérabilités logicielles et systèmes. Comprendre le processus d’exploitation logicielle et être en mesure d’accomplir le cheminement complet d’une attaque logicielle (audit de codes, rétro-ingénierie, reconnaissance et exploitation de vulnérabilités). Saisir les interactions possibles entre plusieurs vulnérabilités et les conséquences résultantes sur la sécurité des applications. Être en mesure de conduire une analyse forensique de base sur un système d’information Linux.

Ce cours comporte une séance obligatoire de laboratoire (2 heures).

Préalables académiques

INF2170 Organisation des ordinateurs et assembleur ; INF3135 Construction et maintenance de logiciels

Les pages web du département sont optimisées pour les standards.
Departement d'informatique  ›  informatique@uqam.ca
UQAM - Université du Québec à Montréal   ›  Mise à jour :