45 resultados para introductory programming, learning to program, programming pedagogy, collaborative learning, pair-programming

em Universidad Politécnica de Madrid


Relevância:

100.00% 100.00%

Publicador:

Resumo:

Program specialization optimizes programs for known valúes of the input. It is often the case that the set of possible input valúes is unknown, or this set is infinite. However, a form of specialization can still be performed in such cases by means of abstract interpretation, specialization then being with respect to abstract valúes (substitutions), rather than concrete ones. We study the múltiple specialization of logic programs based on abstract interpretation. This involves in principie, and based on information from global analysis, generating several versions of a program predicate for different uses of such predicate, optimizing these versions, and, finally, producing a new, "multiply specialized" program. While múltiple specialization has received theoretical attention, little previous evidence exists on its practicality. In this paper we report on the incorporation of múltiple specialization in a parallelizing compiler and quantify its effects. A novel approach to the design and implementation of the specialization system is proposed. The resulting implementation techniques result in identical specializations to those of the best previously proposed techniques but require little or no modification of some existing abstract interpreters. Our results show that, using the proposed techniques, the resulting "abstract múltiple specialization" is indeed a relevant technique in practice. In particular, in the parallelizing compiler application, a good number of run-time tests are eliminated and invariants extracted automatically from loops, resulting generally in lower overheads and in several cases in increased speedups.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Program specialization optimizes programs for known valúes of the input. It is often the case that the set of possible input valúes is unknown, or this set is infinite. However, a form of specialization can still be performed in such cases by means of abstract interpretation, specialization then being with respect to abstract valúes (substitutions), rather than concrete ones. This paper reports on the application of abstract múltiple specialization to automatic program parallelization in the &-Prolog compiler. Abstract executability, the main concept underlying abstract specialization, is formalized, the design of the specialization system presented, and a non-trivial example of specialization in automatic parallelization is given.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

This paper presents a novel tablet based end-user interface for industrial robot programming (called Hammer). This application makes easier to program tasks for industrial robots like polishing, milling or grinding. It is based on the Scratch programming language, but specifically design and created for Android OS. It is a visual programming concept that allows non-skilled programmer operators to create programs. The application also allows to monitor the tasks while it is being executed by overlapping real time information through augmented reality. The application includes a teach pendant screen that can be customized according to the operator needs at every moment.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Knowing the size of the terms to which program variables are bound at run-time in logic programs is required in a class of applications related to program optimization such as, for example, recursion elimination and granularity analysis. Such size is difficult to even approximate at compile time and is thus generally computed at run-time by using (possibly predefined) predicates which traverse the terms involved. We propose a technique based on program transformation which has the potential of performing this computation much more efficiently. The technique is based on finding program procedures which are called before those in which knowledge regarding term sizes is needed and which traverse the terms whose size is to be determined, and transforming such procedures so that they compute term sizes "on the fly". We present a systematic way of determining whether a given program can be transformed in order to compute a given term size at a given program point without additional term traversal. Also, if several such transformations are possible our approach allows finding minimal transformations under certain criteria. We also discuss the advantages and present some applications of our technique.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

