Keywords

1 Introduction

In higher education, high rates of academic failure and students’ difficulty in learning to program are common in computer programming courses [1], particularly in the transition from entry-level programming to advanced programming. Reasons include the teaching approach and the attitudes/strategies used by students in computer programming [2], and lack of motivation and involvement in study [3, 4]. After graduation, most students come to the job market lacking necessary skills to meet the expectations of employers [5], such as: teamwork and cooperation skills [6].

In advanced programming courses the level of complexity is much greater than entry-level programming courses. For instance, students have difficulties learning in situations involving large code sizes, where the team dimension hinders communication or regular changes to existing code become necessary. When applying architectural styles such as Model–View–Controller (MVC) [7], students have difficulties grasping the rationale of architectural styles and other software engineering concepts [8]. Further, students need to develop complex programming skills [9] and social skills [6].

In higher education, one key element is self-regulated learning (SRL), which allows students to be proactive and manage their learning and development of life skills [10]. The application of SRL strategies typically predicts high academic achievement [11]. SRL processes can be improved with appropriate interventions [12], and it is typically recommended that teachers contribute and promote students’ development of metacognitive knowledge about academic work and task-specific strategies [13].

In computer science, students that apply SRL and metacognitive strategies exhibit good performance [14]. Often students are not aware of SRL and metacognitive strategies that can be used, so instilling them is important [15].

We developed the SimProgramming approach [16], and applied it in the academic year 2012/2013 to the Programming Methods 3 (PM3) course, part of the second year of the bachelor programmes in Informatics Engineering (IE) and Information & Communication Technologies (ICT) at the University of Trás-os-Montes e Alto Douro (UTAD), Portugal. In the SimProgramming approach, students develop a problem-based learning (PBL) activity within the syllabus of the course, with a specific set of tasks based on the conceptual foundations of SimProgramming. One of these tasks is the filling of weekly forms, which are handed in by each student with a self-reflection on performance of the weekly development of the course assignment. We conducted thematic analysis of the 401 weekly forms to identify the SRL strategies mentioned by students during the development of the assignment.

2 Background

SRL is seen as the students’ proactive and intentional monitoring of their actions, adapting and regulating cognition, behavior, emotions, and motivation using personal strategies to enhance learning processes and achieve personal goals [1720].

Zimmerman proposes a cyclical model of SRL based on social cognitive theory. This model has three phases for self-regulation: (1) forethought, which is the goal setting and planning before the assignment/study; (2) performance, which is when the students use various strategies, monitoring and controlling their learning; and (3) self-reflection, reflecting about the learning process after assignment/study [20, 21, 17].

Self-regulated learners are active participants in their learning and develop academic skills [22], adopting various learning strategies [21] during an academic assignment. SRL allows students to get acquainted with effective practices/strategies for their study, such as: time management; resource management; environmental management; incorporating feedback; and management of learning objectives and results [22, 23]. Students construct their own meanings, goals, and strategies from the information available in the external environment and in their own minds [19].

SRL strategies (SRLS) are specific skills that are part of the SRL process, and can be taught for students to apply in real contexts [20, 21], such as: strategies for goal setting and planning, organizing and transforming, seeking information, rehearsing and memorizing, environmental strategies/structuring, seeking social assistance, self-consequences, records and monitoring, reviewing records, and self-evaluation [21].

The adoption of SRLs helps students obtain and retain knowledge about the adoption of a methodological approach and structured their learning, affecting the results of student learning [11]. According to [24], the application of SRLS are usually predictors of a good academic performance.

When students make effective self-reflection, they analyze how they learned, understood the objectives of the learning process and what is necessary to create conditions for success [18]. Also, they manage their learning and their commitment to meet challenges [18]. The interaction between the compromise, self-control, autonomy and students’ self-discipline allows regulating their actions to achieve their learning goals [25].

The pedagogical context contributed for the learners engagement and resolve to achieve learning outcomes [26]. According to Wang et al. [17], in higher education it is important prepare students for the challenges of real work, and also to provide students with opportunities to develop their self-regulation and co-regulation skills, through activities that improve collaborative and active learning.

In engineering education, learning approaches are typically not aligned with the requirements of the labor market [27, 28], not giving priority to skills aligned with professional realities, such as active learning or integrating knowledge [29].

Students are immersed in business-like tasks mediated by structured and semi structured social interactions. Pedagogical techniques such as role playing stimulate students to learn about similar real-world situations, with problem-solving, active learning, providing opportunities to learn by doing and feedback for building new knowledge [30]. They also help develop professional identities [31].

