
A105 (A23) Computer architecture
I teach the architecture of computers. After an overview of ground hardware technologies used in microprocessor based systems, I focus the lecture on programming aspects to fill the gap between low and high level programming. The purpose is to make students « machine aware » i.e. conscious of spatial and temporal costs related to the execution of programs. Graphical representations of simple and complex data structures are emphasized in order to help the learner building efficient mental representations. Code generation strategies used by high-level language compilers in implementing flow control are also analyzed.
I also give this lecture in distance learning.
A110 (TA1) Technology of microprocessor based systems.
This module gives the student a detailed vision of what a microcontroller / microprocessor based system is. The role of software in embedded systems is also emphasized with an approach of test-driven development and integration of software parts developed concurrently.
TSIO Technology of Open Information Systems.
I am involved in a module about "Web technologies". I give lectures on development process automation illustrated with ANT and an advanced session on multi-threading and synchronization techniques illustrated with Java.
ILOG Software Engineering.
This optional course gives students advanced programming skills and good practices used by software developers, such as :
- versioning, development process automation, continuous integration,
- software architecture, design patterns, frameworks,
- documentation, modeling, test, coding, code generation, refactoring,