Category Archives: project

Java-based Map Editor and Map Viewer

This team project consisted of two parts, both built with a Java GUI. The first half, the map editor, allows a user to mark locations and paths on an image to create an overlay graph data structure. The user can also name locations and export the saved data structure as an XML file.

The second half, the map viewer, loads the map image and XML file and uses an implementation of Djikstra’s algorithm to allow the user to find the shortest path between two selected points on the map. The map viewer also outputs the steps along the path, and adds the step costs using a scale factor to calculate the total distance of the path.

You can download a zip file containing the JAR files for MapEditor and MapViewer, along with the Purdue map image and sample XML dataset:
MapEditor-MapViewer

Run the application via:

java -jar MapEditor.jar
java -jar MapViewer.jar

8086-Emulated X86 Assembly Scroller

This project consisted of building an x86 assembly program in an 8086-emulated environment.  We used the FreeDOS operating system with a set memory of 16 megabytes.  We used Q and Qemu to emulate the architecture.

assem1

The user enters the executable name “marquee” followed by a string of characters that the program will scroll across the 80 column screen, vertically centered within a blue double-line border.  Execution stops when the user hits Escape.

assem2

Download the MARQUEE.ASM source file.

Webcrawler and Search Engine

Screen shot 2010-10-26 at 1.22.52 AM_1

We first designed a webcrawler in C++ using a provided HTTP interface to “crawl” a list of initial URLs to a maximum depth. Along with archiving URLs, the crawler stored the textual words on a webpage for searching purposes and a 100-word description of every page.

Next, we designed a search engine that preprocessed the results of the webcrawler to store data in one of three data structures:

• Array
• Hash Table
• AVL Dictionary
• Binary Search Dictionary

We used an HTTP server provided to format HTML pages to display results of queries, as well as display search times to compare the different data structures’ efficiency. We called the search engine Boogle, as a combination of “Boilermaker” (Purdue Boilermakers) and Google.