A Week of Playing with Code, the Object-Oriented Way

  • Michele TomaiuoloEmail author
  • Giulio Angiani
  • Alberto Ferrari
  • Monica Mordonini
  • Agostino Poggi
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 804)


This work presents the results of some summer stages for high school students, for the first introduction to computational thinking and programming. Differently from other approaches, our experiences are characterized by: (i) a full week of lessons and exercises, for gradually developing a small but complete and original project, (ii) an objects-early methodology, (iii) the choice of a dynamic videogame as the main programming project, and (iv) the availability of few small and focused examples, as source files, for students to start building their own application. At the end, the students’ anonymous opinions about the stage, and their own projects, were collected and analyzed, for improving future similar activities.


Computer games Computational thinking Computer science education Computer programming Python 


  1. 1.
    Caton, H., Greenhill, D.: Rewards and penalties: a gamification approach for increasing attendance and engagement in an undergraduate computing module. Int. J. Game-Based Learn. 4(3), 1–12 (2014)CrossRefGoogle Scholar
  2. 2.
    Ceder, V., Yergler, N.: Teaching programming with python and pygame. Apresentado na PyCon (2003)Google Scholar
  3. 3.
    Cooper, S., Dann, W., Pausch, R.: Alice: a 3-D tool for introductory programming concepts. J. Comput. Sci. Coll. 15(5), 107–116 (2000)Google Scholar
  4. 4.
    Dawson, M.: Python Programming for the Absolute Beginner. Cengage Learning, Boston (2010)Google Scholar
  5. 5.
    Deterding, S., Dixon, D., Khaled, R., Nacke, L.: From game design elements to gamefulness: defining gamification. In: Proceedings of the 15th International Academic MindTrek Conference: Envisioning Future Media Environments, pp. 9–15. ACM (2011)Google Scholar
  6. 6.
    Ferrari, A., Lombardo, G., Mordonini, M., Poggi, A., Tomaiuolo, M.: OOPP: tame the design of simple object-oriented applications with graphical blocks. In: Lecture Notes of the Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering, LNICST, vol. 233, pp. 279–288 (2018)CrossRefGoogle Scholar
  7. 7.
    Ferrari, A., Poggi, A., Tomaiuolo, M.: Object oriented puzzle programming. Mondo Digitale 15(64) (2016)Google Scholar
  8. 8.
    Greenberg, I., Kumar, D., Xu, D.: Creative coding and visual portfolios for CS1. In: Proceedings of the 43rd ACM Technical Symposium on Computer Science Education, pp. 247–252. ACM (2012)Google Scholar
  9. 9.
    Howland, K., Good, J.: Learning to communicate computationally with flip: a bi-modal programming language for game creation. Comput. Educ. 80, 224–240 (2015)CrossRefGoogle Scholar
  10. 10.
    Kelleher, C., Pausch, R.: Lowering the barriers to programming: a taxonomy of programming environments and languages for novice programmers. ACM Comput. Surv. (CSUR) 37(2), 83–137 (2005)CrossRefGoogle Scholar
  11. 11.
    Kölling, M.: The problem of teaching object-oriented programming, part 1: languages. J. Object-Oriented Program. 11(8), 8–15 (1999)Google Scholar
  12. 12.
    Leutenegger, S., Edgington, J.: A games first approach to teaching introductory programming. ACM SIGCSE Bull. 39(1), 115–118 (2007)CrossRefGoogle Scholar
  13. 13.
    Overmars, M.: Teaching computer science through game design. Computer 37(4), 81–83 (2004)CrossRefGoogle Scholar
  14. 14.
    Perkel, J.M.: Pick up python. Nature 518(7537), 125 (2015)CrossRefGoogle Scholar
  15. 15.
    Prayaga, L., Coffey, J.W., Rasmussen, K.: Strategies to teach game development across age groups. In: Design, Utilization, and Analysis of Simulations and Game-Based Educational Worlds, pp. 95–110. IGI Global (2013)Google Scholar
  16. 16.
    Price, T.W., Barnes, T.: Comparing textual and block interfaces in a novice programming environment. In: Proceedings of the Eleventh Annual International Conference on International Computing Education Research, pp. 91–99. ACM (2015)Google Scholar
  17. 17.
    Repenning, A.: Agentsheets®: An interactive simulation environment with end-user programmable agents. Interaction (2000)Google Scholar
  18. 18.
    Shein, E.: Python for beginners. Commun. ACM 58(3), 19–21 (2015)CrossRefGoogle Scholar
  19. 19.
    Silveira, I.F., Mustaro, P.N., Silva, L.: Using computer games to teach design patterns and computer graphics in CS and IT undergraduate courses: some case studies. In: Brazilian Symposium on Computers in Education, vol. 1, pp. 490–499 (2007)Google Scholar
  20. 20.
    Sweigart, A.: Making Games with Python and Pygame. CreateSpace, North Charleston (2012)Google Scholar
  21. 21.
    Vassilev, T.I., Mutev, B.I.: An approach to teaching introductory programming using games. In: Proceedings of the International Conference on e-Learning, vol. 14, p. 246 (2014)Google Scholar
  22. 22.
    Wing, J.M.: Computational thinking. Commun. ACM 49(3), 33–35 (2006)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Michele Tomaiuolo
    • 1
    Email author
  • Giulio Angiani
    • 1
  • Alberto Ferrari
    • 1
  • Monica Mordonini
    • 1
  • Agostino Poggi
    • 1
  1. 1.Department of Engineering and ArchitectureUniversity of ParmaParmaItaly

Personalised recommendations