“…Students should know how to subdivide a given solution into easy and simpler pseudo-code and ought to be able to conceive hypothetical error situations in order to test their programs and find possible missteps (Esteves, Fonseca, Morgado, & Martins, 2008). Furthermore, novice programmers have difficulties understanding even the most basic concepts in programming such as variables, data type, machine structure, and functioning, given that there are no real-life analogies related to these concepts (Lahtinen et al, 2005;Miliszewka & Tan, 2007). Last, even after understanding the basic concepts in programming, programmers must learn the specificities of the programming language they intend to use (Lahtinen et al, 2005;Winslow, 1996).…”