CS3340 Semester project