Areas of expertise

Mathematics, engineering sciences and software engineering

The sections below describe subjects on which a course or a training session can be built. Each area is presented through the questions it helps to address, and through the way it can be taught.

Mathematics and engineering sciences

These areas cover scientific tools useful to an engineer: describing a quantity, writing a model, understanding a physical phenomenon, analysing a signal and placing a communication system. Teaching starts from definitions and reasoning, then moves to applications.

Mathematics

Analysis, algebra and calculus are a shared language of engineering science. The teaching aim is to connect a calculation technique with the question it can answer, and to know the setting in which it applies.

Analysis

Study the behaviour of a function, a sequence or a limit, then interpret that behaviour in a problem.

Algebra

Work with structures, systems and linear transformations that recur in physical and computing models.

Differential and integral calculus

Connect change, accumulation and approximation, and recognise these ideas in a concrete calculation.

Differential equations

Describe how a system evolves and discuss the form of the solutions before computing them.

Mathematical tools for engineers

Choose a tool suited to a problem, and state its assumptions and what it leaves out.

Mechanics and physics

Mechanics and general physics connect quantities, causes and effects. Modelling means isolating a phenomenon, choosing assumptions and writing the relations that describe it.

Mechanics

Describe a motion and the actions that produce it, and distinguish the chosen model from the real situation.

General physics

Strengthen the quantities, units and laws used later in other scientific modules.

Modelling of physical phenomena

Move from a situation to a diagram, then to equations that can be used and criticised.

Electromagnetism

Electromagnetism describes electric and magnetic fields and their effects. It sheds light on many systems that produce, propagate or receive a signal.

Electric and magnetic fields

Understand the sources of a field, its structure and the quantities that characterise it.

Equations and phenomena

Connect the laws of electromagnetism with the effects they predict, and with the assumptions that accompany them.

Applications to communication systems

Place these phenomena in devices that emit, carry or receive information.

Signal processing

Signal processing studies how to represent, transform and interpret information that changes, most often over time. It is a natural bridge between physics, mathematics and digital systems.

Deterministic and random signals

Distinguish a known shape from a noisy observation, and choose a suitable formalism.

Time and frequency representations

Read a signal in time, then understand what its spectrum makes visible.

The Fourier transform

Move from one description to the other and interpret the components, beyond the calculation itself.

Sampling and filtering

Know when a sequence of samples preserves the information, and how to extract or attenuate certain components.

Digital analysis and processing

Carry out these operations on real or simulated data, and check the result.

Telecommunications and networks

Telecommunications studies the transmission of information. Computer networks describe how that information moves between devices, according to models and protocols.

Principles of telecommunications

Follow the chain from transmitter to receiver, taking the transmission medium into account.

Transmission of information

Represent a message and carry it through an imperfect medium, then discuss what limits the transmission.

Fundamentals of networks

Addressing, forwarding, sharing a medium and the role of devices, starting from concrete situations.

Models and protocols

Organise a communication in layers and understand what a protocol secures, and what it leaves open.

Computing and software engineering

Computing is approached from the point of view of design: structuring a problem, choosing abstractions and writing software that can be understood, tested and changed. Ideas are worked through examples, not as a list of terms to memorise.

Object-oriented programming

Object-oriented programming organises a program around objects that bring data and operations together. It helps build readable software when the subject is too rich for a sequence of isolated functions.

Classes and objects

Distinguish a model, the class, from its concrete instances, and see what that distinction clarifies.

Encapsulation

Group data and operations, and limit the access that makes a program fragile.

Inheritance and polymorphism

Share common behaviour and let several objects answer the same request in a way that fits each one.

Abstraction and interfaces

Depend on a contract rather than an implementation detail, so the rest of the program stays stable.

Design principles

Choose a division of the program that remains understandable when the need changes.

Software design

Designing software means deciding its structure before multiplying lines of code, then revising that structure as the need becomes clearer. Principles and patterns are aids to judgement, illustrated by cases, not slogans to recite.

Requirements analysis

State what the software must do, and recognise what lies outside its role.

Modelling

Represent the entities, their relations and the main flows before the code is fixed.

Software architecture

Divide the system into parts whose responsibilities remain identifiable.

SOLID principles

Use these guides to limit overly broad responsibilities and needless dependencies, on examples of code.

Design patterns

Recognise recurring structural problems and proven forms of solution, and also discuss their cost.

Maintainability and room to evolve

Organise the code so that it can be reread, modified and extended without rebuilding everything.

Software development

Development puts the design to the test of real code: naming, splitting, checking and correcting. Sound practice is what makes the work easier to read and to take over.

Structuring the code

Files, modules, names and responsibilities, chosen so that the program can be read.

Tests and software quality

Check an expected behaviour and notice a regression when the code changes.

Debugging

Observe a program, form a hypothesis about the fault and test that hypothesis.

Applied projects

Carry a small development from the need through to a coherent result.

Sound practice

What makes the code simpler to check, to explain and to take over.

These subjects are not a fixed catalogue taught at the same depth to every audience. Content, pace and prerequisites are adapted to the programme and to the people concerned.

Discuss a teaching or training project

A course, practical sessions, teaching materials, team training or individual support can be shaped from the audience, the subject, the level and the setting.

Let us discuss your need