- To acquire the mathematical foundations of a variety of concepts and techniques used in computing science.
- To make the appropriate connections between such foundations and various application domains in programming, data structures, artificial intelligence, software engineering, databases, robotics, etc.).
- To apply rigorous approaches for formalizing structures found in computing science and for reasoning about such structures.
- Inductive theories: well-founded relations and the general induction principle. Basic inductive theories : nonnegative integers, tuples, lists, trees, sets, multisets, sequences, etc. Structure generators, systematic construction of axiomatisations, and inductive proofs of typical properties according to various induction rules (recurrence, complete induction, etc.).
Applications to various domains : program verification, specification of abstract data types, automated reasoning, expert systems, robotics, databases, parsing, etc.
Implementation with declarative programming languages such as PROLOG or ML.
Other information (prerequisite, evaluation (assessment methods), course materials recommended readings, ...)
- Weekly exercise sessions require students to come prepared and be actively involved -questions/answers, and resolution, by small groups, of problems submitted during the previous week. Quizzes are organized regularly to make sure that students follow and work properly.
- Prerequisite:
Elementary maths (assumed to be acquired after the first two bachelor years).