The George Washington University
School of Engineering and Applied Science
Department of Computer Science

CSci 190 -- Real-Time Computer Systems -- Spring 2001
Prof. Michael B. Feldman

Programming Exercise
due dates: 
Feb. 14, 2001 (Ada 95)
Mar. 14, 2001 (Java)

It is, I hope, a safe assumption that advanced undergraduates and graduate students in Computer Science are able and willing to learn programming languages quickly.

The idea in this project is to get to know Ada 95 and Java, as well as play with concurrency, by setting up some sort procedures, starting them, and watching them run "simultaneously" by displaying the current states of the arrays they’re sorting at appropriate times. We want to have a “race” between the sort algorithms, and observe the race in progress. The screen might look like this at the start of the race:
 

         +------------------------------------------------------+           
         |Bubble Sort                                           |
         |------------------------------------------------------|
         | FONOCPFXSSJTPPGXVPRHNUMNYZBLYKUDIENVZVGAXEYLNCUKOSEX |
         +------------------------------------------------------+
         +------------------------------------------------------+           
         |Quick Sort                                            |
         |------------------------------------------------------|
         | FONOCPFXSSJTPPGXVPRHNUMNYZBLYKUDIENVZVGAXEYLNCUKOSEX |
         +------------------------------------------------------+
         +------------------------------------------------------+           
         |Shell Sort                                            |
         |------------------------------------------------------|
         | FONOCPFXSSJTPPGXVPRHNUMNYZBLYKUDIENVZVGAXEYLNCUKOSEX |
         +------------------------------------------------------+
 

At the end of the race all arrays will be sorted in ascending order. You can run my version of this program from a hobbes terminal window by typing ~csci190/sort_race.

In the program library for this course on the Unix network, located in ~csci190/adasource/sorting and ~csci190/javasource/sorting, you will (eventually) find several sort routines, a “mini-device driver” for VT100-type terminals, a simple window manager, and other stuff, all in the applicable language. You can use them on our system or download them to PC’s, etc.

Aid and comfort will be given in class during the tutorials. You will submit your programs by e-mailing me a brief document telling me how to run the program, and the name of the Unix directory where it resides. If necessary we will work out other ways of submitting the programs.