Portfolio - Technical Writing

Description Links

A Scalable & Extensible Peer-to-Peer Network Simulator

This document describes the background research and system architecture and design for JP2PSim, a Java based scalable & extensible Peer-to-Peer network simulator. This document is my Master's thesis.
p2pThesis.pdf [2553k]

Towards A Peer-To-Peer Simulator

This paper summarizes the background research, and open research problems involved in the development of scalable and extensible Peer-to-Peer network simulator. This document was accepted for publication in the Proceedings of the International Conference on Internet Computing, IC '04, Las Vegas, Nevada.
HarrisDeugoIC2004.pdf [156k]

JGraphEd - A Java Graph Editor and Graph Drawing Framework

This document describes the system architecture of JGraphEd, and summarizes the implementations of the many algorithms that were implemented. This document was submitted for evaluation for a graduate-level directed studies course.
JGraphEd.pdf [384k]

Embedding Planar Graphs on the Grid - A Review of the Paper by Walter Schnyder

This document provides a review of the landmark paper by Walter Schnyder, which showed that in linear time, a planar graph can be embedded on linear sized grid. The review of this paper is what inspired the creation of JGraphEd.
508-paper-review.pdf [328k]

A Graphical Java Implementation of PQ-Trees

This document describes an implementation of the PQ-Tree data structure introduced by Booth and Lueker. In addition to implementing this complex data structure, an application was built to visualize and animate the various PQ-Tree operations. This application was developed as the final project for a graduate level advanced data structures course, and was later incorporated into JGraphEd.
pqtreereport.pdf [252k]

A Parallel Algorithm for Answering Shortest Path Queries in Planar Graphs

This presentation describes the C++ implementation of a parallel algorithm for computing the single source shortest path from any node in a large graph. Graph separator theory was utilized to partition the graph into equal-sized chunks, which were then distributed across multiple processors. In this manner, the running time of computing shortest paths was dramatically reduced compared to sequential algorithms.
parallelsp.pdf [184k]

Parameter-View Generator - A Proto Pattern

This project involved the documentation of a software design pattern. I chose to document a pattern that I had devised myself for the generation of part of the user interface of the Map Detector System from my undergraduate honours project. This document was submitted as a final report for a graduate course on Software Design Patterns.
pattern.pdf [292k]

Detection of a Graph Representation of Road Networks from City Map Images

This document describes the system architecture of a Java based Map-Detector application. This application allows the user to load a sample image from a map generating tool such as MapQuest, and use image processing to automatically detect a network graph of the city streets within that image. The user can then apply algorithms to the resulting graph, such as shortest path computation between two street intersections. This application was the subject of my undergraduate honours project.
mapdetector.pdf [596k]

Online Election System

This document describes the implementation of a 'Virtual Election Booth' where voters can securely and confidentially request authentification to vote in an election, receive a list of candidates and submit a vote for a candidate of their choice. This was accomplished through the use of public license cryptography library that provided implementations of algorithms such as RSA public key crytography and Blowfish symmetric key cryptography. This document was submitted as part of the final project for a senior undergraduate course on Computer Security & Cryptography.
413FinalReport.pdf [63k]

Carleton University Bank System

This document details the software engineering practices employed in the development of a simulated ATM Banking System. The document includes Requirements Capturing, Use Case Diagrams, Message Sequence Charts, and a summary of Design Decisions. This was the final report for a group project from a senior undergraduate course on Software Engineering. It was accompanied by a C++ & ObjecTime model, which had full traceability between the report and the model.
304_Final_Doc.pdf [229k]