34 research outputs found

    DBSnap-Eval: Identifying Database Query Construction Patterns

    Get PDF
    Learning to construct database queries can be a challenging task because students need to learn the specific query language syntax as well as properly understand the effect of each query operator and how multiple operators interact in a query. While some previous studies have looked into the types of database query errors students make and how the availability of expected query results can help to increase the success rate, there is very little that is known regarding the patterns that emerge while students are constructing a query. To be able to look into the process of constructing a query, in this paper we introduce DBSnap-Eval, a tool that supports tree-based queries (similar to SQL query plans) and a block-based querying interface to help separate the syntax and semantics of a query. DBSnap-Eval closely monitors the actions students take to construct a query such as adding a dataset or connecting a dataset with an operator. This paper presents an initial set of results about database query construction patterns using DBSnap-Eval. Particularly, it reports identified patterns in the process students follow to answer common database queries

    Managing gamified programming courses with the FGPE platform

    Get PDF
    E-learning tools are gaining increasing relevance as facilitators in the task of learning how to program. This is mainly a result of the pandemic situation and consequent lockdown in several countries, which forced distance learning. Instant and relevant feedback to students, particularly if coupled with gamification, plays a pivotal role in this process and has already been demonstrated as an effective solution in this regard. However, teachers still struggle with the lack of tools that can adequately support the creation and management of online gamified programming courses. Until now, there was no software platform that would be simultaneously open-source and general-purpose (i.e., not integrated with a specific course on a specific programming language) while featuring a meaningful selection of gamification components. Such a solution has been developed as a part of the Framework for Gamified Programming Education (FGPE) project. In this paper, we present its two front-end components: FGPE AuthorKit and FGPE PLE, explain how they can be used by teachers to prepare and manage gamified programming courses, and report the results of the usability evaluation by the teachers using the platform in their classes.info:eu-repo/semantics/publishedVersio

    Supporting CS1 Instructors: Design and Evaluation of a Game Generator

    Get PDF
    Serious games have shown much promise in education, including in the teaching of programming. However, instructors who teach introductory programming often do not have the specialised skills to create serious games. One way to address this problem is to use domain-specific game generators to create customised games as needed. This paper presents the design and empirical evaluation of a prototype game generator tool - the Recursive Game Generator. 30 programming instructors evaluated the tool and found it useful (87%), easy to use and learn (80%); and were satisfied with the tools effectiveness and efficiency. Their positive experiences suggest that such a higher-order tool has the potential to increase the adoption of serious games in programming education, and broadly meet the needs of a diverse audience of instructors

    Supporting CS Trainee Teachers with Game Authoring Tools

    Get PDF
    Despite the current evidence suggesting the potential of game-based learning (GBL) in education, developing serious games remains difficult, time consuming and expensive. This leads to low adoption of GBL in mainstream teaching. In particular, CS trainee teachers are not likely to develop and adopt serious games when they just begin teaching programming. To address this problem, we design and conduct empirical evaluation of a prototype game authoring tool called the Recursive Game Generator (RGG). The tool is aimed at supporting CS educators with little game programming skills. 22 CS trainee teachers evaluated RGG using the standard Attrakdiff questionnaire. A good user experience was indicated through the results of the scale mean scores. Meanwhile, the mean values of word pairs showed that respondents found the prototype: (i) usable for achieving goals; (ii) supportive in terms of novelty, content and stimulation; and (iii) attractive. Additionally, 70% of the participants found the approach of game generation a good idea for aiding CS teachers while another 65% noted that the generated games were interactive, practical, interesting and fun, demonstrating the tool’s potential educational value. Consequently, findings from this study may provide an opportunity for inexperienced computing teachers to embrace the idea of game generation to support the teaching and learning of difficult CS1 concepts

    OPUS: an Alternate Reality Game to learn SQL at university

    Get PDF
    The project aims to test the effectiveness of applying the principles of experiential learning within a university course. In particular, the objective of the paper is to investigate the educational effectiveness of the Alternate Reality Games (ARGs) and of their characterizing elements: the immersive storytelling, which blends reality and fiction, and the collaborative approach, which activates collective intelligence dynamics. The project combines the concepts of a Database course with the transmedial interaction techniques of a Transmedia course. The idea was to stimulate the interest of Databases course’s students in this subject and help them learn and consolidate SQL. The result was the creation of a playful experience that is classified as Alternate Reality Game, a realistic and highly immersive interactive storytelling, set in a likely fictional universe where the basic rule is “This is not a game”. The ARG was designed to complement the laboratory practice in the context of a Databases university course. In this way, students can practice, review and consolidate the skills acquired during the course. Furthermore, the playful component is accompanied by on-demand educational content, which players have the opportunity to request when they experience difficulties in solving puzzles that require querying the database

    Cryptography in Grade 10: Core Ideas with Snap! and Unplugged

    Get PDF
    International audienceWe report our experience of an extracurricular online intervention on cryptography in Grade 10. Our first goal is to describe how we taught some fundamental cryptography ideas by making students encounter a progression of representative cryptosystems, from classical to modern, and discover their characteristics and limitations. We used Snap! (a visual programming language) to realize hands-on activities: block-programming playgrounds (a form of task-specific programming languages) to experiment with cryptosystems, and an interactive app to support an unplugged (albeit remote) Diffie-Hellman key agreement. After experimenting with each system, the students were involved in a Socratic discussion on how to overcome the discovered limitations, motivating the introduction of the following system in our path. Our second goal is to evaluate the students' perceptions and learning of cryptography core ideas. They appreciated the course and felt that, despite being remote, it was fun and engaging. According to the students, the course helped them understand the role of cryptography, CS, and Math in society and sparked their interest in cryptography and CS. The final assessment showed that the students well understood the cryptography ideas addressed. Our third goal is to discuss what worked and areas of improvement. The "remote-unplugged" Diffie-Hellman, where the meeting chat was a metaphor for the public channel, engaged the students in understanding this groundbreaking protocol. Overall, they praised the activities as engaging, even when challenging. However, a strong "instructor blindness" induced by remote teaching often prevented us from giving the students the right amount of guidance during the exploration activities

    What Do We Think We Think We Are Doing?: Metacognition and Self-Regulation in Programming

    Get PDF
    Metacognition and self-regulation are popular areas of interest in programming education, and they have been extensively researched outside of computing. While computing education researchers should draw upon this prior work, programming education is unique enough that we should explore the extent to which prior work applies to our context. The goal of this systematic review is to support research on metacognition and self-regulation in programming education by synthesizing relevant theories, measurements, and prior work on these topics. By reviewing papers that mention metacognition or self-regulation in the context of programming, we aim to provide a benchmark of our current progress towards understanding these topics and recommendations for future research. In our results, we discuss eight common theories that are widely used outside of computing education research, half of which are commonly used in computing education research. We also highlight 11 theories on related constructs (e.g., self-efficacy) that have been used successfully to understand programming education. Towards measuring metacognition and self-regulation in learners, we discuss seven instruments and protocols that have been used and highlight their strengths and weaknesses. To benchmark the current state of research, we examined papers that primarily studied metacognition and self-regulation in programming education and synthesize the reported interventions used and results from that research. While the primary intended contribution of this paper is to support research, readers will also learn about developing and supporting metacognition and self-regulation of students in programming courses

    Teaching how to program using automated assessment and functional glossy games (Experience Report)

    Get PDF
    Our department has long been an advocate of the functional-first school of programming and has been teaching Haskell as a first language in introductory programming course units for 20 years. Although the functional style is largely beneficial, it needs to be taught in an enthusiastic and captivating way to fight the unusually high computer science drop-out rates and appeal to a heterogeneous population of students.This paper reports our experience of restructuring, over the last 5 years, an introductory laboratory course unit that trains hands-on functional programming concepts and good software development practices. We have been using game programming to keep students motivated, and following a methodology that hinges on test-driven development and continuous bidirectional feedback. We summarise successes and missteps, and how we have learned from our experience to arrive at a model for comprehensive and interactive functional game programming assignments and a general functionally-powered automated assessment platform, that together provide a more engaging learning experience for students. In our experience, we have been able to teach increasingly more advanced functional programming concepts while improving student engagement.The authors would like to thank the precursors of the 20-year functional programming culture and FPro unit at our university, and all the instructors and TAs that have been involved in the PLab unit throughout the years. This work is financed by the ERDFs European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 Programme within project POCI-01-0145-FEDER-006961, and by National Funds through the Portuguese funding agency, FCT s Fundacao para a Ciencia e a Tecnologia as part of project UID/EEA/50014/2013

    Improving the effectiveness of SQL learning practice: a data-driven approach

    Get PDF
    Most engineering courses include fundamental practice activities to be performed by students in computer labs. During lab sessions, students work on solving exercises with the help of teaching assistants, who often have a hard time for guaranteeing a timely, optimized, and “democratic” support to everybody. This paper presents a learning environment to improve the experience of the lab sessions participants, both the students and the teaching assistants. In particular, the environment was designed, implemented, and experimented in the context of a database course. The application designed to support the learning environment stores all the events occurring during a SQL practice lab, i.e., task progression, query submissions, error feedback, assistance requests and interventions, and it provides information useful both for use on-the-fly and for later analysis. Thanks to the analysis of these data, the application dynamically provides teaching assistants with a graphical interface highlighting where assistance is most needed, by considering different factors such as the progression rate, the percentage of correct solutions, and the difficulties in solving the current exercise. Furthermore, the stored data allow teachers later on to analyze and to interpret the behavior of the students during the lab, and to have insights on their main mistakes and misconceptions. After describing the environment, the interfaces, and the approaches used to identify the students’ teams that need timely assistance, the paper presents the results of different analyses performed using the collected data, to help the teacher better understand students’ educational needs

    Design and Use of Static Scaffolding Techniques to Support Java Programming on a Mobile Phone

    Get PDF
    Most learners in resource-constrained environments own mobile phones that they could use to learn programming while outside the classroom. However, limitations of mobile phones, such as small screens and small keypads, impede their use as typical programming environments. This study proposed that programming environments on mobile phones could include scaffolding techniques specifically designed for mobile phones, and designed based on learners' needs. Scaffolding should be designed with some essential techniques that are mandatory for learners to use. Hence, one type of scaffolding technique that was designed to support programming on the mobile phone is static scaffolding that does not fade. Experiments were conducted with 64 learners of programming from three universities in Kenya and South Africa in order to investigate how they used the designed static scaffolding techniques to construct Java programs on a mobile phone. The results show that programming on mobile phones can be supported by providing scaffolding techniques that never fade, in order to address the limitations of mobile phones and to meet learners' needs
    corecore