Education and Information Technologies

, Volume 21, Issue 6, pp 1847–1875 | Cite as

Blending an Android development course with software engineering concepts

  • Alexander Chatzigeorgiou
  • Tryfon L. Theodorou
  • George E. Violettas
  • Stelios Xinogalos


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.


Software engineering Android development Teaching strategies Classroom teaching 


  1. ACM. (2013). Curriculum guidelines for Undergraduate Programs in Computer Science, Retrieved December 15, 2014, from
  2. 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.Google Scholar
  3. Biggs, J. (2003). Aligning teaching and assessing to course objectives. Teaching and Learning in Higher Education: New Trends and Innovations. University of Aveiro.Google Scholar
  4. Biggs, J., & Tang, C. (2011). Teaching for quality learning at University (4th ed.). Maidenhead: Open University Press.Google Scholar
  5. Carnegie Mellon. (2014). Aligning assessment with objectives. Retrieved August 18, 2014 from
  6. Dewey, J. (1938). Education and experience. New York: Macmillan.Google Scholar
  7. European Commission. (2012). European vacancy and recruitment report. Retrieved December 15, 2014 from
  8. Fong, B. (1987). The external examiners approach to assessment. Washington, DC: Association of American Colleges.Google Scholar
  9. Fowler, M. (1999). Refactoring: Improving the design of existing code. Boston: Addison-Wesley Professional.zbMATHGoogle Scholar
  10. Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley.zbMATHGoogle Scholar
  11. 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
  12. Ghezzi, C., Jazayeri, M., & Mandrioli, D. (2002). Fundamentals of software engineering. Upper Saddle River: Prentice Hall PTR.zbMATHGoogle Scholar
  13. git. (2014). Git. Retrieved February 21, 2014 from
  14. GitHub. (2014). GitHub. Retrieved February 21, 2014 from
  15. 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.
  16. 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..Google Scholar
  17. 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.
  18. JUnit. (2014). JUnit. Retrieved March 2, 2014 from
  19. Keller, J. M. (1983). Motivational design of instruction. In C. Riegeluth (Ed.), Instructional design theories and models (pp. 383–434). Hillsdale: Erlbaum.Google Scholar
  20. 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.Google Scholar
  21. Kirkpatrick, D. L., & Kirkpatrick, J. D. (2006). Evaluating training programs: The four levels (3rd ed.). San Francisco: Berrett-Koehler Publishers.zbMATHGoogle Scholar
  22. Krathwohl, D. R. (2002). A revision of Bloom’s taxonomy: an overview. Theory Into Practice, 41(4), 212–218.CrossRefGoogle Scholar
  23. 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.CrossRefGoogle Scholar
  24. LeBlanc, R., & Sobel, A. (2004). Software Engineering 2004: Curriculum guidelines for Undergraduate Degree Programs in Software Engineering. IEEE Computer Society and ACM.Google Scholar
  25. Liskov, B. H., & Wing, J. M. (1994). A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(1994), 1811–1841.CrossRefGoogle Scholar
  26. 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.
  27. Martin, R. C. (2003). Agile software development: Principles, patterns, and practices. Upped Saddle River: Prentice Hall PTR.Google Scholar
  28. 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.Google Scholar
  29. Mulligan, M., & Card, D. (2014). Sizing the EU app economy. Retrieved January 10, 2014 from
  30. Parker, K. R., & Chao, J. T. (2007). Wiki as a teaching tool. Interdisciplinary Journal of Knowledge and Learning Objects, 3(2007), 57–72.Google Scholar
  31. Persico, D. (1996). Courseware validation: a case study. Journal of Computer Assisted Learning, 12(4), 232–244.CrossRefGoogle Scholar
  32. 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.
  33. Quality Matters. (2014). Quality matters overview. Retrieved May 15, 2014 from
  34. 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.
  35. 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.CrossRefGoogle Scholar
  36. Roethlisberger, F. J., & Dickson, W. J. (1939). Management and the worker. Cambridge: Harvard University Press.Google Scholar
  37. 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).Google Scholar
  38. SFIA Foundation. (2015). Skills framework for the information age. Accessed 26 June 2015.
  39. Spinellis, D. (2003). Code reading: The open source perspective. Boston: Addison-Wesley Professional.Google Scholar
  40. Tenenberg, J. D. (1995). Using cooperative learning in the undergraduate computer science classroom. Journal of Computing in Small Colleges, 11(2), 38–49.Google Scholar
  41. Tsantalis, N., & Chatzigeorgiou, A. (2009). Identification of move method refactoring opportunities. IEEE Transactions on Software Engineering, 35(3), 347–367.CrossRefGoogle Scholar
  42. Victor, H. (2013). Android’s Google Play beats App Store with over 1 million apps, now officially largest. Retrieved January 16, 2014 from
  43. 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.
  44. Whitney, L. (2012). Android reclaims 61 percent of all U.S. smartphone sales | Internet & Media - CNET news. Retrieved January 16, 2014 from

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  • Alexander Chatzigeorgiou
    • 1
  • Tryfon L. Theodorou
    • 2
  • George E. Violettas
    • 2
  • Stelios Xinogalos
    • 1
  1. 1.Department of Applied Informatics, School of Information SciencesUniversity of MacedoniaThessalonikiGreece
  2. 2.Department of Information & Communication TechnologyTechnical Trainers CollegeRiyadhKingdom of Saudi Arabia

Personalised recommendations