Here's a random class programming project idea. Everyone submits their name and a newly-made up password (not one that they use for anything else). Then, everyone writes a program to guess passwords, lets them run for an hour against the list, and sees how many matches they can make. Suggest a few strategies like a "brute force attack", a "dictionary attack" (providing a dictionary text file), guessing that some people use no numbers or caps (or all numbers), etc. Afterwards, analyze both successful attacks and the more secure passwords.
This would be more advanced than anything I've done in my classes, even though some of the programs could be relatively short. Interesting both for basic programming skill and insights on password security. Maybe seed the list with some instructor-made weak passwords as a baseline target.