Improving programming skills in engineering education through problem-based game projects with Scratch

Abstract Nowadays, programming skills are receiving widespread attention for different age groups alongside occupational education programs to better prepare individuals for their future careers. However, introducing programming concepts in an appropriate manner is a challenge in higher education. The main assumption of this study is that enhancing the classical introduction to programming courses through real-life problem-based game development with Scratch programming environment potentially improves the learners' programming skills and motivation. Accordingly, in this study, during one academic semester period, the Introduction to Programming course for engineering students is enriched up to a certain level through real-life game development projects with Scratch. The students are followed within a four-year period starting from freshman until their graduation. The progress of the students who have taken the Introduction to Programming course in enriched or classical form in the fourth year Senior-project course are evaluated. The results show that by slightly improving the course curriculum through real-life game development projects in the Scratch environment, students’ performance on the graduation projects improved significantly. As a conclusion, game-based learning, problem-based learning, visual programming and projects are technologies that can potentially help learners to perform better in the introduction to programming course, in turn affecting their performances in projects.

[1]  John Maloney,et al.  Alice, Greenfoot, and Scratch -- A Discussion , 2010, TOCE.

[2]  Randy F. Pausch,et al.  Teaching objects-first in introductory computer science , 2003, SIGCSE.

[3]  Yuan-Bang Cheng,et al.  The effect of simulation games on the learning of computational problem solving , 2011, Comput. Educ..

[4]  Brian Harvey,et al.  Bringing "No Ceiling" to Scratch: Can One Language Serve Kids and Computer Scientists? , 2010 .

[5]  Martin Ebner,et al.  Successful implementation of user-centered game based learning in higher education: An example from civil engineering , 2007, Comput. Educ..

[6]  Nergiz Ercil Cagiltay Teaching software engineering by means of computer-game development: Challenges and opportunities , 2007, Br. J. Educ. Technol..

[7]  Marc Roper,et al.  Investigating and improving the models of programming concepts held by novice programmers , 2011, Comput. Sci. Educ..

[8]  V. H. Allan,et al.  Teaching computer science: a problem solving approach that works , 1997, SCOU.

[9]  Eleonora Bilotta,et al.  Coding with Scratch: The design of an educational setting for Elementary pre-service teachers , 2015, 2015 International Conference on Interactive Collaborative Learning (ICL).

[10]  Jill Denner,et al.  Computer games created by middle school girls: Can they be used to measure understanding of computer science concepts? , 2012, Comput. Educ..

[11]  Bryan J. Smith Conceptual graphs as a visual programming language for teaching programming , 2009, 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[12]  Scott Menard,et al.  Handbook of longitudinal research : design, measurement, and analysis , 2008 .

[13]  Stef Joosten,et al.  Teaching functional programming to first-year students , 1993, Journal of Functional Programming.

[14]  Marco Lazzari,et al.  Creative use of podcasting in higher education and its effect on competitive agency , 2009, Comput. Educ..

[15]  John Mason,et al.  Why the high attrition rate for computer science students: some thoughts and observations , 2005, SGCS.

[16]  Michael M. Sokal,et al.  Manufacturing Knowledge: A History of the Hawthorne Experiments , 1991 .

[17]  Thorna O. Humphries,et al.  A CS0 course using Scratch , 2011 .

[18]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[19]  John Maloney,et al.  The Scratch Programming Language and Environment , 2010, TOCE.

[20]  Ioannis Stamelos,et al.  An investigation of effort distribution among development phases: A four‐stage progressive software cost estimation model , 2017, J. Softw. Evol. Process..

[21]  Esteban Vázquez-Cano,et al.  Visual programming languages integrated across the curriculum in elementary school: A two year case study using "Scratch" in five schools , 2016, Comput. Educ..

[22]  Eric Rosenbaum,et al.  Scratch: programming for all , 2009, Commun. ACM.

[23]  Colleen M. Lewis How programming environment shapes perception, learning and goals: logo vs. scratch , 2010, SIGCSE.

[24]  Patricia Haden,et al.  Programming osmosis: Knowledge transfer from imperative to visual programming environments , 2007 .

[25]  Eleonora Bilotta,et al.  DARWIN HAS COME BACK TO THE GALÁPAGOS ISLANDS: AN EDUCATIONAL JOURNEY TO DISCOVER BIOLOGICAL EVOLUTION , 2014 .

[26]  Peter L. Schwartz,et al.  Problem-based Learning , 2001 .

[27]  Thomas Ball,et al.  Teach foundational language principles , 2015, Commun. ACM.

[28]  Michelle K. Smith,et al.  Active learning increases student performance in science, engineering, and mathematics , 2014, Proceedings of the National Academy of Sciences.

[29]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[30]  Joel C. Adams,et al.  What do students learn about programming from game, music video, and storytelling projects? , 2012, SIGCSE '12.

[31]  Steve Cunningham,et al.  Teaching computer science in context , 2010, INROADS.