El objetivo de este proyecto es desarrollar un conjunto de herramientas de auto aprendizaje y autoevaluación del laboratorio de la asignatura "Procesado Digital de la Señal", perteneciente al plan de grado de la Escuela Técnica Superior de Ingeniería y Sistemas de Telecomunicación de la Universidad Politécnica de Madrid. Con ello se pretende de mejorar el rendimiento académico de los alumnos en dicha asignatura y en la materia "Señales y Sistemas" en general. Para la realización de las prácticas se emplea Matlab, de modo que es necesario integrar esta herramienta en el laboratorio con MOODLE, plataforma de e-learning utilizada para la gestión de las asignaturas a nivel docente, para proporcionar material de estudio y programar actividades de aprendizaje y evaluación. Será fundamental el análisis de la integración de Matlab con MOODLE, de modo que en función de los resultados de los alumnos, se les propongan repeticiones de apartados erróneos, revisiones de resultados y otros aspectos, como autoaprendizaje y autoevaluación que permitan la obtención de las competencias y alcanzar los resultados de aprendizaje, y a los profesores que imparten la asignatura, como herramienta para detectar las deficiencias más significativas en la programación y en las metodologías empleadas en la asignatura para corregir las carencias de los alumnos. ABSTRACT: The aim of this project will be the development of self-learning and self- assessment lab tools for the course "Procesado Digital de la Señal" in order to improve student’s performance in that subject and in the matter "Señales y Sistemas " for grades taught at the Escuela Universitaria de Ingeniería Técnica de Telecomunicación of the Universidad Politécnica de Madrid today. Matlab is used to perform laboratory practices of "Procesado Digital de la Señal “. Matlab is a numerical calculation program. A very powerful tool with a great mathematical processing performance level, so it is necessary to integrate this tool in the laboratory with MOODLE, the current e-learning platform used at the Universidad Politécnica de Madrid for the management of teaching subjects to provide material and to program learning and assessment activities for students. It is therefore essential the analysis of the Matlab integration with Moodle. Thus, depending on the results and grades that students get along the way in the various activities evaluators should conduct, they propose, for example, repetitions of erroneous exercises, reviews of some results and other aspects such as self-learning and self-assessment. This would allow students to obtain the skills and learning to achieve the results set as a target. For teachers who teach the subject will also be a preview of the notes as these tools will be used to identify the most significant shortcomings both in programming and in the methodologies used in "Procesado Digital de la Señal " to act accordingly and correcting shortcomings of the enrolled students.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Traditional schemes for abstract interpretation-based global analysis of logic programs generally focus on obtaining procedure argument mode and type information. Variable sharing information is often given only the attention needed to preserve the correctness of the analysis. However, such sharing information can be very useful. In particular, it can be used for predicting runtime goal independence, which can eliminate costly run-time checks in and-parallel execution. In this paper, a new algorithm for doing abstract interpretation in logic programs is described which concentrates on inferring the dependencies of the terms bound to program variables with increased precisión and at all points in the execution of the program, rather than just at a procedure level. Algorithms are presented for computing abstract entry and success substitutions which extensively keep track of variable aliasing and term dependence information. In addition, a new, abstract domain independent ñxpoint algorithm is presented and described in detail. The algorithms are illustrated with examples. Finally, results from an implementation of the abstract interpreter are presented.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Proof-Carrying Code (PCC) is a general approach to mobile code safety in which programs are augmented with a certifícate (or proof). The practical uptake of PCC greatly depends on the existence of a variety of enabling technologies which allow both to prove programs correct and to replace a costly verification process by an efñcient checking procedure on the consumer side. In this work we propose Abstraction-Carrying Code (ACC), a novel approach which uses abstract interpretation as enabling technology. We argüe that the large body of applications of abstract interpretation to program verification is amenable to the overall PCC scheme. In particular, we rely on an expressive class of safety policies which can be defined over different abstract domains. We use an abstraction (or abstract model) of the program computed by standard static analyzers as a certifícate. The validity of the abstraction on the consumer side is checked in a single-pass by a very efficient and specialized abstract-interpreter. We believe that ACC brings the expressiveness, flexibility and automation which is inherent in abstract interpretation techniques to the área of mobile code safety. We have implemented and benchmarked ACC within the Ciao system preprocessor. The experimental results show that the checking phase is indeed faster than the proof generation phase, and that the sizes of certificates are reasonable.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Traditional schemes for abstract interpretation-based global analysis of logic programs generally focus on obtaining procedure argument mode and type information. Variable sharing information is often given only the attention needed to preserve the correctness of the analysis. However, such sharing information can be very useful. In particular, it can be used for predicting run-time goal independence, which can eliminate costly run-time checks in and-parallel execution. In this paper, a new algorithm for doing abstract interpretation in logic programs is described which infers the dependencies of the terms bound to program variables with increased precisión and at all points in the execution of the program, rather than just at a procedure level. Algorithms are presented for computing abstract entry and success substitutions which extensively keep track of variable aliasing and term dependence information. The algorithms are illustrated with examples.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

In an advanced program development environment, such as that discussed in the introduction of this book, several tools may coexist which handle both the program and information on the program in different ways. Also, these tools may interact among themselves and with the user. Thus, the different tools and the user need some way to communicate. It is our design principie that such communication be performed in terms of assertions. Assertions are syntactic objects which allow expressing properties of programs. Several assertion languages have been used in the past in different contexts, mainly related to program debugging. In this chapter we propose a general language of assertions which is used in different tools for validation and debugging of constraint logic programs in the context of the DiSCiPl project. The assertion language proposed is parametric w.r.t. the particular constraint domain and properties of interest being used in each different tool. The language proposed is quite general in that it poses few restrictions on the kind of properties which may be expressed. We believe the assertion language we propose is of practical relevance and appropriate for the different uses required in the tools considered.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Knowing the size of the terms to which program variables are bound at run-time in logic programs is required in a class of applications related to program optimization such as, for example, granularity analysis and selection among different algorithms or control rules whose performance may be dependent on such size. Such size is difficult to even approximate at compile time and is thus generally computed at run-time by using (possibly predefined) predicates which traverse the terms involved. We propose a technique based on program transformation which has the potential of performing this computation much more efficiently. The technique is based on finding program procedures which are called before those in which knowledge regarding term sizes is needed and which traverse the terms whose size is to be determined, and transforming such procedures so that they compute term sizes "on the fly". We present a systematic way of determining whether a given program can be transformed in order to compute a given term size at a given program point without additional term traversal. Also, if several such transformations are possible our approach allows finding minimal transformations under certain criteria. We also discuss the advantages and applications of our technique and present some performance results.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Knowing the size of the terms to which program variables are bound at run-time in logic programs is required in a class of applications related to program optimization such as, for example, recursion elimination and granularity analysis. Such size is difficult to even approximate at compile time and is thus generally computed at run-time by using (possibly predefined) predicates which traverse the terms involved. We propose a technique based on program transformation which has the potential of performing this computation much more efficiently. The technique is based on finding program procedures which are called before those in which knowledge regarding term sizes is needed and which traverse the terms whose size is to be determined, and transforming such procedures so that they compute term sizes "on the fly". We present a systematic way of determining whether a given program can be transformed in order to compute a given term size at a given program point without additional term traversal. Also, if several such transformations are possible our approach allows finding minimal transformations under certain criteria. We also discuss the advantages and present some applications of our technique.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

