Chase That Dream

You chose computer science because it was interesting. It only makes sense to explore that interest, and a project is good way to do that. Maybe you already have a project idea, but maybe you need some help with developing one. Maybe you have no idea. Let's talk.

Here are some things I find interesting and am open to work on with you. Even better, they're suitable for exploration for credit through CS4983, CS4997, or SWE4913.

A Kubernetes Proof of Concept
While containers using Docker is the current de facto standard for deploying applications, Kubernetes scales this idea up one level further by orchestrating containers. The project would research the principles and elements of Kubernetes and then develop a simple cluster demonstrating them at work.

Computer Science Concepts for High School Students
High school students in New Brunswick currently have access to an introductory programming course using Java, but there is a difference between programming and computer science itself. This project would identify relevent computer science concepts and develop course materials to teach them using using Python.

Large File Transfer Speeds
Fields like meteorology require downloads of huge files whose contents change at least every day. What options are available to do this, and how do they compare in both speed and resources required to make it happen?
Arrays in Lights
Students beginning their programming journey often struggle with understanding arrays and loops. This project would develop a series of lab exercises where students would use to build lighting patterns using individually programmable LED lights to help them these concepts.

Crowd Sourced Cellular Service Maps
Cellular provider's coverage maps purport to show where signal is available, but are aspirational at best since there are dead zones and no sense of the quality of signal. This project would focus on building an Android app to monitor and report location-based cellular signals. Results from a volunteer army could give rise to better coverage maps to provide truth to the advertising, and perhaps useful feedback to providers.
Heap Management for the LC-3
The LC-3 is a virtual ISA with assoicated simulator and utilities for teaching the concepts of machine level programming. One of its shortcomings is that is does not implement heap memory management. This project would investigate heap memory management and develop a first-effort heap management subsystem (i.e. the revelant portions of <stdlib.h>).