Keywords

1 Introduction

Teaching introductory programming courses has received much attention the last years. This is mainly due to the ubiquitous use of computers, the proliferation of the so called cultures of participation [1], end-user programming [2] and end-user software engineering [3]. These trends are addressing software tools that provide powerful scripting languages to enable flexible customization and rich interactive content development by end-users. In this respect, knowledge of computer programming concepts is nowadays necessary for most knowledge workers including scientists and engineers. Consequently, many higher education departments have included introductory programming courses in their curricula [4]. Furthermore, many countries extend their curricula in secondary or even primary education to address the development of basic programming skills [5]. The importance of computer programming has received even more attention through computer coding campaigns such as The Hour of Code and Europe Code Week. Informal learning opportunities are also offered in many countries following the organizational approach of coding clubs [6].

Following the above trends, Python has been introduced in vocational training curricula (professional lyceums) as well as in upper secondary education in Greece. However, many Computer Science teachers are not familiar with Python and all available professional development opportunities (mostly short webinars) are in high demand and overbooked. To address the need of enabling secondary Computer Science teachers in Greece to get familiar with the Python programming language and adopt effective learner-centred pedagogies, a 7-month teacher training programme was designed and implemented with partial funding from the Google CS4HS initiative. This programme is described here along with its evaluation. It was offered in a blended-learning fashion starting with a 3-month distant learning phase to study the Python language through self-contained programming projects and a subsequent 3-month phase with face-to-face collaboration focusing on the establishment of local code clubs. The programme finished with an evaluation phase of one month duration.

2 Previous Steps on Promoting Coding in Schools Within a Creative Learning Context

An initial exploration on the potential of programming in education from the perspective of providing opportunities for students in primary and secondary education develop their own coding projects for learning was undertaken during the pSkills project [7]. The target was to build a community of primary and secondary teachers, mainly computer science teachers, to exploit modern educational programming languages in their courses. The pSkills teacher training activities were structured as a three-step process: (a) initial training and community building workshops with over 400 participants in total; (b) pilot workshops, one in each one of the four participating countries with over 40 participants in Greece, Austria, Italy and Estonia; and (c) the pSkills Summer School, a one-week intensive training event with 10 participants. pSkills offered materials to enable teachers guide their students through an engaging learning process during which they develop their own coding projects. The focus was on developing digital games using an appropriate educational programming language [8]. Game development was based on Scratch [9] and game distribution on the Scratch community site. Towards the end of the implementation period of the project, an explosion of interest of computer science teachers on its themes was observed. Over 250 teachers participated in the local workshops held in Crete, Greece. Most of them started to apply the ideas into the classrooms and, within the context of creative projects with their students.

Following the successful impact of the pSkills project, our focus expanded beyond computer science education to include other domains including non-formal and informal education. The opportunity for this was given within the context of the ALICE project [10] and its decision to include games as a creative language to be adopted by adult trainers along with Music, Digital Storytelling, and Children Narratives. ALICE targeted adult trainers with the aim to enable them design and implement intergenerational creative learning environments. The project designed and piloted a graduate programme for educators in Greece, Italy, Switzerland, UK and Romania. The programme was offered through a learning portal and included face-to-face sessions as well in each one of the five participating countries, thus adopting a blended-learning approach. The training consisted of six learning units and a final project. One of these learning units targeted digital games and a number of participants adopted games as a creative language to work on their individual projects during which they designed and implemented learning activities where adults and children they were invited to learn together in creative ways. The term gaming-literacy was adopted to signify a step towards the accommodation of a new way of thinking, working, collaborating, teaching and learning, as initially introduced by Zimmerman [11].

The work reported in this paper is a third step towards supporting educators on the integration of new technological tools in their teaching practices emphasizing on digital skills and creative learning. This time, the focus is on general purpose programming language, not an educational or creative language as it was the case in the pSkills and the ALICE projects respectively. In particular, the programming language adopted in this case is Python and its use as a first programming language for novices taking into account the parallel developments in the school curricula in Greece and the need to support Greek computer science teachers on their use of the Python language within a pedagogical framework that promotes active learning within engaging learning scenarios in coding clubs. Selecting coding clubs as the pedagogical framework of our approach incorporates the positive prior experience on promoting coding in formal, informal and non-formal learning settings in pSkills and ALICE projects.

3 Teachers’ Training

The design of the training programme was based on the principles of social constructivism: Initially, participants explored the course material and develop Python skills, as they delved into the programming projects and tackled the assignments. The assignments, meant to induce structure on the learning process, were implemented in groups exploiting the special features of the underlying learning platform. There were no lectures on Python programming. The course facilitators served as peer advisors, guides and coordinators. Following this initial phase of getting familiar with the Python language and the proposed pedagogical methodology, participants were asked to apply the knowledge and skills they have acquired, in workshops or coding clubs for their students, exploiting scenario-based pedagogical approaches. In this context, they eventually composed their own training material and developed strategies for cooperating with other participants from their regional group, learn from and support each other. There was also a strong element of reflection, self- and peer-evaluation at the final phase of the project. As already stated, an important aspect of the training programme was its blended-learning approach to promote collaboration among computer science teachers in many locations parts of Greece including several remote areas.

The program consisted of three phases. In the first phase (3 months) participants studied, explored and evaluated the course material, familiarizing themselves with Python and the programming projects approach. In the second phase (3 months) participants implemented the course material in coding clubs. The final phase (1 month) involved extensive reflection and evaluation of the course.

