Programming is one of the most important aspects of a Computing course. Teaching programming is a challenging task due to a number of factors, ranging from lack of student problem solving skills to different teaching methods. This paper focuses on Maltese Computing teachers’ perspectives about the difficulties encountered when teaching programming to secondary school students in order to determine whether introducing programming to secondary school students through creating mobile-based games is an effective method to teach programming constructs. A resource pack consisting of various activities using MIT App Inventor 2 was created which incorporated constructivist approaches to teaching. This resource pack was reviewed by the teachers and their feedback was collected by means of a case study. The teachers agreed that developing mobile-based games would be highly stimulating to their students but there were uncertainties how this would affect students with different learning abilities and due to a general lack of computational thinking and problem-solving skills by most students.
Source code plagiarism is an emerging issue in computer science education. As a result, a number of techniques have been proposed to handle this issue. However, comparing these techniques may be challenging, since they are evaluated with their own private dataset(s). This paper contributes in providing a public dataset for comparing these techniques. Specifically, the dataset is designed for evaluation with an Information Retrieval (IR) perspective. The dataset consists of 467 source code files, covering seven introductory programming assessment tasks. Unique to this dataset, both intention to plagiarise and advanced plagiarism attacks are considered in its construction. The dataset's characteristics were observed by comparing three IR-based detection techniques, and it is clear that most IR-based techniques are less effective than a baseline technique which relies on Running-Karp-Rabin Greedy-String-Tiling, even though some of them are far more time-efficient.
During the last decade, coding has come to the foreground of educational trends as a strong mean for developing students' Computational Thinking (or CT). However, there is still limited research that looks at coding and Computational Thinking activities through the lens of constructionism. In this paper, we discuss how the knowledge we already have from other thinking paradigms and pedagogical theories, such as constructionism and mathematical thinking, can inform new integrated designs for the cultivation of Computational Thinking. In this context, we explore students' engagement with MaLT (Machine Lab Turtle-sphere), an online environment of our design that integrates Logo textual programming with the affordances of dynamic manipulation, 3D graphics and camera navigation. We also present a study on how the integration of the above affordances can promote constructionist learning and lead to the development of CT skills along with the generation of meanings about programming concepts.
Coding and computational thinking have recently become compulsory skills in many school systems globally. Teaching these new skills presents a challenge for many teachers. A notable example of professional development designed using Constructionist principles to address this challenge is ScratchEd. Upon reflecting on her experiences designing and running ScratchEd, Karen Brennan identified five tensions faced by professional development providers, and proposed that these tensions could be used for scrutinising and critiquing professional development. In this paper we analyse, through the lens of Brennan's tensions, the process we have followed to design, evaluate and improve professional development. We argue that while we have experienced the same tensions, the extent to which we assess learning is a new tension that extends those identified by Brennan. There are strong reasons to assess teachers' knowledge, however, quantitative measures of learning could be at odds with Constructionism: as Papert argued in Mindstorms, constructionist educators should study their learning environments as anthropologists. Consequently, we have called this new tension the tension between anthropology and assessment.
The development of computational thinking is a major topic in K-12 education. Many of these experiences focus on teaching programming using block-based languages. As part of these activities, it is important for students to receive feedback on their assignments. Yet, in practice it may be difficult to provide personalized, objective and consistent feedback. In this context, automatic assessment and grading has become important. While there exist diverse graders for text-based languages, support for block-based programming languages is still scarce. This article presents CodeMaster, a free web application that in a problem-based learning context allows to automatically assess and grade projects programmed with App Inventor and Snap!. It uses a rubric measuring computational thinking based on a static code analysis. Students can use the tool to get feedback to encourage them to improve their programming competencies. It can also be used by teachers for assessing whole classes easing their workload.
Despite a growing effort to implement computational thinking (CT) skills in primary schools, little research is reported about what CT skills to teach at what age. Therefore, the research questions that guide this study read: (1) How is age related to students' success in computational thinking tasks? (2) How are computational thinking tasks perceived by students? (3) How do students' experience learning with respect to computational thinking? 200 primary school students between the age of 6 and 12 participated in this study. These students got introduced to two CT subjects: abstraction and decomposition. We found that age seems to be related with these concepts, with an interaction effect for gender in the abstraction task. No differences found between young and older students in the constructs perceived difficulty, cognitive load, and flow indicate that young primary school students can engage in learning these CT skills.
Programming is one of the basic subjects in most informatics, computer science mathematics and technical faculties' curricula. Integrated overview of the models for teaching programming, problems in teaching and suggested solutions were presented in this paper. Research covered current state of 1019 programming subjects in 715 study programmes at total of 218 faculties and 143 universities in 35 European countries that were analyzed. It was concluded that while most of the programmes highly support object-oriented paradigm of programming, introductory programming subjects are mainly based on imperative paradigm.
Research on the effectiveness of introductory programming environments often relies on post-test measures and attitudinal surveys to support its claims; but such instruments lack the ability to identify any explanatory mechanisms that can account for the results. This paper reports on a study designed to address this issue. Using Noss and Hoyles' constructs of webbing and situated abstractions, we analyze programming novices playing a program-to-play constructionist video game to identify how features of introductory programming languages, the environments in which they are situated, and the challenges learners work to accomplish, collectively affect novices' emerging understanding of programming concepts. Our analysis shows that novices develop the ability to use programming concepts by building on the suite of resources provided as they interact with the computational context of the learning environment. In taking this approach, we contribute to computer science education design literature by advancing our understanding of the relationship between rich, complex introductory programming environments and the learning experiences they promote.
Scientific issues like the behavior of wild and domesticated animals can serve as a motivation to learn programming concepts. Instead of following a systematic introduction, the students directly dive into programming and start immediately with their projects. In this constructionist approach the educational challenge for the teacher is to provide suitable scaffolds like step-by-step instructions, architectural spike solutions, discovery questions, puzzles and role plays, which support individual and self-directed learning.
Games for learning are currently used in several disciplines for motivating students and enhancing their learning experience. This new approach of technology-enhanced learning has attracted researchers' and instructors' attention in the area of programming that is one of the most cognitively demanding fields in Computer Science. Several educational, or else serious, games for learning programming have been developed and the first results of their evaluation as a means of learning are quite positive. In this paper, we propose using arcade games as a means for learning programming. Based on this approach students first play a simple game, such as Snake or Tetris, study its code and then extend it. In a pilot study carried out in the context of an undergraduate programming course, students studied the source code of the well-known game Snake and extended it with new functionalities. The analysis of students' replies in a questionnaire showed that using arcade games as a means of learning programming concepts enhances students' motivation for learning programming, supports them in comprehending complex concepts and engages them in carrying out programming activities.