#### None

### (2015-2016)

#### Low-level programming and architecture (University of Bordeaux - IUT - M2101)

Basic course (1st year) taught to undergraduate students introducing them to low-level programming and low-level operations.

Notions:

- SIC/RISC architecture; PPC assembler and low-level programming; Gdb debugging.

#### Algorithmic and Programming: Initiation to Object-Oriented Programming (University of Bordeaux - IUT - M2103)

Basic course (1st year) taught to undergraduate students introducing them to OO programming and algorithmic. Follow-up of M1103.

Notions:

- Classes/objects: constructor, destructor, methods, operators, operator/method/function overload.
- Standard Template Library; Inheritance; Polymorphism; Template classes.

### (2014-2015)

#### Algorithmic and Programming 2 (University of Bordeaux - IUT - M1103)

Basic course (1st year) taught to undergraduate students introducing them to programming and algorithmic. Follow-up of M1102.

Notions:

- Matrices; Text file and picture manipulation; Recursion; Search and sort algorithms; Pointers; Member functions.
- Use of algorithmic language and C++; Furtherment of program quality and code testing.

#### Algorithmic and Programming 2 – Project (University of Bordeaux - IUT - M1103)

An application of the teachings introduced in parallel to M1103 through a small project for groups of up to 3 students.

### (2013-2014)

#### Algorithmic and Programming 1 (University of Bordeaux - IUT - M1102)

Basic course (1st year) taught to undergraduate students introducing them to programming and algorithmic.

Notions:

- Fundamental algorithmic structures; Introduction of functions, methods and parameters.
- Use of basic algorithmic language and introduction to C++; Introduction of program quality and code testing.

### (2012-2013)

#### Algorithmic (UQAC - DIM - 8INF433)

Advanced course (2nd-3rd year) taught to undergraduate students introducing the notion of algorithmic complexity. Within the course, several solutions are studied to analyse the efficiency of different algorithms and give keys to implement them effectively.

Notions:

- Analysis: Time and spatial complexity, asymptotic analysis (big O), recurrence relation and difference equations.
- Conception: greedy algorithms, divide and conquer methods, dynamic programming, probabilistic and parallel algorithms.
- Hard problems and decidability; NP-complexity.