Abstract.To motivate students to study advanced programming techniques, including the use of architectural styles such as the model-view-controller pattern, we have conducted action research upon a project based-learning approach. In addition to collaboration, the approach includes students' searching and analysis of scientific documents and their involvement in communities of practice outside academia. In this paper, we report the findings of second action research cycle, which took place throughout the fourth semester of a six-semester program. As with the previous cycle during the previous academic year, students did not satisfactorily achieve expected learning outcomes. More groups completed the assigned activities, but results continue to reflect poor engagement in the communities of practice and very low performance in other learning tasks. From the collected data we have identified new approaches and recommendations for subsequent research.Keywords: motivation; learning programming; collaboration; social interaction; communities of practice; project-based learning; problem-based learning.
IntroductionFor students following a software engineering study program, learning object-oriented programming approaches for system development with well-structured coding is a complex challenge [1,2]. During introductory programming courses, typically students become able to develop small programs, as well as adapt and combine pieces of existing code, but they do not clearly understand the importance of writing well-structured code from pre-existing structures such as frameworks, libraries, and application programming interfaces (API) [3]. In more advanced programming situations -for example, involving the use of architectural styles such as model-view-controller (MVC) [4,5] -students need to develop a set of complex skills [3]. Furthermore, besides the programming skills required to apply such best practices during system development, students also need to develop social skills in order to collaborate with other developers as part of the teamwork-based process for developing large, complex software systems. Literature addressing engineering education has reported that current learning approaches do not align with the professional practice required by the labor market [6,7]. These approaches are narrowly focused upon the acquisition of technical knowledge supported by heavy workloads and promote a meritocracy of difficulty-based belief system instead of prioritizing active learning and integrating knowledge, skills more aligned with professional realities [8,9,10,11].The pedagogical context in which students learn influences their engagement and resolve to achieve learning outcomes [12,13], and much research has examined approaches to the above described problem employing project-based learning (PBL) and teamwork environments [14,15,16]. While engineering problems are designed so that multiple solutions of varying mathematical and scientific sophistication are possible, teamwork skills and both oral and written communic...