“…However, a series of challenges have been identified in programming learning, including high drop-out rates, low engagement in class, lack of learning motivation, negative academic emotions, unsatisfied learning outcomes, etc. [1,2,13,16]. In addition, students with insufficient programming experience often find introductory programming courses difficult to learn, as it requires not only the understanding of a set of terms and functions, but also the ability to abstract problems, structure variables and produce algorithms to solve the problems [15].…”