Personalized learning occurs when e-learning systems make deliberate efforts to design educational experiences that fit the needs, goals, talents, and interests of their learners. Researchers had recently begun to investigate various techniques to help teachers improve e-learning systems. In this paper, we describe a recommendation module of a programming tutoring system - Protus, which can automatically adapt to the interests and knowledge levels of learners. This system recognizes different patterns of learning style and learners’ habits through testing the learning styles of learners and mining their server logs. Firstly, it processes the clusters based on different learning styles. Next, it analyzes the habits and the interests of the learners through mining the frequent sequences by the AprioriAll algorithm. Finally, this system completes personalized recommendation of the learning content according to the ratings of these frequent sequences, provided by the Protus system. Some experiments were carried out with two real groups of learners: the experimental and the control group. Learners of the control group learned in a normal way and did not receive any recommendation or guidance through the course, while the students of the experimental group were required to use the Protus system. The results show suitability of using this recommendation model, in order to suggest online learning activities to learners based on their learning style, knowledge and preferences.