The final project of CSCI 300