“…The knowledge of novices tends to be context-specific rather than general (Kessler & Anderson, 1989), and they also often fail to correctly apply the knowledge they have obtained. In fact, an average student does not usually make much progress in an introductory programming course due to their serious deficiencies (Kölling & Rosenberg, 1996;McCracken, Almstrum, Diaz, Guzdial, Hagan, Kolikant, et al, 2001). In another study by Perkins, Hancock, Hobbs, Martin, and Simmons (1989), three kinds of programming students were identified: stoppers, movers, and extreme movers.…”