This semester I completed our project-based Java course “Software Design” and learned a ton. Over the course of the semester, we were given a grid of assignments for completion, and I thought I’d post some of the highlights. I completed 13 short programs that covered topics like GUI using Swing, Multithreading, Networking, and entry-level database work.


Our final project was to create a marketplace client where buyers and sellers could create accounts and post items. It was completed over the course of 72 hours in a hackathon-style weekend, and we ended up being selected as one of the top four groups, and demoed our solution to peers.

The main list of inventory available to the user


I had used SQLite previously for a hackathon project, but building a true cross-relational database was a great experience. We didn’t have much time to implement features around that part of our table structure, but I feel confident working with databases headed into future projects.


The rest of the assignments I completed on my own in preparation of our interview exams. Blackjack took me the longest, but was a great way to learn threading and networking for the first time. Although it turned out to work pretty solidly, it really opened my eyes to all I still need to learn for managing proper cross network client connections. Also learned how to do basic threading and conditional locks.

An example game of blackjack

Image Rotator

Using Graphics2D objects with AffineTransform objects applied on a timer thread.

Rotating an image

Bouncing Ball

Kicking off new runnables with event handling

Each runnable represented by a ball moving in frame