Final assignment for the CS253 course.