Algorithms and Programming Languages is a core subject in the BS Degree in Mathematics at the authors’ university. Some of the students are very interested in computer programming but most of them find the subject quite hard. This situation is particularly stressed when concerning theoretic and, in fact, many students point at these contents as the main difficulty of the subject. Because of this, the authors decided to explore new ways to improve the student learning of theoretical concepts. Thus, they analyzed the use of online self-assessment tools as a selflearning system. To perform this analysis two different kinds of tools were chosen and the authors developed an experiment to evaluate, on one hand, the possible use of self-assessment tools as self-learning systems and, on the other hand, to compare the tools to each other.