I got really caught up on 3D Arrays to start with and that set a pretty weak foundation for the more advanced planning. I partially blame a bad programming department but I remember watching my class dwindle from 50+ people down to 3 for the final. The program we had to make was one similar to an old C project I had made before (and it was almost as annoying). It was an airport data entry program. It would have an input for a plane by number, date assigned, model number, last landed, longest possible travel distance, refueling costs, etc. Then the admin could view the full data set in the program and delete/edit specific entries. The last part was search functionality that allowed to search based on any of the inputs (this is the one that got me). All of which required different logins and levels of security.
The issue I had is that when he told us the assignment, we had never done anything even similar to it in a class and hadn't learned about many of the things we needed for completion of the final. I remember asking on stackoverflow for some advice on it and it just turned into questions about why my professor hadn't taught us about how to do it. That class made me change my major from CompSci to Computer Systems Networking.