Number of hours
- Lectures 14.0
- Projects -
- Tutorials 18.0
- Internship -
- Laboratory works 28.0
- Written tests 6.0
ECTS
ECTS 0.7
Goal(s)
This course introduces advanced concepts of imperative programming and C programming language. It provides tools for modeling complex algorithmic problems and designing effective solutions.
At the end of this course, students will be able to :
- Handle text and binary files
- Understand the basics of pointers and memory management
- Manage I/O operations and use the command line arguments
- Estimates algorithms performance: time complexity or worst-case cost
- Design and write recursive algorithms
- Handle complex C language data structures
Content(s)
1. Pointers, dynamic memory allocation, Makefile and files
2. Recursion: subroutines, execution context and execution stack, divide-and-conquer paradigm
3. Sorting algorithms and their complexity: selection, insertion, bubble, merge-sort, quick-sort
4. Elementary data structures: list, set, stack, queue
5. Linked lists data structures
6. Trees: binary trees, binary search trees
- Introduction to programming course (IESE3)
- Fundamentals of compilation process in C language
- Proficiency in Linux programming environment
100% final exam:
- 50% written exam
- 50% practical exam
Final exam conditions:
- Written exam :
- 1 handwritten sheet A4 recto/verso authorized
- PC, laptop, calculator, mobile phone and smartwatch forbidden
- Third time: adapted subject
- Practical exam :
- 1 computer test - 3h
- Course material and practice codes authorized
- Calculator, personal computer, mobile phone and smartwatch forbidden
- Third time: adapted subject
The course exists in the following branches:
- Curriculum - IESE - Semester 6
Course ID : KAIE6M14
Course language(s):
You can find this course among all other courses.
- "Types de données et Algorithmes" par Christine Froidevaux, Marie-Claude Gaudel et Michèle Soria
- "Le langage C - Norme ANSI" par Brian W. Kernighan et Dennis M. Ritchie