222 research outputs found

    Bacatá:Notebooks for DSLs, Almost for Free

    Get PDF
    Context: Computational notebooks are a contemporary style of literate programming, in which users can communicate and transfer knowledge by interleaving executable code, output, and prose in a single rich document. A Domain-Specific Language (DSL) is an artificial software language tailored for a particular application domain. Usually, DSL users are domain experts that may not have a software engineering background. As a consequence, they might not be familiar with Integrated Development Environments (IDEs). Thus, the development of tools that offer different interfaces for interacting with a DSL is relevant. Inquiry: However, resources available to DSL designers are limited. We would like to leverage tools used to interact with general purpose languages in the context of DSLs. Computational notebooks are an example of such tools. Then, our main question is: What is an efficient and effective method of designing and implementing notebook interfaces for DSLs? By addressing this question we might be able to speed up the development of DSL tools, and ease the interaction between end-users and DSLs. Approach: In this paper, we present Bacat\'a, a mechanism for generating notebook interfaces for DSLs in a language parametric fashion. We designed this mechanism in a way in which language engineers can reuse as many language components (e.g., language processors, type checkers, code generators) as possible. Knowledge: Our results show that notebook interfaces generated by Bacat\'a can be automatically generated with little manual configuration. There are few considerations and caveats that should be addressed by language engineers that rely on language design aspects. The creation of a notebook for a DSL with Bacat\'a becomes a matter of writing the code that wires existing language components in the Rascal language workbench with the Jupyter platform. Grounding: We evaluate Bacat\'a by generating functional computational notebook interfaces for three different non-trivial DSLs, namely: a small subset of Halide (a DSL for digital image processing), SweeterJS (an extended version of JavaScript), and QL (a DSL for questionnaires). Additionally, it is relevant to generate notebook implementations rather than implementing them manually. We measured and compared the number of Source Lines of Code (SLOCs) that we reused from existing implementations of those languages. Importance: The adoption of notebooks by novice-programmers and end-users has made them very popular in several domains such as exploratory programming, data science, data journalism, and machine learning. Why are they popular? In (data) science, it is essential to make results reproducible as well as understandable. However, notebooks are only available for GPLs. This paper opens up the notebook metaphor for DSLs to improve the end-user experience when interacting with code and to increase DSLs adoption

    Game Hacking: Reverse engineering Dofus

    Get PDF
    iThe world of video games has become a really powerful industry during the last decades. With the rise of the video game industry, other niche markets appeared related to video games. One of those markets is the in-game goods selling. In most cases these things are not obtained by humans especially when massively sold but obtained by bots, which are executed for 24 hours with multiple game instances to maximize benefits for the seller. This thesis applies partial reverse engineering to a game called Dofus and its launcher in order to implement a custom client for the game. The custom client will automatically make the functions of the game launcher, the login handshake and server selection without human intervention. Moreover, detailed information about the launcher and the game network protocol will be explained and documented

    Leveraging Final Degree Projects for Open Source Software Contributions

    Get PDF
    (1) Background: final year students of computer science engineering degrees must carry out a final degree project (FDP) in order to graduate. Students’ contributions to improve open source software (OSS) through FDPs can offer multiple benefits and challenges, both for the students, the instructors and for the project itself. This work reports on a practical experience developed by four students contributing to mature OSS projects during their FDPs, detailing how they addressed the multiple challenges involved, both from the students and teachers perspective. (2) Methods: we followed the work of four students contributing to two established OSS projects for two academic years and analyzed their work on GitHub and their responses to a survey. (3) Results: we obtained a set of specific recommendations for future practitioners and detailed a list of benefits achieved by steering FDP towards OSS contributions, for students, teachers and the OSS projects. (4) Conclusions: we find out that FDPs oriented towards enhancing OSS projects can introduce students into real-world, practical examples of software engineering principles, give them a boost in their confidence about their technical and communication skills and help them build a portfolio of contributions to daily used worldwide open source applications

    Automatic program analysis in a Prolog Intelligent Teaching System

    Get PDF

    ROBOTIC LAWN MOWER

    Get PDF
    The Final Year Project course is designed for students to do research; design and development work in each discipline, to produce practical solutions. It provides opportunity for students to use the tools and techniques of problem-solving by engagement of the project. Under proper guidance of supervisor, the students will shape the direction in the field of interest as a preparation for approaching their desired career path in the near future, as well as gain better understanding of the responsibilities they have to shoulder when they undertake a project. The objective of this project is to produce an automatic robotic lawn mover which is able to cut grass of a specified area of flat land. The first approach to this project is to conduct intensive literature reviews regarding the functions of robots and robotic designs and programming. The Second phase of this project is implementation of the theory to build a functioning robot. The scope of the study would focus on the design and implementation of the robot from scratch. The study is broken down into sub sections, which are electronic circuits, movement mechanism and programming. These subsections are developed and combined until the implementation of the workable robot. In the discussion section, all findings would be discussed in more detail and alternatives are compared as to assure the objectives are met during implementation

    Mechanical, Electronic Design and Implementation of a CanSaT

    Get PDF
    This Bachelor’s Thesis is addressed for developing an improved CanSat aimed to become the new kit used on the CanSat Competition organized by the ESA. The improvements are meant not only for improving the kit’s efficiency but also to make a well-informed instruction manual as a way to get students to comprehend better the device’s hardware. By understanding this hardware, they will be getting a closer look of the Aerospace world. It should be remarked that the Open CanSat kit, designed by Czech engineers, is a kit used in the ESA CanSat competition in all Europe. Therefore, our final and most ambitious goal is to develop a kit that would substitute the Czech kit and ideally used by all European Competitors. The main purpose of this project is developing an improved CanSat kit able to compete in the market with a already-existing Czech CanSat kit. This kit will be composed of two differentiated blocks: a transmitter which will be introduced on the CanSat ”can” and launched for measuring several parameters (temperature,pressure,etc) and a receiver which will be on the ground receiving the measures taken by the transmitter. Note that the transmitter will be composed of three differentiated PCBs while the receiver will be composed of only one PCB. The development and implementation of this project is performed following a Reverse Engineering method giving realism and getting the student closer to professional techniques, widely recognized in the job market. Furthermore, the complexity and multidisciplinary scope of this Bachelor’s Thesis allows covering not only the different specialties of the Bachelor’s degree in Telecommunication Engineering but also acquiring knowledge and transverse abilities from other fields of the Engineering, such as Mechanical engineering field. Besides specific software of each of the mentioned areas, advanced techniques of machining (aluminum milling), manufacturing (solder reflow) or characterization of different devices (lithium batteries, antennas...) among others, have been analyzed and applied. The result of the exposed culminates with the obtainment of a complete and functional CanSat kit, which provides a more economic and efficient solution to the already used Open CanSat kit designed by the Czech engineers. Moreover, this Bachelor’s Thesis is aimed to demonstrate the knowledge acquired by the author during the degree’s academic years exhibiting the acquired knowledge about electronic and PCB design and firmware implementation (using RTOS instead of a SuperLoop architecture p.e). It should also be a proof of the student’s abilities to handle tools such as Altium Designer® 19, SolidWorks®, VS Code, PlatformIO, VNA and a In-Circuit Debugger. Even though we aim for developing a functional product, it would be a great success if the knowledge acquired during this project surpass the basic-knowledge acquired during the academic years at the expense of not having a complete functional product. Consequently, we are not focusing so much on having a ready to commercialize product (it is a long shot that would take more time than the one we have for developing this Bachelor Thesis) but in compacting all the knowledge acquired during the five years of university as well as gain the necessary skills that an engineer should have before starting to work on any company.Este Trabajo de Fin de Grado tiene como objetivo el desarrollo de un CanSat mejorado destinado a convertirse en el nuevo kit utilizado en el CanSat Competition organizado por la ESA. Las mejoras están destinadas no solo a mejorar la eficiencia del kit, sino también a crear un manual de instrucciones bien informado como una forma de que los estudiantes comprendan mejor el hardware del dispositivo. Al comprender este Hardware (HW), podrán ver más de cerca el mundo aeroespacial. Cabe destacar que el kit Open CanSat, diseñado por ingenieros checos, es un kit utilizado en la competición ESA CanSat en toda Europa. Por lo tanto, nuestro objetivo final y más ambicioso es desarrollar un kit que sustituya al kit checo y que sea idealmente utilizado por todos los competidores europeos. El objetivo principal de este proyecto es desarrollar un kit CanSat mejorado capaz de competir en el mercado con un kit CanSat checo ya existente. Este kit estará compuesto por dos bloques diferenciados: un transmisor que se introducirá en la "lata" del CanSat y se lanzará para medir varios parámetros (temperatura, presión, etc) y un receptor que estará en tierra recibiendo las medidas tomadas por el transmisor. Tengase en cuenta que el transmisor estará compuesto por tres PCB diferentes, mientras que el receptor estará compuesto por una única PCB. El desarrollo e implementación de este proyecto se ha realizado siguiendo un proceso de Ingeniería Inversa dando realismo y acercando al alumno a técnicas profesionales, ampliamente reconocidas en el mercado laboral. Además, la complejidad y alcance multidisciplinar de esta Tesis de Grado permite abarcar no solo las diferentes especialidades del Grado en Ingeniería de Telecomunicación sino también adquirir conocimientos y habilidades transversales de otros campos de la Ingeniería, como el campo de la Ingeniería Mecánica. Además del software específico de cada una de las áreas mencionadas, se han analizado y aplicado técnicas avanzadas de mecanizado (fresado de aluminio), fabricación (reflujo de soldadura) o caracterización de diferentes dispositivos (baterías de litio, antenas ...) entre otros. El resultado de lo expuesto culmina con la obtención de un completo y funcional kit CanSat, que aporta una solución más económica y eficiente al ya utilizado kit Open CanSat diseñado por los ingenieros checos. Además, este Trabajo de Fin de Grado tiene como objetivo demostrar los conocimientos adquiridos por la autora durante los años académicos delgrado, mostrando los conocimientos adquiridos sobre el diseño electrónico y de PCBs y la implementación de software (utilizando RTOS en lugar de una arquitectura SuperLoop p.e). También debe ser una prueba de las habilidades del estudiante para manejar herramientas como Altium Designer® 19, SolidWorks®, VS Code, PlatformIO, VNA and a In-Circuit Debugger. Si bien nuestro objetivo es desarrollar un producto funcional, sería un gran éxito si los conocimientos adquiridos durante este proyecto superan los conocimientos básicos adquiridos durante los cursos académicos a costa de no tener un producto funcional completo. En consecuencia, no nos estamos enfocando tanto en tener un producto listo para comercializar (es una posibilidad remota que llevaría más tiempo que el que tenemos para desarrollar este Trabajo de Fin de Grado) sino en compactar todos los conocimientos adquiridos durante los cinco años de universidad, así como adquirir las habilidades necesarias que debe tener una ingeniera antes de comenzar a trabajar en cualquier empresa
    corecore