Ce cours constitue une mise à niveau en algorithmique et programmation. Il porte sur  les domaines suivants :

- Algorithmique de base (types simples, tableaux, structures (record), listes chaînées)

- Algorithmique avancée : types abstraits de données (Conteneurs, Itérateurs, Listes, Piles, Files, Arbres, Tas).

Pour améliorer la généralité et la lisibilité des algorithmes, le langage support choisi est le langage Ada.

Certains exemples sont également donnés en C pour montrer la correspondance et la proximité des concepts dans les deux langages.

A la fin de ce cours, les étudiants sont censés être capables de choisir les bonnes structures de données dans une application, et faire appel aux concepts de généricité et de type abstraits pour permettre un développement modulaire favorisant la lisibilité et la réutilisabilité du code.

A travers l'illustration d'une programmation modulaire en différents paquetages Ada, ce cours constitue  une préparation à la conception orientée objet (la familiarisation avec le découpage en paquetages préparant le découpage en différentes classes d'objets).