Encyclopedia of Information Science and Technology, Fourth Edition (10 Volumes) Now 50% Off

Take 50% off when purchasing the Encyclopedia directly through IGI Global's Online Bookstore. Plus, receive the complimentary e-books for the first, second, and third editions with the purchase of the Encyclopedia of Information Science and Technology, Fourth Edition e-book.

InfoSci®-Journals Annual Subscription Price for New Customers: As Low As US$ 4,950

This collection of over 175 e-journals offers unlimited access to highly-cited, forward-thinking content in full-text PDF and XML with no DRM. There are no platform or maintenance fees and a guarantee of no more than 5% increase annually.

Abstract

This chapter aims to present Code, a friendly environment where students without previous programming experience can explore core-programming concepts in a motivating manner. It consists of a platform style game where students can control a virtual robot having their first contact with the construction of small pseudocode blocks. Research in teaching and learning of programming present several reasons for the difficulties students face when starting programming. In this chapter we have pointed out some of them. The studies performed also indicated that the aspects related to problem solving are the principal factors to attack in order to solve this problem. However, the main concern is how to provide a motivating environment that engages the student in computational thinking and problem solving. Code Factory's main objective is to create a new strategy making learning more stimulating for the students emphasizing problem solving in order to help develop fundamental programming skills.

Introduction

The teaching and learning of programming are huge challenges for students and teachers. The high failure level in the introductory programming courses (CS1), in any grade and education system anywhere in the world, is a subject of concern. There is, in general, a great difficulty in understanding and applying certain abstract concepts of programming by a significant percentage of students attending introductory programming courses. One of the great difficulties lies in the understanding and in particular in the application of basic control structures, to create algorithms that solve real problems. These difficulties inevitably translate into high failure rates or drop out regardless of the used programming language. Although there have been tremendous changes in terms of technology there are panoramas that have maintained or even worsened. It appears that a significant number of students cannot learn to program. Lister (2000) states that in many Australian universities failure rates in introductory programming subjects are among the worst. Also Bruce and McMahon (2002) refer to the high failure rates and students' inability to complete small tasks in introductory programming units. These authors also reported that learning and teaching programming in higher education are ongoing problems. Teachers are familiar with students who are approaching their final project course determined to avoid programming at all costs, presumably because they cannot program or they believe that they cannot do so (Carter & Jenkins, 1999). Konecki (2014) also states that introductory programming courses struggle with low passing rates and low quality of knowledge that students possess even at the very end of their introductory programming courses. Dehnadi and Bornat (2006) also report that there is a huge failure rate in introductory courses in programming in British universities. They also stated that between 30% and 60% of higher education computer science students fail the first programming course. These authors also point out that, despite the efforts made by many teachers and the amount of related teaching methods researched in the area the situation has worsened over the years, instigating questions as to why this problem exists.

There is evidence and several studies showing that programming is a difficult task. Winslow (1996) states that learning to program is difficult and beginner programmers suffer from a variety of difficulties and deficits. Programming subjects are generally regarded as difficult and often have higher withdrawal rates. Several authors have observed this problem (Dehnadi, 2006; Jenkins, 2002; Lahtinen, Ala-Mutka, Järvinen, 2005; Lister, Simon, Thompson, Whalley, & Prasad, 2006; Reddy, 2015; Saha & Ray, 2015). Efopoulos and colleagues agree that programming is a cognitive and inherently demanding subject, suggesting that it is the most difficult computational ability to master (Efopoulos, Dagdilelis, Evangelidis, & Satratzemi, 2005). Several authors associate this difficulty to the abstract nature of programming (Bennedsen & Caspersen, 2006; Bennedsen, Caspersen, & Kölling, 2008; Konecki, 2014; Lahtinen et al., 2005). For example, Dunican (2002) said that concepts such as variables, data types, dynamic memory, among others, have no specific correspondence on a daily basis and mastering these basic concepts is not simple.