Cryptographic systems are used for secure communications in the government, in industry, and by individuals. Many cryptographic systems base their security on our inability to factor quickly. For this reason, in the last few decades several fast factoring algorithms have been developed. The Quadratic Sieve is one of the best...
With the strong shift toward network-centric cluster-computing workload management has become increasingly important in both industrial and academic environments. To fully harness the distributed computing resources of the 32 PC's in our department, I developed a workload monitoring system together with a few utilities for users to submit either sequential...
The purpose of this project is to study the benefit at large parking lots having shuttle busses by providing a system that dynamically routes a shuttle. The shuttle route will be set by the placement of the travelers returning from the terminal. A parking space is assigned to the incoming...
The problem addressed in this paper is that of usability of the Petri Net Editor used to create applications in the Objex framework. This editor puts a lot of burden on the user, in that the user needs to remember all the GUI resources previously created for the application, has...
A structural active-object systems (SAOS) is a, transition-based object-oriented system consisting of a collection of interacting structural active objects (SAOs), which can be structurally and hierarchically composed from their component SAOs. The behaviors of SAOs are determined by the transition statements provided in their class definitions. Various concurrent systems such...
Since its introduction in 1995 by Sun Microsystems, the Java programming language has been widely accepted by the software development community. Besides being a natural fit for Internet and World Wide Web (WWW) based applications, Java is also being used in other diverse application areas due to its simplicity, reduced...
Existing graphics systems are too large for students to study in an introductory computer graphics course. We have implemented a lightweight, object-oriented graphics system called OGS for instruction. OGS is written in Java. It demonstrates how a graphics system is implemented from scratch and is intended to help students understand...
In this paper, we describe a software mechanism, a software channel, that allows a group of distributed objects to communicate with each other automatically once they are connected to it. Software channels and predesigned distributed objects that are connected to them encapsulate the communication protocol and the network topology to...
A Kalman filter was developed to recover information on short period variations of ocean circulation from the satellite altimeter signals for the North Pacific Ocean. The ocean circulation at each grid point is specified by three variables: sea level height h, zonal velocity u, and meridional velocity v. In our...
This project is an interactive environment which allows the user to explore various sound generation techniques. The three methods of sound generation used are (1) FM synthesis, (2) Additive synthesis, and (3) Karplus/Strong synthesis of plucked strings. The project also provides the capability to display the generated sound waveforms and...
The SAOS Road Network Simulator (SARNS) is a graphical simulation program for transportation planning, implemented using the structural active-object system (SAOS) approach. A SAOS is an object-oriented concurrent system that consists of a collection of interacting structural active objects (SAOs), whose behaviors are determined by transition statements provided in their...
Visualization is a useful method to teach classes in algorithms and data structures. Many animation systems of algorithms and data structures have been implemented. In these systems, students can set initial conditions, run algorithms and view the result graphically. In this project, a small visualization tool library is implemented using...
In this paper, we present two systolic designs of a chip that can be used to perform Modular Multiplication. The time taken by these two designs is 5n and 3n respectively, where n is the number of digits. These designs are based on Montgomery's redc algorithm. We also present an...
Exception handling is a general purpose tool found in many modern programming language, but most work to date is based on textual languages. We present an approach to exception handling in a new context, the visual programming language Forms/3. The visual nature of Forms/3 supports an effective approach to exception...
A problem with a number of available parallel programming tools proposed and implemented by researchers is that there has been little consideration of the impact of the user interface on users outside the field of computer science.
In this paper we propose and implement Banger, an extension to the Parallel...
I present a new heuristic search approach to compute approximate answers for the probability query in belief nets. This approach can compute the 'best' bounds for a query in a period of any given time (if time permitted, it will get an exact value). It inherits the essence of Symbolic...
Forms are the most common means of interacting with databases. Database develop1;11ent products offer differing capabilities for creating forms. We will compare the form design features available using 4th Dimension and Oracle database products. These two products have the most complete set of features compared to other micro computer database...
Until now, most hypertext systems have been implemented on large scale computers. With improvements in microprocessors and development of graphical user interfaces, personal computers can run systems that previously needed the power of a mainframe. The low costs and widespread use of PCs will enable many people to use hypertext...
This report addresses the design and implementation of an internet-based grading tool for the "Translators" course. The motivation is to avoid exposing the instructor's Java byte-code to possible reverse-engineering tools and enable students to submit their homework virtually from any machine across the internet. This tool is intended to replace...
In this project we have designed a new construction method for t error correcting constant weight codes. This method is an improvement over the existing codes in terms of information rate. The construction method is recursive as it is based on the observation that 2t error correcting code can be...
Visualizing and navigating through a plan is difficult without graphics. Two X applications, PlanView and HViews, are graphical user interfaces to an AI planner, OPIE, developed at the University of Oregon. In addition to a plan generator, OPIE includes a facility to generate operator abstractions which in turn are used...
This paper describes the results of a research project to design new graphical user interlace to an existing applications software product, using the techniques of user-centered design. The project began with a literature review to determine the currently accepted methodology in the area of user-centered design, with emphasis on the...
To be competitive in the development and production of complex electronic systems, a company must constantly scrutinize its manufacturing processes to find ways to reduce costs and increase productivity. One of the more costly problems is the inability to troubleshoot and repair faulty circuit boards on the spot. Rather, they...
Preparing code for parallelization is one of the most time consuming programming tasks; approximately 24% of the program development activity is spend in this phase. In message passing systems, this is usually achieved by the addition of run-time message-passing library calls. The primitives provided by different message-passing libraries are similar,...
One of the main problems in debugging parallel programs is in determining how far a parallel program has executed when it crashes or stops. Even if the program dumps core files for all the parallel processes, the information is at such a low level that it is difficult to interpret...
Development of graphical user interface (GUI) applications is difficult since the process can be both complicated and tedious. We propose a solution directed at reducing programming time and effort required to build a GUI application. Our solution is based on the Petri Network, the Oregon SpeedCode Universe (OSU) Application Framework,...
Two types of parallel computers commonly used or solving large scientific problems are clusters of workstations and distributed-memory multicomputers. Each system has strengths and weaknesses for this task. Workstation clusters have a high performance to cost ratio and the advantage of the latest processors. Workstations are commonly under-utilized and can...
The processor allocation in an n-dimensional hypercube multiprocessor using buddy strategy, gray code strategy, and a new strategy is implemented on Macintosh. Our implementations show that when processor relinquishment is not considered (i.e. static allocation), all these strategies are optimal in the sense that each incoming request sequence is always...
Objex is an object-oriented framework for producing C++ applications through specialization of a class library and interaction model. The problem addressed in this report is that of automatically producing C++ source code from Petri Network design descriptions of applications constructed from Objex components.
The approach is to add a code...
This study describes the software metrics analysis of IO releases of an embedded real-time telephone switching system developed by a German telecommunications firm. The micro-controlled application was written in a C-like macro assembly language. We developed a metrics program that computes the standard complexity metrics plus a number of information...
Graphical user interface (GUI) applications based on object-oriented design are difficult to build without a supportive tool to graphically visualize the structure of the entire application. As an application becomes larger and more complex, it becomes harder to visualize its class hierarchy. Several systems, such as Smalltalk, MacApp, THINK C...
The goal of this project is to develop and implement an application which will facilitate the management and testing of computer communication networks. Such an application is commonly known as a network monitor or a network packet sniffer. In addition to the main goal of developing an application, there are...
To ease the process of building GUI applications, we constructed an object-oriented application framework called Objex which defines much of an application's standard user interface and operating behavior. By incorporating the MVC (Model-ViewController) interaction model in the framework, design as well as code is reused by all applications derived from...
A multiparadigm language is one which combines features of different language paradigms. Leda is a strongly typed, compiled, multi.paradigm language with facilities for imperative, functional, object oriented and relational programming. This report describes the type checker of the Leda compiler and the implementation of first class functions required for functional...
One of the tasks of image processing systems is to characterize images by thinning, or skeletonizing techniques. The standard method, based on a disk growing technique, often results in disconnected skeletons. Since the standard technique is based on a square grid system, the disk shape is also square. The. purpose...
When changes are made to programs - to enhance their functionality, to improve performance, to migrate from one language or machine to another, or to convert a serial program to parallel form - there is no easy way to verify that the changes maintain program correctness. Checking the final result...
We developed a scientific information management system to facilitate remote access and analysis of earth and space science data, using the Component Model of software development provided by the Java language. The data sets are part of the Earth Observing. System project, being carried out at the College of Oceanic...
The Java programming language is a recent entry in the family of object-oriented languages and like all new languages has yet to achieve widespread standardization of coding styles for the unique aspects it possesses. This paper and project address this issue by presenting a complete and rationalized style guide for...
High level data-parallel languages are easy to use and shield the programmer from machine specific details. A simple and efficient way of providing an interface to such languages is to develop a machine-independent compiler and a routing library, which isolates the low-level machine dependent communication functions, The compiler translates the...
The secondary structure of a 16S rRNA molecule is a graphical, two dimensional representation used by molecular biologists in determining evolutionary relationships between different organisms. By comparing two secondary structures, scientists can obtain knowledge of how 'related' one species of bacteria may be to another species [OLSE 1986]. To date,...
CHARM is a parallel programming language that was originally implemented for a network of workstations each of which has only one processor. In this project, we ported CHARM for a network of workstations each of which has more than one processor (multi-computer) using multithreading to exploit the multiple processors.
Network...
Applications supporting a graphical user interface (GUI) are difficult to write. While existing tools can accelerate software development, they suffer from a number of problems that limit their helpfulness. They offer too little functionality, and support only a small part of the GUI software development task. They lack architectural models...
We describe a set of data flow techniques and code transformations that translate a single instruction stream, multiple data stream (SIMD) Dataparallel C program into a semantically equivalent single program, multiple data stream (SPMD) C program suitable for execution on shared memory multiprocessor computers, such as the Sequent Balance and...
Scheduling problem has both theoretical and practical interest. A great deal of research has been done in this field. In this paper we will use a local optimal search method to do job shop scheduling. This method will be compared with a constraint satisfaction method called Micro-boss. Other issues such...
Dataparallel C is a SIMD style data-parallel programming language for MIMD computers. Dataparallel Chas been implemented on both shared memory (Sequent) and distributed memory (Intel and nCUBE) computers. Here we analyze the strengths and weaknesses of Dataparallel C by comparing the performance of compiled Dataparallel C programs with the performance...
Like other scientific fields, computer science is in great need of experimentation to support, improve, disprove and even establish theories. One area in which experimental results are highly desired involves regression testing, which is performed on modified software to provide confidence that the software behaves correctly and that modifications have...
The majority of database users interact with database systems by manipulating forms. This paper discusses the fundamental mechanisms underlying forms and considers how these mechanisms affect the behavior of forms. We then review the forms supported by commercial products. None of the packages reviewed provide all of the features that...
Dataparallel C has been designed for various kinds of architectures and was developed jointly at University of New Hampshire and Oregon State University.
This project dealt with porting the libraries to the nCUBE 2 system and helping a user compile his programs on nCUBE 2 directly from a Sun workstation...