Course list

IHDCB131 - Programmation 1

Après une introduction des concepts clés liées aux notions d'algorithme et de programme, nous étudions les éléments de base de la programmation impérative : la variable, l'affectation et les structures de contrôle (séquence, sélection, et itération). Nous prêtons attention au raisonnement formel sous-jacent à la programmation en particulier pour la construction des boucles (méthode de l'invariant) et la réalisation d'un calcul itératif. Nous étudions les sous-programmes en y incluant le passage des paramètres (passage des valeurs et passage des références) et insistons sur leur utilisation afin de structurer un programme. On étudie l'usage des tableaux et des structures et on introduit quelques notions clés de l'algorithmique et du calcul de complexité. Le langage de programmation utilisé dans ce cours est C, bien que les concepts étudiés et la méthodologie acquise soient indépendants d'un langage particulier.

IHDCB232 - Algorithmique 1

Ce cours introduit l'étudiant au raisonnement formel par rapport aux programmes. Nous étudions les concepts principaux sous-jacents à la spécification d'un programme. Nous apprenons des techniques qui permettent de prouver la correction d'un programme par rapport à sa spécification. Ensuite, et à partir de ces techniques, nous arrivons à une méthodologie de construction qui permet la réalisation d'un programme à priori correct. Nous introduisons également les notions de base derrière le calcul de complexité (en temps et en espace) d'un programme et on étudie quelques d'algorithmes de recherche et de tri.

INFOB131 - Introduction à la programmation

Le but du cours est d'introduire à la programmation en Python, afin de résoudre des problèmes simples à l'aide d'algorithmes adaptés. Les concepts suivants seront progressivement introduits : variables, valeurs, structures conditionelles, fonctions, spécification, boucles for/while, structures de données simples, fichiers, bases d''algorithmique (recherche de minimum, tri, complexité, etc.) et récursion.

INFOB316 - Programmation fonctionnelle et logique

Ce cours vise à étudier le paradigme de programmation fonctionnelle et logique. Pour chaque paradigme, on y présente d'abord les concepts de base (fonction, réduction, évaluation, pour la programmation fonctionnelle, logique de Horn, stratégie de sélection, négation) avant d'aborder des sujets plus avancés, comme les fonctions d'ordre supérieur, les types polymorphes, les monades ou encore quelques exemples de programmation non déterministe. Une attention particulière est aussi portée aux techniques de programmation adaptées à ces paradigmes.