I think it's partially to do with the fact that they assume some of us know nothing, so they try to 'lie' to us, by lie, I mean it makes things more simple for some, and to be fair, there are some on my course that need it explained in such a way. My lecturer's have actually lied to us before now too, they've admitted so too, like saying how
I mean like my current assignment, I want to write another class with a few methods, possibly one, but a few would be better in my opinion, just to make it more readable and what not. Anyway, the way they've made one piece of code for my assignment is that you're forced to do it in a very specific way, it's their way or the highway, unfortunately. In my opinion that's not a great idea when teaching pupils to programme, I think they should allow pupils to tackle things completely on their own then review what they've done. I mean yeah, set some basic guidelines, because if you did it unique for each student, then there's be many different ones and that would take an insane amount of time to mark.
I mean when we were working on making a Queue implementation, with a LinkedList implementation, we weren't allowed to use arrays, although my lecturer stated how it was acceptable to do so, only not for the assignment. I mean I can see how it would probably be easier to do so with an array, but oh well, I've done the work had full marks for that, so I'm not complaining. I just think that the system could be adjusted a little bit, just to make it more like the real world.
When I was in high school we were in the scenario of the real world, we had problems handed to us, very vague guidlines, more so about how the output was presented or how the UI was laid out. But we could basically make to code do anything we wanted, as long as it gave a valid/correct output. I mean you could make your code 1,000 lines long, or just 10 lines long.
I found that a better learning experience for programming as if we ran into an error, it would be more beneficial to learn where/how the error has emerged. I also found programming with graphical applications was always a good place to start learning, simply because you can physically see what your code does. I.E. working in some sort of game engine, myself, I only worked with game maker 8.1 during high school.