algorithmic learning