Instead, I got the impression that, for far too many (certainly NOT everyone- I also witnessed those glorious individuals who got a lot out of the project, and those who just tore through it like it was nothing), ael0 was a challenge due to a number of factors:
lack of programming experience (ie not touching programming since your last programming project was due, which meant not touching programming at all over the summer)
lack of playing and experimenting. Programming is about expressing your ideas, but the less you work on means of expression, the less fluent you are, meaning the more rigid and limited you are in creating solutions (especially ones that are not largely prescribed that you are doing little more than memorizing and regurgitating). You MUST (and regularly) play and experiment. Write small programs that test something so you are more familiar with how the language will react. Not as familiar with do-while loops? Take an existing program and convert it to using them, etc.
lack of proper time management discipline. I suspect some waited until the last minute to really start (thinking “why not? This is how I completed ALL my other projects in the previous class”), and have realized that we're no longer doing the basics, we're now adding content on a layer above (requiring a solid foundation in) the basics. Some took advantage of the time they had, and prospered (and will reap the benefits). Others, I hope it serves as an opportunity to start on improvements to your approach to class work.
lack of conceptual understanding. Some haven't seemed to retain some fundamental basics from the introductory programming experience, be it:
unfamiliarity/clumsiness with loops
maybe trying to shoehorn their one familiar loop into less optimal situations
brute forcing an infinite loop then (quite unelegantly, and in violation of structured programming form) unceremoniously break the loop when some exit condition is met.
unfamiliarity/clumsiness with selection statements
things like the = vs. == in conditions, or stray semi-colons following an if().
demonstrable inability to express the choices effectively to the computer (both in concept and in syntax)
unfamiliarity/clumsiness with flow of logic
if something is lacking a terminating newline, and upon suggesting “it is missing a newline”, one adds it BEFORE, leaving the person confused why it didn't solve the problem
trying to use the excuse that “never having done a menu before” is somehow valid reason for getting a pass. There's nothing special about a menu– merely a selection structure within a looping structure.
unfamiliarity/clumsiness with functions
not understanding what the return type is for, nor how to pass parameters
the difference between prototyping/declaring a function, calling a function, and defining a function
again, this was a review of old/intro to new type of project, and far too many were experiencing far more significant issues in its implementation. Makes me worry a little bit about what's to come.
If you found resonance with some of the above-mentioned inadequacies, I'd strongly urge you to shape up your act. The programming is not going to get any less intense, the concepts and abstraction is only going to increase (I am expecting the challenge to be in encountering the concepts- they are what are truly new. You should be challenged by that, not how to terminate lines with semi-colons). I AM teaching C/C++ Programming this semester… so if for whatever reason you feel you don't have the requisite understanding of the basics, please DO consider retaking it, or even sitting in on it. It is not yet too late (however, thinking you can just push through with your usual brute forcing tactics, by the time you realize the errors of your ways, it WILL be too late).
Computing is not easy. We have to think about thinking. So many others in the world primarily focus on just following directions and NOT critically thinking. We are the people that come up with the directions. Granted, computers are our prime audience, but the deeper you go down this rabbit hole, the more you see the patterns and concepts of computing popping up EVERYWHERE.