The tremendous popularity of mobile computing and Android in particular has attracted millions of developers who see opportunities for building their own start-ups. As a consequence Computer Science students express an increasing interest into the related technology of Java development for Android applications. Android projects are complex by nature and relatively large software products while their development calls for the application of established software engineering practices and tools. However, most software engineering courses focus on ‘conventional’ software development for desktop or web applications. In this paper we report on the design, implementation and assessment of a novel short course aiming at bridging the gap between software engineering and Android development. The goal is to demonstrate the need for applying software engineering principles on Android development as well as to emphasize that writing software for mobile devices should be regarded as an equally serious programming activity. The proposed course covers design principles, patterns, metrics, refactorings and collaborative software development. The course has been delivered to three groups of undergraduate and postgraduate students at two different institutes. The course has been evaluated: a) by performing a student satisfaction survey, b) through summative assessment of students’ performance, c) by investigating whether the proposed course modified the students’ career interests and d) by employing assessment by peers based on rubrics. The results indicate that such a short course is capable of increasing student’s interest on Android development as well as their awareness of the importance of software engineering concepts on mobile application software development.
This is a preview of subscription content, access via your institution.
Buy single article
Instant access to the full article PDF.
Tax calculation will be finalised during checkout.
Subscribe to journal
Immediate online access to all issues from 2019. Subscription will auto renew annually.
Tax calculation will be finalised during checkout.
We suggest using a Java IDE like Eclipse, Netbeans or IntelliJ IDEA due to the integration of graphical layouts along with XML formats and because of the provided support for refactorings
Details about EGit usage can be found at the corresponding EGit documentation http://www.eclipse.org/egit/documentation
ACM. (2013). Curriculum guidelines for Undergraduate Programs in Computer Science, Retrieved December 15, 2014, from www.acm.org/education/CS2013-final-report.pdf.
Akopian, D., Melkonyan, A., Golgani, S., Yuen, T., & Saygin, C. (2013). A template-based short course concept on android application development. Journal of Information Technology Education. Innovations in Practice, 12(2013), 13–28.
Biggs, J. (2003). Aligning teaching and assessing to course objectives. Teaching and Learning in Higher Education: New Trends and Innovations. University of Aveiro.
Biggs, J., & Tang, C. (2011). Teaching for quality learning at University (4th ed.). Maidenhead: Open University Press.
Carnegie Mellon. (2014). Aligning assessment with objectives. Retrieved August 18, 2014 from http://www.cmu.edu/teaching/assessment/howto/basics/objectives.html.
Dewey, J. (1938). Education and experience. New York: Macmillan.
European Commission. (2012). European vacancy and recruitment report. Retrieved December 15, 2014 from http://ec.europa.eu/social/main.jsp?catId=738&langId=en&pubId=7267&type=2&furtherPubs=yes.
Fong, B. (1987). The external examiners approach to assessment. Washington, DC: Association of American Colleges.
Fowler, M. (1999). Refactoring: Improving the design of existing code. Boston: Addison-Wesley Professional.
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley.
Gartner. (2013). Gartner says Worldwide PC, Tablet and Mobile Phone shipments to grow 4.5 percent in 2013 as lower-priced devices drive growth. Retrieved January 16, 2014 from http://www.gartner.com/newsroom/id/2610015.
Ghezzi, C., Jazayeri, M., & Mandrioli, D. (2002). Fundamentals of software engineering. Upper Saddle River: Prentice Hall PTR.
git. (2014). Git. Retrieved February 21, 2014 from http://git-scm.com/.
GitHub. (2014). GitHub. Retrieved February 21, 2014 from https://github.com/.
Heckman, S., Horton, T. B., & Sherriff, M. (2011). Teaching second-level Java and software engineering with Android. In Proceedings of 24th IEEE-CS Conference on Software Engineering Education and Training (CSEE&T’11) (pp. 540–542). New York: IEEE Press. doi:10.1109/CSEET.2011.5876144.
Herbert, N., de Salas, K., Lewis, I., Cameron-Jones, M., Chinthammit, W., Dermoudy, J., Ellis, L., & Springer, M. (2013). Identifying career outcomes as the first step in ICT curricula development. In Proceedings of the Fifteenth Australasian Computing Education Conference-Volume 136 (pp. 31–40). Australian Computer Society, Inc..
Hu, W., Chen, T., Shi, Q., & Lou, X. (2010). Smartphone Software Development Course design based on Android. In Proceedings of the 10th IEEE Conference on Computer and Information Technology (CIT’10) (pp. 2180–2184). New York: IEEE Press. doi:10.1109/CIT.2010.374.
JUnit. (2014). JUnit. Retrieved March 2, 2014 from http://junit.org/.
Keller, J. M. (1983). Motivational design of instruction. In C. Riegeluth (Ed.), Instructional design theories and models (pp. 383–434). Hillsdale: Erlbaum.
Kennedy, D., Áine, H., & Norma, R. (2006). Writing and using learning outcomes: A practical guide. In EUA Bologna handbook – Making Bologna work. Berlin: Raabe Verlag.
Kirkpatrick, D. L., & Kirkpatrick, J. D. (2006). Evaluating training programs: The four levels (3rd ed.). San Francisco: Berrett-Koehler Publishers.
Krathwohl, D. R. (2002). A revision of Bloom’s taxonomy: an overview. Theory Into Practice, 41(4), 212–218.
Lai, Y. C., & Ng, E. M. W. (2011). Using wikis to develop student teachers’ learning, teaching, and assessment capabilities. The Internet and Higher Education, 14(2011), 15–26.
LeBlanc, R., & Sobel, A. (2004). Software Engineering 2004: Curriculum guidelines for Undergraduate Degree Programs in Software Engineering. IEEE Computer Society and ACM.
Liskov, B. H., & Wing, J. M. (1994). A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(1994), 1811–1841.
Mahmoud, Q. H. (2008). Integrating mobile devices into the computer science curriculum. In Proceedings of the 38th Annual Conference on Frontiers in Education Conference (FIE’08). S3E-17 - S3E-22. doi:10.1109/FIE.2008.4720686.
Martin, R. C. (2003). Agile software development: Principles, patterns, and practices. Upped Saddle River: Prentice Hall PTR.
Mednieks, Z., Dornin, L., Meike, G. B., & Nakamura, M. (2012). Programming android: Java programming for the new generation of mobile devices. Sebastopol: O’Reilly Media.
Mulligan, M., & Card, D. (2014). Sizing the EU app economy. Retrieved January 10, 2014 from http://eurapp.eu/sites/default/files/Sizing%20the%20EU%20App%20Economy.pdf.
Parker, K. R., & Chao, J. T. (2007). Wiki as a teaching tool. Interdisciplinary Journal of Knowledge and Learning Objects, 3(2007), 57–72.
Persico, D. (1996). Courseware validation: a case study. Journal of Computer Assisted Learning, 12(4), 232–244.
Petkovic, D., Thompson, G., & Todtenhoefer, R. (2006). Teaching Practical Software Engineering and Global Software Engineering: Evaluation and comparison. In Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, (ITICSE’06) (pp. 294–298). New York: ACM. doi:10.1145/1140124.1140202.
Quality Matters. (2014). Quality matters overview. Retrieved May 15, 2014 from https://www.qualitymatters.org/applying-Rubric15/download/QM_Overview_for%20Current%20Subscribers_AE2013.pdf.
Riley, D. (2012). Using mobile phone programming to teach Java and advanced programming to computer scientists. In Proceedings of the 43rd ACM Technical Symposium on Computer Science Education (SIGCSE’12) (pp. 541–546). New York: ACM. doi:10.1145/2157136.2157292.
Ritzhaupt, A. D. (2009). Creating a game development course with limited resources: an evaluation study. ACM Transactions on Computing Education, 9(1), 3:1–3:16.
Roethlisberger, F. J., & Dickson, W. J. (1939). Management and the worker. Cambridge: Harvard University Press.
Schwartz, L., Clark, S., Cossarin, M., & Rudolph, J. (2004). Educational wikis: features and selection criteria. International Review of Research in Open Distance Learn, 5(1).
SFIA Foundation. (2015). Skills framework for the information age. http://www.sfia-online.org/. Accessed 26 June 2015.
Spinellis, D. (2003). Code reading: The open source perspective. Boston: Addison-Wesley Professional.
Tenenberg, J. D. (1995). Using cooperative learning in the undergraduate computer science classroom. Journal of Computing in Small Colleges, 11(2), 38–49.
Tsantalis, N., & Chatzigeorgiou, A. (2009). Identification of move method refactoring opportunities. IEEE Transactions on Software Engineering, 35(3), 347–367.
Victor, H. (2013). Android’s Google Play beats App Store with over 1 million apps, now officially largest. Retrieved January 16, 2014 from http://www.phonearena.com/news/Androids-Google-Play-beats-App-Store-with-over-1-million-apps-now-officially-largest_id45680.
Wasserman, A. I. (2010). Software engineering issues for mobile application development. In Proceedings of the 18th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FoSER ’10) (pp. 397–400). New York: ACM Press. doi:10.1145/1882362.1882443.
Whitney, L. (2012). Android reclaims 61 percent of all U.S. smartphone sales | Internet & Media - CNET news. Retrieved January 16, 2014 from http://news.cnet.com/8301-1023_3-57429192-93/android-reclaims-61-percent-of-all-u.s-smartphone-sales/.
About this article
Cite this article
Chatzigeorgiou, A., Theodorou, T.L., Violettas, G.E. et al. Blending an Android development course with software engineering concepts. Educ Inf Technol 21, 1847–1875 (2016). https://doi.org/10.1007/s10639-015-9423-3
- Software engineering
- Android development
- Teaching strategies
- Classroom teaching