-See branches for Programs 1-4
-All code should be runnable
-Branches may include test files, bash files, and other files for debugging that are not part of the assignment and can be ignored.
-Read all branch Readmes
There is a hash table in Program 1, but you should use the one from Program 2 because it is better