Return to Article Details Smart learning in programming: a systematic literature review