Skip to main content

Teaching Programming Amid the Digital Churn: Guidelines and Curriculum for a Laboratory

  • Conference paper
  • First Online:
Book cover Learning and Collaboration Technologies. Designing the Learner and Teacher Experience (HCII 2022)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 13328))

Included in the following conference series:

  • 833 Accesses

Abstract

In the modern and digital society, the importance of software development is undeniable. Therefore, educating the next generation of software developers is crucial. However, learning how to program is challenging, and research on improving programming pedagogy is essential. Adding a laboratory component to programming courses can enhance the education. In this work, we first elicited requirements and guidelines for an introductory programming lab curriculum based on a literature review and feedback by instructors with years of experience. These included the use of (1) current and adequate tools, (2) collaborative learning environment, (3) formative assessment, (4) appropriate assignments for the target audience, (5) pedagogical innovations, and (6) to prepare students to be lifelong learners of the subject. Following, we present a curriculum for an introductory undergraduate programming lab based on the Raspberry Pi platform. It teaches students how to program following software development best practices and integrate software and hardware through a series of cyber-physical assignments, including developing a rover vehicle. We successfully piloted the curriculum with 30 students, and we present the highly positive feedback provided by them. Although the course was based on the C programming language, the underlying foundation on programming principles will allow students to apply the concepts in any language. Furthermore, this curriculum is not intended to be a one-size-fits-all approach to programming education. However, it can be a strong starting point for readers to tailor it to fit their audience, school needs, and student learning outcomes.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 79.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 99.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Anderson, J.R., Reiser, B.J.: The lisp tutor. Byte 10(4), 159–175 (1985)

    Google Scholar 

  2. Bennedsen, J., Caspersen, M.E.: Failure rates in introductory programming. AcM SIGcSE Bull. 39(2), 32–36 (2007)

    Article  Google Scholar 

  3. Boyer, N.R., Langevin, S., Gaspar, A.: Self direction & constructivism in programming education. In: Proceedings of the 9th ACM SIGITE Conference on Information Technology Education, pp. 89–94 (2008)

    Google Scholar 

  4. Butler, M., Morgan, M., et al.: Learning challenges faced by novice programming students studying high level and low feedback concepts. In: Proceedings Ascilite Singapore, pp. 99–107 (2007)

    Google Scholar 

  5. Condori, K.O.V.: Teaching formation to develop computational thinking. In: Global Implications of Emerging Technology Trends, pp. 59–72. IGI Global (2018)

    Google Scholar 

  6. Crow, T., Luxton-Reilly, A., Wuensche, B.: Intelligent tutoring systems for programming education: a systematic review. In: Proceedings of the 20th Australasian Computing Education Conference, pp. 53–62 (2018)

    Google Scholar 

  7. Dacko, S.G.: Narrowing skill development gaps in marketing and MBA programs: the role of innovative technologies for distance learning. J. Mark. Educ. 23(3), 228–239 (2001)

    Article  Google Scholar 

  8. Dagdilelis, V., Satratzemi, M., Evangelidis, G.: Introducing secondary education students to algorithms and programming. Educ. Inf. Technol. 9(2), 159–173 (2004)

    Article  Google Scholar 

  9. Fischer, G., von Gudenberg, J.W.: Improving the quality of programming education by online assessment. In: Proceedings of the 4th International Symposium on Principles and Practice of programming in Java, pp. 208–211 (2006)

    Google Scholar 

  10. Ghezzi, C., Mandrioli, D.: The challenges of software engineering education. In: Inverardi, P., Jazayeri, M. (eds.) ICSE 2005. LNCS, vol. 4309, pp. 115–127. Springer, Heidelberg (2006). https://doi.org/10.1007/11949374_8

    Chapter  Google Scholar 

  11. Gomes, A., Mendes, A.J.: An environment to improve programming education. In: Proceedings of the 2007 International Conference on Computer Systems and Technologies, pp. 1–6 (2007)

    Google Scholar 

  12. Gomes, A., Mendes, A.J.: Learning to program-difficulties and solutions. In: International Conference on Engineering Education-ICEE, vol. 7 (2007)

    Google Scholar 

  13. Hagan, D., Sheard, J., Macdonald, I.: Monitoring and evaluating a redesigned first year programming course. In: Proceedings of the 2nd Conference on Integrating Technology into Computer Science Education, pp. 37–39 (1997)

    Google Scholar 

  14. Knight, J.C., Prey, J.C., Wulf, W.A.: A look back: undergraduate computer science education: a new curriculum philosophy and overview. In: Proceedings Frontiers in Education 1997 27th Annual Conference. Teaching and Learning in an Era of Change, vol. 2, pp. 722–727. IEEE (1997)

    Google Scholar 

  15. Lewis, C.M.: How programming environment shapes perception, learning and goals: logo vs. scratch. In: Proceedings of the 41st ACM Technical Symposium on Computer Science Education, pp. 346–350 (2010)

    Google Scholar 

  16. Manovich, L.: Software takes command, vol. 5. A&C Black (2013)

    Google Scholar 

  17. McGonigal, J.: Reality is Broken: Why Games Make us Better and How They can Change the World. Penguin, London (2011)

    Google Scholar 

  18. Melero, J., Hern, D., Blat, J., et al.: Towards the support of scaffolding in customizable puzzle-based learning games. In: 2011 International Conference on Computational Science and Its Applications, pp. 254–257. IEEE (2011)

    Google Scholar 

  19. Moritz, S.H., Wei, F., Parvez, S.M., Blank, G.D.: From objects-first to design-first with multimedia and intelligent tutoring. ACM SIGCSE Bull. 37(3), 99–103 (2005)

    Article  Google Scholar 

  20. Oroma, J.O., Wanga, H., Ngumbuke, F.: Challenges of teaching and learning computer programming in developing countries: Lessons from tumaini university. In: Proceedings of INTED2012 Conference, Valencia, Spain, 5th–7th March 2012 (2012)

    Google Scholar 

  21. Oyelere, S., Agbo, F., Yunusa, A., Sanusi, I., Sunday, K.: Impact of puzzlebased learning in computer science education: the case of mobileedu. In: 18th IEEE International Conference on Advanced Learning Technology (ICALT), Maceio-AL, Brazil (2019)

    Google Scholar 

  22. Reuse-Durham, N.: Peer evaluation as an active learning technique. J. Instr. Psychol. 32(4), 1–9 (2005)

    Google Scholar 

  23. Sheard, J., Simon, S., Hamilton, M., Lönnberg, J.: Analysis of research into the teaching and learning of programming. In: Proceedings of the Fifth International Workshop on Computing Education Research Workshop, pp. 93–104 (2009)

    Google Scholar 

  24. Sohn, W.: Design and evaluation of computer programming education strategy using arduino. Adv. Sci. Technol. Lett. 66(1), 73–77 (2014)

    Article  Google Scholar 

  25. Song, J., Hahn, S., Tak, K., Kim, J.: An intelligent tutoring system for introductory c language course. Comput. Educ. 28(2), 93–102 (1997)

    Article  Google Scholar 

  26. Sunday, K., Ocheja, P., Hussain, S., Oyelere, S., Samson, B., Agbo, F.: Analyzing student performance in programming education using classification techniques. Int. J. Emerg. Technol. Learn. (iJET) 15(2), 127–144 (2020)

    Article  Google Scholar 

  27. Teague, D., Corney, M., Ahadi, A., Lister, R.: Swapping as the ‘hello world’ of relational reasoning: Replications, reflections and extensions. In: Proceedings of the Fourteenth Australasian Computing Education Conference (ACE2012): Conferences in Research and Practice in Information Technology, vol. 123, pp. 87–94. Australian Computer Society (2012)

    Google Scholar 

  28. Tezza, D., Garcia, S., Andujar, M.: Let’s learn! an initial guide on using drones to teach STEM for children. In: Zaphiris, P., Ioannou, A. (eds.) HCII 2020. LNCS, vol. 12206, pp. 530–543. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-50506-6_36

    Chapter  Google Scholar 

  29. Wiedenbeck, S., Labelle, D., Kain, V.N.: Factors affecting course outcomes in introductory programming. In: PPIG, p. 11. Citeseer (2004)

    Google Scholar 

  30. Willert, N.: A systematic literature review of gameful feedback in computer science education. Int. J. Inf. Educ. Technol. 11(10), 464–470 (2021)

    Google Scholar 

  31. Winslow, L.E.: Programming pedagogy-a psychological overview. ACM Sigcse Bull. 28(3), 17–22 (1996)

    Article  Google Scholar 

  32. Xia, B.S.: An in-depth analysis of teaching themes and the quality of teaching in higher education: Evidence from the programming education environments. Int. J. Teach. Learn. Higher Educ. 29(2), 245–254 (2017)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dante Tezza .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Tezza, D., Abbott, B. (2022). Teaching Programming Amid the Digital Churn: Guidelines and Curriculum for a Laboratory. In: Zaphiris, P., Ioannou, A. (eds) Learning and Collaboration Technologies. Designing the Learner and Teacher Experience. HCII 2022. Lecture Notes in Computer Science, vol 13328. Springer, Cham. https://doi.org/10.1007/978-3-031-05657-4_35

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-05657-4_35

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-05656-7

  • Online ISBN: 978-3-031-05657-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics