RECENT THESES

Philip T. Cox Faculty of Computer Science, Dalhousie University


Asymmetric Two-Handed Input for Mode Selection on Touchscreens

Michael Hackett MCS 2016

Abstract: Away from computers, most manual activities make use of both hands together. Consider how you chop vegetables, stir a pot, hammer a nail, or play a musical instrument; even in writing, the “off” hand plays a role in holding the work steady. However, current touchscreen interfaces, even though called “multi-touch”, rarely make effective use of more than one hand at a time. We performed an experiment to compare user performance and preference with a novel two-handed interface and the standard one-handed interface of current touchscreen tablet devices. We found that, even though none of the participants had previously used a bimanual touch interface before, nearly all performed the task faster with the new interface, and most found it smoother and more enjoyable to use. Our results suggest that, in certain applications, bimanual interfaces should be considered when designing new software for touch-based devices.


AC-Nuggets: AN IDE for Programming by Concept

Lakshmi Deepak Yalamanchili MCS 2013

Abstract: Spreadsheets for critical applications, such as financial reporting, are widely created and used by many people with no expertise in programming or software development. It is well known, however, that creating spreadsheets is an error-prone process. Several methodologies have been designed to reduce these errors. In this thesis we characterise the patterns and functional relationships among the formula cells and the corresponding data cells that commonly occur in spreadsheets, and show how the patterns occurring in a given sheet can be generalised to produce a template structure representing the family of spreadsheets of which the given sheet is a member. Finally, we show how this generalisation can be translated into an L-sheets program from which instances of this family can be generated.


Inferring Templates from Spreadsheets

Kamrooz Ghazinour Naini MCS 2011

Abstract: Spreadsheets for critical applications, such as financial reporting, are widely created and used by many people with no expertise in programming or software development. It is well known, however, that creating spreadsheets is an error-prone process. Several methodologies have been designed to reduce these errors. In this thesis we characterise the patterns and functional relationships among the formula cells and the corresponding data cells that commonly occur in spreadsheets, and show how the patterns occurring in a given sheet can be generalised to produce a template structure representing the family of spreadsheets of which the given sheet is a member. Finally, we show how this generalisation can be translated into an L-sheets program from which instances of this family can be generated.


Semantic Comparison of Structured Visual Dataflow Programs

Anh Dang MCS 2009

Abstract: The diff utility is an important basic tool, providing a foundation for many of the fundamental practices of software development, such as source code management. While there are many file differencing tools for textual programming languages, including some that look at more than simple textual variations, there are few for visual programming languages. We present an algorithm for comparing programs in structured visual dataflow languages; that is, languages in which dataflow diagrams are embedded in control structures. Using either subgraph or maximum common subgraph isomorphism for matching dataflow diagrams, our algorithm compares programs to determine whether they are semantically equivalent, and if not, to discover the differences between them. We use the visual language Prograph for illustration; however, the mechanism we are proposing could be applied to any controlled dataflow language, such as LabVIEW.


Programming Parametrised Geometric Objects in a Visual Design Language

Omid Banyasad PhD 2006

Abstract: A homogeneous view of the components of a parameterised structured design and the programming constructs used for its creation in a design environment has been the major motivation for creating Language for Structured Design (LSD), a visual design language for programming parameterised geometric objects. LSD is based on Lograph, a visual logic programming language, and therefore deals with the syntactical aspects of integrating solids in the programming world, but has no notion of solids in the design world. Hence, LSD needs to utilise a capable solid modeling package in order to achieve its objectives. In another thread, as a visual programming language LSD could substantially benefit from a carefully designed visual programming environment.

Accordingly, the research reported here proceeds on two fronts to build the backbone of a debugging environment for LSD. First, we study the foundations of a solid modeling system to serve as the back-end of LSD . Second, we build the mechanics of a debugging environment to utilise the intended solid modeler in conjunction with the logic aspects of LSD programs.

To achieve our first objective, we build on the previous formal model of solids for LSD to support the computation of sample looks of objects, required for their depiction in LSD programs and during the execution of LSD, formally define single and multiple behaviours for solids, and the motion of solids. We also show how our formal model can be put into practice by developing a translator which translates solids created in LSD to their representations in the PLaSM language.

