Browsing by Author "Pereira, Maria João"
Now showing 1 - 10 of 155
Results Per Page
Sort Options
- Active methodologies in incoming programming classesPublication . Aires, Joao Paulo; Aires, Simone Bello Kaminski; Pereira, Maria João; Alves, Luís M.Innovative approaches in teaching programming have been required to improve the success of incoming programming students. This work presents the initial results of a teaching strategy implemented in the Algorithms subject of a Computer Science course. Ninety-five students, enrolled in this subject during the first semester of the course, participated in the research. The reported activity is related with active methodologies of teaching and Problem-Based Learning, being developed on the first day of class in groups of up to five students. The activity was based in two actions: 1) answering a questionnaire associating computing elements to daily life routines; and, 2) even without programming concepts knowledge, develop a smartphone application. Each group received a questionnaire containing 19 questions, divided into four blocks. What can be perceived with the accomplishment of this work, was the enthusiasm, motivation and engagement of the students who, even being unknown from each other, organized themselves in the groups and researched the necessary strategies to complete the challenge. The teacher acted as an advisor in the teaching process, conducting the experiment in order to lead students to find the solution.
- AId: uma Ferramenta para análise de identificadores de programas JavaPublication . Azcurra, Javier; Berón, Mario; Montejano, Germán; Farnese, Augusto; Henriques, Pedro Rangel; Pereira, Maria JoãoAs demandas atuais no desenvolvimento de software implicam uma evolução e manutenção constante do software com menor custo de tempo e recursos [15,16, 17, 18]. A Compreensão de Programas (CP), uma disciplina da Engenharia do Software, fornece os métodos, técnicas e estratégias para levar adiante esta tarefa. Em geral, as técnicas de compreensão fazem uso de duas classes muito importantes de informação: Estática e Dinâmica. Em ambas as classes, há um elemento que é informativo e sempre usado: os identificadores (Id). Estudos indicam que os Ids, mesmo quando abreviados ou compostos, encerram indícios das funcionalidades dos sistemas onde são usados [12, 7, 9, 8]. Por esta razão construir ferramentas de compreensão que automatizem o processo de extração e análise dos identificadores é uma contribuição muito importante para a CP. Neste artigo apresenta-se a AId uma ferramenta que: i) automatiza a recuperação de identificadores encontrados em programas escritos em Java, e ii) aplica algoritmos de análise de identificares a fim de capturar o seu significado com vista a ajudar a compreender o programa.
- AID: una herramienta para el análisis de identificadores en programas JAVAPublication . Azcurra, Javier; Berón, Mario; Henriques, Pedro Rangel; Pereira, Maria JoãoLas demandas actuales en el desarrollo de software implican una evolución y mantenimiento constantes con el menor costo de tiempo y recursos. La Comprensión de Programas (CP) es una disciplina de la Ingeniería de Software (IS) que ofrece Métodos, Técnicas, Estrategias y Herramientas para llevar adelante esas tareas. Generalmente las técnicas de comprensión emplean dos fuentes importantes de información: Estática y Dinámica. En ambas fuentes existe un elemento que brinda información y es muy utilizado: los identificadores (Id). Estudios indican que los Ids contienen indicios sobre las funcionalidades de los sistemas. Por tal motivo, construir herramientas automatizadas de comprensión que puedan extraer y analizar los Ids es un aporte muy importante al área de la CP. En este artículo se presenta AId, una herramienta que extrae y analiza Ids con el propósito de encontrar su significado y de esta forma ayudar a comprender el programa de estudio.
- ALMA versus DDDPublication . Cruz, Daniela; Henriques, Pedro Rangel; Pereira, Maria JoãoTo be a debugger is a good thing! Since the very beginning of the programming activity, debuggers are the most important and widely used tools after editors and compilers; we completely recognize their importance for software development and testing. Debuggers work at machine level, after the compilation of the source program; they deal with assembly, or binary-code, and are mainly data structure inspectors. Alma is a program animator based on its abstract representation. The main idea is to show the algorithm being implemented by the program, independently from the language used to implement it. To say that ALMA is a debugger, with no value added, is not true! ALMA is a source code inspector but it deals with programming concepts instead of machine code. This makes possible to understand the source program at a conceptual level, and not only to fix run time errors. In this paper we compare our visualizer/animator system, ALMA, with one of the most well-known and used debuggers, the graphical version of GDB, the DDD program. The aim of the paper is twofold: the immediate objective is to prove that ALMA provides new features that are not usually offered by debuggers; the main contribution is to recall the concepts of debugger and animator, and clarify the role of both tools in the field of program understanding, or program comprehension.
- An attribute grammar specification of IIS*Case PIM conceptsPublication . Lukovic, Ivan; Pereira, Maria João; Oliveira, Nuno; Cruz, Daniela; Henriques, Pedro RangelIIS*Case is a model driven software tool that provides information system modeling and prototypes generation. It comprises visual and repository based tools for creating various platform independent model (PIM) specifications that are latter transformed into the other, platform specific specifications, and finally to executable programs. Apart from having PIMs stored as repository definitions, we need to have their equivalent representation in the form of a domain specific language. One of the main reasons for this is to allow for checking the formal correctness of PIMs being created. In the paper, we present such a meta-language, named IIS*CDesLang. IIS*CDesLang is specified by an attribute grammar (AG), created under a visual programming environment for AG specifications, named VisualLISA.
- An effective way to teach language processing coursesPublication . Pereira, Maria João; Oliveira, Nuno; Cruz, Daniela; Henriques, Pedro RangelIn this chapter we identify the difficulties that lead students of Language Processing (LP) courses to fail. All of us that teach Language Processing topics are aware of the complexity of this task; we know that a great part of the students will face big difficulties inherent to the level of abstraction associated with some of the basic concepts in the area, and to the technical capacities required to implement efficient processors. A key issue that we have identified along the years we are teaching Language Processing courses is the lack of students’ motivation to learn the main topics. This issue is something that we want to overcome with our proposal. A starting point for this research is to identify the main concepts involved in Language Processing subject, and to understand the skills required to learn them. Considering that a person just learns when is involved in a process we argue that motivation is a crucial factor to engage students in the course work allowing them to achieve the required knowledge acquisition. We will state that motivation is highly dependent on the languages used to work on during the course. So, we discuss the characteristics that a language should have to be a motivating case study. We think that LP teachers should be very careful in their choices and be astute in the way they explore the underlying grammars along the course evolution.
- Análisis de información informal para facilitar la comprensión de programasPublication . Azcurra, Javier; Berón, Mario; Henriques, Pedro Rangel; Pereira, Maria JoãoLa Comprensión de Programas es un area de la Ingenieria de Software cuyo objetivo principal es desarrollar métodos, técnicas y herramientas que faciliten al programador el entendimiento de las funcionalidades de los sistemas de software. Una forma de alcanzar este objetivo consiste en relacionar el Domino del Problema, es decir la salida del sistema, con el dominio del programa, o sea con las partes del programa utilizadas para generar la salida del sistema. La construcción de esta relación representa el principal desafío en el contexto de la Comprensión de Programas. Una solución posible al desafío previamente mencionado consiste en construir una representación para cada dominio y luego vincular ambas representaciones. La representación de ambos dominios se construye en base a la información, estática y dinámica, que se extrae de los mismos. La estrategia de vinculación usa esa información para construir un mapeo entre los elementos de ambos dominios. La información estática se extrae desde el código fuente del sistema usando técnicas de compilación. La información dinámica requiere que el sistema sea modificado sin cambiar su semántica y luego ejecutado. En este artículo se presenta una línea de investigación que se centra en el estudio, creación e implementación de técnicas de extracción de la información estática desde los sistemas de software. Esta información puede ser estrictamente relacionada con el código del programa, o bien con la información informal provista por los programadores a través de comentarios, literales y documentación.
- Animação de algoritmos tornada sistemáticaPublication . Pereira, Maria João; Henriques, Pedro RangelNeste artigo vamos propor a arquitectura do sistema Alma, um sistema para animar algoritmos programados em diferentes linguagens, oferecendo uma interface de visualização controlável pelo utilizador. Assim, o que na nossa opinião caracteriza esta proposta é: a independência relativamente à aplicação e à linguagem de programação; a existência de uma linguagem de visualização versátil (permitindo adaptá-lo às necessidades do utilizador). Como aplicações possíveis do Alma, destacamos: a animação de algoritmos, como apoio ao ensino da programação e como instrumento da didáctica da matemática; a análise de resposta, para apoio à correcção de provas de avaliação; a interpretação (visual) de documentos anotados.
- Aplicando uma metodologia de aprendizagem colaborativa no ensino de programaçãoPublication . Aires, Simone Bello Kaminski; Aires, Joao Paulo; Pereira, Maria João; Alves, Luís M.Este artigo aborda os resultados obtidos na utilização de uma metodologia de ensino colaborativa em uma turma com alunos ingressantes de um Curso de Bacharelado em Ciência da Computação. O grupo no qual a pesquisa foi implementada foi composto de 45 alunos matriculados na disciplina de Algoritmos do primeiro semestre de 2018. Para a estratégia de ensino, foi aplicado o Método Trezentos, que consiste na divisão da turma em grupos de trabalho colaborativo com oito alunos. Com esta metodologia, constatou-se uma melhora significativa não somente nas notas obtidas pelos estudantes, como, também, no percentual de aprovação. Com base nos dados históricos dos últimos anos, é possível perceber que o método se mostrou eficiente, uma vez que ao aplicar tal estratégia, houve ampliação no percentual de aprovação de 50,0% para 58,7% dos matriculados na disciplina.
- Applying attribute grammars to teach linguistic rulesPublication . Barros, Patrícia; Pereira, Maria João; Henriques, Pedro RangelAn attribute grammar is a very well known formalism to describe computer languages but it can also be successfully used to describe linguistic phenomena. Since natural languages can also be expressed in grammars it is natural to describe rules using the same formalism. Linguistic teachers of the University Complutense of Madrid started using attribute grammars but they lack a tool that helps them to specify linguistic rules in a friendly and natural way. Therefore we propose a domain specific language (NLSdsl) carefully designed for non-programmers that will be implemented on an AnTLR based system.