Submission for CS50x online course by Harvard University