I remember when I took my first programming class in the 11th grade in high school. The course was called AP Computer Science. Anyway, the teacher had some very cool and challenging assignments to help us learn.
One of which was a 2D fish tank simulation. The fish in the tank had a sex and other characteristics. Fish were born of other fish, reproduced, swam around, and died. Their were other explicit requirements, but I can't remember them all. But that was a very fun project, and I learned a ton doing stuff like that in the class.
Going through college was a different story. The teachers weren't as creative. We mostly followed examples from a book.
I hope to begin teaching programming courses at the college level in the near future, so I am on the lookout for some good project ideas for students.
What are your most memorable programming challenges that would be good for students (beginner - advanced)? Please give specific details about ideas for projects.