Send to

Choose Destination
Res Pract Technol Enhanc Learn. 2018;13(1):18. doi: 10.1186/s41039-018-0085-9. Epub 2018 Dec 4.

An integrated practice system for learning programming in Python: design and evaluation.

Author information

1School of Computing and Information, University of Pittsburgh, 135 N. Bellefield Ave., Pittsburgh, 15260 PA USA.
2Department of Computer Science, Aalto University, Espoo, Finland.
3Instituto de Informatica, Universidad Austral de Chile, Valdiva, Chile.


Over the past decades, computer science educators have developed a multitude of interactive learning resources to support learning in various computer science domains, especially in introductory programming. While such smart content items are known to be beneficial, they are frequently offered through different login-based systems, each with its own student identification for giving credits and collecting log data. As a consequence, using more than one kind of smart learning content is rarely possible, due to overhead for both teachers and students caused by adopting and using several systems in the context of a single course. In this paper, we present a general purpose architecture for integrating multiple kinds of smart content into a single system. As a proof of this approach, we have developed the Python Grids practice system for learning Python, which integrates four kinds of smart content running on different servers across two continents. The system has been used over a whole semester in a large-scale introductory programming course to provide voluntary practice content for over 600 students. In turn, the ability to offer four kinds of content within a single system enabled us to examine the impact of using a variety of smart learning content on students' studying behavior and learning outcomes. The results show that the majority of students who used the system were engaged with all four types of content, instead of only engaging with one or two types. Moreover, accessing multiple types of content correlated with higher course performance, as compared to using only one type of content. In addition, weekly practice with the system during the course also correlated with better overall course performance, rather than using it mainly for preparing for the course final examination. We also explored students' motivational profiles and found that students using the system had higher levels of motivation than those who did not use the system. We discuss the implications of these findings.


CS1; Classroom study; Introductory programming education; Multiple content types; Python; Student motivation; Student performance

Conflict of interest statement

The authors declare that they have no competing interests.Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Supplemental Content

Full text links

Icon for PubMed Central
Loading ...
Support Center