The deployment of the Ambient Intelligence (AmI) paradigm requires designing and integrating user-centered smart environments to assist people in their daily life activities. This research paper details an integration and validation of multiple heterogeneous sensors with hybrid reasoners that support decision making in order to monitor personal and environmental data at a smart home in a private way. The results innovate on knowledge-based platforms, distributed sensors, connected objects, accessibility and authentication methods to promote independent living for elderly people. TALISMAN+, the AmI framework deployed, integrates four subsystems in the smart home: (i) a mobile biomedical telemonitoring platform to provide elderly patients with continuous disease management; (ii) an integration middleware that allows context capture from heterogeneous sensors to program environment¿s reaction; (iii) a vision system for intelligent monitoring of daily activities in the home; and (iv) an ontologies-based integrated reasoning platform to trigger local actions and manage private information in the smart home. The framework was integrated in two real running environments, the UPM Accessible Digital Home and MetalTIC house, and successfully validated by five experts in home care, elderly people and personal autonomy.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Dynamic and Partial Reconfiguration allows systems to change some parts of their hardware at run time. This feature favours the inclusion of evolutionary strategies to provide optimised solutions to the same problem so that they can be mixed and compared in a way that only the best ones prevail. At the same time, distributed intelligence permits systems to work in a collaborative way to jointly improve their global capabilities. This work presents a combination of both approaches where hardware evolution is performed both at local and network level in order to improve an image filter application in terms of performance, robustness and providing the capacity of avoiding local minimums, which is the main drawback of some evolutionary approaches.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Una de las metodologías más utilizadas en la asignatura de Tecnología debido a su naturaleza, íntimamente ligada con el saber cómo hacemos las cosas y por que las hacemos, es el aprendizaje a través del trabajo colaborativo. El objeto de este trabajo es analizar su utilización en 4o ESO, para introducir una propuesta de optimización del trabajo colaborativo en el aula de Tecnología. El primer capítulo de este documento se centra en las bases teóricas de la metodología, por un lado recoge su evolución histórica en el último siglo y su fundamentación, y por otro, los elementos necesarios para que pueda darse un aprendizaje colaborativo eficaz. A continuación, en los dos siguientes capítulos, se describe el procedimiento que se ha llevado a cabo para el estudio del trabajo colaborativo en Tecnología, realizando una descripción detallada de los instrumentos que se han utilizado para la recogida de datos: la observación sistemática de un grupo y el análisis de cuestionarios. En base a todo lo anterior, se exponen las conclusiones extraídas sobre la utilización del método, que ponen de manifiesto las dificultades de establecer relaciones de interdependencia entre los miembros de los grupos colaborativos. Para, por último, proponer la introducción de videojuegos multijugadores en el aula como herramienta educativa, para potenciar el desarrollo de las habilidades sociales necesarias en la optimización del trabajo colaborativo. One of the most popular methods used in engineering class in high school, due to its inquisitive nature of learning how to do things and why we do them, is collaborative work. The purpose of this thesis is to analyse its use in the fourth year of high school, in order to submit a proposal for collaborative work optimization in the Technology classroom. The outline of this paper is as follows. The first chapter of this paper presents the theoretical basis of the method, it firstly provides an overview of its historical evolution over the last century, and secondly, focuses on the essential elements required to have an effective collaborative learning. In the next two chapters, the procedure followed to study collaborative work is described through a detailed explanation of the techniques used for data collection: systematic observation of a group and survey analysis. Chapter 4 concludes. Findings from applying the examined methodology demonstrate the difficulties of establishing interdependence relationships among members of collaborative groups. Finally, the introduction of multiplayer gaming in the classroom is proposed as an educational tool to strengthen the development of social skills needed to optimize collaborative work.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Proof-Carrying Code (PCC) is a general approach to mobile code safety in which programs are augmented with a certificate (or proof). The intended benefit is that the program consumer can locally validate the certificate w.r.t. the "untrustcd" program by means of a certificate checker a process which should be much simpler, efficient, and automatic than generating the original proof. The practical uptake of PCC greatly depends on the existence of a variety of enabling technologies which allow both proving programs correct and replacing a costly verification process by an efficient checking proceduri on th( consumer side. In this work we propose Abstraction- Carrying Code (ACC), a novel approach which uses abstract interpretation as enabling technology. We argue that the large body of applications of abstract interpretation to program verification is amenable to the overall PCC scheme. In particular, we rely on an expressive class of safely policies which can be defined over different abstract domains. We use an abstraction (or abstract model) of the program computed by standard static analyzers as a certificate. The validity of the abstraction on ihe consumer side is checked in a single pass by a very efficient and specialized abstract-interpreter. We believe that ACC brings the expressiveness, flexibility and automation which is inherent in abstract interpretation techniques to the area of mobile code safety.