My $0.02
NOTE: this is all based on the state of the IT industry in my neck of the wood. I cannot speak for the rest of the world.
I have been in the industry and here's my view (coloured, I'm sure, by the intervening years and too much alcohol every so often).
(1) Our intake was roughly 200 people in the first semester. A good 3rd were women. By second semester, we were down to 100 students with, maybe, 1/10th women. By second year, there were 20 students in a class, but the men/women ratio still held. From memory, these numbers and ratios seemed to be constant for the rest of the degree.
(2) There were two major institutions in town at the time (there are more now) - one taught you the under-the-hood of computer programming (how computers work, the whys and wherefores of stacks, etc..) as well as such wonderful headache-inducing stuff like formal QA proofs of algorithms ("Z" anyone?). The other institution taught you to program in Java (and a few other languages of the day). Needless to say, when we hit the workforce the percentage of employees from the second institution vastly outnumbered that of the first. Now though, as I have progressed up the ladder, the percentages seem to be reversed at my level. make of that what you will.
I'd like to sing the praises of my Alma Mater, but last time I went back for a refresh course I subscribed to what I *thought* was Introduction to "Programming In Java", fully expecting to be taught the ins-and-outs of Java. What I got was Introduction to Programming (In Java). I have added quotes and brackets to make my point - there were none in the course title. It was being offered as a Masters-level course and it was awful. How bad? The *lecturer* could not answer when asked why Java arrays started at 0 rather than 1 (hint: most people at the time Java was introduced programmed in C). <sigh>
(3) Essays. Oh <deity> by all means YES! You are going to have to write reports and interact with users and business people. LEARN TO COMMUNICATE! When I did my degree, one course each semester had to be picked from outside the Science stream. Made sense to me - it taught us to think beyond our programming tasks (I picked French one semester because, well, I was a native French speaker and the only thing they asked me was if I had done French in high-school). Mind you, I always though it was a damn shame nobody from outside the IT stream was forced to take even minimal computing classes... might have saved me from wanting to strangle many an Arts Major who couldn't operate a mouse without f-ing it up. (YES, you DO need all of these cables plugged in. NO, I don't CARE if they mess up the aesthetics of your desk.)
(4) Languages. I'd have to agree with the article. C, C++ are a good bet (more C than C++, but that's my opinion only). If you aren't doing C++, Java is a good substitute to introduce the concepts of OO programming. COBOL is nice if you want to work for the older banking firms, especially if combined with one or more of the others. But for <deity-of-choice>'s sake, unless you are planning on writing websites for the rest of your days, do *not* specialise in PHP, Python, et al. Learn them, by all means, but be aware that most places with n-tier architecture (quite a lot of medium-to-large businesses) do not use these languages beyond their web presences - the rest of the time, the back-end is written in so-called "legacy" languages.
I'd include dotNET in the languages to learn, but MS seems hell-bent on having you re-write your code in a different language every few years if you want it supported - compared to that, most C/C++ programs written back when I graduated can still compile *and run* on today's compilers/hardware... although some of the UI looks damn awful by now. ^_^
For comparison, the place I work at has a dotNET front-end on Windows, with C back-end and a large-scale SQL database running on a *NIX variant, as well as a web presence for smaller clients and Web Services for larger clients to use.