Teaching Abstract Thinking in Introduction to Computer Science for 7th Graders

Abstraction is one of the most fundamental ideas in computer science (CS), and as such it is highly important to start teaching it as early as possible. However, teaching this soft concept to novices is a very complicated task, as has been emphasized by many CS and mathematics education experts. In this paper, we describe the first year of a study that aims to improve students' abstraction skills in algorithmic problem solving. We implement a new teaching method introduced in [2] that was designed to improve CS abstraction skills and to teach them more explicitly. We studied the effects of this teaching method in the context of an introductory CS course for 7th graders. In this course, Scratch is used as the programming language in which the solutions are implemented. We describe part of the first year's results.