Sign In

Communications of the ACM


Reflection Pre-learning in Computer Science Courses

View as: Print Mobile App Share:

The terms reflection in-action and reflection on-action were introduced by Donald A. Schön (1984, 1987) to refer to practitioners' reflection on their activities during and after the accomplishment of a specific task, respectively. Schön applied these terms also in the context of learning situations. We introduce the term reflection pre-learning and describe our experience with reflection pre-learning in a MOOC (massive open online course) on computational thinking that we developed and currently teach, as part of the Israeli initiative of CampusIL which is part of the national joint initiative of Digital Israel and the Israeli Council for Higher Education.

Reflection pre-learning, which is conducted at the onset of a course, expresses a student-centered teaching approach. Based on this approach, as part of the reflection pre-action, students are asked to think and reflect about their pre-course learning stage in general, and specifically to refer both to the course content and to their expectations and feelings at this stage. From the students' perspective, reflection pre-learning enables the fostering of the learners' reflective thinking, increases the learners' awareness of the course's main concepts, enhances the learners' curiosity, and creates a basis for the learners' future learning process.

At the same time, reflection pre-learning also benefits the teachers. From the teachers' perspective, reflection pre-learning can give the teachers an idea of the students' previous experience in the context of the course content, their expectations from the course, and the learning resources (preliminary knowledge and attitudes) they bring with them to the course. Unlike pre- and post-course questionnaires, which are a common research practice whose purpose is to compare learners' knowledge prior and after a course and to evaluate the change, we address the reflection pre-learning as part of learners' learning process on which we construct the continuation of the course teaching.

We mention that although the idea of pre-learning reflection is used in other contexts (e.g. , the Preflection strategy used by the Center for Teaching Excellence at Miami University), we haven't found similar usages in computer science courses.

A reflection pre-learning is especially relevant for introductory computer science courses in which, as we know, there are significant differences between the previous programming experience of the learners. In such courses, the students can be asked in a reflection pre-learning about their previous knowledge, and based on the information received, different learning paths for students with different backgrounds may be designed to maintain their interest and the relevance of the course for all learners. In addition, reflection pre-learning enables students to express their own interests, concerns, and anticipated challenges, and gives them a sense of being seen and that their teachers are aware of the cognitive and emotional state with which they are starting the course.

Reflection pre-learning is especially important in the case of a MOOC, in which students and lecturers do not have opportunities for face-to-face (F2F) discourse and students join the course at different time points and with different motivation.

We illustrate the use of reflection pre-learning in our MOOC on computational thinking which we developed during 2021. We found that reflection pre-learning is even more important for this course since it deals with thinking processes and principles (specifically, decomposition of a problem into subproblems, abstraction, and generalization).

Currently, 1,000 learners are registered for the course. Their average age is 36 years old, and they come from about 20 countries. In the reflection pre-learning (in Hebrew), we asked them what they think computational thinking is and we ask that they write down words that are connected to computational thinking. Then we request them to write what, in their opinion, a computational process is, to give examples of computational processes, and to share any thoughts they have at the onset of the course. We also ask them their age and what previous programming experience they have. We note that the demographic questions appear in the reflection pre-learning after the conceptual questions, since we want students to focus first on content.

The introduction to the reflection pre-learning explicitly declares its purpose:

Dear students,

The aim of this course is to impart knowledge in computational thinking and to develop computational thinking skills. Before we start, let's pause for a moment and find out, each one for himself/herself, what his or her starting point is in relation to some of the concepts we will be dealing with in the course. This thinking process is not a test and is not graded; rather, it is a moment of thinking, which we will do repeatedly throughout the course to enable you to examine changes in of your thinking and how it develops. Several questions about your background are also included.

Regards and good luck,

The course staff

On December 31, 2021, 242 learners completed the reflection pre-learning task. Their ages are distributed more or less equally among the following age groups: less than 20 (20.2%), 21-30 (15.3%), 31-40 (19.4%), 41-50 (19.8%), and above 50 (25.2%). About half of them (49.6%) have previous programming experience. One-third of them (33.1%) had already been exposed in the past to Scratch, the learning environment of the course.

We illustrate our message about the benefits of reflection pre-learning with learners' answers to two questions: One addresses their current knowledge of computational thinking; the second asks them to share their thoughts.

Reflective conceptual question: Write down words related, in your opinion, to "computational thinking."

We present learners' answers to this question by creating a word-cloud (students' answers were translated from Hebrew) with

This word-cloud clearly indicates that students associate the course content with problems, thinking, and computers. Indeed, the focus of the course is thinking processes performed through problem-solving processes using computers. Accordingly, we can assume that students' expectations (or at least those of the majority of the students) are going to be fulfilled as they progress through the course. Two of the main course objectives are, however, (a) to develop an understanding that computational thinking is relevant for all areas of life, and (b) to mitigate the concerns of learners from the humanities and social sciences regarding programming. In this light, the dominant appearance of the words mathematics, science, and numbers in the word-cloud indicates preconceptions that the course seeks to change and build differently.   

Reflective emotional question: If you wish to share your thoughts at the onset of the course, please do so now.

We categorized the 67 responses to this question into five groups. As the following excerpts reflect, the responses express a variety of feelings about the expected learning process of the course.

  1. Wonder. For example, "Usually, the course begins with a definition of the subject it will deal with and does not leave it in the fog"; "We will start, learn, and ask."
  2. Curiosity. For example, "Curious already to start ... to see if this is what I think it is, and if it can help me in life"; "Very curious about the continuation"; "Already waiting to start creating! Thanks!"
  3. Fear. For example, "I am very weak in matters of technology/computers/programming and am afraid of the continuation of the course"; "I'm afraid it's going to be too hard for me."
  4. Excitement. For example, "I was very happy that the course is suitable for all ages. Thanks!"; "Getting excited."
  5. Relatedness. For example, "Ever since I was a kid, I was drawn to puzzles and thinking problems that required calculations"; "Computational thinking reminds me of recursion questions"; "Is it possible to learn citizenship by making it a computational process?"

As mentioned, these excerpts tell us that students express a variety of feelings towards the process of the course learning. Indeed, during the course, we address these feelings. For example, at several points during the course, we explicitly address the fact that programming is sometimes frustrating and sometimes enjoyable, but it always opens up learning opportunities for us.


We addressed the reflection pre-learning as a meaningful pedagogical tool, regardless of the course format, whether a MOOC or face to face. In both cases, however, it is important to keep the reflection pre-learning questionnaire short and focused on the essential aspects of the course.

In addition to the above-mentioned benefits of reflection pre-learning for both students and teachers, reflection pre-learning has additional pedagogical advantages. For example:

  • if gathered over a long period of time, the answers can guide the teachers in improving/refreshing the course content and format;
  • if gathered several times during a specific course, the reflection pre-learning responses can enable students to follow their own progress, as can the teachers; and,
  • in the case of a face-to-face course, a reflection pre-learning can initiate an in-class discussion about students' expectations and feelings.


Schön, D. A. (1983). The reflective practitioner: How professionals think in action. New York: Basic Books.

Schön, D. A. (1987). Educating the reflective practitioner: Toward a new design for teaching and learning in the professions. San Francisco: Jossey-Bass.

Noa Ragonis is a senior lecturer of computer science and computer science education at Beit Berl College's Faculty of Education. Her research focuses on computer science education, computational thinking, and innovation in education. For additional details, see Orit Hazzan is a professor at the Technion's Department of Education in Science and Technology. Her research focuses on computer science, software engineering, and data science education. For additional details, see


No entries found

Sign In for Full Access
» Forgot Password? » Create an ACM Web Account