Mobile App Development to Increase Student Engagement and Problem Solving Skills.

1. INTRODUCTION With the advancement of technology, computer hardware and software have become essential tools not only for science and engineering fields, but also for business and liberal arts disciplines. For example, in physiology, computers have been used to assist psychological assessment (Fowler, 1985, p.748); in the business world, computers have made e-commerce the norm; in biology, computer programs have been developed to estimate gene genealogies (Clement, 2000, p.1657). To be successful in their academic studies and in their future career, today's students need to be able to adapt to a dynamic environment surrounded by new technologies. Thus, basic computer literacy is not enough to stay competitive in the current workforce. It has become essential that students develop a deeper understanding about computing and adequately apply computing skills, such as creating and manipulating digital graphics. More importantly, the problem solving skills and critical thinking ability developed and honed through the application of these computing skills are crucial to a student's future success in the face of constantly evolving technology regardless of their major. The traditional programming language courses are usually considered to be effective in fostering these skills. However, learning how to program in a language such as Java or C++ has been proven to be difficult, even for computing majors (Bennedsen & Caspersen, 2007, p.32) (Dodds et al., 2008, p.266). As a result, enrollment and retention rates in computer science (CS) and information technology (IT) programs have suffered (Uludag et al, 2011, p.183) (Computing Research Association, 2011) and students therefore lose out on prime opportunities to develop their problem solving skills and critical thinking ability. Researchers have investigated and discovered that traditional programming courses fail to connect programming and CS concepts with students' diverse interests and backgrounds (Forte & Guzdial, 2005, p.248). The authors of this paper also observed that the strict syntax of traditional programming languages become the primary focus of the course and as a result students are unintentionally discouraged from solving problems and from expressing their creativity. This phenomenon is even more prevalent among students in programming courses that are not majoring in CS. Various researchers have attempted to develop different strategies to improve student performance in introductory programming courses. These strategies include: a) Addressing the issue from the social aspect by applying pair-programming (Nagappan et al., 2003, p359) (Williams et al., 2000, p.98) (Carver et al., 2007, p.115) (McDowell et. al, 2006, p.136) and collaborative learning (Teague & Roe, 2008, p.147). b) Increasing students' interest in CS by using themes that are attractive to students. Successful results have been reported by using multimedia approach (Guzdial & Ericson, 2007), game approach (Kolling & Herriksen, 2005, p59), and animation approach (Crawford & Boese, 2006, p.156). c) Using visualized programming to introduce core concepts before more advanced and in-depth courses are offered (Johnsgard & McDonald 2008, p. 129). In support of this strategy, many visualized programming tools have been developed. Popular ones include: 1. Scratch: This tool provides an environment where users can create animations, games and music by dragging and dropping the pre-defined programming blocks in the right places. The original targeted audience was young users aged 8 to 16 years (Malan & Leitner, 2007, p.223). The use of Scratch (Rizvi et al., 2011, p.19) has enabled the development of a successful CS curriculum and an interdisciplinary course to promote computational thinking (Ruthmann et al., 2010, p.351). 2. Alice: Alice provides 3-dimensional characters, scenes and environments that users can manipulate and alter to create their own interactive animated stories. …