I examine various aspects of teaching and learning computer science. The research projects in my group deal with a variety of ages - from middle-school students to students in higher-education institutes - and in a variety of computer science topics, from basic topics to advanced and complex ones. Most of these research projects are done through the prism of fundamental ideas of computer science (such as abstraction, non-determinism, reductive thinking, reversing, and more). We characterize and identify such ideas and examine various frameworks for conveying them to students.
Nakar L. & Armoni M.
(2025)
SIGCSE TS 2025 - Proceedings of the 56th ACM Technical Symposium on Computer Science Education
.
p. 812-818
Abstraction is a pivotal concept in computer science (CS); it is extensively utilized for various purposes such as problem simplification and algorithm design. Often considered the most important mental tool for computer scientists, abstraction is a key element in CS education and curricula. However, teaching CS abstraction is known to be difficult. One of the instructional methods offered in the literature to promote abstraction is pattern-oriented instruction (POI), which relies on algorithmic patterns and uses them as organizing principles and a central problem-solving strategy. Research has shown that using pattern-oriented instruction supports students abstraction abilities; however, we claim that POI alone may not be sufficient and therefore deeper exploration is required to understand the relations between employing POI, teaching abstraction and developing abstraction skills. In this qualitative study, we thoroughly analyzed the teaching approaches of eight high-school CS teachers, focusing on their use of POI and how they teach abstraction (both their perceived and actual teaching approaches). The results suggest that although POI may support the perception of the teachers as promoting abstraction, its actual implementation may not fully align with this purpose.
ארמוני מ. & ברקמן ח.
(2025)
קשר עין.
328,
p. 29-31
האקדמיה הלאומית למדעים הקימה צוות מומחים במענה לפניית "קרן טראמפ", כדי לבסס תשתית של ידע בנושא לימודי חשיבה חישובית ופיתוח בינה מלאכותית בישראל ובעולם. מאמר זה מביא את עיקרי הדו"ח שפרסמה הוועדה בחודש מאי 2025.
Armoni M., Gal-Ezer J., Harel D., Marelly R., Szekely S., Abelson H. & Kong S.
(2024)
Computational Thinking Curricula in K12
: International Implementations
.
Abelson H. & Kong S-C(eds.).
p. 229-250
Nakar L., Friebroon-Yesharim M. & Armoni M.
(2023)
Proceedings of 23rd International Conference on Computing Education Research, Koli Calling 2023
.
ion is the most fundamental idea of computer science (CS), manifested in every aspect of the discipline in multiple forms. In algorithmic problem solving, which lies at the heart of CS, it is manifested in two ways: 1) Modeling the problem and its components as computational entities, while focusing on essential core details of the problem and ignoring others. 2) Devising the solution by constantly employing algorithmic abstraction. Namely, the solution process involves moving up and down between abstraction levels, where black boxes are closed or opened, and details of the solution are ignored or considered, depending on the current phase of the problem-solving process. Models of this process can serve educators to effectively teach algorithmic problem solving, including algorithmic abstraction. Such models are often used also for assessment, for example, to examine the teaching of algorithmic problem solving or to evaluate students performance regarding algorithmic abstraction. In two different studies, we explored the teaching and learning of algorithmic abstraction in different contexts and at different age levels. In each of these studies an appropriate model of assessment was designed by means of combining top-down (deductive) and bottom-up (inductive) analyses. Thus, these models expressed grounded elements, namely, each of them included unique aspects of algorithmic abstraction that were revealed during the respective study. In this theoretical paper, we generalize these models and propose a new highly expressive two-dimensional model for evaluating algorithmic abstraction.
Nakar L. & Armoni M.
(2023)
UKICER 2023 - Proceedings of the 2023 Conference on United Kingdom and Ireland Computing Education Research
.
Abstraction is a central and fundamental idea of computer science (CS), which is widely used, for example, for simplifying problems and designing algorithms. Many argue that abstraction skills are the most necessary ones for computer scientists. In line with this, abstraction is acknowledged as an essential aspect of CS curricula. However, the literature indicates that CS teachers may lack knowledge about the importance of abstraction and how to teach it. In this qualitative study we closely examined the abstraction-related teaching approaches of eight high-school CS teachers, considering both their reflections on their teaching approach and their actual classroom practice. Our findings indicate that abstraction may not be sufficiently emphasized in class. We also found gaps between the perception of some teachers regarding their abstraction-related teaching approach and their actual way of teaching abstraction in their classrooms.