Skip to main content

Advertisement

Log in

Engaging students in active exploration of programming worked examples

  • Published:
Education and Information Technologies Aims and scope Submit manuscript

Abstract

Worked examples can help novice learners develop early schemata from an expert’s solution to a problem. Nonetheless, the worked examples themselves are no guarantee that students will explore these experts’ solutions effectively. This study explores two different approaches to supporting engineering technology students’ learning in an undergraduate introductory programming course: debugging and in-code commenting worked examples. In a Fall semester, students self-explained worked examples using in-code comments (n = 120), while in a Spring semester, students debugged worked examples (spring n = 101). Performance data included the midterm and final exams. Prior exposure to programming courses was taken from a survey at the beginning of each semester. Findings suggest that both the debugging and explaining forms of engagement with worked examples helped students with no prior programming experience to succeed in the course. For the worked examples to be effective, those need to be provided with some explicit form of engagement (i.e., debugging or self-explaining). Combining both strategies following explaining first and debugging second may result in a more effective approach.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Data availability

Data are available on request due to privacy or other restrictions.

References

  • Bureau of Labor Statistics. Employment by major occupational group, 2014 and projected 2024. Retrieved from [BLS], & Washington (2015). D.C.: https://www.bls.gov/news.release/ecopro.t04.htm

  • [SREB] (2016). Bridging the Computer Science Education Gap: Five Actions States Can Take. Retrieved from https://www.sreb.org/publication/bridging-computer-science-education-gap

  • Atkinson, R. K., Derry, S. J., Renkl, A., & Wortham, D. (2000). Learning from examples: Instructional principles from the worked examples research. Review of educational research, 70(2), 181–214

    Article  Google Scholar 

  • Campe, S., Denner, J., Green, E., & Torres, D. (2020). Pair programming in middle school: variations in interactions and behaviors. Computer Science Education, 30(1), 22–46

    Article  Google Scholar 

  • Chi, M. T. (2009). Active-constructive‐interactive: A conceptual framework for differentiating learning activities. Topics in cognitive science, 1(1), 73–105

    Article  Google Scholar 

  • Chiu, J. L., & Chi, M. T. (2014). Supporting self-explanation in the classroom. Applying science of learning in education: Infusing psychological science into the curriculum, 91–103

  • Dahlen, O., Lervik, A., Aarøen, O., Cabriolu, R., Lyng, R., & van Erp, T. S. (2020). Teaching complex molecular simulation algorithms: Using self-evaluation to tailor web‐based exercises at an individual level.Computer Applications in Engineering Education

  • Davies, S. P. (1993). Models and theories of programming strategy. International Journal of Man-Machine Studies, 39(2), 237–267. doi:https://doi.org/10.1006/imms.1993.1061

    Article  Google Scholar 

  • Decker, A., Margulieux, L. E., & Morrison, B. B. (2019). Using the SOLO Taxonomy to Understand Subgoal Labels Effect in CS1. Paper presented at the Proceedings of the 2019 ACM Conference on International Computing Education Research

  • desJardins, M. (2015). The real reason U.S. students lag behind in computer science.Fortune

  • Ertmer, P. A., & Newby, T. J. (2013). Behaviorism, cognitivism,constructivism: Comparing critical features from an instructional design perspective. Performance Improvement Quarterly, 26(2), 43–71

    Article  Google Scholar 

  • Kaczmarczyk, D., & Dopplick, R. (2014). Rebooting the pathway to success: Preparing students for computing workforce needs in the United States. Renee, Rebooting the Pathway to Success: Preparing Students for Computing Workforce Needs in the United States (March 05, 2014)

  • Katz, I. R., & Anderson, J. R. (1987). Debugging: An analysis of bug-location strategies. Human-Computer Interaction, 3(4), 351–399

    Article  Google Scholar 

  • Lee, I., Martin, F., Denner, J., Coulter, B., Allan, W., Erickson, J., & Werner, L. (2011). Computational thinking for youth in practice. Acm Inroads, 2(1), 32–37

    Article  Google Scholar 

  • Lewis, C. M. (2011). Is pair programming more effective than other forms of collaboration for young students? Computer Science Education, 21(2), 105–134

    Article  Google Scholar 

  • Lister, R. (2011). Concrete and other neo-Piagetian forms of reasoning in the novice programmer. Paper presented at the Conferences in research and practice in information technology series

  • Lopez, M., Whalley, J., Robbins, P., & Lister, R. (2008). Relationships between reading, tracing and writing skills in introductory programming. Paper presented at the Proceedings of the fourth international workshop on computing education research, Sydney, Australia

  • Lytle, N., Cateté, V., Boulden, D., Dong, Y., Houchins, J., Milliken, A., & Barnes, T. (2019). Use, Modify, Create: Comparing Computational Thinking Lesson Progressions for STEM Classes. Paper presented at the Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education

  • Magana, A. J., Falk, M. L., Vieira, C., Reese Jr, M. J., Alabi, O., & Patinet, S. (2017). Affordances and challenges of computational tools for supporting modeling and simulation practices. Computer Applications in Engineering Education, 25(3), 352–375

    Article  Google Scholar 

  • Mason, R., Seton, C., & Cooper, G. (2016). Applying cognitive load theory to the redesign of a conventional database systems course. Computer Science Education, 26(1), 68–87

    Article  Google Scholar 

  • Mbogo, C., Blake, E., & Suleman, H. (2013). A mobile scaffolding application to support novice learners of computer programming. Paper presented at the Proceedings of the Sixth International Conference on Information and Communications Technologies and Development: Notes-Volume 2

  • McCauley, R., Fitzgerald, S., Lewandowski, G., Murphy, L., Simon, B., Thomas, L., & Zander, C. (2008). Debugging: a review of the literature from an educational perspective. Computer Science Education, 18(2), 67–92

    Article  Google Scholar 

  • Morrison, B. B., Margulieux, L. E., & Guzdial, M. (2015). Subgoals, context, and worked examples in learning computing problem solving. Paper presented at the Proceedings of the eleventh annual International Conference on International Computing Education Research

  • MRC (2015). Cognition and Brain Sciences Unit (2009). Rules of thumb on magnitudes of effect sizes. Retrieved from https://imaging.mrc-cbu.cam.ac.uk/statswiki/FAQ/effectSize

  • Mselle, L. J., & Twaakyondo, H. (2012). The impact of Memory Transfer Language (MTL) on reducing misconceptions in teaching programming to novices. International Journal of Machine Learning and Applications, 1(1), 388–394. doi:https://doi.org/10.4102/ijmla.v1i1.3

    Article  Google Scholar 

  • Porter, L., & Simon, B. (2019). A case study of peer instruction: From University of California, San Diego to the computer science community. In S. A. R. Fincher (Ed.), The Cambridge Handbook of Computing Education Research (pp. 861–874). Cambridge: Cambridge University Press

    Chapter  Google Scholar 

  • Renkl, A. (2005). The worked-out-example principle in multimedia learning.The Cambridge handbook of multimedia learning,229–245

  • Restrepo-Calle, F., Ramírez Echeverry, J. J., & González, F. A. (2019). Continuous assessment in a computer programming course supported by a software tool. Computer Applications in Engineering Education, 27(1), 80–89

    Article  Google Scholar 

  • Rist, R. S. (1995). Program structure and design. Cognitive Science, 19(4), 507–562

    Article  Google Scholar 

  • Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: A review and discussion. Computer Science Education, 13(2), 137–172

    Article  Google Scholar 

  • Sato, M., & Loewen, S. (2019). Methodological strengths, challenges, and joys of classroom-based quasi-experimental research.Doing SLA research with implications for the classroom: Reconciling methodological demands and pedagogical applicability,31–54

  • Sentance, S., Waite, J., & Kallia, M. (2019). Teaching computer programming with PRIMM: a sociocultural perspective. Computer Science Education, 29(2–3), 136–176

    Article  Google Scholar 

  • Sweller, J. (1988). Cognitive load during problem solving: Effects on learning. Cognitive science, 12(2), 257–285

    Article  Google Scholar 

  • Sweller, J. (2011). Cognitive load theory. Psychology of learning and motivation (55 vol., pp. 37–76). Elsevier

  • Sweller, J., Ayres, P., & Kalyuga, S. (2011). Cognitive load theory. New York: Springer.

  • Sweller, J., van Merriënboer, J. J., & Paas, F. (2019). Cognitive architecture and instructional design: 20 years later. Educational Psychology Review,1–32

  • Sweller, J., Van Merrienboer, J. J., & Paas, F. G. (1998). Cognitive architecture and instructional design. Educational Psychology Review, 10(3), 251–296

    Article  Google Scholar 

  • Ullah, Z., Lajis, A., Jamjoom, M., Altalhi, A., Al-Ghamdi, A., & Saleem, F. (2018). The effect of automatic assessment on novice programming: Strengths and limitations of existing systems. Computer Applications in Engineering Education, 26(6), 2328–2341

    Article  Google Scholar 

  • Van Merrienboer, J. J., & Krammer, H. P. (1987). Instructional strategies and tactics for the design of introductory computer programming courses in high school. Instructional Science, 16(3), 251–285

    Article  Google Scholar 

  • Vieira, C., Magana, A. J., Falk, M. L., & Garcia, R. E. (2017). Writing in-code comments to self-explain in computational science and engineering education. ACM Transactions on Computing Education (TOCE), 17(4), 1–21

    Article  Google Scholar 

  • Vieira, C., Magana, A. J., Roy, A., & Falk, M. L. (2019). Student explanations in the context of computational science and engineering education. Cognition and Instruction, 37(2), 201–231

    Article  Google Scholar 

  • Vieira, C., Yan, J., & Magana, A. J. (2015). Exploring design characteristics of worked examples to support programming and algorithm design. Journal of Computational Science Education, 6(1), 2–15

    Article  Google Scholar 

  • Von Mayrhauser, A., & Vans, A. M. (1995). Program understanding: Models and experiments Advances in computers (40 vol., pp. 1–38). Elsevier

  • Weintrop, D., & Wilensky, U. (2017). Comparing block-based and text-based programming in high school computer science classrooms. ACM Transactions on Computing Education (TOCE), 18(1), 1–25

    Google Scholar 

  • Whalley, J. L., & Lister, R. (2009). The bracelet 2009.1 (wellington) specification. Paper presented at the Eleventh Australasian Computing Education Conference (ACE2009), Wellington, New Zealand

  • Xie, B., Loksa, D., Nelson, G. L., Davidson, M. J., Dong, D., Kwik, H., & Ko, A. J. (2019). A theory of instruction for introductory programming skills. Computer Science Education, 29(2–3), 205–253

    Article  Google Scholar 

Download references

Acknowledgements

This research was supported in part by the US National Science Foundation under the award number EEC 1826099. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alejandra J. Magana.

Ethics declarations

Conflict of interest

None.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Garces, S., Vieira, C., Ravai, G. et al. Engaging students in active exploration of programming worked examples. Educ Inf Technol 28, 2869–2886 (2023). https://doi.org/10.1007/s10639-022-11247-6

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10639-022-11247-6

Keywords

Navigation