This (non-exhaustive) list provides an overview of relevant CER (Computing Education Research) theories and models related to learning, teaching, and education.
<aside> ⚠️
This document was created based on my own notes, my Zotero repository, and CER literature I find relevant. However, this document was co-created with the help of several language models (to be more precise, ChatGPT-5.5 and Gemini 3.1-Flash-Lite). The text was carefully double-checked and modified by me - that also included the references. If there are any errors in the text, please feel free to reach out to me.
</aside>
Table of Contents
This category focuses on how learners engage with learning activities and how different forms of participation can support deeper understanding. In Computing Education Research, these theories are especially useful for designing activities where learners do more than simply watch or read code: they predict, explain, discuss, debug, modify, and create programs.
The ICAP Framework distinguishes four modes of cognitive engagement: Passive, Active, Constructive, and Interactive. The basic idea is that learning tends to improve as learners move from merely receiving information to actively manipulating it, generating new ideas, or co-constructing understanding with others. In programming education, for example, watching an instructor trace code would be relatively passive, while predicting the output, explaining the reasoning, and discussing alternative solutions with a peer would move the activity toward constructive or interactive engagement.
Reference
Chi, M. T. H., & Wylie, R. (2014). The ICAP framework: Linking cognitive engagement to active learning outcomes. Educational Psychologist, 49(4), 219–243. https://doi.org/10.1080/00461520.2014.965823
Active learning refers to instructional approaches in which students actively participate in the learning process instead of only listening to a lecture. This can include answering conceptual questions, solving problems, discussing with peers, reflecting, debugging, writing code, or explaining ideas. In Computing Education, active learning might involve peer instruction with multiple-choice code questions, live coding with prediction prompts, Parsons problems, small-group debugging tasks, or collaborative code reviews.
Reference
Freeman, S., Eddy, S. L., McDonough, M., Smith, M. K., Okoroafor, N., Jordt, H., & Wenderoth, M. P. (2014). Active learning increases student performance in science, engineering, and mathematics. Proceedings of the National Academy of Sciences of the United States of America, 111(23), 8410–8415. https://doi.org/10.1073/pnas.1319030111
Self-explanation describes the process of learners generating explanations for themselves whilst studying examples, solving problems, or trying to understand new material. It helps learners connect specific steps to underlying principles and identify gaps in their own understanding. In programming education, students might self-explain what each line of code does, why a loop terminates, how a variable changes during execution, or why a particular bug occurs.
Reference
Chi, M. T. H., Bassok, M., Lewis, M. W., Reimann, P., & Glaser, R. (1989). Self-explanations: How students study and use examples in learning to solve problems. Cognitive Science, 13(2), 145–182. https://doi.org/10.1207/s15516709cog1302_1