“…Demonstrating it for a specific problem and in a specific context is necessary in order to explain it, but may not be sufficient to achieve nonspecific transfer [Schwill 1994], that is, to induce significant learning that will enable students to use reduction for solving other problems in other contexts. This difficulty is common to all CS fundamental ideas, and is already recognized and reported in the literature for several concepts, usually referred to as soft concepts [Corder 1990], such as abstraction [e.g., Or-Bach and Lavy 2004;Sanders and Thomas 2007;Turner et al 2008], recursion [e.g., DiCheva andClose 1996;Kahney 1983;Levi 2001], encapsulation [e.g., Turner et al 2008] and programming paradigm [Stolin and Hazzan 2007]. The appropriate, effective way to teach fundamental ideas, according to Bruner [1960], is in a spiral manner, which touches many contexts at various levels.…”