From PAWS Lab
Jump to: navigation, search

Program Construction Examples (PCEX) is an interactive learning tool which demonstrates program construction examples to help students to develop program construction skills. It supports exploring the program construction examples freely and provide challenges to the students to help them self-assess their learning of program construction knowledge. Each example provides a goal that specify the given example’s functionality. Each challenge is designed closely to the examples provided with faded lines. Students need to drag-drop provided sample lines to complete a program to accomplish the provided program goal.

PCEX Interface


The first screenshot is from an example in PCEX about celsius to fahrenheit conversion with interactive explanation of the selected line (highlighted in yellow)

Pcex ex.PNG


The second screenshot is from an challenge in PCEX which is the ‘challenge’ of the previously shown example. Here the goal of the program is to complete the program which converts fahrenheit to celsius. In the current screenshot, the student made a mistake in one of the missing lines and got immediate feedback stating that the output of the current program is different from the expected one. Student may see the details of the error or request for a hint which basically describes the explanation of that missing line. Pcex ch.PNG

Available Domains

PCEX smart content is available to be used with Java and Python programming languages.


Hosseini, R., Akhuseyinoglu, K., Petersen, A., Schunn, C. D., and Brusilovsky, P. (2018) PCEX: Interactive Program Construction Examples for Learning Programming. In: Proceedings of Proceedings of the 18th Koli Calling International Conference on Computing Education Research, Koli, Finland, November 22 - 25, 2018 ACM, pp. 5:1--5:9. Hosseini, R. (2018). Program Construction Examples in Computer Science Education: From Static Text to Adaptive and Engaging Learning Technology (Doctoral Dissertation). University of Pittsburgh. Hosseini, R., Akhuseyinoglu, K., Brusilovsky, P., Malmi, L., Pollari-Malmi, K., Schunn, C., and Sirkiä, T. (2020) Improving Engagement in Program Construction Examples for Learning Python Programming. International Journal of Artificial Intelligence in Education 30 (2), 299-336.