8. METODOLOGIA DE GESTIÓ DE PROJECTES
8.2. PLANIFICACIÓ DEL PROJECTE
The ubiquity of mobile phones provides an opportunity to use them as programming environments outside the classroom, especially in resource-constrained environments. There are some existing applications that enable learning of programming using mobile phones by providing static text, visual environments or ability to construct programs.
Some applications enable learning of programming using tutorials and exercises on the mobile phone. For example, mJeliot enable learners to make predictions about execution behavior of code (Pears & Rogalli 2011). Another example is Sortko that was designed for learning sorting, where the learner selects a sorting algorithm and then applies it on a sequence of numbers. In addition, algorithm visualization has been implemented on mobile devices (Hürst et al. 2007). Recently, a study
31
investigated the use of mobile technology and Facebook as tools to support the learning of programming through discussions, chats and brainstorming among novices (Maleko 2014). However, the constructivist theory dictates that learning of programming requires a more active role by the learner than just viewing content. Further, it was not the aim of this research to incorporate the use of a social media tool such as Facebook.
Some mobile programming environments enable creation of GUIs (such as Mobidev (Seifert et al. 2011)), others enable creation of mobile applications (such as TouchDevelop (Tillmann et al. 2011)), while others enable creation of standard programs that can run on a PC (such as Sand IDE7).
Mobidev (Seifert et al. 2011) is a mobile programming environment that was developed to create simple GUI applications in three ways: by defining the UI in code; by using a graphical GUI designer; and by drawing a sketch of the desired UI on a piece of paper that is photographed with the mobile phone’s camera and further transformed into a UI. However, despite acknowledging that mobile phones have limitations, MobiDev did not offer design techniques to overcome these limitations. Evaluation of Mobidev measured time-on-task and used the t-test to calculate the significance between creating a UI using the GUI designer and creating one using a sketch builder. These metrics provided an indication of what could be evaluated to measure the effect of using scaffolding techniques on a mobile programming environment. The results showed that participants preferred taking photographs of drawn sketches that were then translated into UI than they did creating one using the GUI designer. However, the application of Mobidev differs from the one of this study since the aim was not to transform paper prototypes into executable code.
Recent work by Microsoft enables development of mobile apps using a new language - TouchDevelop - on the TouchDevelop programming environment where much of the code is created by tapping through menus (Tillmann et al. 2011). TouchDevelop is intended to let users customize their phone’s behavior to provide real-time support for their personal lives (Athreya et al. 2012). TouchDevelop also provide fading mechanism such as providing instructional prompts in the first program, then encouraging the user to try and complete the program on their own in the second program. However, TouchDevelop (Figure 3.1) is a specialized language that was designed for a visual programming environment that creates mobile applications. In contrast, this study does not develop a specialized language.
App Inventor (Figure 3.2) is a visual “blocks” programming language designed to introduce learners to programming through creation of mobile applications (Wolber 2011). Learners create applications by dragging and connecting various blocks. App Inventor has been successful in
32 Figure 3.1: TouchDevelop
interface on a mobile device (Source:
https://www.touchdevelop.com/ )
Figure 3.2: Example of an AppInventor program Source: (Wolber 2011)
Figure 3.3: SAND IDE (Source: Google Play Store)
Figure 3.4: Java Editor (Source: Google Play Store)
motivating learners to create real world applications and has been widely used (Wolber 2011; Wagner et al. 2013; Roy 2012). In contrast, the aim of this research is to support construction of programs that are typically taught in an introductory course using Java, as opposed to creating mobile apps such as in TouchDevelop and App Inventor.
There are several mobile IDEs for Java programming available on the Google Play store, such as Sand IDE (Figure 3.3) and Java Editor (Figure 3.4). However, the interfaces of these IDEs mostly mimic PC-based IDEs and they do not offer scaffolding techniques that could support a novice learner
33
or address the limitations of mobile phones. Similarly, mobProg was designed to offer a platform for creating Java programs on a mobile phone (Hashim 2007). The design of mobProg was based on scenarios and much of the testing was done using an emulator and not with real learners. Further, mobProg enabled writing of Java programs much the same as a PC IDE would, with the addition of syntax highlighting and ability to compile and run the program.
Existing programming environments on mobile phones seem to be based on mobile applications, specialized languages, viewing static material, block-based languages, or exporting IDE concepts and environments directly from desktop environments to the mobile context. Mobile programming environments that use less graphical displays or text to create Java programs and that address the limitations of mobile phones seem to be missing. This study aimed to addresses this gap.