Data structures have been discussed as effective means of managing application data. Identify two data structures to implement in your project in place of arrays or linked lists). Many existing applications directly use arrays, arrays of arrays (2D arrays) or reinvent a kind of linked list. These can be improved with a more advanced data structure, the Abstract Data Structures we’ve looked at this semester.
A “smarter” and more efficient data structure lets you leverage a lot of sophisticated code, and provides tools that you can use to create more useful features with little additional programming.
Identify a problem to solve, a simulation to run, or a game that uses structured data. The final project can either:
A design / partial build of a project of your own choosing (with approval).
A redesign / refactoring of an existing project
Can adapt to a new context
Must implement an ADT from class to add functionality or to replace arrays or linked lists into a more powerful data structure
Other ideas with approval that meed these requirements.
Ideas and examples:
Questions to address in the documentation
Identify the problem to solve, a simulation, or a game that uses structured data.
What data structure(s) are present
If improving an existing application, what abstract data structures (ADTs) would improve on the program if it’s currently using a more basic structure- such as arrays or linked lists.
Scheme for using data structure - storing data, iterating through data, summarizing data using ADT methods
Discuss plan for completion of project in future. You may want to start thinking about a portfolio- could this project be brought into System Analysis or Database 2 for more refinement?
What to turn in
Documentation of above questions, no less than 4 pages (1000 words).
1 page flowchart of major parts - loading data, processing data (Dia is fine, or other block diagram tools. No paintbrush.) Use your judgement about what is important if you have more than one page of flowcharts.
Implement placeholder classes for all identified classes, methods, fields needed of importance. (When you start building, you are likely to find more- keep it simple.)
Develop one important class with a Main method that uses the data structures of interest.