Final Project for Fall 2018 Parallel and Distributed Programming Class, taught by Professor Maria Striki