32 research outputs found

    DRAFT-What you always wanted to know but could not find about block-based environments

    Get PDF
    Block-based environments are visual programming environments, which are becoming more and more popular because of their ease of use. The ease of use comes thanks to their intuitive graphical representation and structural metaphors (jigsaw-like puzzles) to display valid combinations of language constructs to the users. Part of the current popularity of block-based environments is thanks to Scratch. As a result they are often associated with tools for children or young learners. However, it is unclear how these types of programming environments are developed and used in general. So we conducted a systematic literature review on block-based environments by studying 152 papers published between 2014 and 2020, and a non-systematic tool review of 32 block-based environments. In particular, we provide a helpful inventory of block-based editors for end-users on different topics and domains. Likewise, we focused on identifying the main components of block-based environments, how they are engineered, and how they are used. This survey should be equally helpful for language engineering researchers and language engineers alike

    Formalizing and Integrating User Knowledge into Security Analytics

    Get PDF
    The Internet-of-Things and ubiquitous cyber-physical systems increase the attack surface for cyber-physical attacks. They exploit technical vulnerabilities and human weaknesses to wreak havoc on organizations’ information systems, physical machines, or even humans. Taking a stand against these multi-dimensional attacks requires automated measures to be com- bined with people as their knowledge has proven critical for security analytics. However, there is no uniform understanding of information security knowledge and its integration into security analytics activities. With this work, we structure and formalize the crucial notions of knowledge that we deem essential for holistic security analytics. A corresponding knowledge model is established based on the Incident Detection Lifecycle, which summarizes the security analytics activities. This idea of knowledge-based security analytics highlights a dichotomy in security analytics. Security experts can operate security mechanisms and thus contribute their knowledge. However, security novices often cannot operate security mechanisms and, therefore, cannot make their highly-specialized domain knowledge available for security analytics. This results in several severe knowledge gaps. We present a research prototype that shows how several of these knowledge gaps can be overcome by simplifying the interaction with automated security analytics techniques

    Programming Robots for Activities of Everyday Life

    Get PDF
    Text-based programming remains a challenge to novice programmers in\ua0all programming domains including robotics. The use of robots is gainingconsiderable traction in several domains since robots are capable of assisting\ua0humans in repetitive and hazardous tasks. In the near future, robots willbe used in tasks of everyday life in homes, hotels, airports, museums, etc.\ua0However, robotic missions have been either predefined or programmed usinglow-level APIs, making mission specification task-specific and error-prone.\ua0To harness the full potential of robots, it must be possible to define missionsfor specific applications domains as needed. The specification of missions of\ua0robotic applications should be performed via easy-to-use, accessible ways, and\ua0at the same time, be accurate, and unambiguous. Simplicity and flexibility in\ua0programming such robots are important, since end-users come from diverse\ua0domains, not necessarily with suffcient programming knowledge.The main objective of this licentiate thesis is to empirically understand the\ua0state-of-the-art in languages and tools used for specifying robot missions byend-users. The findings will form the basis for interventions in developing\ua0future languages for end-user robot programming.During the empirical study, DSLs for robot mission specification were\ua0analyzed through published literature, their websites, user manuals, samplemissions and using the languages to specify missions for supported robots.After extracting data from 30 environments, 133 features were identified.\ua0A feature matrix mapping the features to the environments was developedwith a feature model for robotic mission specification DSLs.Our results show that most end-user facing environments exist in the\ua0education domain for teaching novice programmers and STEM subjects. Mostof the visual languages are developed using Blockly and Scratch libraries.\ua0The end-user domain abstraction needs more work since most of the visualenvironments abstract robotic and programming language concepts but not\ua0end-user concepts. In future works, it is important to focus on the development\ua0of reusable libraries for end-user concepts; and further, explore how end-user\ua0facing environments can be adapted for novice programmers to learn\ua0general programming skills and robot programming in low resource settings\ua0in developing countries, like Uganda

    NuzzleBug: Debugging Block-Based Programs in Scratch

    Full text link
    While professional integrated programming environments support developers with advanced debugging functionality, block-based programming environments for young learners often provide no support for debugging at all, thus inhibiting debugging and preventing debugging education. In this paper we introduce NuzzleBug, an extension of the popular block-based programming environment Scratch that provides the missing debugging support. NuzzleBug allows controlling the executions of Scratch programs with classical debugging functionality such as stepping and breakpoints, and it is an omniscient debugger that also allows reverse stepping. To support learners in deriving hypotheses that guide debugging, NuzzleBug is an interrogative debugger that enables to ask questions about executions and provides answers explaining the behavior in question. In order to evaluate NuzzleBug, we survey the opinions of teachers, and study the effects on learners in terms of debugging effectiveness and efficiency. We find that teachers consider NuzzleBug to be useful, and children can use it to debug faulty programs effectively. However, systematic debugging requires dedicated training, and even when NuzzleBug can provide correct answers learners may require further help to comprehend faults and necessary fixes, thus calling for further research on improving debugging techniques and the information they provide.Comment: To appear at the 2024 IEEE/ACM 46th International Conference on Software Engineering (ICSE '24), April 14--20, 2024, Lisbon, Portuga

    A flexible approach to introductory programming : engaging and motivating students

    Get PDF
    © 2019 Copyright is held by the owner/author(s). In this paper, we consider an approach to supporting students of Computer Science as they embark upon their university studies. The transition to Computer Science can be challenging for students, and equally challenging for those teaching them. Issues that are unusual – if not unique – to teaching computing at this level include • the wide variety in students background, varying from no prior experience to extensive development practice; • the positives and negatives of dealing with self-taught hobbyists who may developed buggy mental models of the task in hand and are not aware of the problem; • the challenge of getting students to engage with material that includes extensive practical element; • the atypical profile of a computing cohort, with typically 80%+ male students. The variation in background includes the style of prior academic experience, with some students coming from traditional level 3 (i.e. A-levels), some through more vocational routes (e.g. B-Tech, though these have changed in recent years), through to those from experiential (work based) learning. Technical background varies from science, mathematical and computing experience, to no direct advanced technical or scientific experience. A further issue is students’ attainment and progression within higher education, where the success and outcomes in computer science has been identified as particularly problematic. Computer Science has one the worst records for retention (i.e. students leaving with no award, or a lower award than that originally applied for), and the second worst for attainment (i.e. achieving a good degree, that being defined as a first or a 2:1). One way to attempt to improve these outcomes is by identifying effective ways to improve student engagement. This can be through appropriate motivators – though then the balance of extrinsic versus intrinsic motivation becomes critical. In this paper, we consider how to utilize assessment – combining the formative and summative aspects - as a substitute for coarser approaches based on attendance monitoring

    A flexible approach to introductory programming : engaging and motivating students

    Get PDF
    © 2019 Copyright is held by the owner/author(s). In this paper, we consider an approach to supporting students of Computer Science as they embark upon their university studies. The transition to Computer Science can be challenging for students, and equally challenging for those teaching them. Issues that are unusual – if not unique – to teaching computing at this level include • the wide variety in students background, varying from no prior experience to extensive development practice; • the positives and negatives of dealing with self-taught hobbyists who may developed buggy mental models of the task in hand and are not aware of the problem; • the challenge of getting students to engage with material that includes extensive practical element; • the atypical profile of a computing cohort, with typically 80%+ male students. The variation in background includes the style of prior academic experience, with some students coming from traditional level 3 (i.e. A-levels), some through more vocational routes (e.g. B-Tech, though these have changed in recent years), through to those from experiential (work based) learning. Technical background varies from science, mathematical and computing experience, to no direct advanced technical or scientific experience. A further issue is students’ attainment and progression within higher education, where the success and outcomes in computer science has been identified as particularly problematic. Computer Science has one the worst records for retention (i.e. students leaving with no award, or a lower award than that originally applied for), and the second worst for attainment (i.e. achieving a good degree, that being defined as a first or a 2:1). One way to attempt to improve these outcomes is by identifying effective ways to improve student engagement. This can be through appropriate motivators – though then the balance of extrinsic versus intrinsic motivation becomes critical. In this paper, we consider how to utilize assessment – combining the formative and summative aspects - as a substitute for coarser approaches based on attendance monitoring

    Advancing sCool - Game Type Research and Development

    Get PDF
    The proposed project, sCool, is an adaptive game-based learning experience designed for STEM education. In this work, we present a new iteration of sCool in efforts to further examine contributing factors of engagement, usability, and comprehension. The newly developed game experience for acquiring object-oriented programming skills is divided into two parts: concept learning and practical challenge. The concept learning part teaches students theoretical lessons of programming through fun gameplay. The practical challenge part allows students to practice programming by completing tasks. This project presents several new game types for both the concept learning and practical challenge parts. The development of these game types spreads across two phases. The first phase introduces two new game types and focuses on extending sCool to support learning object-oriented programming and improve student’s learning comprehension. The second phase builds off of the first phase, introducing another new game type to improve the object-oriented programming learning experience and the game’s overall usability and engagement. During the first phase, three experiments were conducted in a classroom setting with a computer science teacher. Conducting a study involving a total of 39 school students and three teachers, we are able to successfully display an enhanced understanding of different programming concepts. During the second phase, a single experiment was held remotely among a wide group of people, and the participants were self-guided by an instruction document and the sCool application. Conducting a study with 25 participants, we are able to show a significant improvement in the game’s usability and engagement. For future works, further evaluations in-classroom and over a longer course will be useful in assessing the new game type’s effectiveness in teaching object oriented programming. Furthermore, the game should be expanded to support learning more complex concepts in object oriented programming
    corecore