CS 402Fall 2000 |
Suggested Projects |
Requirements
The client is currently developing some new hardware. When the hardware has been built, software will be needed to make the hardware useful. The client has designed an assembler language for the hardware and wants a translator for that assembler, as well as a linker/loader that will link and load assembled programs so that the hardware can run them.
In order to test out the assembler and have it ready for the completed hardware, it will be necessary to have an emulator for the hardware (a software package that acts like the hardware).
So, the project is to write three software packages that will work together: an emulator, an assembler, and a linker/loader.
Background: computer organization (CS 281)
Requirements
Genetic Algorithms (GAs) are the software equivalent of the Darwinian operators of natural selection and genetic recombination. GAs operate on a population of binary strings (genotypes). These binary strings can be decoded into solutions (phenotypes) to a particular computing problem. Each binary string is evaluated as to how well its decoding solves the computing problem. The binary strings are then ranked according to their success, the poorer performing strings are culled from the population, and the better performing strings are genetically recombined to create new strings for the population. The hope is that each successive generation of binary strings has better performing strings. In this project, you will code the basic operations of GAs. You will also then apply the GA operators to one or more computing solutions.
Background: Some experience with Artificial Intelligence will be helpful but is not required.
Requirements
The client requires software to store and search electronic bulletin board messages. It will be necessary to search for multiple connections. For example, one might ask for all messages by a particular author about a given subject written between two dates.
Currently the messages for some number of years are stored in files and can be searched sequentially, but this method is very slow and permits only single inquiries to be made. For example, one can ask for messages about a particular keyword, but cannot further restrict the responses by limiting them to those written by a particular author. Instead one must first receive all the messages about the given keyword and then all the messages by the designated author. This leaves the person to find the common messages from two sets of messages.
The new software will need to make the old messages available as well as new ones appearing each day. There are several bulletin boards to be stored and made ready to search. There is the possibility that from time to time new boards will need to be added and old boards removed.
Background: database
4. from GTE
Requirements
I call you. My call goes to switch 1 which routes it to gateway 2 which routes to process 3 which routes it to you. Each element (switch, gateway, process) makes a usage record. What we would like is to be able to tie these records together. Further, we would like to collect the usage data in near real-time.
5. from NASA
Requirements
Process data collected from surfaces so as to determine surface topography, i.e., heights of various parts of a surface. This project involves some optics (physics) as well as some graphics.
Background: physics, calculus, and graphics
6. from Picker
Requirements
The object of computed tomography is to determine the internal structure of a 2_D section (Greek tomos) of a 3_D volumetric object, from indirect measurements. In the case of a medical CT-scanner these are measurements of x-ray absorption.
In a conventional x-ray plate, each point represents the integral of the absorption of an x-ray along a line from the source to that point, as the x-ray travels through the 3-D object. If this line passes through some bone, then the integral is high, and a white dot appears. Tissue of various kinds, bone, etc. have different x-ray absorption coefficients. Thus the structure of a 3-D object can be thought of as a function of x,y,z that represents the x-ray absorption coefficient at the point (x,y,z). Our task is to reconstruct this 3 dimensional internal structure (of x-ray absorption coefficients) of an object from sufficiently many of these line integrals in different directions. Typically, the structure of a 3-D object is constructed by putting together the internal structures of a series of parallel 2-D plane section of that object, and each section is constructed using integrals along lines in different directions, but confined to the plane of that section.
Background: calculus
Below are three possibilities. All will be, more or less, centered around learning and using Java. In each case we write Applets, Servlets, and JSP. All cases will also require some working with various types of database engines. The first case is a "revisit" of the project we worked on last Spring. This project involves setting up a test environment to help both in evaluation and rehabilitation of stroke victims.
The second case uses the Omnis development environment (I have it available) for the database and we will then write Java interface utilities.
The third case will essentially allow the students to setup and operate a web server (I have a machine and necessary software) and design and write Java apps for it.