<< Chapter < Page | Chapter >> Page > |
However, the software designer does need to know the tradeoffs among the various types of collection objects in terms of their operational behavior.
Modern CS2 students should be learning about the performance and operational differences among the different types of collections, and how to use availableframeworks to create and use those collections. They should not be wasting their time learning how to reinvent them. They have more important ways to spend theirtime, and they have more important things to learn.
Frankly, I don't care how the programmers at Sun implemented the TreeSet class, so long as the behavior of objects instantiated from that class meets thepublished specifications.
As an analogy, I also don't care how they implemented the Random class, so long as objects instantiated from the Random class provide the pseudo random values that I need in my programs.
I see no conceptual differences between the TreeSet class and the Random class from a software reuse viewpoint.
Having worked for 32 years in high-tech industry before becoming a college professor, I'm confident that the future employers of most students share my opinion onthis. I don't know of any employer who wants their programmers to spend time and dollars reinventing the classical data structures. What those employers arelooking for is a staff of programmers who understand the tradeoffs among the data structures, and when it is appropriate to use each of the differentstructures.
It is time to reinvent the curriculum in CS2 courses by
Okay, I will step down from my soapbox. I encourage you to copy the code from Listing 6 and paste it into your text editor. Thencompile and execute it.
Run the program and observe the results. Experiment with the code. Make changes, run the program again, and observe the results of your changes. Make certain that youcan explain why your changes behave as they do.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?