Program code examples (known also as worked examples) play a crucial role in learning how to program. Instructors use examples extensively to demonstrate the semantics of the programming language being taught and to highlight the fundamental coding patterns. Programming textbooks allocate considerab...
Program code examples (known also as worked examples) play a crucial role in learning how to program. Instructors use examples extensively to demonstrate the semantics of the programming language being taught and to highlight the fundamental coding patterns. Programming textbooks allocate considerable space to present and explain code examples. To make the process of studying code examples more interactive, CS education researchers developed a range of tools to engage students in the study of code examples. These tools include codecasts (codemotion,codecast,elicasts), interactive example explorers (WebEx, PCEX), and tutoring systems (DeepTutor). An important component in all types of worked examples is code explanations associated with specific code lines or code chunks of an example. The explanations connect examples with general programming knowledge explaining the role and function of code fragments or their behavior. In textbooks, these explanations are usually presented as comments in the code or as explanations on the margins. The example explorer tools allow students to examine these explanations interactively. Tutoring systems, which engage students in explaining the code, use these model explanations to check student responses and provide scaffolding. In all these cases, to make a worked example re-usable beyond its presentation in a lecture, the explanations have to be authored by instructors or domain experts i.e., produced and integrated into a specific system. As the experience of the last 10 years demonstrated, these explanations are hard to obtain. Those already collected are usually “locked” in a specific example-focused system and can’t be reused. The purpose of this working group is to support broader re-used of worked examples augmented with explanations. Our current plan is to develop а standard approach to represent explained examples. This approach will enable an example created for any of the existing systems to be explored in a standard format and imported into any other example-focused system. We plan to follow a successful experience of the PEML working group focused on re-using programming exercises.
Size: 4.27 MB
Language: en
Added: May 14, 2024
Slides: 11 pages
Slide Content
SPLICE Working Group:
Reusable Code Examples
Peter Brusilovsky, Vasile Rus
https://cssplice.github.io/codex/index.html
“Smart Content” in CS Education
•Many domains use of “static” content (text, images, videos) and
tested with simple MCQ
•CS Educators developed a variety of different of “smart content”
– interactive, dynamic, provides feedback
•ITiCSE 2014 Working Group revied SLC:
–Program visualization
–Coding problems with automatic assessment
–Problem-solving support with “tutors”
Brusilovsky, P., Edwards, S., Kumar, A., Malmi, L., et al. (2014) Increasing Adoption of Smart Learning Content for Computer Science Education. In: Working Group Reports of the 2014 on Innovation & Technology in Computer Science Education Conference, Uppsala, Sweden, ACM, pp. 31-57.
Smart Content: Forms
•Problems
–Learning by doing
–Mastering domain knowledge
•Worked-out examples
–Demonstrating how to solve problems in a domain
–Step-by-step, with explanations
–Acquiring knowledge
•Expertise reversal
–Reversal in the relative effectiveness of instructional methods as levels of learner knowledge in a domain change
–Worked examples more efficient on early stages, problems should be preferred in later stages
A Simple Guide to SLC
Worked examplesProblems
Comprehension
(behavior, tracing)
Program animation
Program Tracing Demo
Code tracing problems
Tracing ITS
ConstructionAnnotated code
Codecasts
Parson’s problems
Coding problems
•Demo: PAWS Lab Sandbox
•http://adapt2.sis.pitt.edu/kt
•Log in: adl02 (adl03, adl04, adl05…)
•Password – same as log in
WebEx – Annotated Code Examples
Brusilovsky, P. and
Yudelson
, M.
(2008) From WebEx to
NavEx
:
Interactive Access to Annotated Program Examples.
Proceedings of
the IEEE
96
(6), 990
-999.
Explorable Code Examples: PCX
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.
Example-Based Challenges in PCX
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.
ACOS Server Annotated Examples
Deep Tutor: Problems from Examples
Oli, P., Banjade, R., Lekshmi-Narayanan, A.-B., Brusilovsky, P., and Rus, V. (2024) Exploring The Effectiveness of
Reading vs. Tutoring For Enhancing Code Comprehension For Novices. In: Proceedings of ACM Symposium on Applied
Computing, SAC 2024, Avila, Spain, April 8–12, 2024, ACM, pp. 38-47.
WorkedGen
Jury, B., Lorusso, A., Leinonen, J., Denny, P., and Luxton-Reilly, A. (2024) Evaluating LLM-generated Worked Examples
in an Introductory Programming Course. In: Proceedings of Proceedings of the 26th Australasian Computing Education
Conference, New York, NY, USA, Association for Computing Machinery, pp. 77–86.