This thesis describes the implementation of an interface for querying established correspondences between anatomical structures across species. I was the main developer of this query engine, called the Comparative Anatomy Information System. My work involved developing methods to query the knowledge base, perform the specified comparison, display the anatomical hierarchies...
This thesis presents a domain specific visual language designed to allow coaches to create content that exhibits the complex 2D interactions observed in the game of American football. Coaches can visually program the content by using symbols and drawing primitives similar to those that they currently use to design static...
The code reuse problem is a common software engineering problem in scientific computing. As a prevailing programming language in many scientific fields, Fortran does not provide support to address this problem. One particular reason is that Fortran lacks the support for generic programming. By applying program-generation techniques, we developed two...
A real-time data acquisition/central system has been developed for
environmental monitoring and research. The basic elements of the system
are a large instrumented spar buoy, a computer which controls data acquisition
through a telemetry link and simultaneously files and analyzes the data,
and the investigator who prescribes appropriate sets of...
Memory hierarchy design is becoming more important as the speed gap be- tween processor and memory continues to grow. Investigations of memory perfor- mance have typically been conducted using trace-driven emulation, which could take tremendous resources (e.g. long emulation time, large storage requirements for traces, and high overall cost). Recent...
Multiparadigm programming languages are a recent development in the realm of programming languages. A multiparadigm programming language allows the use of multiple, differing programming paradigms without departing from a single, unified linguistic framework. Multiparadigm programming languages are claimed to have benefits to both pedagogy and complex application creation. The beneficial...
End users' programs are fraught with errors, costing companies millions of dollars. One reason may be that researchers and tool designers have not yet focused on end-user debugging strategies. To investigate this possibility, this dissertation presents eight empirical studies and a new strategy-based end-user debugging tool for Excel, called StratCel....
For the past thirty years the majority of the
research on the cognitive demands of learning computer
programming has assumed that successful computer
programmers display certain aptitudes. Some
researchers indicate that studies linking different
prerequisite profiles of abilities to different
programming outcomes are needed. Such research might
dispel many of...
Experimental game theory is the use of game theoretic abstractions—games, players, and strategies—in experiments and simulations. It is often used in cases where traditional, analytical game theory fails or is difficult to apply. This thesis collects three previously published papers that provide domain-specific language (DSL) support for defining and executing...
Object oriented programming languages are noted for their ability to allow users to quickly construct large software systems. They achieve this ability by allowing the programmer to concentrate on what it is they want to do, ignoring details of how that functionality is achieved. Such characteristics should make the object...
A generalized arithmetic package allows a programmer to think of numbers as abstract quantities, without regard to whether they are represented as integers, floating point values, fractions, complex numbers, or even polynomials. In this paper we describe two implementation techniques that can be used to produce a generalized arithmetic package...
Multiparadigm programming is a term used to describe a style of software development that makes use of facilities originally designed in support of a number of different programming language paradigms. In this paper we illustrate our conception of multiparadigm programming, by describing how various data structures can be implemented in...
Multiparadigm programming languages have been envisioned as a vehicle for constructing large and complex heterogeneous systems, such as a stock market exchange or a telecommunications network. General-purpose multiparadigm languages, as opposed to hybrid multiparadigm languages, embody several prevalent programming paradigms without being motivated by a single problem. One such language...
Researchers in the Forms/3 group have previously developed the WYSIWYT methodology, exploring a way of systematically testing spreadsheet languages. The previous work presented the WYSIWYT methodology for individual spreadsheet cells, and later partially extended it to large grids in which some cells share the same formula. The Forms/3 spreadsheet language...
Spreadsheet languages are the most commonly used end-user programming paradigm, yet spreadsheets commonly contain errors. Research shows that a significant number of spreadsheets (20%-40%) created by end users contain errors. In an attempt to reduce this error rate, this work presents an assertion propagation system for an end-user spreadsheet programming...
The purpose of this qualitative study was to describe how novice students solved computer programming problems in a beginning college level computer science (CS) course with an introduction to object-oriented programming (OOP) and what knowledge they obtained about OOP and computer problem solving (CPS) as a result of their experiences....
We have developed a web-based software tool for evaluating the potential risk of pesticides on the surrounding environment. The software tool is called Web-based Pesticide Screening Tool (Web-PST). It uses the formulas and standards specified by the Soil/Pesticide Interaction Screening Procedure Version II (SPISP II). Web-PST closely models the stand-alone...
In this report we present Java/MP, a multiparadigm language designed as an extension to Java. Java/MP is an
upward compatible superset of Java and incorporates the object oriented, functional and logical paradigms.
Java/MP programs are compatible with the standard Java virtual machine. Many of the ideas in Java/MP have
been...
The increasing need to share and synchronize personal information, such as schedules, tasks and events, amongst users has lead to the development of inter-personal information management software like ChandlerTM. Chandler is being developed in Python at the Open Source Applications Foundation, San Francisco. Before I started working on the project...
How can rigorous forms of testing be supported in a way that is both compatible with the visual aspect of visual programming languages, and usable by the audiences using those languages - even when the audience has no background in software engineering? Visual programs are likely to contain at least...