Personalization of learning experience in engineering courses is a key to successfully engage students in any type of learning activity. Personalization is needed to achieve optimal learning experiences taking into account the pace of learning influenced by the background and capability of the learners, their personal interest, and optimal timing of learning exercises. This paper presents the development of an algorithmic solution to personalize learning content and learning paths for teaching Android software development to design students. Our solution recommends micro-learning sessions to students based on their background knowledge, their preferences and ranking of alternative learning contents, and their performance of completing the tests of micro-learning sessions. The recommender algorithm has been applied in an e-learning environment by 68 students of an elective course and the goodness of recommendations was evaluated with the goal to further tune the learning content and the recommendation mechanism. Our results show that ca. 60% of the learning content of the course requires personalization, while the remaining 40 % is suitable for all students without any adjustment.