Skip to main content
Log in

Blending an Android development course with software engineering concepts

  • Published:
Education and Information Technologies Aims and scope Submit manuscript

Abstract

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, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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

Similar content being viewed by others

Notes

  1. http://androidse.wikispaces.com

  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. Details about EGit usage can be found at the corresponding EGit documentation http://www.eclipse.org/egit/documentation

References

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  • Fowler, M. (1999). Refactoring: Improving the design of existing code. Boston: Addison-Wesley Professional.

    MATH  Google Scholar 

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

    MATH  Google Scholar 

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

    MATH  Google Scholar 

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

    Google Scholar 

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

    MATH  Google Scholar 

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

    Article  Google Scholar 

  • 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 

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

    Article  Google Scholar 

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

    Google Scholar 

  • 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 

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

    Google Scholar 

  • Persico, D. (1996). Courseware validation: a case study. Journal of Computer Assisted Learning, 12(4), 232–244.

    Article  Google Scholar 

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

    Article  Google Scholar 

  • Roethlisberger, F. J., & Dickson, W. J. (1939). Management and the worker. Cambridge: Harvard University Press.

    Google Scholar 

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

    Google Scholar 

  • 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 

  • Tsantalis, N., & Chatzigeorgiou, A. (2009). Identification of move method refactoring opportunities. IEEE Transactions on Software Engineering, 35(3), 347–367.

    Article  Google Scholar 

  • 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/.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alexander Chatzigeorgiou.

Rights and permissions

Reprints and permissions

About this article

Check for updates. 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). https://doi.org/10.1007/s10639-015-9423-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10639-015-9423-3

Keywords

Navigation