3 The SimProgramming Approach: Immersive Features that Stimulate Self-regulated Learning

Pedrosa et al., including the authors of this paper, developed a teaching approach to help students learn computer programming in the transition from entry-level to advanced computer programming: the SimProgramming approach [16]. This approach is based on four conceptual foundations (ibid.): (1) business-like learning environment, (2) SRL; (3) co-regulation learning, and (4) formative assessment. Through these conceptual foundations, teaching strategies are adopted to stimulate SRLS by students with specific environment, roles, tasks, and deadlines during a course-long assignment.

The first conceptual foundation, Business-like learning environment, stipulates the simulation of a business-like environment, in order for students to have contact with aspects of their professional reality and teamwork expectations. Each participant plays a role and becomes immersed in the skills they have to develop during the assignment. Problem-Based Learning (PBL) is used to promote collaborative discovery for the resolution of the problem [32].

The course lecturer plays the role of general manager, taking responsibility for the course content and monitoring. Course tutors or teaching assistants play the role of project managers, doing close monitoring, mentoring, and providing feedback, based on the Scrum method for project management and agile software development [33]. Students play different roles as members of development teams.

Each team of students divides the work according to the role played by each member. For example: one student acts as team leader and the remaining students handle subsets of work (work packages). The team leader facilitates the integration of information and guides the group [6], making sure that team members keep a global view of the project context and status, integrating knowledge. Others students have each a specific role in the team, having to master their individual packages and cooperate with the team leader.

In the conceptual foundation 2: SRL, also detailed in [16], the goal is to promote students’ SRLS through active participation and engagement in meaningful activities before, during, and after completion of academic work [25].

In SimProgramming, students are expected to be immersed: team members should focus the development of their role-specific skills, on research and exploration tasks for development of assigned problem/packages, throughout promoting active learning and helping students improve their self-regulation skills.

Each student has to solve their individual packages and contribute to the overall perspective of the team problem. The team leader integrates research and exploration output of all members, reporting weekly at project management meetings. He/she also ensures the information flow within the team. Weekly, each student makes a self-reflection about their work, ponders on what to do the following week, and reflects upon the factors that prevented him/her from achieving the team and the individual objectives.

Other aspects of immersion are time management and procrastination. It is common, in real work environments, that programming teams have to adapt their plans and overcome difficulties to meet deadlines for tasks. So, in SimProgramming we encourage students to develop the concept of having to do their work regularly and adopt study routines, by creating a context where tasks are performed continuously, with feedback and monitoring support for self-reflection and self-regulation.

SimProgramming also encourages co-regulated learning (conceptual foundation 3). Assignments include team tasks, namely: reports and presentations about the work.

The search for help among professional communities is also a common practice in real-world labour, so we encourage students to be involved in pre-existing online communities of professionals (outside academia) not just to seek help, but to help others, contributing to problem-solving and discussing the technologies under study or used in their future profession [3]. On this regard, during contact with tutors (in meetings, classes, and on-line), the goal is to stimulate students’ initiative to search for social help (peers, teachers, tutors, etc.), not only clarify their doubts and difficulties. The tutors/assistants and the professor provide this support by advising on methods of gradual participation and involvement in communities, including suggestion of specific tasks for clarification, and development the homogenous peer-based contributions and discussion, supporting community development, informal interactions and debate, which all were promoted and monitored via a Facebook group for the course.

Finally, is it well-known that companies conduct assessments of team performance. Conceptual foundation 4: Formative Assessment, aims to improve formative assessment throughout management feedback (tutors/assistants and professor).

The Professor and assistants/tutors employ face-to-face and online contact to provide monitoring, meetings, and social media interactions, including motivational mentoring and feedback on individual package status. SimProgramming stipulates self-assessment of individual students and hetero-assessment by team members at the end.

3.1 SimProgramming Phases: Learning Assignment Process

In the SimProgramming approach [16], the learning assignment is developed along four phases and students have specific tasks in each phase (Fig. 1), based on the SimProgramming conceptual foundations presented above. During all phases, weekly meetings take place between tutors and team leaders, providing feedback for motivation, self-regulation, possible support for technical doubts, and internal team issues.

Fig. 1.
figure 1

SimProgramming phases: goals, specifics tasks and duration.

What are the individual weekly forms?

The individual weekly forms is where each student self-reflects upon his/her work, ponder on what to do the following week, and reflect upon the factors that prevented him/her or the team from achieving objectives [16]. Students need to answer 3 questions: (1) “What have you made this week for the assignment?”; (2) “What will you do next week for the assignment?”; and (3) “Any reason(s) for not completing tasks?”.

