A Script-based Approach for Teaching and Assessing Android Application Development

Mobile applications are extremely popular with many higher education institutions offering courses to prepare new developers sought by the software industry. However, teaching and assessing mobile application development poses specific challenges due to the complexity of real-world programming languages and environments. In this work, we present a script-based approach for teaching and assessing Android application development that addresses shortcomings of existing tools that impact negatively on the learning experience. Our evaluation, which covers pedagogical and technical aspects, provides possible evidence that the scripts have been beneficial in helping students to work more efficiently and achieve better results. Additionally, the scripts have been effective in streamlining the grading process and keeping the tutorial material up to date with the evolution of the Android platform.

[1]  Mario Di Francesco,et al.  Automated Assessment of Android Exercises with Cloud-native Technologies , 2020, ITiCSE.

[2]  Christian Wolff,et al.  Monitoring students' mobile app coding behavior data analysis based on IDE and browser interaction logs , 2014, 2014 IEEE Global Engineering Education Conference (EDUCON).

[3]  Miryung Kim,et al.  An Empirical Study of API Stability and Adoption in the Android Ecosystem , 2013, 2013 IEEE International Conference on Software Maintenance.

[4]  Ivaylo Ilinkin Opportunities for android projects in a CS1 course , 2014, SIGCSE '14.

[5]  Robin Nunkesser,et al.  Beyond Web/Native/Hybrid: A New Taxonomy for Mobile App Development , 2018, 2018 IEEE/ACM 5th International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[6]  Maria Asunción Vicente,et al.  Improving student engagement on programming using app development with Android devices , 2017, Comput. Appl. Eng. Educ..

[7]  Lei Wang,et al.  Understanding and Detecting Evolution-Induced Compatibility Issues in Android Apps , 2018, 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[8]  Johan Jeuring,et al.  Towards a Systematic Review of Automated Feedback Generation for Programming Exercises , 2016, ITiCSE.

[9]  Victor Matos,et al.  Building applications for the Android OS mobile platform: a primer and course materials , 2010 .

[10]  Fabio Palomba,et al.  Self-Reported Activities of Android Developers , 2018, 2018 IEEE/ACM 5th International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[11]  Alexander Chatzigeorgiou,et al.  Blending an Android development course with software engineering concepts , 2015, Education and Information Technologies.

[12]  Michael Halper Using android as a platform for programming in the IT curriculum , 2014, SIGITE '14.

[13]  Kirsti Ala-Mutka,et al.  Journal of Information Technology Education Supporting Students in C++ Programming Courses with Automatic Program Style Assessment Supporting Students on C++ Programming Courses , 2022 .

[14]  Stefan Kowalewski,et al.  A Mobile Software Quality Model , 2012, 2012 12th International Conference on Quality Software.

[15]  Zhixiong Chen,et al.  Experiences with Eclipse IDE in programming courses , 2005 .

[16]  Michael P. Rogers,et al.  Smart smartphone development: iOS versus android , 2011, SIGCSE.

[17]  Barry W. Boehm,et al.  Quantitative evaluation of software quality , 1976, ICSE '76.

[18]  F. Marton,et al.  ON QUALITATIVE DIFFERENCES IN LEARNING: I—OUTCOME AND PROCESS* , 1976 .

[19]  P. Treweek Comparing interfaces: should we assume that ease of use influences users' preference? , 1996, Proceedings Sixth Australian Conference on Computer-Human Interaction.

[20]  Evan W. Patton,et al.  MIT App Inventor: Objectives, Design, and Development , 2019, Computational Thinking Education.

[21]  Mordechai Ben-aft,et al.  Constructivism in computer science education , 1998, SIGCSE '98.

[22]  Derek Riley,et al.  Using mobile phone programming to teach Java and advanced programming to computer scientists , 2012, SIGCSE '12.

[23]  Lauri Malmi,et al.  A survey of literature on the teaching of introductory programming , 2007, ITiCSE-WGR '07.

