This course assumes that the student already masters notions of algebra covered by the course LINFO1112

*The prerequisite(s) for this Teaching Unit (Unité d’enseignement – UE)
for the programmes/courses that offer this Teaching Unit are specified at the end of this sheet.*

**Set theory**

- Set notations and operations
- Binary relations between sets: applications and link with functions in analysis
- Cardinality of a set (finite and infinite) and notion of inclusion-exclusion
- Equivalence, equivalence classes

**Logic**

- Introduction to the logic of the proposals
- Introduction to the logic of predicates
- Prove methods
- Mathematical induction
- Notions of Boolean Algebra

**Introduction to number theory**

- Natural integer numbers, principle of recurrence, prime numbers, etc.
- Euclidean division, representation in a base, modulo arithmetic, representation of the integers in the computer
- Gcd, Euclid's algorithm
- Basic notions of cryptography

**Combinatorial mathematics**

- counting
- permutations
- arrangements
- Recurrence relations
- Solutions of recurrence equations

**Introduction to graph theory**

- Oriented and non-oriented graphs and their matrix representations
- Bipartite graphs and matching problems
- Paths on a graph and Eulerian / Hamiltonian circuits
- Planar graphs and coloring
- Problems of shorter path
- Ranking of the nodes of a graph: PageRank

- S1.I1, S1.G1
- S2.2

Students who have successfully completed this course will be able to:

- Use the terminology of functions, relationships and together well and perform related operations when the context requires it
- Explain the basic structure of the main proof techniques (direct proof, counterexample, proof by the absurd, induction, recurrence)
- Apply the various proof techniques in a convincing way by selecting the most adapted to the problem posed
- Analyze a problem to determine the underlying recurrence relationships
- Calculate counts, permutations, arrangements on sets as part of an application.
- Modeling various real-world problems encountered in computer science using the appropriate forms of graphs
- Explain the problem of the shortest path in a graph and apply classical algorithms to solve this problem

*The contribution of this Teaching Unit to the development and
command of the skills and learning outcomes of the programme(s) can be
accessed at the end of this sheet, in the section entitled
“Programmes/courses offering this Teaching Unit”.*