Engineering Courses

Projects

In this section, I will showcase the key projects I have had the opportunity to complete as part of my engineering curriculum.

Model-driven Engineering: A Domain-Specific Computing Environment

The Model-Driven Engineering course focuses on design and architectural methods used in software development. We were introduced to a new approach to programming, where implementation and coding are carried out by creating models represented as diagrams. This innovative methodology aims to make programming more efficient and user-friendly.

As part of this course, we developed a set of tools designed to handle tables. The project’s structure and functionality were as follows:

We identified two types of users:

  • End User: Familiar with IT environments.
  • Target End User: A specialist in a different domain.

The tools were primarily designed for the end user, who, based on the target end user's requirements, could configure a set of tables, automate processing, and use our tools to generate a target-specific API. This API enabled the target end user to easily manipulate charts and perform the required operations without technical expertise.

For more details about the project, feel free to consult the dedicated report (French edition).

Poject report

(Coming soon)

Language Translation: Creation of a programming language and its compiler

The Language Translation course focuses on the design and implementation of a compiler, encompassing all its various stages. This course is closely tied to related fields such as language theory and automata theory, which we also explored.

A compiler is a fundamental component in IT, functioning as a program that translates a high-level programming language into machine language. This machine language can then be easily converted into binary instructions executable by the processor.

As part of this course, we implemented a compiler in OCaml. For more details about the project, feel free to consult the dedicated report (coming soon).

Operating System: Command Prompt Implementation

The Operating System course focuses on understanding the functionality and implementation of such systems on computers. In essence, an operating system serves as a software layer that mediates between hardware components and the user. It ensures seamless interaction among all components, making the computer "usable" through interfaces like the screen and keyboard. For this course, we specifically concentrated on the Linux operating system.

As part of our coursework, we developed a shell within the Linux environment. A shell, or command prompt, is a software application that interprets and executes user-written command lines via the operating system. It also incorporates a human-machine interface (HMI), allowing users to efficiently interact with and execute their commands.

Telecommunication: Study of a carrier-based transmission chain for fixe satellite transmission

The Telecommunication course covers all aspects of carrier-based transmission chains, including key metrics for evaluating their performance, such as the spectral efficiency coefficient and the power efficiency coefficient. It also examines the various parameters that influence these coefficients. Additionally, the course delves into the digital implementation of the transmission chain, focusing on components such as the baseband modulator, carrier transmission, baseband demodulator, and the return to baseband.

As part of this course, we implemented and analysed a carrier-based transmission chain for fixed satellite transmission, utilizing two different modulators that conform to the DVB-S and DVB-S2 standards. For more details about the project, feel free to consult the dedicated report (French edition).

Poject report