[24]  Jaroslav Porubän,et al.  Automated testing environment and assessment of assignments for Android MOOC , 2018, Open Comput. Sci..

[25]  Heike Hofmann,et al.  GUI and Command-line-Conflict or Synergy? , 1999 .

[26]  Chris Wilcox Testing Strategies for the Automated Grading of Student Programs , 2016, SIGCSE.

[27]  Edward Dillon,et al.  Teaching Students to Program Using Visual Environments: Impetus for a Faulty Mental Model? , 2014 .

[28]  Giuseppe Scanniello,et al.  Using Project-Based-Learning in a mobile application development course - An experience report , 2015, J. Vis. Lang. Comput..

[29]  Tor-Morten Grønli,et al.  Mobile Application Platform Heterogeneity: Android vs Windows Phone vs iOS vs Firefox OS , 2014, 2014 IEEE 28th International Conference on Advanced Information Networking and Applications.

[30]  Jacques Klein,et al.  Characterising Deprecated Android APIs , 2018, 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR).

[31]  Neena Thota,et al.  Holistic approach to learning and teaching introductory object-oriented programming , 2010, Comput. Sci. Educ..

[32]  A. Elliot,et al.  Handbook of Competence and Motivation , 2013 .

[33]  Perdita Stevens,et al.  Tool Use in Software Modelling Education , 2013, EduSymp@MoDELS.

[34]  Edward Dillon,et al.  Studying the Novice’s Perception of Visual Vs. Command Line Programming Tools in CS1 , 2012 .

[35]  Michail N. Giannakos,et al.  Introductory programming: a systematic literature review , 2018, ITiCSE.

[36]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[37]  Edsger W. Dijkstra,et al.  On the cruelty of really teaching computing science , 2018 .

[38]  Susan Elliott Sim,et al.  The ramp-up problem in software projects: a case study of how software immigrants naturalize , 1998, Proceedings of the 20th International Conference on Software Engineering.

[39]  Xiaohong Yuan,et al.  Teaching mobile computing and mobile security , 2016, 2016 IEEE Frontiers in Education Conference (FIE).

[40]  Monica Anderson,et al.  Comparing mental models of novice programmers when using visual and command line environments , 2012, ACM-SE '12.

[41]  Stefan Koch,et al.  Joining a smartphone ecosystem: Application developers' motivations and decision criteria , 2014, Inf. Softw. Technol..

[42]  Stephen H. Edwards,et al.  RoboLIFT: engaging CS2 students with testable, automatically evaluated android applications , 2012, SIGCSE '12.

[43]  Weiyi Shang,et al.  Exploring the Use of Automated API Migrating Techniques in Practice: An Experience Report on Android , 2018, 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR).

[44]  Roy D. Pea,et al.  On the Cognitive Effects of Learning Computer Programming: A Critical Look. Technical Report No. 9. , 1987 .

[45]  Barry Burd,et al.  Educating for mobile computing: addressing the new challenges , 2012, ITiCSE-WGR '12.

[46]  Julio C. Caiza,et al.  PROGRAMMING ASSIGNMENTS AUTOMATIC GRADING: REVIEW OF TOOLS AND IMPLEMENTATIONS , 2013 .

[47]  Stephen H. Edwards,et al.  Web-CAT: automatically grading programming assignments , 2008, ITiCSE.

[48]  Petri Ihantola,et al.  Review of recent systems for automatic assessment of programming assignments , 2010, Koli Calling.

[49]  Mercedes Gómez-Albarrán,et al.  The Teaching and Learning of Programming: A Survey of Supporting Software Tools , 2005, Comput. J..

[50]  Kati Kuusinen,et al.  Are Software Developers Just Users of Development Tools? Assessing Developer Experience of a Graphical User Interface Designer , 2016, HCSE/HESSD.

[51]  Jonathan Sprinkle Teaching students to learn to learn mobile phone programming , 2011, SPLASH Workshops.

[52]  Miguel P Caldas,et al.  Research design: qualitative, quantitative, and mixed methods approaches , 2003 .