La recherche opérationnelle est une discipline qui exploitant des méthodes et outils mathématiques, économiques et informatique pour aider les décideurs à faire les meilleurs choix. Les apports de la RO sont visibles partout : de l’organisation des lignes de production d’automobiles à la planification des missions spatiales, de l’optimisation des portefeuilles bancaires à l’aide au séquençage de l’ADN, mais aussi dans la vie de tous les jours pour le recyclage des déchets, l’organisation des ramassages scolaires, les emplois du temps des infirmières ou la couverture satellite des téléphones portables. L’utilité et les champs d’exploitation n’ont fait que croître au fil des décennies, aidée en cela par les progrès dans les mathématiques et les techniques d’optimisation, ainsi que par l’explosion des possibilités offertes par les technologies de l’information.

Dans ce cours, on cherche à initier les étudiant à une approche quantitative permettant de produire de meilleures décisions. Nous présentons des outils pour rationaliser, simuler et optimiser l’architecture et le fonctionnement des systèmes industriels et économiques. Nous proposons des modèles (tels que les graphes) pour analyser des situations complexes pour permettre aux décideurs de faire des choix efficaces et robustes. 

L'objectif de ce cours est d'initier l’étudiant au paradigme de la programmation fonctionnelle et illustrer des techniques de programmation propres à ce paradigme avec le langage Common Lisp.

Étudier l’algorithmique, c’est apporter des réponses à vos questions. Cette science est le coeur de l’informatique. Pour tout ceux qui doivent ou devront faire travailler un ordinateur, il est essentiel de comprendre ses principes fondamentaux et de connaître ses éléments de base. Une formule 1 ne se conduit pas comme une voiture à pédales. De même un ordinateur se s’utilise pas comme un boulier.
L’algorithmique est le permis de conduire de l’informatique. Sans elle, il n’est pas concevable d’exploiter sans risque un ordinateur. Cette introduction remarquable à l’algorithmique donne au lecteur d’une part les bases théoriques indispensables et lui fournit d’autre part les moyens de concevoir rigoureusement des programmes efficaces permettant de résoudre des problèmes variés
issus de différentes applications. Les algorithmes présentés ici, principalement  les algorithmes de tri sont assez classiques.

 La théorie des langages est une branche de l'Informatique théorique qui étudie la structure formelle des langages. Elle permet de comprendre les régularités syntaxiques des langages et ainsi de pouvoir communiquer avec la machine. En effet, l'ordinateur ne comprend que le langage pour lequel il a été conçu : le langage binaire. Alors pour communiquer avec les langages évalués, il est nécessaire de recourir à un traducteur appelé compilateur dans ce contexte. Ce cours donne les éléments théoriques qui concurrent à la conception et à la réalisation d'un compilateur.