Microsoft Invests in the University of Waterloo
saforrest writes "Say goodbye to independent academia. In a presentation by Microsoft on Wednesday at the University of Waterloo, a new joint initiative was announced which involves the addition of a mandatory course on C# for all electrical and computer engineers. 'Completion of this course
will be mandatory for students entering the E&CE
program.'" Microsoft's press release is available.
*sigh* I had hoped that the mathematics & Comp Sci department at U of W knew better. But who am I kidding? When I went there, we used to joke about how U of W's secondary campus was located in Redmond - given the large # of UW CompSci co-ops and graduates that worked there.
Ah well, at least my old Physics department is underfunded (wait... RIM is investing $150 million in a new Physics research institute @ the U of Waterloo? DOH!)
Waterloo always had close ties with industry. Now they appear to have an umbilical cord.
And what about those students that are already here? I'm not in Computer Engineering, but Computer Science at Waterloo. I find it offensive that my school would sell out its curriculum to Microsoft. Switching schools is hardly a reasonable option for someone that's already here, though I would consider it if it happened in CS and not just CompEng.
-Rob
-Rob Ewaschuk
The fact that this University is willing to sacrifice any sort of appearence of propriety in order to squeeze a few bucks out of Microsoft is as pathetic and outragous as if they were to let the parents of poorly-performing students buy their way in with large cash donations.
Of course, the latter example happens all the time, but at least they don't brag about it in press releases.
Anyhow, it seems to me a horrible idea to set this sort of prescident. What's next? Coke gives a few bucks to the football team and suddenly all students have to undergo a session about the crisp, refreshing taste of Coke, Diet Coke and Sprite? The music industry buys the U a building and, next thing you know, all students are required to buy $300 of Britney and N'Sync albums for their music appreciation courses?
Universities should be about education, not indoctrination. Unless these are the best languages for teaching the foundations of computer programming (and they are not), they shouldn't be required.
Every year during my review, I just pray the words "slashdot.org" aren't mentioned.
First they came for UW, and I didn't speak up because I didn't go there...
It's a good deal for both sides.
Deals between hospitals and insurance companies for managed health care are good for both sides. But are they good for the patient? Deals between the military and arms contractors are good for both sides. But are they good for soldiers & taxpayers? Hypothetical deals between congressmen and lobbyists ("hypothetical" because there is, of course, no quid pro quo) are good for both sides, but are they good for voters and citizens?
Is this deal good for the students of UW? THAT is the only question that matters.
There is a reason why serious academic institutions do not overwhelmingly adapt Microsoft. Primarily it is the cost both in dollars and also in loss of academic freedom that comes with the restrictive licensing that comes with many proprietary applications. One of the founding tennants of higher education is that information should be freely and intensely pursued. Sure some "MIS" programs may just be an advanced MCSE/CCNA course, but most real computer science programs could not afford such a narrow scope. CS by definition is much more broad than software developement, MIS, EE, or networking; rather it is the culmination of all of the above with other studies mixed in.
Any CS program that concentrates too heavily on one thing (ie programming in C# or Java for that matter) really short changes its students and limits the potential that they can achieve. A much more broad approach, while not churning out top notch Java developers, produces excellent problem solvers who are able to quickly learn and adapt to the ever-changing technology world. Looking back on my undergrad experience I think that playing around on the HP-UX and AT&T UNIX (R) box helped me break out of the mold and learn much more effectively.
If the CS department is worth a 1/2 a crap it doesn't really matter what language[s] they teach the classes in. The students should come away with a good solid foundation of general programming knowledge. Languages come and go, if a CS grad needs to know one they should be able to buy the reference and compare to their base of knowledge. Note: I'm not saying CS grads should be guru's in whatever language they choose after a day, but they should be able to get by.
They who would give up an essential liberty for temporary security, deserve neither liberty nor security
Beyond the fact that C# isn't by any stretch the best language to teach concerning the basics of computer programming (and as such is a disservice to the students at large), this also sets a horrible prescident. Maybe Putnam can buy this U a new administrative building and get a new mandatory lit class added -- "Lit 203 -- The Works of Tom Clancy"
Every year during my review, I just pray the words "slashdot.org" aren't mentioned.
And he's right. No university, even a Canadian university, is so cash-strapped as to have to change their curriculum for a $2.6 million grant.
I have met David Johnston and know him to be a man of integrity.
Sad to say, Waterloo chose C# and Microsoft for reasons other than cash. Like, perhaps, that C# is an easier language to learn for beginners than C++. I'd rather they chose Java instead, but on the merits the two languages are probably just as easy to learn. C#, however, looks likely to provide better starting salaries for this year's crop of freshmen.
Relevant to what? How much production code out there uses C#? How many people will still be programming in C# 20 years from now?
Learning languages currently being marketed by corporations is stupidly shortsighted. I'd about exepct this from a 2-year tech school, maybe, but a university?
"Hey kids! This semester, we'll learn about object oriented programming! Open your C# manual to page..."
"Hey kids! This semester, we'll learn about data structures! Open your C# manual to page..."
"Hey kids! This semester, we'll learn about algorithms! Open your C# manual to page..."
"Hey kids! This semester, we'll learn about ethics! Open your C# manual to page..."
Excellent. That's exactly how I've always felt about UW students. They're nothing special. In fact, I'm hard-pressed to think of a single famous UW grad. Not famous in the sense that they started a business, or that they've done well fiscally for themselves. I mean famous. A household name. A Dijkstra or a Stallman. I can't think of any, can you?
After being surrounded by innumerable UW students in the last 5 years, I'm more than thrilled to see their self-congratulatory egos shattered by the hammer of reality. There's a common fallacy among UW CS/CE/EE students that goes like this:
1. School X is good
2: I go to school X
3. Therefore, I am good.
But many of the UW grads I've worked with don't know their heads from their asses. Ask anyone who has ever TA'd CS 354 (the third-year Operating Systems class), and who has had students ask them what a heap is, for example. And yet, they'll strut around school, thinking about how companies will stumble over each other in offering them cushy jobs with huge salaries, free Odwalla, etc.
- email president@uwaterloo.ca
- phone 519-888-4567, Ext. 2202
- fax 519-888-6337
Good article, but I think there's one extra important things that you didn't touch on, and that's the Waterloo/Microsoft work mentality.
:>
Waterloo has a certain mentatiliy that they push towards their students (or at least those in Comp Sci and Eng. programs), and that is basically to get the top grades regardless of all else. It's a very competative school, and it's the only school I know of (in Canada at least) where students are publicly rated according to their grades from highest to lowest.
To put it bluntly, Waterloo is definitely NOT known as a party school. Sure, I've gone out drinking with more then a few Waterloo engineers, but by and large, those people a.) hate the school and generally don't enjoy the competative atmosphere, and b.) are usually ranked amoung the lowest in the class
From what I understand Microsoft really likes the attitude that the top Waterloo grads tend to bring to the table, ie work for 60-80 hours a week without every enjoying yourself just to get some sort of reputation.
FWIW I actually just finished an engineering degree at the University of Guelph (only about 30 min away from UofW). We also have a co-op program at Guelph, as do pretty much all Canadian engineering schools these days (I suspect that other countries have a lot of similar programs as well). I can tell you that co-op is a great idea, but it has it's share of flaws, regardless of what school you go to (I know of and have worked with a number of people from Waterloo co-op as well as Guelph co-op and a number of other schools). Good idea, but bad implementation.
My alma mater, the University of Washington, probably has the tightest relationship with Microsoft than any other school yet we've maintained a strong separation.
Our new building is being funded almost exclusivly by personal donations from Paul Allen and Bill Gates. We do a large amount a research with Microsoft Research. All students get all the free Microsoft Software they want (except games). Some of our talented faculty have spent many years at Microsoft
Desite all that we still have Unix orientation for new students. All homework is required to be turned in with a Unix Makefile and compile under gcc. Java is our introductory language.
I didn't write a line of code in Windows while I was there and I'm the rule and not the exception. I suspect University of Waterloo is has a pedagogical philosophy more along the lines of a community college and scimps on theory.
At the University of Washington I felt no pressure to learn Microsoft products or proprietary languages. It was quite the opposite, in fact. I'm certain no other University has a stronger relationship with Microsoft.
What is not acceptable, however, is for grants from a company to be tied to the use of its products in the curriculum. And, in fact, while C# is fine technically and educationally, Java would still be a more useful language for students to learn.
Decisions like this really call into question the academic integrity of a university; potential students of U. of Waterloo should take notice.
(Disclaimer: I'm a former Waterloo CS student. Left for my career without graduating around the beginning the dot-com bubble, still employed, no regrets.)
.NET rarely considered elegance an important facet of keeping software costs low. The only grads that have design skills and/or good business skills usually are self-taught.
I agree with your assessment that there's a mythos behind UW students that seems to be carried among other companies as well, particularily in professional service firms, whether smaller ones or larger (like Accenture). But this mythos isn't entirely without basis.
I would generalize your observation to include my own experiences interviewing and working with UW co-ops and graduates: many UW students often *do* interview better than most other graduates and/or interns. And they often do generate better-than-average results. Over the past 2 companies I've worked for on the U.S. west coast and the east coast -- management fell in love with UW students.
I would attribute this to what some might find surprising: many CS and Eng students at UW have very good communication skills relative to their peers in other schools. The co-op program requires them to be good, since they have to work in between heads-down course work. Naturally every class has legendary high-mark/anti-social students, but they wind up being professors anyway *grin*.
A secondary reason for UW student's success at Microsoft and PSFs is that UW tends to hammer programming skills into CS students, even if it kills them (as anyone who's taken Operating Systems will attest to).
Being relatively professional speakers, the best UW co-ops are usually both confident & technically savvy enough to be placed on the front-lines to do real work -- whether in front of a client for a contract, or @ Microsoft with the culture of debating ideas.
Usually the UW co-ops and/or graduates I have known have been better than many full-time employees at client sites. But not perfect. I find UW grads, like all grads, have a lot of learning to do in placing systems work in business context. There's also a general lack of both high and low-level design skills, and an overemphasis on tricky algorithms and/or cleverness. The cynic in me believes this makes them fit right into Microsoft, which until
So, in summary: there is a myth around waterloo students, but not entirely unwarrented. They're more experienced programmers than most regular interns from other schools, and often they can be better communicators.
-Stu
C# does have one major feature that Java does not, meta data and reflection. Now those are not features that many programmers who have not used the Lisp machine are familiar with but it is a very powerful way to program.
... and MS can't get rid of the VB crap either.
Please check the java.lang.reflect package in the standard J2SDK and come back to this thread. And while you are doing so check the JPDA architecture and head up to the Eclipse Project to see a ass kicking implementation of meta data and reflection.
BTW, all this was in Java a lot of time ago, if you didn't know it, that's your fault.
I would like someone to explain us what's about the getter and setter structure in C#, it's like Minority Report: Spielberg couldn't get rid of the whole AI crap completely
Life isn't like a box of chocolates. It's more like a jar of jalapenos. What you do today, might burn your ass tomorrow.
Are you slashbots sure other companies haven't tried things like this before? Don't you find it funny that a lot of the colleges in that Google search have gotten funding and done collaborative work with Sun Microsystems and -- strange! -- some of their courses are taught in Java?
Do you really, really think other companies don't do this? Do you seriously think it's bad just because it was Microsoft and C#, and not Allegro and Common Lisp?
And I defy any of you to tell me why it should matter that some students are taught C# as their introductory programming courses, whilst others are taught Java, C++, or C. They're supposed to be learning the fundamentals of programming, not learning how to write a fuckin' application. Why the fuck does it matter what language a college finds this easiest to teach in?
Grow up, people.
- A.P.
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
This is almost true. A real CS department does teach at a deeper level than the language, but language also shapes how you can think. Only an idiot or a masochist would teach recursion in basic, or OOP in prolog, or lambda-calculas in Java, or manual memory management in Lisp. Any decent education will show all fundamental designs (though not all combinations). This should include functional/procedural/OOP/rule-based as well as static/dynamic/weak typing etc. Once they've introduced this, each course should use the best language for it (e.g. AI in Lisp, Kernels in C). They should probably even teach the skill of choosing a language for a given project.
Now, there is still the question of what language to teach first. The first language taught will set up patterns that are rather hard to break. I think Dijkstra made a comment about basic.... I started with Hypertalk (don't ask why) and I never had trouble with event-based programming. This is not a coincidence. What language to start with is an important decision, and should be made on the language's merits -- not corporate contributions.
Now, C# may actually be a good choice. Many schools use C, which is awfully difficult on beginners, and many use Java, which IMO beats in OOP the wrong way. I might start a class in PERL, but I would have to be careful to stress readability. I would look for a procedural language with some OOP and functional capabilities, and a generally sane design. C# may be this. I would also want something with some history behind it, a user community, and developement tools I really trusted. C# IMO fails here, but these aren't the most vital charactoristics.
So what languages they teach does matter, and what language they start with does matter, though they certainly should teach well beyond that. It also matters whether they show their students to make choices on a technical basis or a marketing/bribery basis. It probably doesn't matter as much as it looks like at first glance, though.
Now if UWaterloo starts publishing research papers on how reliable and secure WinXP is, then we'll know they were up to something.
Sig:Why copyright isn't a fundamental human right
Try it this way: yeah but everytime you say Java(tm) you tend to spread word of mouth about Sun Microsystems. So even if there is a Java(tm) compiler for linux, Sun gets free advertising.
Oh, but Sun is the good megacorp, and Java(tm) is an open source and standards-based, well, OK, it isn't really, but C#, is, well, it is an ECMA standard. But Microsoft is bad, no matter what.
Java is the blue pill
Choose the red pill
Well, this special status is after my time, so I don't know the reasons for it, but I doubt it would simply be that the students give better interviews, as the book chapter implied. That would work at first, but surely after hiring a lot of UW grads if they didn't do a good job you would notice the steak didn't match the sizzle.
I think microsoft would notice, they put a lot of effort into their hiring.
Has it been over a year since you last donated to the Electronic Frontier Foundation