In order to achieve our second goal, we study certain practical aspects of Lograph which will serve as the underlying language for LSD . This includes extending Lograph to obtain Lograph+C which supports constraint processing, devising an execution mechanism for Lograph and designing an interpreter engine to provide desirable debugging features such as single step execution of LSD programs in both forward and reverse directions, just-in-time pro- gramming, lazy design component selection and undo of execution steps. We also present an automatic layout algorithm for dynamically adjusting the layout of queries during animated execution.


Transforming Visual Programs into Java and Vice Versa

Lei Dong MCS 2002

Abstract: There are many Java-based software development tools that use visualisations to some extent. Some use visual representations for high-level system modelling. Others provide visual GUI editing facilities. None, however, provides complete visualisations of algorithms, and allows the developer to program algorithms by building such visualisations. There are many studies which indicate that visual programming can contribute significantly to the productivity of professional software developers, and the quality of the code they produce. However, developers of software for industrial or commercial purposes usually adhere to accepted programming standards, so in order for a visual language to be adopted, it needs to adhere to such a standard.

JGraph is a visual language for general purpose programming which is based on the Prograph model of data flow. In addition, JGraph also incorporates the main features of Java, and might, therefore, be acceptable to professional developers. For JGraph to be adopted, however, certain tools would be necessary to facilitate the combination of visual and textual programming. In an effort to develop such tools, we have begun to investigate the process of translating JGraph programs into Java and vice versa. We report our preliminary results here.


A General Model for Component-based Software

Baoming Song MCS 2000

Abstract: Component technologies have become the buzzword in today’s software engineering communities. Component technologies empower software engineers to produce a higher quality, more reliable, and more maintainable software solutions in a shorter time and within a limited budget.

This thesis presents a general model for component-based software. The model precisely specifies component-based software with sound basis mathematics. It captures the essence of currently most popular component technologies like JavaBean, COM, and CORBA. It will help people understand concepts of component technologies more easily and also it could be used as a standing point to develop a formal testing and verification methodology for component technologies.

To verify the applicability of the general model, a prototype for the general model has been presented in this thesis. The prototype is implemented as a visual programming integrated development environment that takes full advantages of component-based technology and visual programming concepts. The prototype has proved that the general model for component-based software is applicable.


A Visual Programming Environment for Autonomous Robots

Omid Banyasad MCS 2000

Abstract: Until relatively recently computer programmers had to use machine-oriented programming languages owing to the fact that memory and processing power were insufficient for both computation and complex human-computer interaction. Computers today are equipped with larger memory capacity and offer much higher processing power. Visual programming is one of the many research fields that has emerged and become active as a result of this technological advancement. Recently, there has been considerable interest in applying visual programming languages to robot control. In this work, we will introduce the reader to our proposed visual language for programming autonomous robots. In this system the physical characteristics of a specific robot can be incorporated with the general syntax and semantics of the underlying control architecture to provide both generality and domain specificity. This has been accomplished by dividing the programming system into two major modules; Hardware Definition Module or HDM and Software Definition Module or SDM. This work focuses on the second module SDM and describes in detail how a control program is created by using the models previously generated in HDM. We also present a com-plete and precise reformulation of the subsumption architecture for robot control on which our system is based.


Extending Scientific Visualization into the World Wide Web

Zhihong Gao MCS 1998

Abstract: Scientific visualization (SciVis) software generates graphical representations of data as a means of gaining understanding and insight into the data. Most in-house SciVis applications exist in scientific organizations, but these useful legacy applications are not widely distributed, making it difficult for multiple users in different locations to access them. The dramatic increase in the use of the Internet gives these SciVis software owners an opportunity to give a wider range of users remote access to their SciVis tools.

We propose a simple and quick standard re-engineering method to provide remote access to such legacy applications, following a systematic study of the issues involved in extending scientific visualization applications in this way.

In approaching this re-engineering problem, we have built upon two existing models: DiBiase’s sequence model for scientific visualization and the visualization pipeline architecture.

DiBiase’s SciVis sequence model, which has a great influence on the design and development of SciVis systems, has been extended to account for the issues relating to remote access. A model is proposed to extend SciVis into the global realm and to provide a basis for SciVis tools to be used for Web publication and public service.

The visualization pipeline, a high-level design architecture for SciVis, is also extended in our work, forming the re-engineering foundation. According to our extended visualization pipeline architecture, a general client/server approach for re-engineering an in-house SciVis application into one suitable for public use is illustrated with the Web as a low-cost deployment medium.

Our approach is demonstrated by re-engineering existing display software for geographic data developed at the Geological Survey of Canada (Atlantic), to provide a visualization client for the Web.