ECS203 Final Assignment