August 30th, 2019

Adventures in Java Land

The one where Emma falls in love with software. An example of a project completed during CPEN 221, the most career-altering and notoriously time-consuming software architecture course at UBC.

CPEN 221 was my first serious introduction to software, and I couldn't have been more thrilled with it. Over the course of the term, we completed multiple projects at a scale I never imagined would be possible in a single-semester undergraduate course. I left with a solid intuition around debugging, and a better feel for the software development process than I ever expected I would.

Many of the projects from this course are reused from year-to-year, so at the professor's request I will not be sharing them. However, he did give me the go-ahead to share my partner and my implementation of our favourite project of all. Here's an excerpt from its description:

Applications
We will apply our graph ADT and algorithms to two different applications.

Social Network Analysis in the Marvel Character Universe
You are provided with a dataset that represents relationships between [all] characters in the Marvel comics universe. The dataset is a text file where each row contains the name of a character (Column 1) and a comic book number (Column 2) in which that character appeared. In the graph representation, you should treat the characters as vertices with an edge existing between two characters if they appeared in the same comic book.
Can you identify the center of the Marvel Character Universe?

Boggle
From Wikipedia: Boggle is a word game designed by Bill Cooke, invented by Allan Turoff and originally distributed by Parker Brothers. The game is played using a plastic grid of lettered dice, in which players attempt to find words in sequences of adjacent letters.
Your task is to implement a solver that, given a Boggle board and a dictionary, finds all valid words on the board.