Blending an Android development course with software engineering concepts


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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10


  1. 1.

  2. 2.

    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

  3. 3.

    Details about EGit usage can be found at the corresponding EGit documentation


  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.

  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.

    Google Scholar 

  10. Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley.

    Google 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.

    Google 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..

  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.

  21. Kirkpatrick, D. L., & Kirkpatrick, J. D. (2006). Evaluating training programs: The four levels (3rd ed.). San Francisco: Berrett-Koehler Publishers.

    Google Scholar 

  22. Krathwohl, D. R. (2002). A revision of Bloom’s taxonomy: an overview. Theory Into Practice, 41(4), 212–218.

    Article  Google 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.

    Article  Google Scholar 

  24. LeBlanc, R., & Sobel, A. (2004). Software Engineering 2004: Curriculum guidelines for Undergraduate Degree Programs in Software Engineering. IEEE Computer Society and ACM.

  25. Liskov, B. H., & Wing, J. M. (1994). A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(1994), 1811–1841.

    Article  Google 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.

    Article  Google 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.

    Article  Google 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).

  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.

    Article  Google 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

Download references

Author information



Corresponding author

Correspondence to Alexander Chatzigeorgiou.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

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).

Download citation


  • Software engineering
  • Android development
  • Teaching strategies
  • Classroom teaching