Un algorithme est une suite finie et non ambiguë d'instructions permettant de résoudre un problème. Le mot algorithme est issu de la transcription phonétique du nom latinisé du mathématicien perse Al-Khawarizmi en Algaurin et du mot grec Arithmos, nombre qui a donné aussi Arithmétiqueet Logarithme.
Le cours "Algorithmique et Structures de Données " (ASD) II présente une suite de ce que les étudiants ont vue en première année sur les algorithmiques et structures de données.
Au second semestre les étudiants de première année ont abordées les notions de la modélisation informatique de problème : analyse et modélisation d’un problème, algorithmique et programmation, les notions de base et les généralités de l'algorithmique ainsi que les différents mécanismes tels que les tests et les boucles et les structures de données comme les tableaux.
Dans cette partie II du cours les étudiants traite la structures de donnée avancées ce qui regroupe la notion de la récursivité, les Listes, piles et files, arbres et étude de quelques techniques algorithmiques plus complexes.