1,721,004 research outputs found

    Decades of Striving for Pedagogical and Technological Alignment

    No full text
    Publisher Copyright: © 2023 Copyright held by the owner/author(s).Computing educators have a tradition of building systems for supporting students and teachers alike. Systems and their evaluations are also an important topic in computing education research. Learning systems range from very specific such as algorithm visualizations to broad learning management systems, including supporting systems such as Q&A services. Over the years, calls for interoperability have also emerged, fueled by the desire for sharing best practices and content. In this discussion paper, we consider the challenges with evolving technology and aligning technology with pedagogy. We see that building and using systems is a learning effort that can help the community grow, while we also note that there are no perfect solutions and that there always will be trade-offs in developing and using technology in computing education.Peer reviewe

    Automated Questionnaires About Students’ JavaScript Programs: Towards Gauging Novice Programming Processes

    No full text
    Students sometimes manage to produce functionally correct program code while having a fragile understanding of the related learning goals. Such unproductive success could be intercepted by an educator who asks questions that target the structure and evaluation of the student’s program using the constructs and identifiers in the code. We provide a tool that automatically generates multiple-choice questions of seven different types for this purpose. We integrated these questions into a web-based program writing exercises, which we also publish as a part of this work, and successfully used them on an introductory programming course. In our pilot evaluation of the tool, we found that the students who answer these questions repeatedly incorrectly are likely to drop out, have more challenges while writing a program, and resort to tinkering behavior.Peer reviewe

    Event-driven Programming in Programming Education: A Mapping Review

    No full text
    During the past two decades, event-driven programming (EDP) has emerged as a central and almost ubiquitous concept in modern software development: Graphical user interfaces are self-evident in most mobile and web-based applications, as well as in many embedded systems, and they are most often based on reacting to events. To facilitate both teaching practice and research in programming education, this mapping review seeks to give an overview of the related knowledge that is already available in conference papers and journal articles. Starting from early works of the 1990s, we identified 105 papers that address teaching practices, present learning resources, software tools or libraries to support learning, and empirical studies related to EDP. We summarize the publications, their main content, and findings. While most studies focus on bachelor’s level education in universities, there has been substantial work in K–12 level, as well. Few courses address EDP as their main content—rather it is most often integrated with CS1, CS2, or computer graphics courses. The most common programming languages and environments addressed are Java, App Inventor, and Scratch. Moreover, very little of deliberate experimental scientific research has been carried out to explicitly address teaching and learning EDP. Consequently, while so-called experience reports, tool papers, and anecdotal evidence have been published, this theme offers a wide arena for empirical research in the future. At the end of the article, we suggest a number of directions for future research.Peer reviewe

    Exploring the Interplay of Achievement Goals, Self-Efficacy, Prior Experience and Course Achievement

    No full text
    We explore achievement goal orientations, self-efficacy, gender, and prior experience, and look into their interplay in order to understand their contributions to course performance. Our results provide evidence for the appropriateness of the three-factor achievement goal orientation model (performance, mastery approach, mastery avoidance) over the more pervasive four-factor model. We observe that the aspects and the model factors correlate with course achievement. However, when looking into the interplay of the aspects and the model factors, the observations change and the role of, for example, self-efficacy as an aspect contributing to course achievement diminishes. Our study highlights the need to further explore the interplay of aspects contributing to course achievement.Peer reviewe

    Exploring How Students Solve Open-ended Assignments: A Study of SQL Injection Attempts in a Cybersecurity Course

    No full text
    Publisher Copyright: © 2022 ACM.Research into computing and learning how to program has been ongoing for decades. Commonly, this research has been focused on novice learners and the difficulties they encounter, especially during CS1. Cybersecurity is a critical aspect in computing - as a topic in university education as well as a core skill in the industry. In this study, we investigate how students solve open-ended assignments on a cybersecurity course offered to university students after two years of CS studies. Specifically, we looked at how students perform SQL injection attacks on an web application system, and study to what extent we can characterize the process in which they come up with successful injections. Our results show that there are distinguishable strategies used by individual students who seek to hack the system, where these approaches revolve around exploration and exploitation tactics. We also find evidence of learning due to a more pronounced use of exploitation in a subsequent similar assignment.Peer reviewe

    Evaluating Distance Measures for Program Repair

    No full text
    Background and Context: Struggling with programming assignments while learning to program is a common phenomenon in programming courses around the world. Supporting struggling students is a common theme in Computing Education Research (CER), where a wide variety of support methods have been created and evaluated. An important stream of research here focuses on program repair, where methods for automatically fixing erroneous code are used for supporting students as they debug their code. Work in this area has so far assessed the performance of the methods by evaluating the closeness of the proposed fixes to the original erroneous code. The evaluations have mainly relied on the use of edit distance measures such as the sequence edit distance and there is a lack of research on which distance measure is the most appropriate. Objectives: Provide insight into measures for quantifying the distance between erroneous code written by a student and a proposed change. We conduct the evaluation in an introductory programming context, where insight into the distance measures can provide help in choosing a suitable metric that can inform which fixes should be suggested to novices. Method: A team of five experts annotated a subset of the Dublin dataset, creating solutions for over a thousand erroneous programs written by students. We evaluated how the prominent edit distance measures from the CER literature compare against measures used in Natural Language Processing (NLP) tasks for retrieving the experts’ solutions from a pool of proposed solutions. We also evaluated how the expert-generated solutions compare against the solutions proposed by common program repair algorithms. The annotated dataset and the evaluation code are published as part of the work. Findings: Our results highlight that the ROUGE score, classically used for evaluating the performance of machine summarization tasks, performs well as an evaluation and selection metric for program repair. We also highlight the practical utility of NLP metrics, which allow an easier interpretation and comparison of the performance of repair techniques when compared to the classic methods used in the CER literature. Implications: Our study highlights the variety of distance metrics used for comparing source codes. We find issues with the classically used distance measures that can be combated by using NLP metrics. Based on our findings, we recommend including NLP metrics, and in particular, the ROUGE metric, in evaluations when considering new program repair methodologies. We also suggest incorporating NLP metrics into other areas where source codes are compared, including plagiarism detection.Peer reviewe

    Scripted Step-based Visualizations: A Pilot Study

    No full text
    Software visualization has numerous educational applications that focus on illustrating code, structure, behavior, and/or evolution of software. However, there are few available solutions that (1) illustrate arbitrary high-level concepts according to the scripts specified by the instructor and (2) can be easily integrated into various existing learning materials. To evaluate the feasibility of such a tool, we developed a proof-of-concept system that can be used as a part of many web-based course materials and that is supported by Acos content server. As a pilot study, we introduced the tool in an introductory web development course to visualize messaging between clients and servers. We analyzed the usage log data and student questionnaire data and the results were mostly positive, which prompts for further research on the subject.Peer reviewe

    A Kingdom for a Button: Students’ Thoughts about Buttons

    No full text
    In learning programming and learning to construct applications with graphical user interfaces, there exists a large body of concepts from everyday life that are used to guide students. In this study, we explore whether such concepts from everyday life that we might believe require no explanation are actually understood in different ways by students in an introductory browser-based applications course. Our analysis focuses on an elementary interactive element: a button. Analyzing survey data from 185 students, we observe that even the simple concept of a button may be understood in a myriad of ways and that the context in which the concept is represented significantly influences beliefs of how the concept behaves. Our results indicate that students can rarely disentangle a concept from the context, and that some even believe that the text shown on a button in a graphical user interface is used to define the functionality of the button.Peer reviewe

    Peleihin pohjautuva tietotekniikan löytäminen ja oppiminen

    No full text
    Given the importance of computers, and by extension computer science (CS), in contemporary society, it is crucial to provide the best possible education in the field. This dissertation looks at two different game-related approaches in computer science education: how digital games and gaming communities expose people to CS concepts; and how game-related approaches can be used to improve computer science education (CSE) in universities. In order to structure this dissertation as well as future research, we present a classification of game-related approaches focused specifically on CSE. We see three broad approaches with games and CS: gameful approaches (e.g. gamification), designing and programming games, and entertainment games with learning content. Modern digital games are complex systems that the players need to learn and master. With certain games, programming and CS concepts can be used to enhance the playing experience. This provides a spark of interest in computing for some that might eventually lead to studying CS or related fields in a university. This phenomenon was studied by interviewing students as well as through reflection essays in which the students not only outlined how games had piqued their interest in computers and CS but also how game development as a career was appealing to some of them. Modern games are not just played in isolation or with a group of friends on the same couch. Instead, there are online gaming communities in which games are discussed and the actual gameplay is also recorded and either broadcasted live to an audience or uploaded to a video sharing service. We investigated two different online gaming communities in which CS and programming were a part of the games featured. We did this by gathering data on the interactions between the audience members. Through the discussion that we analyzed, we found that these communities are places where people are exposed to CS and programming. Moreover, these communities are places where both experienced programmers and newcomers come and discuss CS topics. Using games in formal education was researched with two approaches. Firstly, we implemented two software systems, Acos and Daechschen, to support gamification in online learning management systems. The core design principles behind these systems strive for interoperability and extensibility so that they continue to be relevant and used in fast pacing ecosystems of modern online learning tools. Secondly, we investigated implementing achievement badges on a course with Daechschen. We looked into students' reactions to the badges and found out that overall it was slightly positive with a large group of students being indifferent to them.Tietotekniikka on kriittinen osa modernia yhteiskuntaa ja tietotekniikan opetus on tästä syystä erityisen tärkeää. Tässä väitöskirjassa tutkitaan kahta peleihin pohjautuvaa lähestymistapaa liittyen tietotekniikan opetukseen. Ensimmäinen näistä tarkastelee, kuinka jotkin verkossa olevat peliyhteisöt liittyvät ohjelmointiin ja tietotekniikkaan, ja joissa ihmiset tulevat tietoiseksi ohjelmoinnista ja ohjelmointiin liittyvistä aiheista. Toinen lähestymistapa keskittyy siihen, kuinka pelillistämistä voidaan käyttää hyväksi tietotekniikan yliopisto-opetuksessa. Työn jäsentämiseksi ja tulevan tutkimuksen avuksi esitämme tavan luokitella peleihin pohjautuvia lähestymistapoja erityisesti keskittyen tietotekniikan opetukseen. Nämä ovat: pelilliset menetelmät (esim. suoritusmerkit), pelien ohjelmointi ja ohjelmointiin liittyviä konsepteja sisältävät viihdepelit. Modernit digitaaliset pelit ovat monitasoisia kompleksisia järjestelmiä, jotka usein vaativat pelaajalta tietoista harjoittelua. Joissain peleissä on sisäänrakennettuna mekaniikkoja, jotka sisältävät konsepteja ja käsitteitä tietotekniikasta ja ohjelmoinnista. Nämä pelit itsessään innostavat joitakin ihmisiä käyttämään tietotekniikkaa ja joissakin tapauksissa tämä innostus johtaa tietotekniikan opiskeluun yliopistossa. Tätä ilmiötä lähestyttiin analysoimalla reflektioesseitä sekä haastattelemalla tietotekniikan opiskelijoita heidän suhteestaan pelaamiseen ja peleihin. Pelaaminen ei nykyään tapahdu pelkästään yhdessä tilassa yksin tai kavereiden kanssa vaan enenevissä määrin internetiin on muodostunut pelaamiseen keskittyviä verkkoyhteisöjä. Näissä yhteisöissä peleistä keskustelemisen lisäksi pelaamista nauhoitetaan ja jaetaan videonjakopalveluiden kautta. Tätä ilmiötä lähestyttiin tutkimalla kahta eri verkkoyhteisöä, joissa tietotekniikka ja ohjelmointi liittyi peleihin. Näissä yhteisöissä käytyjen keskustelujen pohjalta kävi ilmi, että nämä ovat paikkoja joissa ihmiset kohtaavat tietotekniikkaan liittyviä konsepteja. Tämän lisäksi ne ovat paikkoja, joissa sekä kokeneet että aloittelevat ohjelmoijat keskustelevat ohjelmoinnista. Pelien käyttöä tietotekniikan koulutuksessa yliopistotasolla tutkittiin kahdella tavalla liittyen pelillistämiseen eli pelien osien hyödyntämiseen ei-pelillisissä konteksteissa. Pelillistämistä varten kehitettiin kaksi avoimen lähdekoodin ohjelmistoa: Acos ja Daechschen. Näiden ohjelmistojen keskeisenä suunnitteluperiaatteena on ollut laajennettavuus ja yhteensovitettavuus, joka on erityisen tärkeää moderneissä verkko-oppimisympäristöissä. Lisäksi opiskelijoiden reaktioita pelillistämiseen tutkittiin tietorakenteiden ja algoritmien kurssilla käyttäen Daechschen-järjestelmää. Yleisesti opiskelijat suhtautuivat suoritusmerkkeihin hieman positiivisesti

    Suoritusmerkit opetuskäytössä

    No full text
    Gamification, commonly defined as game-like mechanics into an existing service, has risen as a trend in various fields, such as learning and marketing in recent years. This thesis explores the topic of gamification in all educational contexts with the main focus of achievement badges, a way to implement gamification. Two main questions are explored: how gamification can be implemented into all existing course with already established courseware and how students will react to the added gamification elements. Utilizing gamification was explored by looking at existing options, both open source and commercial, to implement such a system. However, due to various concerns a whole new system was created. The system was then implemented, with created achievement badges, to an existing course running on A+ Learning Management System as a service. The system was used for online exercises in the course. Data structures and algorithms' during the later half of the course. It was evaluated after the course against the design criteria's. In addition, students' reactions to the system and achievement badges were evaluated, by contrasting students' behaviour before and after implementation of the badges. Data was collected on student behaviour and a survey containing qualitative and quantitative questions was held after the course. Results of this survey were analysed to assess questions, how the system worked and how students reported their reactions. Based on the diverse reactions of students towards achievement badges and the evaluation of the courses feedback, we conclude that achievement badges are not for everyone. However, they seem suited for some part of the student population to motivate and guide them towards better studying habits. End of the thesis discusses these results and points out flaws in the experiment as well as offers guidance for future gamified systems.Pelillistäminen on viime vuosina kasvattanut suosiotaan erilaisissa yhteyksissä kuten opetuksessa ja markkinoinnissa. Usein se määritellään pelinomaisten mekaniikkojen liittämiseksi olemassa oleviin palveluihin. Tämä diplomityö käsittelee pelillistämistä suoritusmerkkien avulla opetuksen yhteydessä kahdesta eri näkökulmasta: kuinka pelillistämistä voidaan tuoda olemassa olevan kurssin verkkotehtäviin ja kuinka opiskelijat suhtautuvat pelillistämiseen. Pelillistämisen lisäämistä tutkittiin arvioimalla olemassa olevia kaupallisia ja avoimen lähdekoodin ratkaisuja. Kuitenkin päädyttiin luomaan uusi järjestelmä suoritusmerkkeineen, joka kommunikoi kurssilla käytetyn A+ -oppimisen hallintajärjestelmän kanssa. Järjestelmää käytettiin Tietorakenteet ja algoritmit -kurssin verkkotehtävissä kurssin jälkimmäisellä puoliskolla. Järjestelmää arvioitiin suunniteltujen määrittelykriteerien suhteen, ja lisäksi opiskelijoiden reaktioita järjestelmään sekä suoritusmerkkeihin arvioitiin vertailemalla heidän käyttäytymistään ennen ja jälkeen järjestelmän käyttöönottoa. Kurssin jälkeisessä kyselyssä kerättiin palautetta järjestelmästä ja suoritusmerkeistä sekä numeerisesti että avoimilla tekstivastauksilla, Tämän kyselyn tuloksia käytettiin myös järjestelmän toiminnan sekä opiskelijoiden raportoimien reaktioiden arvioimiseen. Havaittiin, että suoritusmerkit eivät sovellu kaikille opiskelijoille. ja heillä on hyvinkin erilaisia reaktioita niihin. Kuitenkin näyttäisi, että osalle opiskelijoista suoritusmerkit soveltuvat heidän motivoimiseen ja parempien opiskelutapojen kannustamiseen
    corecore