Assignment: Minibrowse History

We're going to begin work on Minibrowse, the next generation web browser and search engine. For this assignment, you will start with the core Minibrowse code and add functionality to display a history window that displays the previous 5 web sites that the user has visited. You will do this by implementing a custom DoublyLinkedList class subject to specifications.

Minibrowse

Copy MinibrowseCore.java and Minibrowse.java to your own directory, compile all the code (javac *.java), and run Minibrowse (java Minibrowse). Type in a URL at the top, and hit Enter to get the web page to render. Enjoy the poor rendering that you see, and appreciate the power of "real" web browsers. Nonetheless, this is a great platform on which we can build. Look carefully at the code of Minibrowse.java to get an understanding of how it works. Try deleting lines or modifying them, and see how it affects your program.

MinibrowseCore.java is the "black box" code (kind of like Canvas.java) that you don't need to be concerned with how it works, but I have supplied it anyway in case you're curious. But all of the work that you're actually doing will be in Minibrowse.java.

DoublyLinkedList

Create a class called DoublyLinkedList<E> that uses generic types. Use whatever methods you think are appropriate, but read ahead to the next part of this assignment to get a sense of what you'll need to do with it. Your linked list should be doubly linked, i.e. each node in the list should link to the node that follows it and the node that precedes it. You must construct your linked list code "from scratch." You should not use classes from the Java Collections Framework such as LinkedList or other similar classes you may find. This is so that you can gain the valuable experience of constructing a linked list yourself. Once this assignment is complete and turned in, you will be free to use the standard LinkedList class on future homework assignments.

Putting it all together

What to do

Part 1: You should turn in a design document for the project. This one page document should list what methods you will need for your DoublyLinkedList class, what instance variables your class will need, how you will test your code, and how long the effort will take you.

Part 2: Create your DoublyLinkedList class. This is just a single file. It should have a main method that inserts and removes some Strings to demonstrate that it actually works. Think carefully about what kinds of cases you should be testing, and what methods will make sense in order to be able to integrate this with Minibrowse later.

Part 3: Turn in the complete project, which includes MinibrowseCore.java (unchanged), Minibrowse.java, and DoublyLinkedList.java.

Have fun!