5 research outputs found

    The algorithm designer project : a visual programming environment for data structure demonstration

    Get PDF
    Previous work on pedagogical tools for teaching students algorithms has focused on high level animations of the algorithms. This dissertation describes a tool that gives instructors the ability to pictorially demonstrate the implementation of algorithms at the data structure level.The Algorithm Designer Project explores the use of a computer as an electronic whiteboard for instruction of computer science. It improves upon the traditional physical blackboardenvironment by providing syntactic and semantic support for data structure design and algorithm demonstration. The ultimate goal of this project is to provide an attractive, easy to use, system through which users can demonstrate simple algorithms and data structures,such as those presented in data structures textbooks. The project consists of three components: Data Structure Designer, Algorithm Designer, and Rule Designer. DataStructure Designer allows users to design and customize the appearance of data structures that they intend to use to create visual programs. Concrete examples of these data structures can be placed into Algorithm Designer and directly manipulated to demonstrate algorithms.Visual programs are programs written using pictures instead of, or in conjunction with,text. Rule Designer allows the creation and manipulation of transition rules to define visual program scripts to act upon Algorithm Designer objects. The project was implemented using the Amulet toolkit and runs on Macintosh, Windows, and UNIX platforms.A key insight discovered during development of the Algorithm Designer Project was that although textbooks employ a wide variety of data structure visualizations, the differences between these visualizations can be grouped into a small number of categories. Two unique interface items were developed during the course of the research: 1) a color mapping widget interface item that provides an easy way for the user to associate a set of colors with a range of values in a data structure visualization and 2) seeds\u27\u27 and holes, a mechanism for visually identifying and supporting type-specific semantic behavior for edge-based data structures. Finally, this dissertation describes a novel use of imperative programming constructs within a pictorial rewrite rule-based scripting system and a novel use of these rules for teaching conventional imperative programming

    Uma ferramenta para auxiliar no ensino de estruturas de dados como tipo de dado abstrato

    Get PDF
    Orientador : Beatriz Mascia DaltriniTese (doutorado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eletrica e de ComputaçãoDoutorad

    Sistematização da animação de programas : proposta de um novo sistema para construção automática e sistemática de animações de programas

    Get PDF
    Este documento apresenta e discute a tese de doutoramento da autora. Defendendo a importância da visualização e animação de programas, esta dissertação aborda temas relacionados com a representação visual, estática e dinâmica, dos conceitos envolvidos nos programas de computador: variáveis, operações, instruções de entrada/saída e de controlo, fluxo de dados e de execução. O trabalho teve como principais objectivos aprofundar conhecimentos sobre os conceitos de animação e visualização de programas, rever os sistemas de animação existentes e propor algo inovador nesta área, no sentido da automatização e generalização do processo de construção dessas animações. Por automatização entende-se a capacidade de criar o visualizador/animador a partir de um programa fonte, sem custo adicional para o utilizador. Por generalização entende-se a sua adaptação a diferentes algoritmos e linguagens fonte. Para alem do estudo do estado actual da arte de animar programas, foi criado um sistema de classificação dos animadores existentes e foram efectuadas análises comparativas dos mesmos. E então proposto um novo sistema chamado Alma que separa o processo em front-end e back-end e usa uma representação intermédia universal para atingir a sistematização pretendida. No documento são apresentadas todas as especificações relativas a este sistema, assim como, diversos detalhes técnicos da sua prototipagem. A arquitectura concebida para o Alma, baseada em motores e regras de transformação independentes, concede-lhe um carácter extensível sendo, por isso, possível adaptá-lo facilmente a diferentes visualizações e diferentes paradigmas.The PHD Thesis of the author is presented and discussed in this document. In this work, the author defends the usefulness of program animation and visualization, discussing subjects related with the visual representation of the concepts present in computer programs, such as: variables, operations, input and output statements, data and control flow. After getting a deeper knowledge about animation and visualization of programs, the work proceeded studying existing animation systems, attaining the definition of a classification criteria. Applying that criteria, those systems were grouped by their main characteristics, allowing to compare them and the identification of a class where a solution was lacking. The main contribution of this thesis is a system aiming at filling that gap. This proposal intends to automatize and generalize the construction of animation systems from the formal definition of programming languages. Automatization means the ability to generate a visualizer and animator program for a given programming language from its grammatical specification without the human intervention. Generalization means the ability of the generator to couple with different algorithms and programming paradigms. The proposed visualizer and animator is not algorithm neither language dependent; it processes any program in languages for which an appropriated parser was generated. Moreover, the animation does not require the use of special data types nor special annotations. The new system, called Alma, separates the front-end process from the back-end one and uses an universal intermediate representation in order to achieve the desired systematization. In this document, the system specification and technical details about Alma prototype are discussed. The system architecture, based on independent transformation rules and engines, allows to obtain an open system: it is easy to modify or add rewriting rules and drawings in order to process programs in different paradigms and to produce different visual results.PRODEP - Medida 5 Acção 5.2 ; Instituto Politécnico de Bragança

    Aufbereitung von Shapeanalyseausgaben zur Visualisierung der abstrakten Programmausführung

    Get PDF
    Diese Arbeit behandelt einen Ansatz zur Algorithmenvisualisierung von zeigerbasierten Programmen. Während traditionell die Programmausführung für konkrete Daten visualisiert wird, stützt sich dieser Ansatz auf die abstrakte Programmausführung. Dazu wird vorab mittels Shapeanalyse, einer auf Logik basierenden parametrischen statischen Programmanalysetechnik, eine Beschreibung der an den Programmpunkten auftretenden abstrakten Heapstrukturen berechnet. Diese Shapegraphenmengen sind jedoch in der Regel für eine direkte Visualisierung zu groß. Ein zentrales Thema dieser Arbeit ist die Entwicklung von Methoden, die Analyseausgabe vor der eigentlichen Visualisierung aufzubereiten. Sie führen sowohl zu einer Reduktion der Komplexität als auch zu einer gesteigerten Wirksamkeit der Visualisierung. Im Vordergrund stehen Methoden zur Strukturierung der Analyseausgabe. Ein Ähnlichkeitskonzept gestattet es, bezüglich verschiedener parametrischer Ähnlichkeitsbegriffe zu abstrahieren. Auf diese Weise werden ähnliche Heapstrukturen und ähnliche Programmausführungen identiziert und zusammengefasst. Mit gleicher Absicht wird ein Konzept zur Ausnutzung von Symmetrie eingeführt. Ergänzend werden Methoden vorgestellt, welche die in einer Menge von Shapegraphen enthaltenen Informationen verdichten. Zu den darüber hinaus behandelten Themen gehören Methoden, die Hilfestellungen bei der Traversierung durch die abstrakte Programmausführung bieten.This work presents an approach to algorithm visualisation of pointer based programs. While traditionally the execution of a program is visualised for concrete data, our approach is based on abstract program execution. Using shape analysis, which is a logic based parametric static program analysis technique, a description of the abstract heap situations that can occur at each program point is computed in advance. However, the resulting sets of shape graphs are generally too large to be visualised directly. A central topic of this work is the development of methods for preparing the analysis output before the actual visualisation. This results in complexity reduction as well as in increased efficiency with respect to visualisation. The focus lies on methods for structuring the analysis output. A similarity concept allows abstraction with respect to various parametric similarity notions. This way similar heap structures and similar execution paths are identied and summarised. With the same purpose in mind, a concept of taking advantage of symmetry is introduced. Additionally, methods are presented that condense the information contained in sets of shape graphs. Further topics include methods that assist in the traversal of the abstract program execution

    Teaching Binary Tree Algorithms through Visual Programming

    No full text
    In this paper, we show how visual programming can be used to teach binary tree algorithms. In our approach, the student implements a binary tree algorithm by manipulating abstract tree fragments (not necessarily just single nodes) in a visual way. This work contributes to visual programming research by combining elements of animation, programming, and proof to produce an educational visual programming tool. In addition, we introduce Opsis, a system we built to demonstrate the ideas in this paper. (Opsis is a Java applet and can be accessed at http://www.cs.washington.edu/homes/amir/Opsis.html.) We describe our experience with using Opsis in a data structures and algorithms course at the University of Washington. Finally, we make the claim that visual programming is an ideal way to teach data structure algorithms
    corecore