490 research outputs found
Influence of synchronized domain visualizations on program comprehension
An effective program comprehension is reached when it is possible to view and relate what happens when the program is executed, synchronized with its effects in the real world concepts. This enables the interconnection of program’s meaning at both problem and program domains.
To sustain this statement we need (i) to develop a tool which provides and synchronizes views at both domains, and (ii) to perform an experiment to measure the actual impact of this approach.
So, in this working session we aim at discussing the benefits of providing synchronized domain visualizations. We
also envisage to discuss the preparation and conduction of appropriate experiments that will test that benefits.
A case study will be used and the discussion will be supported by experimental material specially prepared for the occasion, but adapted from material already used in previous experiments
Improving program comprehension tools for domain specific languages
Dissertação de Mestrado em InformáticaSince the dawn of times, curiosity and necessity to improve the quality of their
life, led humans to find means to understand everything surrounding them, aiming
at improving it. Whereas the creating abilities of some was growing, the capacity
to comprehend of others follow their steps. Disassembling physical objects to comprehend
the connections between the pieces in order to understand how they work
together is a common human behavior. With the computers arrival, humans felt
the necessity of applying the same techniques (disassemble to comprehend) to their
programs.
Traditionally, these programs are written resorting to general-purpose programming
languages. Hence, techniques and artifacts, used to aid on program comprehension,
were built to facilitate the work of software programmers on maintaining
and improving programs that were developed by others. Generally, these generic
languages deal with concepts at a level that the human brain can hardly understand.
So understanding programs written in this languages is an hard task, because the
distance between the concepts at the program level and the concepts at the problem
level is too big.
Thus, as in politics, justice, medicine, etc. groups of words are regularly used
facilitating the comprehension between people, also in programming, languages that
address a specific domain were created. These programming languages raise the
abstraction of the program domain, shortening the gap to the concepts of the problem
domain.
Tools and techniques for program comprehension commonly address the program
domain and they took little advantage of the problem domain. In this master’s thesis,
the hypothesis that it is easier to comprehend a program when the underlying problem
and program domains are known and a bridge between them is established, is
assumed. Then, a program comprehension technique for domain specific languages,
is conceived, proposed and discussed. The main objective is to take advantage from
the large knowledge about the problem domain inherent to the domain specific language,
and to improve traditional program comprehension tools that only dealt, until
then, with the program domain. This will create connections between both program
and problem domains. The final result will show, visually, what happens internally
at the program domain level, synchronized with what happens externally, at problem
level.Desde o inĂcio dos tempos a curiosidade e a necessidade de melhorar a qualidade
de vida impeliram o humano a arranjar meios para compreender o que o rodeia
com o objectivo de melhorar. À medida que a habilidade de uns foi aumentando, a
capacidade de compreensĂŁo de outros seguiu-lhe os passos. Desmontar algo fĂsico de
modo a compreender as ligações entre as peças e assim perceber como funcionam num
todo, Ă© um acto bastante normal dos humanos. Com o advento dos computadores
e os programas para ele codificados, o homem sentiu a necessidade de aplicar as
mesmas técnicas (desmontar para compreender) ao código desses programas.
Tradicionalmente, a codificação de tais programas é feita usando linguagens
genéricas de programação. Desde logo técnicas e artefactos que ajudam na compreensão
desses programas (nessas linguagens) foram produzidas para auxiliar o
trabalho de engenheiros de software que necessitam de manter ou alterar programas
previamente construĂdos por outros. De um modo geral estas linguagens mais
genĂ©ricas lidam com conceitos a um nĂvel bastante abaixo daquele que o cĂ©rebro humano,
facilmente, consegue captar. Previsivelmente, compreender programas neste
tipo de linguagens Ă© uma tarefa complexa pois a distância entre os conceitos ao nĂvel
do programa e os conceitos ao nĂvel do problema (que o programa aborda) Ă© bastante
grande.
Deste modo, tal como no dia-a-dia foram surgindo nichos como a polĂtica, a
justiça, a informática, etc. onde grupos de palavras são usadas com maior regularidade
para facilitar a compreensão entre as pessoas, também na programação foram
surgindo linguagens que focam em domĂnios especĂficos, aumentando a abstracção em
relação ao nĂvel do programa, aproximando este do nĂvel dos conceitos subjacentes
ao problema.
Ferramentas e técnicas de compreensão de programas abordam, geralmente, o
domĂnio do programa, tirando pouco partido do domĂnio do problema. Na presente
tese assume-se a hipótese de que será mais fácil compreender um programa quando
os domĂnios do problema e do programa sĂŁo conhecidos, e entre eles Ă© estabelecida
uma ponte de ligação; e parte-se em busca de uma técnica de compreensão de
programas para linguagens de domĂnio especĂfico, baseada em tĂ©cnicas já conhecidas
para linguagens de carácter geral. O objectivo prende-se com aproveitar o conhecimento
sobre o domĂnio do problema e melhorar as ferramentas de compreensĂŁo de
programas existentes para as linguagens genéricas, de forma a estabelecer ligações
entre domĂnio do programa e domĂnio do problema. O resultado será mostrar, visualmente,
o que acontece internamente ao nĂvel do programa, sincronizadamente
com o que acontece externamente ao nĂvel do problema
P-D controller computer vision and robotics integration based for student’s programming comprehension improvement
The 21st-century skills needed to face the speed of understanding technology. Such as critical thinking in computer vision and robotics literacy, any student is hampered by the programming that is considered complicated. This study aims at the improvement of student embedded system programming competency with computer vision and mobile robotics integration approach. This method is proposed to attract the students to learn about embedded system programming by delivering integration between computer vision and robotics using the P-D controller since both of the fields are closely related. In this paper, the researcher described computer vision programming to get the data of captured images through the camera stream and then delivered the data into an embedded system to make the decision of robot movement. The output of this study is the improvement of a student’s ability to make an application to integrate a sensor system using a camera and the mobile robot running follow the line. The result of the test shows that the integration method between computer vision and robotics can improve the student’s programming comprehension by 40%. Based on the Feasibility test survey, it can be interpreted that from the whole assessment after being converted to qualitative data, all aspects of the learning stages of programming application tested with the integration of computer vision and robotics fall into the very feasible category for used with a percentage of feasibility by 77.44%
AI in space: Past, present, and possible futures
While artificial intelligence (AI) has become increasingly present in recent space applications, new missions being planned will require even more incorporation of AI techniques. In this paper, we survey some of the progress made to date in implementing such programs, some current directions and issues, and speculate about the future of AI in space scenarios. We also provide examples of how thinkers from the realm of science fiction have envisioned AI's role in various aspects of space exploration
A gentle transition from Java programming to Web Services using XML-RPC
Exposing students to leading edge vocational areas of relevance such as Web Services can be difficult. We show a lightweight approach by embedding a key component of Web Services within a Level 3 BSc module in Distributed Computing. We present a ready to use collection of lecture slides and student activities based on XML-RPC. In
addition we show that this material addresses the central topics in the context of web services as identified by Draganova (2003)
Introductory programming: a systematic literature review
As computing becomes a mainstream discipline embedded in the school curriculum and acts as an enabler for an increasing range of academic disciplines in higher education, the literature on introductory programming is growing. Although there have been several reviews that focus on specific aspects of introductory programming, there has been no broad overview of the literature exploring recent trends across the breadth of introductory programming.
This paper is the report of an ITiCSE working group that conducted a systematic review in order to gain an overview of the introductory programming literature. Partitioning the literature into papers addressing the student, teaching, the curriculum, and assessment, we explore trends, highlight advances in knowledge over the past 15 years, and indicate possible directions for future research
A Review of Verbal and Non-Verbal Human-Robot Interactive Communication
In this paper, an overview of human-robot interactive communication is
presented, covering verbal as well as non-verbal aspects of human-robot
interaction. Following a historical introduction, and motivation towards fluid
human-robot communication, ten desiderata are proposed, which provide an
organizational axis both of recent as well as of future research on human-robot
communication. Then, the ten desiderata are examined in detail, culminating to
a unifying discussion, and a forward-looking conclusion
A model for systematically investigating relationships between variables that affect the performance of novice programmers
This research was motivated by an interest in novices learning to program
and a desire to understand the factors that affect their learning. The
traditional approach to performing such an investigation has been to select
factors which may be important and then perform statistical tests on a few
potential relationships. A new research model is proposed and tested to
ensure that a thorough and systematic investigation of the data is performed.
This thesis describes the data, defines the model and explains the
application and validation of the model.
The research process is managed by a control algorithm that is the heart of
the model. This algorithm is seeded by a hypothesis that connects two
variables of interest and dictates the testing of a series of hypotheses; as it
does this, it also delves deeper into the data to identify additional
relationships.
In this research the model was applied to investigate the relationships
between: learning style and achievement; programming behaviour and
achievement; and learning style and programming behaviour. Learning style
was assessed using Kolb’s Learning Style Inventory, achievement was
based on exam score and programming behaviour was extracted from a log
of student activities using a programming tool. The largest number of
significant relationships was found between aspects of behaviour and
achievement.
The model was validated by classifying the significant hypotheses based on
the research model’s tree structure, the section of the programming tool in
use and the literature. These three classification schemes provided a
structure to explore their similarities and differences. The model was thus
demonstrated to be robust and repeatable by comparing the results with
those from both using a programming tool, and expert opinion.
This research has revealed several attributes of the learning behaviour that
affected the students’ results within this group, including aspects of
timeliness and overall volume of activity. These are suitable targets for
future investigations.
The research model could be applied to other data sets where an in-depth
investigation into pairwise data is required.
Multiple Robot Simulation in a Virtual Reality Environment
Nowadays, robotics is becoming increasingly important in people's daily lives. However, the process of learning and training in robotics is not always easy. In fact, in most cases, proper training is linked to direct interaction with these devices. This is usually not possible for the vast majority of people, as they may not have access to a robot. Nevertheless, thanks to the emergence of different technologies such as Virtual Reality (VR) it is possible to do things that were considered unimaginable before. Therefore, this project aims to make the most of both technologies, creating an alternative way of interacting with robots to understand how they behave, thus flattening the robotics learning curve. To this end, a software that allows the simulation and control of various robots in VR has been developed
- …