CS 402

 Fall 2000

Suggested Projects

1. from TB Inc.

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)

2. from: Genetic Algorithms

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.

3. from JCC

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

  1. Given the wide variety of authentification and authorization (AA) protocols and shapes that AA data can take, this task is to provide a uniform source for AA across a system. The idea is that a variety of underlying components, each potentially with their own notions about AA, will have a "single" source. For the system user, we want to make the AA task simple (i.e., remember, as few user id’s and passwords as possible - if this is the AA approach). Issues include data synchronization and data mismatches.
  2. Define a central repository for customer profile data (items such as customer names, addresses, services held, common data across services) that allows third parties to either plug into it directly or uses a mechanism to share data.
  3. Define a protocol that allows any machine anywhere to collect usage data and send it to another place for processing. Usage data are items like call detail records - the information collected about every phone call (from number, to number, start time, end time, special billing numbers). This protocol should allow a service to register itself and then send data with ZERO tolerance for loss. Also, we would like to build complete stories through the usage data such as illustrated in the following example:

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

7. from Thornborough of Granville

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.


Return to:
CS402 page | Dr. Krone's Home page