Even the regular "Computer Science" stream is filled with incompetents. How is it that you can go through four years of education which, as you say, is supposed to teach you how to think, but can't even puzzle your way through a simple Fizz-Buzz problem?
Based on what I saw at University in the UK it goes something like this:
Plagiarism at UK universities (the good ones at least) is extremely frowned upon and the staff will happily fail you if you hand in identical coursework. In fact in many cases they will fail everyone involved without trying to figure out who did the original work.
However, in the CS dept you would get many bright students who were excellent academically but couldn't really program worth a crap.
You would also get other students who were actually decent programmers although many of them might not have been as strong academically (although many excelled at both).
This meant that a concept would be introduced in class and the bright students would easily understand the idea behind it and rush off to implement the coursework.
Of course since they couldn't program all that well they're code would be full of stuff like off-by-one errors and poor indentation/code design etc.
They would then enlist the help of other students who were good programmers who would be happy to help them (basically fix their code for them) and felt it was justified because the person seeking the help clearly understood the problem area but was just having "minor" problems with semantics etc and it was usually just a case of "oh, do your while loop like this" etc.
This meant that all students submitted different code thus no plagiarism, however it was entirely possible to pass the course without the ability to right a solid program.
I know people who graduated the course with strong programming skills but got mediocre results compared with the people who they helped.