Programmation C GTI3105
Enseignant:
Email:
Durée totale du cours: 60H
Semestre : 1
Nombre de crédits : 3
Modules
spécialisés |
Modules de
base |
Sciences et techniques de
l'ingénierie |
Préparation à la carrière professionnelle |
|
|
X |
|
Nombre d’heures |
Activités hors classe |
|
45 |
38 |
|
cours |
TD |
TP |
30 |
15 |
15 |
|
|
|
|
|
Code |
: GTI3105 |
Programmation C
|
Volume Horaire: 01h:30 de cours + 1h30 Travaux pratiques (par semaine)
Objectifs d’apprentissage et compétences visées
Cette unité est pour maitriser les différents algorithmes et structures de données vus dans l’unité algorithmique avancée. En outre, la présente unité est une opportunité pour maitriser plusieurs éléments du langage C, à savoir :
Les pointeurs
La programmation modulaire (makfile)
La gestion de fichiers
L’utilisation de plusieurs bibliothèques
Le débogage.
Contenu du cours
Rappel
Structures conditionnelles
Structures itératives
Tableaux
Structures
Les pointeurs
Principe
Arithmétique et manipulation
Allocation dynamique des tableaux et matrices
Pointeurs et structures
Listes chainées
Les fonctions
Définition, appel et déclaration de fonction
Passage de paramètres (par valeur, par adresse)
Pointeur sur fonction
Fonction main et ses paramètres
Fonctions avec nombre variable de paramètres
Manipulation des fonctions de bibliothèques
string.h : Manipulation des chaines de caractères
math.h : fonctions mathématiques
stdlib.h : conversions de chaines et de nombres, aléatoire, recherche et tri
time.h : date et heure
Gestion de fichiers
Ouverture et fermeture de fichiers
E/S formatées
E/S binaires
Positionnement
Programmation modulaire
Compilation séparée
Principe de l’utilitaire make
Création d’un makefile
Règles générales de compilation
Méthodes d’enseignement et d’apprentissage
Travaux pratiques (laboratoire)
Travaux à faire à domicile (mini-projet, compte-rendu, …)
Connaissances et compétences pré-requises
Algorithmique de base
Concepts basiques de la programmation C
Références bibliographiques
Un polycopié (Notes du cours) de l’enseignant sera disponible.
Autres références sous forme de tutoriaux, manuels ou documents à télécharger
Les recommandations bibliographiques suivantes doivent être considérées :
Claude Delannoy, « Le guide complet du langage C »,
Eyrolles, 2014, 844p, ISBN : 978-2- 212-29514-6.
Modalité d’évaluation
100% Travaux pratiques (mini-projet avec présentation orale, examen TP, compte-rendu, …)
Résultats d'apprentissage :
Maîtrise des concepts de base de la programmation en C : Comprendre les principes fondamentaux de la programmation en C, y compris la syntaxe, les variables, les types de données, les opérateurs et les structures de contrôle.
Utilisation des bibliothèques standard : Savoir utiliser les bibliothèques standard du langage C pour des opérations courantes telles que l'entrée/sortie, la manipulation de chaînes de caractères et les opérations mathématiques.
Gestion de la mémoire : Comprendre les concepts de gestion de la mémoire en C, notamment l'allocation dynamique de mémoire, l'utilisation de pointeurs et la libération de mémoire pour éviter les fuites.
Structuration du code : Apprendre à organiser le code en utilisant des fonctions, des modules et des fichiers séparés pour améliorer la lisibilité, la maintenance et la réutilisabilité.
Manipulation de fichiers : Savoir manipuler des fichiers en C, y compris l'ouverture, la lecture, l'écriture et la fermeture de fichiers, ainsi que la gestion des erreurs.
Utilisation avancée des pointeurs : Maîtriser les pointeurs pour réaliser des opérations plus avancées, telles que la manipulation de structures de données complexes, la création de listes chaînées, etc.
Programmation modulaire : Diviser le code en modules logiques et indépendants, favorisant ainsi la maintenance, la collaboration et la réutilisation.
Débogage et gestion des erreurs : Savoir identifier, diagnostiquer et corriger les erreurs de programmation à l'aide d'outils de débogage et de techniques de gestion des erreurs.
Utilisation de structures de données : Appliquer des structures de données comme les tableaux, les listes chaînées et les piles pour résoudre des problèmes de manière efficace.
Programmation orientée objet en C (optionnel) : Comprendre les concepts de base de la programmation orientée objet en C, comme l'encapsulation, l'héritage et le polymorphisme.
Optimisation du code : Apprendre à optimiser les performances du code en optimisant les boucles, en minimisant l'utilisation de ressources et en adoptant de bonnes pratiques de programmation.
Applications spécifiques aux télécommunications : Appliquer les compétences en programmation C pour résoudre des problèmes liés aux communications, tels que le traitement de signaux, les protocoles réseau et la transmission de données.
[lifterlms_course_continue_button]