CSC 412/2506 final exam