Objectifs
Ce polycopié a pour but de donner les bases d'algorithmique et de programmation
structurée afin de former l'étudiant à la conception d'une application informatique spécifiée
par un cahier des charges décrivant les besoins sous forme textuelle. Il s'agit d'utiliser une
démarche structurée pendant la conception et un langage cible standard, le langage C.
Cet enseignement se situe au niveau de la troisième année de la licence et ne va
donc pas aborder tous les aspects de l'algorithmique et de la programmation. Il ne traite
pas en particulier des aspects dynamiques des applications informatiques. Ainsi, les
structures de données dynamiques (files, piles, listes, arbres...) et les algorithmes récursifs
ne sont pas abordés dans ce cours. Il s'agit en effet de concepts algorithmiques et de
programmation « avancés » ne relevant pas, me semble-t-il du niveau de la licence
d'ingénierie électrique.
Tout étudiant ayant acquis les concepts développés dans ce cours pourra aborder la
réalisation d'un projet informatique de taille conséquente, pourvu que la dimension des
structures de données puisse être définie à l'avance ou tout au moins que l'on puisse en
estimer la borne supérieure. Si le programme ainsi conçu se trouve confronté à un
ensemble de données de taille supérieure à cette limite, il ne pourra pas s'exécuter
correctement. La protection de l'application contre ce type de dysfonctionnement fait
partie, bien sûr, des concepts de ce cours.
Le problèmes pouvant être résolus en n'utilisant que les concepts développés dans
ce cours couvrent la grande majorité des cas qui peuvent être rencontrés dans le cadre
professionnel auquel prépare la licence d'ingénierie électrique, notamment des
programmes :
–de calcul numérique spécifique ,
–mettant en œuvre un système de commande automatique,
–émulant ou simulant un système électrique, électronique, etc.
–exécutant des fonctions de traitement du signal, de conversion d'échelle, etc.
–assurant la communication entre deux systèmes par bus série ou parallèle.
Il sera en revanche plus délicat d'aborder des problèmes de gestion d'ensemble de
données dont la taille peut croître de manière très importante (liste de clients, de matériel,
historiques de fonctionnement).
Enfin, ce document n'est pas un manuel de référence du langage C... Il en existe
bien assez ! La partie programmation en langage C donne les clés de la traduction d'un
algorithme de manière à garder une similitude importante entre la réalisation (le code
source) et la conception (l'algorithme). La mise au point du programme est ainsi facilitée.
Mais les détails des « innombrables » options du langage ne sont jamais décrites. En ce
sens ce polycopié est complémentaire du manuel de « Traitement de l'information -
Langage C» distribué pour cette même formation.
2