Many software maintenance problems are caused by using text editors to change programs. A more systematic and reliable way of performing program updates is to express changes with an update language. In particular, updates should preserve the syntax- and type-correctness of the transformed object programs. We describe an update calculus...
We describe the design of a domain-specific language (DSL) for the specification of generic ocean modeling tools, and we describe the
implementation of its compiler. The goal of the DSL is to allow the specification of widely usable tools for ocean modeling once, and to allow its translation into different...
Can collaborative filtering be successfully applied to digital
libraries in a manner that improves the effectiveness of the
library? Collaborative filtering systems remove the limitation of
traditional content-based search interfaces by using individuals to
evaluate and recommend information. We introduce an approach
where a digital library user specifies their need...
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...
End-user programmers are writing an unprecedented number of programs, primarily using languages and environments that incorporate a number of interactive and visual programming techniques. To help these users debug these programs, we have developed an entirely visual, interactive approach to fault localization. This paper presents the approach. We also present...
End users develop more software than any other group of programmers, using software authoring devices such as email filtering editors, by-demonstration macro builders, and spreadsheet environments. Despite this, there has been only a little research on finding ways to help these programmers with the dependability of the software they create....
A human-centric issue that has not been considered in
the design of end-user programming environments is
whether gender differences exist that are important to the
design of these environments. Ignoring this issue would
miss the opportunity of enhancing the effectiveness of
end-user programmers by incorporating appropriate
mechanisms to support gender-associated...
End users develop more software than any other group of programmers, using software authoring devices such as e-mail filtering editors, by-demonstration macro builders, and spreadsheet environments. Despite this, there has been only a little research on finding ways to help these programmers with the dependability of the software they create....
This project was based upon concepts presented in course readings related to the processes of cultural change (e.g., acculturation and cultural authentication). In particular, the project asked students to consider the cross-cultural design process presented by Lin (2007) in her scholarly article titled, “Transforming Taiwan aboriginal cultural features into modern...
Although gender differences in a technological world are receiving significant research attention, much of the research and practice has aimed at how society and education can impact the successes and retention of female computer science professionals—but the possibility of gender issues within software has received almost no attention. If gender...
Designing tensor fields in the plane and on surfaces
is a necessary task in many graphics applications, such as
painterly rendering, pen-and-ink sketch of smooth surfaces, and
anisotropic remeshing. In this paper, we present an interactive
design system that allows a user to create a wide variety of
surface tensor...
This paper presents qualitative results from interviews with knowledge workers about their recovery strategies after interruptions. Special focus is given to when these strategies fail due to the nature of the interruption and existing computer support. Potential solutions offered by participants to overcome some of these problems are presented. These...
Knowledge workers need to find information but even when it is stored on their local computer systems, finding it can be costly. There are many researchers working on solutions to reduce these costs, but there has been little research into exactly what these costs are, and what the ties are...
"Code coverage visualizations using block coverage neither guided developers
toward productive testing strategies, nor did these visualizations motivate
developers to write more tests or help them find more faults than the control
group. Nevertheless, code coverage visualizations did influence developers in a
few important ways. Code coverage visualizations led developers...
Although researchers have begun to explicitly support end-user programmers' debugging by providing information to help them find bugs, there is little research addressing the right content to communicate to these users. The specific semantic content of these debugging communications matters because, if the users are not actually seeking the information...
ExcelForms is a front end Excel-based application that supports Forms/3, a research
language based on the spreadsheet paradigm, end-user software engineering features.
The old implementation of ExcelForms performed poorly, and was considered
unstable, not robust, and not scalable enough for our users' needs. This project
addresses these issues by implementing...
Little is known about the strategies end-user programmers use in debugging their programs, and even less is known about gender differences that may exist in these strategies. Without this type of information, end-user programming systems cannot know the "target" at which to aim, if they are to support male and...
Although there have been a number of studies of
end-user software development tasks, few of them have
considered gender issues for real end-user developers
in real-world environments for end-user programming.
In order to be trusted, the results of such laboratory
studies must always be re-evaluated with fewer controls,
more closely...
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...
In an earlier paper we developed an intermediate representation for languages based on composition, and showed how the representation could facilitate generating code for functional languages, such as FP. In this paper we follow the same philosophical approach, using instead the applicative language APL. Further, we show how this intermediate...
Functional programming languages, such as Backus' FP, and high level expression oriented languages, such as APL, are examples of programming languages in which the primary method of program construction is the process of composition. In this paper we describe an approach to generating code for languages based on compositions. The...
This paper describes features of a new strongly typed, compiled programming language, called LEDA. LEDA attempts to combine aspects of both imperative (value-oriented) and logical (relation-oriented) styles of programming. Logical behavior is introduced by means of a new programming structure, called a relation. Relations have similarities to functions and procedures,...
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...
The lambda calculus has frequently been used as an intermediate representation for programming languages, particularly for functional programming language systems. We introduce two simple extensions to the lambda calculus that describe potentially parallel computations. These extensions permit us to use the lambda calculus as an intermediate form for languages that...
"This report describes the revised definition of the multiparadigm programming language Leda. The first section provides an introduction to Leda and a history of its development. Section 2 covers Leda preliminaries, section 3 details the overall structure of Leda programs. Declarations are discussed in section 4, expressions are the topic...
CLEDA is a new programming language descended from the multiparadigm, strongly typed, compiled programming language LEDA. In addition to the four paradigms supported by LEDA, which are imperative, functional, object-oriented, and relational, CLEDA supports the constraint logic programming paradigm. CLEDA is intended to be used to write applications that involve...
The N-Queens problem is commonly used to teach the programming technique of backtrack search. The N-Queens problem may also be used to illustrate the important concept of isomorphism. Here we show how the N-Queens problem can be used as a vehicle to teach the concepts of isomorphism, transformation groups or...
In this paper, we introduce a model-based reinforcement learning method called H-learning, which optimizes undiscounted average reward. We compare it with three other reinforcement learning methods in the domain of scheduling Automatic Guided Vehicles, transportation robots used in modern manufacturing plants and facilities. The four methods differ along two dimensions....
Augmented term rewriting (ATR) is a simple, uniform, and extensible computational model for constraint programming. Unfortunately, ATR cannot solve combinatorial constraint satisfaction problems (CCSPs). To enable solution of CCSPs, we introduce (don't know) nondeterminism into ATR via the choice expression, which identifies a set of possible values that may satisfy...
This note briefly discusses some of the classical results of McCulloch and Pitts. It then deals with some current research in neural nets. Several questions about neural nets are shown to be computationally difficult by showing that they are NP-Complete or worse. The size of neural nets necessary to compute...
Brief descriptions of the I/O requirements for four production oceanography programs running at Oregon State University are presented. The applications all rely exclusively on array-oriented, sequential file operations. Persistent files are used for checkpointing and movie making, while temporary files are used to store out-of-core data.
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...
This paper surveys sequential and parallel implementation techniques for functional programming languages, as well as optimizations that can improve their performance. Sequential implementations have evolved from simple interpreters to sophisticated super-combinator-based compilers, while most parallel implementations have explored a broad range of techniques. We analyze the purpose and function of...
Forms/3 is a declarative visual programming language that aims to provide general purpose programming language capabilities in a simple, form-based approach. This report provides an example-driven introduction to programming in Forms/3.
An important issue in engineering education is the availability of laboratory resources for student use. Using a computer network to link geographically distant students with laboratory teaching resources makes expensive and innovative equipment available to more students. At Oregon State University, we provide a working environment where remotely-located students can...
Despite years of research into human computer interaction (HCI), the environments programmers must use for problem-solving today—with separate modes and tools for writing, compiling, testing, visualizing, and debugging— derive their basic structure from historical accident, and take little advantage of HCI research into the cognitive issues of programming. Neglecting these...
Parallel languages rarely specify parallel I/O constructs, and existing commercial systems provide the programmer with a low-level I/O interface. We present design principles for integrating I/O into languages and show how these principles are applied to a virtual-processor-oriented language. We show how machine-independent modes are used to support both high...
"Fifty years after the pioneering work of McCulloch and Pitts, the study of neural nets is alive and active. In this paper, I have discussed some of the work that is of current interest to me and my co-workers. I would, perhaps, be remiss if I failed to mention some...
Data structures are more easily understood when they are presented visually rather than textually. We have developed a system, Calypso, to allow the visual definition of data structures programs using pictorial pattern/action pairs in an imperative setting. We present several examples including rebalancing an AVL tree and sorting an array...
"The specifi c problem addressed in this proposal is the development of
good approximation algorithms for solving problems that have partial observability. The model we propose associates costs with obtaining information about the current state. We want to predict when and how much it is necessary to observe. We want...
Many machine learning applications require classifiers that minimize an asymmetric loss function rather than the raw misclassification rate. We study methods for modifying C4.5 to incorporate
arbitrary loss matrices. One way to incorporate loss information
into C4.5 is to manipulate the weights assigned to the examples
from different classes. For...
This report outlines the current evacuation plan for Oregon State University's Hatfield Marine Science Center and makes recommendations for enhancements and changes. The physical setting is described along with detail on evacuation strategies. Recommendations include reducing personnel working on the South Beach Peninsula, improving current evacuation point, improving communication and...
The history of school spirit and tradition at Oregon State University is explored, with emphasis on orgins and the impacts of World War I, World War II, and the Anti-Establishment movement.
We consider learning tree patterns from queries extending
our preceding work [Amoth, Cull, & Tadepalli,
1998]. The instances in this paper are unordered
trees with nodes labeled by constant identifiers.
The concepts are tree patterns and unions
of tree patterns (unordered forests) with leaves labeled
with constants or variables. A...
Approximate string matching is commonly used to align genetic sequences (DNA or RNA) to determine their shared
characteristics. Most genetic string matching methods are based on the edit-distance model, which does not provide
alignments for inversions and translocations. Recently, a heuristic called the Walking Tree Method [2, 3] has been...
End-user programmers are writing an unprecedented number of programs, due in large part to the significant effort put forth to bring programming power to end users. Unfortunately, this effort has not been supplemented by a comparable effort to increase the correctness of these often faulty programs. To address this need,...
Spreadsheet languages, which include commercial spreadsheets and various research systems, have proven to be flexible tools in many settings. Research shows, however, that spreadsheets often contain faults. This thesis presents an integrated testing and fault localization methodology for spreadsheets. This methodology allows spreadsheet developers to engage in modeless development, testing...
This paper presents an empirical approach for measuring and characterizing the responsiveness of a character to changes in goal. Our approach is based on keeping track of the character's progress towards a frequently changing goal. A "distance-to-goal" function is defined to measure the progress. We then calculate an asymptotic proportion...