222 research outputs found
Bacatá:Notebooks for DSLs, Almost for Free
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
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
Recommended from our members
ITSY: an automated programming adviser
This thesis presents an automated programming adviser. This system (called ITSY) tutors students in Lisp. This is from the viewpoint of automated program debugging of novice programs. Work within HCRL [Eisenstadt et al, Hasemer, Lewis] has shown that novice programming students can benefit from relatively small changes to the environment and from help via (intelligent) debugging tools. This thesis investigates the use of these debugging techniques in tutoring. The debugging techniques described here rely totally on detecting patterns in the student's code which represent erroneous concepts the student may have.
The thesis is divided into three parts. Each part describes a separate area of investigation.
The first part provides a detailed description of the types of errors that professional programmers make when using a 'traditional' (i.e. glass teletype) Lisp environment.
In the second part the concept of a programming cliche has been inverted and used as a basis for a system designed to help overcome the difficulties described in the first part of the thesis. This approach can be used in the design of computing systems built to help novices in certain domains. The constraint on the domain is that students' answers are complex enough to contain patterns of errors (so one word answers would not suffice). This would include domains where students are learning procedural skills - such as arithmetic, algebra or mechanics.
The third part describes a study involving professional programmers using the system
Leveraging Final Degree Projects for Open Source Software Contributions
(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
ROBOTIC LAWN MOWER
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
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
- …