4 Teaching Context and Learning Assignment

4.1 Teaching Context

Before reaching the Programming Methods 3 course (PM3, 2nd curricular year), students learned introductory programming in two previous courses, plus extra concepts in a Computational Logic course. PM3 is provided in parallel (joint lectures, but separate hands-on lessons) for students of two programmes of studies IE and ICT.

The goal in PM3 is to introduce the students to large-scale programming concepts, one of the learning objectives of the ACM/IEEE Computer Science Curricula (CSC). Specifically, students are introduced to the MVC architectural style, which divides programs among three blocks: the model (e.g., program state), the view (e.g., output), and the controller (e.g., program flow). The original MVC style proposal of Krasner and Pope [34], which handles input in the controller, is contrasted [4] with a more recent flavour proposed by Curry and Grace [7], which handles input in the view.

4.2 Learning Assignment in PM3

We combined face to face teaching techniques and technology-enhanced learning (TEL) [35] for support during the assignment. The tutors scheduled face-to-face meetings with team leaders, either individually or as a team, when they identified problems or difficulty fulfilling the tasks.

We used the Moodle LMS as the on-line environment for the professor and the tutors to track the development of the assignment, and organized the tasks into modules over several weeks. In the LMS, we provided supporting materials for development of tasks, scheduling, overall objectives of the assignment and individual objectives of each task, a forum for doubts and for contacting tutors, and other course materials (e.g. slideshows used in lectures). Also, we employed other on-line tools to support students: e-mail, instant messaging (GTalk), Facebook, and a locally-developed course management system, SIDE [36] for students to submit their completed tasks.

The learning assignment is based on PBL [32]. We assigned to each team a specific problem involving a MVC-related software architecture in order to stimulate and foster advanced programming skills in students. Students must develop a written document with a detailed explanation of the coding approaches they used to apply an MVC related architectural style to specific frameworks, libraries, and/or APIs [3, 4, 16, 37].

The SimProgramming approach was used throughout, along all the 4 phases, during 10 weeks of the academic semester, described ahead. In the 2012/2013 academic year, students formed 15 teams (Table 1). 11 teams successfully achieved the learning goals, two teams completed the requested tasks albeit falling short of achieving the goals, and two teams never actually started. Of the 97 students, 66 attained a final grade [16].

Table 1. Nr. of the students in assignment

5 Methodology and Data Collection

During the 10 weeks of the assignment, each student had to submit their individual weekly form, with the exception of week 2, and week 10 (the final week). The delivery of the weekly forms changed along the SimProgramming phases (Table 2).

Table 2. Distribution of the weekly forms delivered in the SimProgramming phases

As mentioned above, of the 97 students initially registering for the assignment, 66 completed phase 1, performing the tasks, and 31 others quit. In first week, 81 students delivered the weekly forms, but by week 3 this had decreased, and only 69 weekly forms were delivered. In Phase 2 and Phase 3 occasionally some students would miss a weekly delivery of forms. Finally, in phase 4, 7 students delivered their weekly forms on week 9, and 6 of the 15 teams delivered the team form.

As Table 2 shows, we observed stability during the initial weeks. However, on the week 7 there was a sharp decline. This was the week after Easter break, and students reported being a time when they had many mid-terms and assignment deadlines piling up:

“I had mid-terms and works deadlines for other courses, and I feel really tired, since we are near the end of the middle of the second semester.” (E38, Week 7, 22/03/2013)

“Although there are no classes during the Easter break, the work remained the same. Now, what’s starting to worry me are the final assignments, mainly from courses on [Another course] and [Yet another course].” (E13, Week 7, 29/03/2013)

Lack of time was the main cause of the failures that occurred in the presentation. It is not easy to manage and bring together a group of six elements: we all have different courses and assignments, and this is sometimes also an impediment to reaching the goal of the group (…)” (E5, Week 8, 12/04/2013)

In this paper, we analyse the 401 weekly forms using thematic analysis [38] with the goal of identifying the self-regulated learning strategies mentioned by students during the assignment. We constructed content analysis matrices based on background about the types of self-regulated learning strategies, identifying difficulties and factors that they believed influenced their motivation.

