Résumé

Ce cours tient en compte les orientations du nouveau programme pédagogique défini par la commission pédagogique nationale de l’enseignement supérieur, et s’adresse en premier lieu, aux étudiants de la 2ème année – parcours Licence Académique en Informatique – Semestre 3- matière Algorithmique et Structures de Données (ASD). Le cours s’adresse également à des lecteurs désireux de s’initier à la conception des algorithmes corrects pour être codés en langage de programmation C.

Nous commençons ce cours par un chapitre sur les notions de base de l’algorithmique, et la méthodologie de conception des bons algorithmes, et cela, d’une façon lisible, correcte, complète et efficace.

À travers plusieurs exemples et des exercices, le lecteur va développer dans le deuxième chapitre, un aspect d’analyse et de réflexion pour s’adapter à la résolution des problèmes complexes en choisissant les meilleures méthodes et techniques de programmation.   

Dans le troisième et le quatrième chapitre, l’étude des algorithmes sera focalisée sur l’utilisation des structures de données séquentielles classiques: les vecteurs et les méthodes de tris des vecteurs (dans le chapitre III); les listes simplement chaînées et doublement chaînées, les piles et les files (dans le chapitre IV).

Finalement les structures arborescentes seront étudiées dans le cinquième chapitre (les arbres généraux et les arbres binaires), et dans le sixième chapitre (les arbres binaires de recherche).

Pré-requis

Ce cours nécessite une certaine maitrise de principes fondamentaux pour l’écriture des algorithmiques et les notions de base de la programmation en langage C, tels que :

·         Savoir la structure générale d’un algorithme.

·         Savoir comment déclarer les variables simples et l’utilisation des entrées et sortie.

·         Maitrise des instructions de contrôle conditionnelles simples et répétitives.

·         Connaître la structure du programme en langage C.

·        L’utilisation des bibliothèques, notamment les fichiers d’entête pour les entrées et les sorties, l’allocation dynamique de la mémoire, etc.