Computer Science 351: Exams

There is one week of midterm examinations and one final examination. (NB: some of these questions refer to homework assignments of previous semesters. You should try to see how they could be transformed to apply to this semester's homeworks.)


There will be 12 quizzes during the semester. Quizzes will be posted here 7:00am on Tuesday. A quiz may be done by turning in by email to by 9:00am on the same day, or by doing the quiz during lecture. If you do this quiz, the in-class quiz will be for practice only.

We do not recommend anyone use this option to skip lecture unless you have no alternative. The lecture is important for giving the intuitive idea behind concepts. Furthermore, the quiz posted here is given under the assumption that you have already read the required reading for the week. If you wait until Tuesday (or Thursday) morning, you will do badly on the remote quiz.

June 23

(If there is no remote quiz available. It is either too early or too late in the day, or this is not a remote leaning quiz day.)

Practicing Mergesort

People did poorly on Question 2 of the exam because they weren't clear on how to use linked structures. They also didn't seem to remember how to implement merge at all. Many people didn't draw pictues (with links explicit) on what would need to be done to merge two linked lists. Even though we had just implemented merge on arrays, many people even forgot there had to be a loop repeatedly taking the lower of the first element of the twe input lists and putting it into an output list until one of the input lists were empty. Instead some people had a single "if", or did things like add the larger of the two lists to the other list.

Add to the default package in a working Homework #6 repo. Once you written Sequence.sort, it will test if "sort" works. People have asked for the part of mergesort that I gave in the exam. Instead you should implement all of mergesort yourself.