4,751 research outputs found

    Designing Engaging Learning Experiences in Programming

    Get PDF
    In this paper we describe work to investigate the creation of engaging programming learning experiences. Background research informed the design of four fieldwork studies to explore how programming tasks could be framed to motivate learners. Our empirical findings from these four field studies are summarized here, with a particular focus upon one – Whack a Mole – which compared the use of a physical interface with the use of a screen-based equivalent interface to obtain insights into what made for an engaging learning experience. Emotions reported by two sets of participant undergraduate students were analyzed, identifying the links between the emotions experienced during programming and their origin. Evidence was collected of the very positive emotions experienced by learners programming with a physical interface (Arduino) in comparison with a similar program developed using a screen-based equivalent interface. A follow-up study provided further evidence of the motivation of personalized design of programming tangible physical artefacts. Collating all the evidence led to the design of a set of ‘Learning Dimensions’ which may provide educators with insights to support key design decisions for the creation of engaging programming learning experiences

    Designing, Producing and Using Artifacts in the Structuration of Firm Knowledge: Evidence from Proprietary and Open Processes of Software Development.

    Get PDF
    In the paper we study the recursive nature of artifacts in the production and the socialization of organizational knowledge. In this respect, artifacts are interpreted both as the product (output) of organizational knowledge processes and, at the same time, as tools easing the development of other artifacts. We compare different practices of knowledge creation and diffusion in complex software production processes with the aim of understanding the effects of interplay between (1) coordination and control practices, (2) mediating artifacts and development tools, and (3) interactions between different actors in the development process. We aim at identifying the peculiar traits emerging in contrasting development paradigms, namely the closed, fully proprietary one widespread in the gaming console industry, and the open model of free/open source software development.video/computer game industry; artifacts; free/open source software; video game console

    Designing, Producing and Using Artifacts in the Structuration of Firm Knowledge: Evidence from Proprietary and Open Processes of Software Development.

    Get PDF
    In the paper we study the recursive nature of artifacts in the production and the socialization of organizational knowledge. In this respect, artifacts are interpreted both as the product (output) of organizational knowledge processes and, at the same time, as tools easing the development of other artifacts. We compare different practices of knowledge creation and diffusion in complex software production processes with the aim of understanding the effects of interplay between (1) coordination and control practices, (2) mediating artifacts and development tools, and (3) interactions between different actors in the development process. We aim at identifying the peculiar traits emerging in contrasting development paradigms, namely the closed, fully proprietary one widespread in the gaming console industry, and the open model of free/open source software developmentvideo/computer game industry; artifacts; free/open source software; video game consoles

    Scrum Game: An Agile Software Management Game

    No full text
    For the past few years, in their attempt to avoid the heavyweight bureaucracy of traditional project management methods such as the Waterfall model, companies have started incorporating agile methods (e.g. Extreme Programming, Scrum, Crystal) for their project development. These methods are characterised by their incremental and iterative delivery, their ability to incorporate change at any stage of the project lifecycle, as well as their small and co-located teams. Even though these methods are included in the syllabus of many software engineering modules at university level, many students currently feel more confident with traditional, rather than agile methods. Many employers find that recent graduates are not equipped with the desired skills of a software engineer because, even though they are knowledgeable in the different software engineering practices, they lack practical experience of these methods. The combination of these two factors show that the university’s approach to teaching software management methods is only theoretical and it does not give students the opportunity to apply them to their projects so they can get a better understanding of their use. The project developed the prototype of a computer game that simulates the use of the Scrum method within different projects, named Scrum Game. The game is supplementary material for a lecture course, and its purpose is to guide students through the Scrum lifecycle. Students can thereby get a small glimpse of the different phases of Scrum, the way that the different Scrum roles interact with each other, and the way that Scrum is used to implement real projects. In addition, the Scrum Game has an administrator mode enabling lecturers to view a log of the progress of all their students in the game. They can use this mode to create new projects or to alter existing ones by adding new tasks or problems, thereby adjusting the level of difficulty to the level of their students, or so that it fits their teaching. The web-based system was developed using PHP, MySQL, HTML, CSS, JavaScript, AJAX (jQuery) and Google Charts API. The system was thoroughly tested against the initial requirements and other system tests. The Scrum Game was evaluated by 22 peer colleagues reading for an MSc in Software Engineering at the University of Southampton, to identify whether the system achieved its goal of introducing students to the Scrum methodology and reaching a deeper understanding of its practical use during project implementation. The results of a questionnaire showed that little prior knowledge was assumed during the game, and that 86% of the participants felt that the game helped them learn more about Scrum. When asked, “Do you think that if this game was part of your Project Management module, would you get a better understanding about Scrum?” an impressive 95% (21 out of 22 participants) agreed that the game would be helpful, and rated the system 8 out of 10 on average

    Automated CPX support system preliminary design phase

    Get PDF
    The development of the Distributed Command and Control System (DCCS) is discussed. The development of an automated C2 system stimulated the development of an automated command post exercise (CPX) support system to provide a more realistic stimulus to DCCS than could be achieved with the existing manual system. An automated CPX system to support corps-level exercise was designed. The effort comprised four tasks: (1) collecting and documenting user requirements; (2) developing a preliminary system design; (3) defining a program plan; and (4) evaluating the suitability of the TRASANA FOURCE computer model

    Syntactic generation of practice novice programs in Python

    Get PDF
    Abstract: In the present day, computer programs are written in high level languages and parsed syntactically as part of a compilation process. These parsers are defined with context-free grammars (CFGs), a language recogniser for the respective programming language. Formal grammars in general are used for language recognition or generation. In this paper, we present the automatic generation of procedural programs in Python using a CFG. We have defined CFG rules to model program templates and implemented these rules to produce infinitely many distinct practice programs in Python. Each generated program is designed to test a novice programmer’s knowledge of functions, expressions, loops, and/or conditional statements. The CFG rules are highly generic and can be extended to generate programs in other procedural languages. The resulting programs can be used as practice, test or examination problems in introductory programming courses. 500,000 iterations of generated programs can be found at: https://tinyurl.com/ pythonprogramgenerator. A survey of 103 students’ perception showed that 93.1% strongly agreed that these programs can help them in practice and improve their programming skills

    Teaching functional patterns through robotic applications

    Get PDF
    We present our approach to teaching functional programming to First Year Computer Science stu- dents at Middlesex University through projects in robotics. A holistic approach is taken to the cur- riculum, emphasising the connections between different subject areas. A key part of the students’ learning is through practical projects that draw upon and integrate the taught material. To support these, we developed the Middlesex Robotic plaTfOrm (MIRTO), an open-source platform built using Raspberry Pi, Arduino, HUB-ee wheels and running Racket (a LISP dialect). In this paper we present the motivations for our choices and explain how a number of concepts of functional programming may be employed when programming robotic applications. We present some students’ work with robotics projects: we consider the use of robotics projects to have been a success, both for their value in reinforcing students’ understanding of programming concepts and for their value in motivating the students

    Teaching functional patterns through robotic applications

    Get PDF
    We present our approach to teaching functional programming to First Year Computer Science stu- dents at Middlesex University through projects in robotics. A holistic approach is taken to the cur- riculum, emphasising the connections between different subject areas. A key part of the students’ learning is through practical projects that draw upon and integrate the taught material. To support these, we developed the Middlesex Robotic plaTfOrm (MIRTO), an open-source platform built using Raspberry Pi, Arduino, HUB-ee wheels and running Racket (a LISP dialect). In this paper we present the motivations for our choices and explain how a number of concepts of functional programming may be employed when programming robotic applications. We present some students’ work with robotics projects: we consider the use of robotics projects to have been a success, both for their value in reinforcing students’ understanding of programming concepts and for their value in motivating the students

    VeriGen: A Large Language Model for Verilog Code Generation

    Full text link
    In this study, we explore the capability of Large Language Models (LLMs) to automate hardware design by generating high-quality Verilog code, a common language for designing and modeling digital systems. We fine-tune pre-existing LLMs on Verilog datasets compiled from GitHub and Verilog textbooks. We evaluate the functional correctness of the generated Verilog code using a specially designed test suite, featuring a custom problem set and testing benches. Here, our fine-tuned open-source CodeGen-16B model outperforms the commercial state-of-the-art GPT-3.5-turbo model with a 1.1% overall increase. Upon testing with a more diverse and complex problem set, we find that the fine-tuned model shows competitive performance against state-of-the-art gpt-3.5-turbo, excelling in certain scenarios. Notably, it demonstrates a 41% improvement in generating syntactically correct Verilog code across various problem categories compared to its pre-trained counterpart, highlighting the potential of smaller, in-house LLMs in hardware design automation.Comment: arXiv admin note: text overlap with arXiv:2212.1114

    The origins of student misunderstanding of undergraduate electrical machine theory

    Get PDF
    This thesis is concerned with student understanding of key concepts in electrical engineering teaching within higher education. Anecdotal evidence suggests that many students struggle to understand threshold concepts and therefore encounter difficulties in learning theoretical models which are underpinned by such theoretical concepts. This research utilised a mixed methods approach to investigate the factors that influence student understanding of key theoretical concepts within electrical engineering. The initial study used a questionnaire to evaluate student understanding of concepts which were identified by teaching staff as being core to a particular module. The study identified that students commenced the module with poor understanding and that instruction on the module ELC040 Electrical Machines and Systems did not lead to improved understanding of core concepts. This suggests that the roots of student misunderstanding lay elsewhere. Desk research was subsequently employed to explore the sources of student misunderstandings. Performance data was analysed and demonstrated that the roots of the student misunderstanding of Electrical Machine Theory lay in the pre-requisite module Electrical Power B. Students routinely failed to achieve high levels of understanding in this module and as a result were unable to successfully build upon it in the third year module. Semi-structured interviews were then undertaken with Part C students who were undertaking the Electrical Machines and Systems module. In addition, structured interviews were administered with the Part B students. The interviews aimed to establish the study practices adopted by students across both years. The study showed that students found the ELA001 module difficult, and the majority believe that most other students felt the same way as they did. Students provided evidence of poor study techniques, by reporting last minute sessions to complete coursework and last minute revision for exams. This research informed the development of an interactive learning tool which was piloted on a small cohort of students. The research has also established that there are many influences on the development of student understanding of threshold concepts within electrical engineering and argues for a more active style of teaching in order to address student misunderstanding
    • …
    corecore