
The particular scenarios selected for each semester
try ask you to implement as many of these objectives as
possible in some compelling way. I am always open to
additions and suggestions.
Objectives for each project:
Project 1 - classes, text data file, GUI, searching
- Read data from a text file specified at run time,
using that data to create instances of the classes,
creating a multi-tree, and organizing those instances in
existing JDK structures which can be sorted, such as
ArrayList's.
- Create a simple GUI presenting the data in the
structures with with some buttons and text fields allowing
SEARCH on the various fields of each class.
- Define and implement appropriate classes,
including instance and class variables, constructors, and
other methods.
Project 2 - Map class, Comparator, sorting
- Use the JDK Map class to write more efficient
code when constructing the internal data structures from
the data file.
- Implement sorting using the Comparator interface
together with the JDK support for sorting data structures,
thus sorting on different fields of the classes from
project 1.
- Extend the GUI from project 1 to let the user's
sort the data at run-time.
Project 3 - More JDK classes - GUI's and threads
- Explore other GUI classes, such as JTree, JTable,
and JProgressBar.
- Create and run competing threads.
Project 4 - Concurrency
- Resource pools
- Blocking threads
- Extending the GUI interface to visualize the
resource pools and progress of the various threads.