Semester 3
Ce cours est composé de plusieurs chapitres :

Dans le chapitre 1, on va aborder le problème de la décidabilité, c'est à dire on va poser un problème puis on décidera s'il est décidable, indécidable ou semi-décidable (on va prendre comme exemple le problème du PCP ).

Dans le chapitre 2 : on passera directement à la calculabilité et dans cette partie on va prendre comme exemple: la machine de Turing puis les fonctions primitives récursives. ce chapitre se terminera par une série d'exercices (Série de TD 1 sur le support).

Dans le chapitre 3 : On fera une introduction sur les systèmes formels en décrivant leurs composants et propriétés puis on fera quelques exercices surtout sur la création des systèmes formels basés règles (Série de TD 2 sur le support).

Le chapitre 4 : Dans ce chapitre, on entamera la partie la plus importante du cours qui est la logique propositionnelle. dans cette partie on va définir le langage de cette logique et la notion de démonstration, puis on va mettre l'accent sur les deux méthodes de démonstration (La théorie des modèles et la théorie de la preuve). Ce chapitre se termine par une série d'exercices (Série de TD 3 sur le support de cours).

Chapitre 5 : dans ce chapitre, on continu avec la logique mais on passe à la logique du premier ordre dans la quelle on trouve de nouvelles notions telles que la notion de prédicat, les quantificateurs et les fonctions, .. etc. On va définir son système de preuve en abordant les deux approches "la théorie des modèles" puis "la théorie de la preuve".

Si on arrive à terminer tous ces chapitres, on fera une introduction sur le modèle de preuve d'Herbrand en passant par les formes prenexes et clausales.
The general goal of this course
To understand graph-based problem modeling and to be familiar with basic algorithms used in task scheduling, the lowest cost computing, computer networks, and optimal path searching.
Learning goals
  • Modeling problems with oriented and non-oriented graphs
  • Problem solving using particular graphs (bipartite, planar, etc.)
  • Minimum spanning tree computing
  • Solving scheduling problems
  • Finding the shortest path in a graph
  • Finding maximum flow in transport network
« Les mauvais programmeurs se soucient du code. Les bons programmeurs se soucient des structures de données et de leurs relations. » — Linus Torvalds, créateur de Linux
Objectifs du cours :
• Familiariser les étudiants avec l’architecture des ordinateurs modernes.
• Initier les étudiants à la programmation en langage d'assemblage (Syntaxe des
instructions, modes d’adressage, etc.).
• Maîtriser la transformation d’un code écrit en langage de haut niveau en code
d’assemblage et les appels de fonction à travers la gestion de la pile.
• Se familiariser avec l’architecture interne du microprocesseur micro-programmé.