Overall I eschew objective tests as a way of testing knowledge of definitions, statements of majors results and the like. I want students to demonstrate that they know something by telling me about it rather than by showing me they can recognize it when they see it. To me it shows a much greater depth of knowledge and comprehension. In addition, in a discipline such as computer science where attention to even the smallest of details and most subtle of nuances can be critical a practitioner must be able to read detailed instructions in one form and re-pose them in another form. By expecting them to know concepts and details well enough to repeat them on an exam I hope to promote this attention to detail in them.
Students are ultimately responsible for their own education, including the retention of knowledge.
One manifestation of this is that in courses which have prerequisites I give one assignment, possibly two, based on fundamental prerequisite material that we will be using in the course. This iassignment is usually made in the first week of class. I do not review this material in class. Students have a right to a life outside of my classes. They have families, jobs, get sick, and face obligations that sometimes will require them to juggle the demands on their time and to set priorities.