The VISualization of Terrestrial and Aquatic Systems (VISTAS) software development project began with the proposition that visualization would increase the ability of scientists to explore and communicate their data, especially complex datasets that span multiple spatial and temporal scales. A case study of VISTAS articulates how and why scientists intend...
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...
In 2004 the National Toxicology Program published an article describing their intent to pursue toxicology testing and risk assessment practices solely reliant on high throughput in vitro datasets and in silico modeling for dose-response assessments. Support and contributions form regulatory agencies and a significant portion of the life sciences community...
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...
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...
Mutation analysis is often used to compare the effectiveness of different test suites or testing techniques. One of the main assumptions underlying this technique is the Competent Programmer Hypothesis, which proposes that programs are very close to a correct version, or that the difference between current and correct code for...
In 1995 my students and I developed Leda, a multiparadigm language based on the Pascal model. Leda allowed programmers to create abstractions in an object-oriented, functional, or logic programming style. More recently we have been interested in recreating this work, but this time using Java as the language basis. The...
Multiparadigm languages are languages that are designed to support more than one style of programming. Leda is a strongly-typed multiparadigm programming language that supports imperative, functional, object-oriented, and logic programming. The constraint programming paradigm is a declarative style of programming where the programmer is able to state relationships among some...
Until now, attempts to extend the one-way constraint evaluation model of the spreadsheet paradigm to support complex objects, such as colored circles or user-defined types, have led to approaches featuring either a direct way of creating objects graphically or strong compatibility with the spreadsheet paradigm, but not both. This inability...
Visual programming languages employ visual representation to make programming easier and make programs more reliable and more accessible. Visual program testing becomes increasingly important as more and more visual programming languages and visual programming environments come into real use. In this work, we focus on one important class of visual...
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...
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...
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...
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...
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...
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...
Formal methods using text to specify abstract data types (ADTs) are powerful, but they require great effort and a high level of expertise. Visual programming languages present an alternative way of programming but are limited to building small programs. This research presents an approach for specifying ADTs using a combination...
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...
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...
We report on geochemical data from anoxic sequences of the Nicobar Fan, recovered during International Ocean Discovery Program (IODP) expedition 362 to the Sumatra subduction zone. Analyses include strontium and carbon isotope composition of pore fluids, elemental and isotopic composition of carbonate concretions, and whole sediment analyses.
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...
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....
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...
Chromium spills on soils are causing severe groundwater contamination
problems. To increase the performance of cleanup methods, the chemical behavior
of chromium in soils and its transport through soils have to be understood. The
objectives of this research were to investigate the sorption characteristics of
chromium(VI) in soil and to...
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...
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...
In previous work, the Idea Garden was created to help those relatively new to programming overcome their barriers in CoScripter. The goal of this thesis was to generalize the Idea Garden's success to other users and environments. We present a set of principles on how to help EUPs like this...
Agricultural systems are inherently complex; understanding these systems requires knowledge of climatology, plant physiology, soil physics, economics, and the human psychology of the farmers themselves. Decision support tools strive to leverage existing data to help guide stakeholders towards the best policies and practices for their situation. Quantitative crop simulation models...
The Rust programming language is a systems programming language with a strong static type system. A central feature of Rust’s type system is its unique concept of “ownership”, which enables Rust to give a user safe, low-level control over resources without the overhead of garbage collection. In Haskell, most data...
Monte-Carlo Tree Search (MCTS) is an online-planning algorithm for decision-theoretic planning in domains with stochastic and combinatorial structure. The general applicability of MCTS makes it an ideal first choice to investigate when developing planners for complex applications requiring automated control and planning. The first contribution of this thesis is to...
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...
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...
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...
We introduce a visual specification language for spreadsheets that allows the definition of spreadsheet templates. These templates are used by a spreadsheet generator to create Excel spreadsheets that are probably free from a large class of errors, such as reference, omission, and type errors. We demonstrate how spreadsheets can be...
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....