215 research outputs found

    TextCode: A Tool to Support Problem Solving Among Novice Programmers

    Get PDF
    Several tools have been developed to support novices learning to program. Most of them focus on the code and provide features regarding the visualization of the data structures or the debugging. However, in introductory programming courses, students are typically given exercises in the form of a problem written in natural language; and the first challenge they face is understanding the problem, identifying the relevant information, and then translating that information into code. To our knowledge, little attention has been paid to proposing tools targeted at supporting this problem-solving step, even though it is crucial for deriving a correct solution. In this paper, we present an IDE to encourage novices to understand the problem before start coding, decompose it down into subproblems, explore alternative implementations for each subproblem, and arrange these implementations to build a general solution. Finally, the adopted problem-solving approach is discussed

    Collaborative Learning for Information Security Topics: A Pilot Study

    Get PDF
    Collaborative learning has seen a growing popularity in computing education with promising results. The purpose of this research study is to determine if the collaborative guided learning pedagogy is valid for the diverse information security-related topics. We have developed and tested on three security topics and learning activities, including input validation, security in operating systems, and SQL injection in the pilot study. Applied pre-test and post-test surveys to measure the effectiveness of the learning experiences. We have conducted statistical analysis and qualitative analysis to compare the pre- and post-surveys results. Furthermore, we found that team experience is helpful to research with security topics, and more time allowed for the activity could benefit the learning experience

    "It's Weird That it Knows What I Want": Usability and Interactions with Copilot for Novice Programmers

    Full text link
    Recent developments in deep learning have resulted in code-generation models that produce source code from natural language and code-based prompts with high accuracy. This is likely to have profound effects in the classroom, where novices learning to code can now use free tools to automatically suggest solutions to programming exercises and assignments. However, little is currently known about how novices interact with these tools in practice. We present the first study that observes students at the introductory level using one such code auto-generating tool, Github Copilot, on a typical introductory programming (CS1) assignment. Through observations and interviews we explore student perceptions of the benefits and pitfalls of this technology for learning, present new observed interaction patterns, and discuss cognitive and metacognitive difficulties faced by students. We consider design implications of these findings, specifically in terms of how tools like Copilot can better support and scaffold the novice programming experience.Comment: 26 pages, 2 figures, TOCH

    Experience report on the use of technology to manage capstone course projects

    Get PDF

    An Embedding Technique for Language-Independent Lecturer-Oriented Program Visualization

    Get PDF
    Nowadays, programming is a promising skill to be learned; the demand of programmer is increased. To align with such trend, several Program Visualization (PV) tools have been developed. Using such tool, user can learn how a particular program works through interactive and descriptive visualization. However, most of the tools are language-dependent: they use either language-dependent debugger or code to generate visualization. Such dependency may become a problem when a program written in new programming language is incorporated. Therefore, this paper proposes an embedding technique to handle given issue. To incorporate new programming language, it only needs five language-dependent features to be set. In general, our proposed technique works in threefold: embedding some statements to target program, generating visualization states by running the program with console commands, and visualizing given program based on generated visualization states. According to our evaluation, proposed technique is able to incorporate program written in any programming languages as long as those languages provide required language-dependent features. Further, it is practical to be used since it still have the benefits of conventional PV even though it is designed as a language-independent PV

    Experiences from Teaching Automated Testing with CrowdSorcerer

    Get PDF
    Software testing is an important process when ensuring a program's quality. However, testing has not traditionally been a very substantial part of computer science education. Some attempts to integrate it into the curriculum has been made but best practices still prove to be an open question. This thesis discusses multiple attempts of teaching software testing during the years. It also introduces CrowdSorcerer, a system for gathering programming assignments with tests from students. It has been used in introductory programming courses in University of Helsinki. To study if the students benefit from creating assignments with CrowdSorcerer, we analysed the number of assignments and tests they created and if they correlate with their performance in a testing-related question in the course exam. We also gathered feedback from the students on their experiences from using CrowdSorcerer. Looking at the results, it seems that more research on how to teach testing would be beneficial. Improving CrowdSorcerer would also be a good idea

    ITSS: Interactive Web-Based Authoring and Playback Integrated Environment for Programming Tutorials

    Full text link
    Video-based programming tutorials are a popular form of tutorial used by authors to guide learners to code. Still, the interactivity of these videos is limited primarily to control video flow. There are existing works with increased interactivity that are shown to improve the learning experience. Still, these solutions require setting up a custom recording environment and are not well-integrated with the playback environment. This paper describes our integrated ITSS environment and evaluates the ease of authoring and playback of our interactive programming tutorials. Our environment is designed to run within the browser sandbox and is less intrusive to record interactivity actions. We develop a recording approach that tracks the author's interactivity actions (e.g., typing code, highlighting words, scrolling panels) on the browser and stored in text and audio formats. We replay these actions using the recorded artefacts for learners to have a more interactive, integrated and realistic playback of the author's actions instead of watching video frames. Our design goals are 1) efficient recording and playback, 2) extensible interactivity features to help students learn better, and 3) a scalable web-based environment. Our first user study of 20 participants who carry out the author tasks agree that it is efficient and easy to author interactive videos in our environment with no additional software needed. Our second user study of 84 students using the environment agrees that the increased interactivity can help them learn better over a video-based tutorial. Our performance test shows that the environment can scale to support up to 500 concurrent users. We hope our open-source environment enable more educators to create interactive programming tutorials

    On the Quality of Crowdsourced Programming Assignments

    Get PDF
    Crowdsourcing has been used in computer science education to alleviate the teachers’ workload in creating course content, and as a learning and revision method for students through its use in educational systems. Tools that utilize crowdsourcing can act as a great way for students to further familiarize themselves with the course concepts, all while creating new content for their peers and future course iterations. In this study, student-created programming assignments from the second week of an introductory Java programming course are examined alongside the peer reviews these assignments received. The quality of the assignments and the peer reviews is inspected, for example, through comparing the peer reviews with expert reviews using inter-rater reliability. The purpose of this study is to inspect what kinds of programming assignments novice students create, and whether the same novice students can act as reliable reviewers. While it is not possible to draw definite conclusions from the results of this study due to limitations concerning the usability of the tool, the results seem to indicate that novice students are able to recognise differences in programming assignment quality, especially with sufficient guidance and well thought-out instructions
    • …
    corecore