using the bluej ide in a data structures course
This poster describes the use of the BlueJ Java IDE in a data structures course. The BlueJ IDE is an excellent tool for teaching programming using an objects-first approach. Learners are able to create, inspect and interact with instances of classes without the requirement to initiate a process with a main method. The ability to inspect 'live' objects can provide insights in specific areas of programming beyond the basic concepts. We have made use of BlueJ in an introductory course on data structures for students who have previously learned object oriented programming using BlueJ. The course deals with stacks, queues, lists, binary trees and graphs.Descriptions, diagrams, animations and simulations can all play a part in understanding the way in which these structures store and provide access to their data. However, interacting directly with actual objects which have been instantiated from code which the student has written can make the data structure much more tangible. The capability in BlueJ to inspect an object and to navigate object references to inspect associated objects allows a direct visual exploration of the internal representation of a data structure.For example, BlueJ allows the student to write a linked list class, create and populate an instance of the class, and visually inspect the nodes of the list. Object references can be followed from node to node to traverse the list. This experiment provides strong contrast with a visualization of the storage in an array list. The point can be emphasized that data structures with the same interface can have completely different internal representations.Similarly, a graph data structure is represented diagrammatically in terms of vertices joined by edges. However, there are a number of ways in which graphs can be represented internally, including adjacency lists and adjacency matrices. An adjacency list representation consists of a list of vertices, each of which is associated with a list of edges originating from that vertex. BlueJ allows visual exploration of such a structure, which can then be related back to the diagrammatic representation.Since BlueJ also allows API class instances to be inspected, the internal representations used by the Java Collections Framework classes can be explored.The poster shows examples of visual exploration of data structures with BlueJ. Further materials will be available at: http://hamilton.bell.ac.uk/datastructures.
use data structures data structure java tool teaching program object class requirements process method live concept student stack queue trees graph diagrams animation simulation play understandability access direct code tangibility association visualization exploration intern representation examples writing experience storage arrays point interfaces collect material  framework  object-first object-oriented programming