algorithmes: notions de base