Ensimag Rubrique Formation 2022

- 3MMPLC1

  • Number of hours

    • Lectures 2.0
    • Projects 84.0
    • Tutorials -
    • Internship -
    • Laboratory works -
    • Written tests -

    ECTS

    ECTS 4.0

Goal(s)

  • Deepen knowledge in a programming language close to the machine (C language)
  • Meet specifications
  • Complete a significant software project full-time in a team
  • Discover tools and best practices for collaborative work (planning, task distribution, priority management)

Responsible(s)

Julie DUMAS

Content(s)

The project is divided into two topics proposed to students who work in teams of three. Regardless of the project chosen by the students, the course objectives are as follows:

  • Deepen knowledge in a programming language close to the machine (C language)
  • Meet specifications
  • Complete a significant software project full-time in a team
  • Discover tools and best practices for collaborative work (planning, task distribution, priority management)

The two project themes are the development of a graphical user interface (GUI topic) and the development of a JPEG encoder or decoder (JPEG topic). For each of the two topics, we offer two variations that alternate depending on whether the year is even or odd.

The proposed projects are as follows:

  • *Graphical User Interface (GUI):* development of a library for programming graphical user interfaces
    ** Optimized drawing of graphical primitives (lines, filled polygons, clipping)
    ** Interactor classes: polymorphism mechanisms for structures and functions
    ** Geometry calculations based on constraints
    ** Event-driven programming, event routing, picking
  • *JPEG:* development of an encoder or decoder adhering to the JPEG standard
    ** Adherence to the standard
    ** Signal processing algorithm
    ** Bit-by-bit reading from a file
    ** Command-line argument management
    ** Performance analysis: execution time and memory footprint.

Prerequisites

  • Basics of imperative programming (AP1)
  • Basics of the C language (AP2 and ILM):
    ** Know how to compile and run a C program composed of multiple modules
    ** Know how to use a library
    ** Pointers
    ** Be familiar with different debugging tools (compiler options, gdb, valgrind)
  • Using git

Test

Evaluation : Projet (rendu du code et des résultats) + soutenance

*NORMAL SESSION:*
Presentations take place at the end of the "project" section. These presentations are about the project carried out in groups of three, at the end of the semester. They are organized directly by the members of the teaching team, during the scheduled time slots and rooms for the project (no special organization required).
The grade for the normal session corresponds to the grade of the presentation.

*RESIT SESSION:*
No resit available.

Calendar

The course exists in the following branches:

  • Curriculum - Core curriculum - Semester 6
see the course schedule for 2025-2026

Additional Information

Course ID : 3MMPLC1
Course language(s): FR

You can find this course among all other courses.

Bibliography

B. Cassagne : Introduction au langage C, polycopié ENSIMAG.