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.

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.