The kick off was done via a teleconference that presented the overall structure and objectives of the training programme. Every month there was a live online session with the course facilitators, where participant groups had the opportunity to make presentations or engage in structured discussions. During the course, participants also communicated via discussion forums, online chat rooms and videoconferencing facilities offered by the Coursevo platform [12]. Participants worked together in regional groups and posted their assignments online, each group creating a portfolio that was reviewed by their peers. All results were documented and shared in the form of adaptable learning scenarios (i.e. project-based scenarios and/or lesson plans) that referenced teaching objectives of the Greek CS curricula and were organized in a digital repository that is available to all CS teachers through a Creative Common license for further reuse after the end of the project.

The training portal used for setting up the blended learning framework of the training programme is the evolution of MOLE, a multimedia online learning environment [13] that was initially developed to support educational activities in university departments. MOLE integrated tools and services for educational material reuse in an interoperable manner [14]. After its successful adoption in the academic environment, it has been adapted and enhanced under the name Coursevo to support professional development and training within a context that enables the establishment and sustainable operation of Communities of Practice (CoP) [12].

Coursevo enables communication between tutors/trainers and trainees, cooperation among trainees and access to coursework information and learning resources. It can combine traditional classroom-based lessons and practical sessions, with self-study and eLearning. Coursevo platform hides the complexity and frees the trainers from tedious system maintenance tasks, since a course or even a full functional learning site can be created in a few steps following the SaaS (Software as a Service) paradigm.

Coursevo integrates BigBlueButton (http://bigbluebutton.org/) to enable video teleconferencing. This proved very important for the implementation of the programme: One synchronous teleconference was organized each month to give guidance to participants, present best practices and examples, answer to questions and solve practical problems, especially for the organization of local code clubs. Furthermore, the workgroup support offered by Coursevo was used and appropriately adapted to enable the coordination of work in each group (code club organizers) and facilitate the development and submission of assignments.

4 Establishment of Code Clubs and Evaluation

Following the initial teachers’ training phase, the groups that have been already formed were guided to establish local code clubs, recruit students, design a number of sessions and implement them. In each session the organizers were asked to prepare appropriate worksheets possibly reusing the ones used during the initial training or creating new ones. 28 code clubs were established all over Greece with a total number of participants exceeding 500 students ranging from K7 to K12 (12 to 18 years old) including students from vocational education schools. The evaluation of the code clubs was done an initial and a final questionnaire.

Table 1 summarizes the socio-demographic profile of the participants, their participation in the code club and their expectations and previous experience in coding. 69.9% of the participants were boys and 30.1% girls. Grades K-9 and K-10 represented around 70% of the participants. Participants were mainly informed from their computer science teacher at school. The main motivation for participation was their interest in coding. A high percentage expected to learn to code without help and learn something different than in school courses. Most of the participants could not see any obstacle in their participation in the code club and were determined to participate in all sessions of the code club. Finally most of them had a first coding experience at school.

Table 1. Socio-demographic profile and code club participation (Npre = 465)

Table 2 presents the programming environments used in the participants’ previous coding experience, mainly Scratch (https://scratch.mit.edu/), Microworlds (http://www.microworlds.com/) and Python.

Table 2. Previous coding experience (Npre = 465). Percentages are shown for Likert scale values.

Table 3 presents the self-evaluation of the students regarding their existing coding skills before their participation in the code club. Most of them believe that their coding skills are rather low. The opinion of the majority about coding is that it is a useful skill, challenging, helps in analytical thinking and is fun. Students would like to create mainly action games, mobile apps, robotics apps and games of logic and secondarily programs to solve mathematical problems and educational apps.

Table 3. Coding skills and opinions (Npre = 465). Percentages are shown for Likert scale values.
Table 4. Coding skills and opinions (Npost = 358). Percentages are shown for Likert scale values.
Table 5. Evaluation of the code club and the teachers, self-evaluation and evaluation of the Python Language (Npost = 358). Percentages are shown for Likert scale values.
Table 6. Attitudes of students towards programming before and after their participation in the local code clubs (Npre = 465, Npost = 358). Percentages are shown for Likert scale values.

Table 4 presents the findings after finishing the code club. The positive impact on all variables is evident. The participants report that they now better what coding is and they have a better understanding of what kind of programs they would like to create.

Table 5 presents how the participants evaluate the code club and the teachers. All variables are given in 5-value Liker scale and it is evident the positive evaluation in all of them. The table also shows the self-evaluation of certain parameters regarding the participation. Again all evaluations are positive or very positive. Finally the table presents how the participants evaluated the Python language and its learning potential, with positive results as well.

The code clubs had a very positive impact on students in terms of developing programming skills and positive change in their attitude towards programming which is seen as an important professional pathway. Table 6 demonstrates these findings presenting the change in students’ attitudes on the questions of pre- and post-questionnaires.

5 Conclusions and Future Plans

The paper describes a teacher training scheme based on meaningful self-contained programming projects that are undertaken by students in coding clubs. A transfer was observed between knowledge acquired by the teachers and use of this knowledge with their own students. Evaluation was based on questionnaires and self-assessment for teachers and a pre-, post-questionnaire evaluation of the students that participated in the coding clubs established. Focusing on engaging programming projects rather than relying on artificial exercises addressing the syntax and the structure of Python (as it is the case in traditional classroom teaching) highlights a wide range of higher-level concepts ranging from functional abstraction and problem-solving strategies.

Participating teachers were supported through distant-learning facilities to study special material on the Python programming language and thus gain confidence in using an alternative, engaging methodology which can serve as a springboard for exposing their students to Computer Science practices and concepts.

Future work will address the transfer of the material and the methodologies reported in other domains (e.g. mathematics [15]) that could use coding to make learning playful and more engaging. Furthermore, we plan to explore the integration of visual interfaces to Python capitalizing promising results with respect to the performance gain that those interfaces can offer to novices [16].