I teach as a private tutor and most of my students are prohibited to use techniques and/or language constructs that they haven't been taught!
There's a really broad variety of stuff that is prohibited like foreach-loops, switch-statements, functions/methods, etc.
What do you think is the benefit of this rule or why do most schools and universities have such a rule?