38 research outputs found

    Towards using online portfolios in computing courses

    Get PDF
    The direct experience we had with teaching a summer pre-college computing course in which we adopted an online portfolio approach has led us to consider the use of online portfolios in our regular computer science undergraduate courses. The technical challenges we foresee include: the necessary support from the college\u27s IT department; the use of Microsoft-based web authoring technologies vs. the use of Open Source / freeware counterparts; the need for adequate technical knowledge on the part of our faculty; the need for server-side hardware and software resources

    Finding the needles in the haystack: Generating legal test inputs for object-oriented programs

    Get PDF
    A test input for an object-oriented program typically consists of asequence of method calls that use the API defined by the programunder test. Generating legal test inputs can be challenging because,for some programs, the set of legal method sequences is much smallerthan the set of all possible sequences; without a formalspecification of legal sequences, an input generator is bound toproduce mostly illegal sequences.We propose a scalable technique that combines dynamic analysis withrandom testing to help an input generator create legal test inputswithout a formal specification, even for programs in whichmost sequences are illegal. The technique uses an example executionof the program to infer a model of legal call sequences, and usesthe model to guide a random input generator towards legal butbehaviorally-diverse sequences.We have implemented our technique for Java, in a tool calledPalulu, and evaluated its effectiveness in creating legal inputsfor real programs. Our experimental results indicate that thetechnique is effective and scalable. Our preliminary evaluationindicates that the technique can quickly generate legal sequencesfor complex inputs: in a case study, Palulu created legal testinputs in seconds for a set of complex classes, for which it took anexpert thirty minutes to generate a single legal input

    Evaluación de técnicas y sistemas de procesamiento de data streams

    Get PDF
    Los sistemas y técnicas tradicionales para el procesamiento de datos no resultan adecuados en contextos donde existe un flujo de entrada continuo de datos altamente dinámicos (por ejemplo, en aplicaciones de monitorización, redes de sensores, etc.). Así, a diferencia de lo que sucede en un gestor de bases de datos tradicional, no podemos asumir que vamos a poder ejecutar consultas sobre un conjunto finito y estático de datos almacenados. Al contrario, tenemos que considerar situaciones en las que no es posible almacenar el conjunto completo de datos de entrada y donde las consultas van a estar ejecutándose de forma continua conforme llegan nuevos datos, en lugar de como una consulta instantánea donde únicamente se obtiene una respuesta. Este nuevo entorno tiene implicaciones en múltiples aspectos, tanto en lo referente a algoritmos de procesamiento de consultas, arquitecturas y técnicas de gestión de datos, como en la definición de nuevos lenguajes de consulta y operadores adecuados para manejar conjuntos ilimitados de datos. A lo largo del tiempo, han ido surgiendo diversas propuestas y sistemas para el procesamiento de estos flujos de datos (denominados en la literatura "data streams"). Se considerarán diversos sistemas existentes, como STREAM (Stanford University), Cougar (Cornell University), Aurora/Borealis (Brandeis University, Brown University, MIT),TinyDB (Berkeley University), NiagaraCQ (University of Wisconsin-Madison), TelegraphCQ (University of California, Berkeley), Nile (Purdue Univesity), Gigascope (AT&T Labs), ATLAS (INRIA - Institut National de Recherche en Informatique et en Automatique) o PLACE (Purdue Univesity) analizando en más detalle los sistemas que se consideren más relevantes. Se determinarán las características más destacables de cada aproximación, así como el estado del arte en relación a la aplicación de estos sistemas en entornos más novedosos, como entornos móviles, entornos distribuidos y redes de vehículos. Los objetivos de este Trabajo de Fin de Máster son: -Introducirse en la problemática del procesamiento de data streams. -Estudiar las aproximaciones existentes. -Comparar las propuestas más significativas, tanto cualitativamente como experimentalmente en los casos en los que se tenga acceso al prototipo. Como resultado del trabajo, se elaborará un documento con el estudio realizado y los resultados de la comparativa, que sirva como resumen del estado del arte en el campo. Se considerará el envío de dicho trabajo para su evaluación a alguna conferencia o revista relevante

    Pluggable type-checking for custom type qualifiers in Java

    Get PDF
    We have created a framework for adding custom type qualifiers to the Javalanguage in a backward-compatible way. The type system designer definesthe qualifiers and creates a compiler plug-in that enforces theirsemantics. Programmers can write the type qualifiers in their programs andbe informed of errors or assured that the program is free of those errors.The system builds on existing Java tools and APIs.In order to evaluate our framework, we have written four type-checkersusing the framework: for a non-null type system that can detect andprevent null pointer errors; for an interned type system that can detectand prevent equality-checking errors; for a reference immutability typesystem, Javari, that can detect and prevent mutation errors; and for areference and object immutability type system, IGJ, that can detect andprevent even more mutation errors. We have conducted case studies usingeach checker to find real errors in existing software. These case studiesdemonstrate that the checkers and the framework are practical and useful

    Inference of reference immutability in Java

    Get PDF
    Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2008.This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.Includes bibliographical references (p. 81-83).Javari is an extension of Java that supports reference immutability constraints. Programmers write Javari type qualifiers, such as the readonly type qualifier, in their programs, and the Javari typechecker detects mutation errors (incorrect side effects) or verifies their absence. While case studies have demonstrated the practicality and value of Javari, a barrier to usability remains in the development process. A Javari program will not typecheck unless all the references in the APIs of libraries it uses are annotated with Javari type qualifiers. Manually converting existing Java libraries to Javari is both tedious and error-prone; the development process requires an automated solution. This thesis presents an algorithm for statically inferring reference immutability in Javari. The flow-insensitive and context-sensitive algorithm is sound and produces a set of qualifiers that typecheck in Javari. The algorithm is precise in that it infers the most readonly qualifiers possible; adding any additional readonly qualifiers will cause the program to not typecheck. A tool, Javarifier, implements this algorithm in order to infer the Javari type qualifiers over a set of class files. Javarifier can also insert these qualifiers into the corresponding source code, if the source code is available. Javarifier automatically converts Java libraries to Javari. Additionally, Javarifier eases the task of converting legacy programs to Javari by inferring the mutability of every reference in a program. In case studies, Javarifier correctly inferred mutability over Java programs of up to 110 KLOC.by Jaime QuinonezM.Eng

    Multi-dimensional data indexing and range query processing via Voronoi diagram for internet of things

    Get PDF
    In a typical Internet of Things (IoT) deployment such as smart cities and Industry 4.0, the amount of sensory data collected from physical world is significant and wide-ranging. Processing large amount of real-time data from the diverse IoT devices is challenging. For example, in IoT environment, wireless sensor networks (WSN) are typically used for the monitoring and collecting of data in some geographic area. Spatial range queries with location constraints to facilitate data indexing are traditionally employed in such applications, which allows the querying and managing the data based on SQL structure. One particular challenge is to minimize communication cost and storage requirements in multi-dimensional data indexing approaches. In this paper, we present an energy- and time-efficient multidimensional data indexing scheme, which is designed to answer range query. Specifically, we propose data indexing methods which utilize hierarchical indexing structures, using binary space partitioning (BSP), such as kd-tree, quad-tree, k-means clustering, and Voronoi-based methods to provide more efficient routing with less latency. Simulation results demonstrate that the Voronoi Diagram-based algorithm minimizes the average energy consumption and query response time

    Dynamically fighting bugs : prevention, detection and elimination

    Get PDF
    Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2009.Cataloged from PDF version of thesis.Includes bibliographical references (p. 147-160).This dissertation presents three test-generation techniques that are used to improve software quality. Each of our techniques targets bugs that are found by different stake-holders: developers, testers, and maintainers. We implemented and evaluated our techniques on real code. We present the design of each tool and conduct experimental evaluation of the tools with available alternatives. Developers need to prevent regression errors when they create new functionality. This dissertation presents a technique that helps developers prevent regression errors in object-oriented programs by automatically generating unit-level regression tests. Our technique generates regressions tests by using models created dynamically from example executions. In our evaluation, our technique created effective regression tests, and achieved good coverage even for programs with constrained APIs. Testers need to detect bugs in programs. This dissertation presents a technique that helps testers detect and localize bugs in web applications. Our technique automatically creates tests that expose failures by combining dynamic test generation with explicit state model checking. In our evaluation, our technique discovered hundreds of faults in real applications. Maintainers have to reproduce failing executions in order to eliminate bugs found in deployed programs. This dissertation presents a technique that helps maintainers eliminate bugs by generating tests that reproduce failing executions. Our technique automatically generates tests that reproduce the failed executions by monitoring methods and storing optimized states of method arguments.(cont.) In our evaluation, our technique reproduced failures with low overhead in real programs Analyses need to avoid unnecessary computations in order to scale. This dissertation presents a technique that helps our other techniques to scale by inferring the mutability classification of arguments. Our technique classifies mutability by combining both static analyses and a novel dynamic mutability analysis. In our evaluation, our technique efficiently and correctly classified most of the arguments for programs with more than hundred thousand lines of code.by Shay Artzi.Ph.D

    Desarrollo de un administrador de base de datos relacional tecnodb

    Get PDF
    Se construirá un motor que mostrará el funcionamiento de administración de una base de datos que permita conocer en forma práctica la resolución de consultas y transacciones (select, insert, update, delete, etc.) con filas de tablas almacenadas en el mismo. El motor de base de datos a construir contará con un monitor que permita dar visibilidad sobre el proceso que se ejecuta internamente ante cada consulta, reflejando el álgebra relacional y permitiendo evaluar si los resultados son los pretendidos, a la vez que se pueda comparar la eficiencia lograda con diferentes construcciones lógicas. Esta funcionalidad no se encuentra presente en los motores comerciales de difusión actual. Para lograr estas funcionalidades deberá contar con un modelo de datos que almacene los Metadatos (información sobre las tablas, columnas, constraints o restricciones, índices existentes en la Base de datos) llamado generalmente Diccionario. Asimismo, el motor deberá proporcionar información sobre tiempos de búsqueda, inserción, borrado y actualización de filas en las tablas de la Base de Datos, conjuntamente con comparaciones de los mismos utilizando diferentes índices y sin valerse de éstos a los efectos de que pueda realizarse comparaciones. El motor prestará servicios a través de redes TCP/IP y para la transmisión de consultas y sus respectivos resultados se utilizará XML. Para posibilitar el acceso al motor desde aplicaciones se desarrollará un driver JDBC. Se desarrollará complementariamente, una interfaz gráfica para facilitar la creación de consultas en lenguaje SQL. Además, se prevé que podrá establecer filtros, subconsultas, criterios y restricciones de agrupamientos y reglas de ordenamiento. Se pretende que la interfaz del motor desarrollado satisfaga el FASMI TEST, a la vez que se convierte en una herramienta útil para soportar la generación de procesos cognitivos en los estudiantes de cátedras que traten temas de bases de datos.Eje: Base de datosRed de Universidades con Carreras en Informática (RedUNCI

    TecnoDB una Base de Datos Relacional y Prometeo un metodo de aprovechamiento de Metadatos y Generador de Consultas

    Get PDF
    El presente trabajo describe brevemente el proyecto TecnoDB, iniciado en el año 2002, con acreditación de las Secretaria de Ciencia y Técnica de la Utn desde 2004 y finalizado en Diciembre de 2005. De ese proyecto se generó un grupo de trabajo para definir una heurística de explotación de metadatos y un software capaz de implementar esta metodología. Este conjunto de método y software ha sido denominado Prometeo y forma parte principal de este trabajo. Con el mismo nombre fue presentado y aprobado a la Agencia Córdoba Ciencia dentro del programa de Grupos de Reciente Formación año 2005. Contiene una síntesis del proyecto madre TecnoDB, que fue enviado y aprobado en la Wicc realizada en Neuquén, ahora con este apoyo de la Wicc y de la UTN Fac. Regional Córdoba, estamos difundiendo nuestra actividad y el producto de la misma. Este trabajo presentara luego del resumen de TecnoDB una síntesis de la Heurística y la descripción de la herramienta que esta siendo desarrollada, denominada Prometeo. Es para destacar la importancia del apoyo brindado por la Agencia Cordoba Ciencia y la Univ. Tecnologica Nacional a este grupo de trabajo para la continuidad de la tarea iniciada.Eje: Ingeniería de software y base de datosRed de Universidades con Carreras en Informática (RedUNCI
    corecore