We organized content into categories, subcategories, indicators, and recording units (snippet sentences), which were restated during the process of content analysis. Then, we conducted a cyclical process of improvement, synthesis, and reflection. The steps adopted for the data analyses were as follows:

  1. 1.

    Construction of content analysis matrices for each team, with the SRLS reported by students (phrases/snippet sentences that students reported on the weekly forms, explaining what they did). The content analysis matrices are composed of grid lines (each line for a strategy –the “indicators”); and columns to record in which week it was reported by students. In the cells we entered codes identifying the student reporting that strategy that week (e.g. E.3).

  2. 2.

    Afterwards, we developed general syntheses of each team references (students) for each of the indicators.

  3. 3.

    For each subcategory of the strategies (e.g. Organizing and planning strategies) we counted the number of students who reported each indicator (e.g. 1.1 = 113).

  4. 4.

    Finally, we did a general syntheses of the indicators in each of the phases.

6 Results and Discussion

6.1 Self-regulated Learning Strategies – Results of Analysis of the Weekly Forms

Regarding organizing and planning strategies for the assignment, detailed in Table 3, during the early stages (Phase 1 and Phase 2) the strategies most commonly adopted by students were information search, checking the material provided by the tutors/professor or other courses, recording of practices in online communities and team meeting to define tasks.

Table 3. Organizing and planning strategies

Afterwards, still in phase 2, students initiate the application of existing knowledge about the practice, understanding (learning) through the collected information search, and defining specific tasks for the following week. In phase 3, the strategies remained the same as those applied in the preceding phase.

In the end (phase 4), students deepen their practical skills in teamwork (indicators 1.7 and 1.12). During assignment execution, other strategies were mentioned less often.

As shown on Table 4, the lack of time and difficulties in time management were frequently mentioned by students, due to a diversity of responsibilities but mainly because many tasks and tests that had to be performed in different courses. The most critical phases were phase 2 and phase 3.

Table 4. Identifying of the difficulties in time management

As shown in Table 5, the difficulties students encountered while performing the assignment were at the level of theoretical content and practical implementation of the assignment. Difficulties in team work and scarce feedback obtained from on-line communities were also mentioned, mainly in phase 2. In phase 3 the most mentioned difficulties were about the implementation of the practical component.

Table 5. Identifying difficulties in the assignment

Strategies mentioned by students to resolve their difficulties, as shown in Table 6, were varied, with a prevalence of SOA (teachers, peers, others). Only in the early phases (phase 1 and phase 2) did the students mention interaction with online communities.

Table 6. Strategies for resolution of difficulties

Also, some students expressed factors that affected their motivation during the assignment, as shown on Table 7. Most are of personal nature, for example, the need to achieve success in PM3 in order to attain completion of the programme of studies; the will to learn; interest in programming; the grade impact of the assignment. But some factors are linked to interpersonal and social dimensions, namely teamwork, being the leader with the associated responsibility, and the feedback obtained.

Table 7. Factors influencing motivation

Regarding self-reflection by students about their completed tasks, detailed in Table 8, few students made a thorough self-reflection with details about their performance in the required tasks and self-learning. They generically referred only on having achieved or not their goals. Only in the end phase did the students become more reflective.

Table 8. Self-reflection

7 Conclusions

Along the phases of the SimProgramming approach, the students have shown in their weekly forms that they were adopting many different strategies in each phase. In the early phases (phase 1 and phase 2), strategies were mostly about organization and planning. In the following stages (part of phase 2, but mostly phases 3 and 4) this shifted towards the application and transformation of information: application of theoretical knowledge and implementation of the hands-on component (programming). These strategies are skills necessary for the development of project teamwork in real-world labour. Students improved their competence in such skills during the SimProgramming phases and are expectably better prepared for the transition to the real-world labour.

In the weekly forms, students mentioned SRLS, especially on organizing and planning. They also mentioned strategies for resolution of difficulties, identifying difficulties in time management and difficulties in assignment, and factors influencing their motivation – strategies that had also been identified in our earlier work [37]. This highlights the difficulties students feel managing their time because of tasks and tests they need to account for in the various courses throughout the semester.

Some students mentioned in the weekly forms the adoption of transformation strategies and showed that they were aware of their specific difficulties in the tasks, aspects that were not reported so often in our previous work [37].

The students engaged in self-reflection about their learning, explaining whether or not they had reached their personal goals or the goals of the SimProgramming approach. However, only some students did a more thorough self-reflection about their performance. This confirms the need to help students become aware of the strategies that they can take to improve self-regulated learning [37]. Interestingly, as a team, the students reflected with significant detail about their performance.

We believe that the weekly forms or a similar instrument (for example, weekly meetings with students and tutors) contribute to the improvement of the adoption of self-regulated learning strategies because they raised students’ awareness about important skills/strategies for real-world labour.