As the saying goes, if you really want to learn a subject, teach it to others. I've tried various ways for the students to remember the material, and have settled on the repetition of: Open book quiz at home, closed book quiz in class, play a fun team game in class, and finally the chapter quiz. I've been happy with the class's retention of the terms and concepts we've been covering.
This summer I'm teaching CIS 129 Programming and Problem Solving I online. And in the fall semester I'll be teaching both CIS 129 and CIS 131 (Programming and Problem Solving I and II) in traditional classrooms. Sometimes it's good to go back to the basics. Reviewing and teaching basic programming concepts will only make my own coding better.