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)
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.
- 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
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.
The course exists in the following branches:
- Curriculum - Core curriculum - Semester 6
Course ID : 3MMPLC1
Course language(s):
You can find this course among all other courses.
B. Cassagne : Introduction au langage C, polycopié ENSIMAG.