Open-book exams should be ridiculously difficult, as they are intended to test understanding rather than rote memorization. Anyone can memorize a formula; figuring out when and how to use it is what the class should be teaching.
Similarly, in a programming class, the exam should not be testing whether or not you've memorized the Java boilerplate code. Sure, if you use it enough you will memorize it, but that's not what makes a good programmer. Either provide the boilerplate or let the students look it up; the focus should be on solving the problem.
Similarly, in a programming class, the exam should not be testing whether or not you've memorized the Java boilerplate code. Sure, if you use it enough you will memorize it, but that's not what makes a good programmer. Either provide the boilerplate or let the students look it up; the focus should be on solving the problem.