SimProgramming : the development of an integrated teaching approach for computer programming in higher education

Computer programming courses in higher education tend to have high rates of academic failure and students struggle, particularly so in the transition from entry-level programming to advanced programming. Some of the reasons given in the literature relate to the type of teaching approach and the strategies used by students and their attitudes towards computer programming. The literature also mentions that educational approaches are not always appropriate to the needs of students and to the development of skills required in the job market. We developed a teaching approach to try to address some of these issues and support students learning computer programming in the transition from entry-level to advanced computer programming: the SimProgramming approach. This approach was introduced at the University of Tras-os-Montes e Alto Douro (Portugal), within the scope of the course “Programming Methodologies III”, part of the second curricular year of the programmes of studies in Informatics Engineering and in Information & Communication Technologies. We present in detail the origins of the SimProgramming approach, starting from the first trials that introduced, in two iterations, learning activities based on problem-based learning, and up to the third iteration where the current SimProgramming approach was implemented. We describe the reasoning, design and implementation of these three iterations, to show how the approach evolved. The SimProgramming approach is based in four conceptual foundations: business-like learning environment, self-regulated learning, co-regulated learning and formative assessment. For each of these conceptual foundations, we explain the teaching strategies adopted. In SimProgramming, the learning activity process develops in four phases, and students have specific tasks in each phase. We analyse interview data regarding student perceptions about the SimProgramming approach, and registration grids data on team work dynamics and final assessment of the assignment, noting the impact of SimProgramming in student grades. The application of SimProgramming revealed promising evidences in the overall results of student learning in the activities proposed in this approach. The average grades improved, and did the number of students regularly submitting their tasks on schedule. The perceptions of students regarding the SimProgramming approach are very positive: they recommend using it in the following years, and provided some suggestions to improve the approach. We conclude with reflections and recommendations for subsequent development of the SimProgramming approach in its application to the teaching of computer programming and potential for using it in other educational contexts.

[1]  Edward Curry,et al.  Flexible Self-Management Using the Model-View-Controller Pattern , 2008, IEEE Software.

[2]  Rebecca P. Ang,et al.  Correlates of Academic Procrastination and Students’ Grade Goals , 2008 .

[3]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[4]  Paul Krause,et al.  Evaluating the Effectiveness of a 3D Visualization Environment While Learning Object Oriented Programming , 2014 .

[5]  J. Ferrari,et al.  Prevalence of Procrastination in the United States, United Kingdom, and Australia: Arousal and Avoidance Delays among Adults. , 2005 .

[6]  I. Clark Formative Assessment: Assessment Is for Self-regulated Learning , 2012, Educational Psychology Review.

[7]  S. Chatterjee,et al.  Design Science Research in Information Systems , 2010 .

[8]  Jorge L. Díaz-Herrera,et al.  Improving software practice through education: Challenges and future trends , 2007, Future of Software Engineering (FOSE '07).

[9]  Lawrence Manion,et al.  Research Methods in Education, 7th Edition , 2011 .

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

[11]  David J. Paul,et al.  An Investigation into the Learning Styles and Self- Regulated Learning Strategies for Computer Science Students , 2011 .

[12]  Liang-Yi Li,et al.  A Community of Practice Approach to Learning Programming , 2012 .

[13]  S. Järvelä,et al.  Self-Regulated, Co-Regulated, and Socially Shared Regulation of Learning , 2011 .

[14]  H. Andrade Students as the Definitive Source of Formative Assessment: Academic Self-Assessment and the Self-Regulation of Learning , 2010 .

[15]  S. Järvelä,et al.  Socially Shared Regulation of Learning: A Review , 2015 .

[16]  Balraj Kumar,et al.  GAMIFICATION IN EDUCATION - LEARN COMPUTER PROGRAMMING WITH FUN , 2017 .

[17]  R. Azevedo,et al.  A Theoretical Review of Winne and Hadwin’s Model of Self-Regulated Learning: New Perspectives and Directions , 2007 .

[18]  John R. Savery,et al.  Overview of Problem-Based Learning: Definitions and Distinctions. , 2006 .

[19]  Hugo Paredes,et al.  Social networks, microblogging, virtual worlds, and Web 2.0 in the teaching of programming techniques for software engineering: A trial combining collaboration and social interaction beyond college , 2012, Proceedings of the 2012 IEEE Global Engineering Education Conference (EDUCON).

[20]  Baltasar Fernández-Manjón,et al.  Adaptive Role Playing Games: An Immersive Approach for Problem Based Learning , 2009, J. Educ. Technol. Soc..

[21]  Howard J. Sullivan,et al.  Student performance and attitudes under formative evaluation by teacher, self and peer evaluators , 2009 .

[22]  Sheri Sheppard,et al.  Educating Engineers: Designing for the Future of the Field. Book Highlights. , 2008 .

[23]  Aditya Johri,et al.  Situated Engineering Learning: Bridging Engineering Education Research and the Learning Sciences , 2011 .

[24]  D. Nicol,et al.  Formative assessment and self‐regulated learning: a model and seven principles of good feedback practice , 2006 .

[25]  Andrew Walker,et al.  Essential readings in problem-based learning , 2015 .

[26]  L. Cohen,et al.  Research Methods in Education , 1980 .

[27]  Hugo Paredes,et al.  Enhancing Students' Motivation to Learn Software Engineering Programming Techniques: A Collaborative and Social Interaction Approach , 2015, HCI.

[28]  A. Howell,et al.  Procrastination: Associations with achievement goal orientation and learning strategies , 2007 .

[29]  Anabela Gomes,et al.  Learning to program - difficulties and solutions , 2007 .

[30]  Olivier Le Bohec,et al.  Procrastination, participation, and performance in online learning environments , 2011, Comput. Educ..

[31]  Alan R. Hevner,et al.  Design Science Research in Design Science Research in Information Systems , 2011 .

[32]  V. Braun,et al.  Using thematic analysis in psychology , 2006 .

[33]  E. Wenger Communities of Practice and Social Learning Systems , 2000 .

[34]  Ken Schwaber,et al.  Agile Project Management with Scrum , 1980 .

[35]  Robert M. Klassen,et al.  Academic procrastination of undergraduates: Low self-efficacy to self-regulate predicts higher levels of procrastination , 2008 .

[36]  B. Zimmerman Investigating Self-Regulation and Motivation: Historical Background, Methodological Developments, and Future Prospects , 2008, American Educational Research Journal.