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.
I think the real travesty here is that any corporation could get the university to run a mandatory course about thier product. Where's the academic integrity?
Help us build a better map!
Now the phrase "school sucks" is no longer a subjective comment.
*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.
I went to school at JMU and the NSA actually has a small office there. I know more than a 'few' people who have been recruited directly out of there into the black world. They funded some of the CS and ISAT dept. there and had some core curriculum additions made. I certainly dont remember there being two Algorithim Development classes being required there before they showed up.
This may be the first time that Microsoft has funded a school but it is definitely not the first time that a gov't entity or corporation has.
Honesty may be the best policy, but apparently by elimination, dishonesty is the second best policy.
When I connected to the site:
/home/uws/websites/uwstudent.org/lib/dbconnect.php on line 2
/home/uws/websites/uwstudent.org/lib/dbconnect.php on line 2
Warning: Too many connections in
Warning: MySQL Connection Failed: Too many connections in
could not connect to database
Someone you trust is one of us.
I think the move toward corporate education at the university level is a good one. Perhaps now that the people being fed the lies are at a cognitive level where they can see through it, they'll fight back. The little ones have been handed this kind of crap for years.
I'm much funnier now that I'm a subscriber.
Well microsoft will do what it can to have it's new programs and languages adopted. It's apon the univerisities to make the desiscions which keep them impartial institutions for learning. Perhaps the university should consider if the funding donation is enough to compromise their proported impartiality.
-- Greg
Slashdot, would a spell-checker for posting be too much to ask? It's not rocket science!
How does it work in college? some subjects you enjoy, some others you don't like but you know they'll be useful, and some others you just loathe, but you have to complete them in order to graduate.
So what if they have to learn another programming language. I once had a full course on Prolog, which I hated, but I went through it, passed, and then forgot completely about Prolog.
This seems to me like just it. Pass the course on C#, maybe with the help of some nearby geek, for those who don't like programming too much, and then go on with your life. It's not like C# will be the only language they'll ever use after that.
Unless, of course, it's the ONLY mandatory programming course they have?
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.
Years ago, I read that Microsoft invests more in Waterloo than in any other university in North America.
Waterloo is the top comp sci school in Canada (no, I went to the University of Victoria, so pretty objective), and in the top 5 in North America.
Bummer that they've sold out.
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.
This is nothing new. For quite some time, every CS Freshman at UIUC was issued a free copy of MS Visual Studio.
Of course, it happened my Sophmore year, so I was not gifted with the freebies. Of course, I did get a free copy of the one true version of Windows (Win2k) from MS for free later, so I'm no more bitter than I usually am.
Gentoo Sucks
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
Community Colleges that have courses available, are very PRO-Microsoft. The Community College I am going to has,
The rare Linux, or C++, or C class is taught at night and there tends to only be one class. It is more a matter of Microsoft taking over all computer learning and other stuff is just a set of geeky computer products.
Jane: "Darn it, Bob, I just don't understand. No matter how many times we ask people, 'Where do you want to go today?', they still seem to think of us as a big, bullying monopolist."
Bob: "Well, Jane, maybe we should just change the message. Perhaps if we say, 'Where do you really want to go today?', people will respond better!"
The guy in the corner from developer marketing meekly raises his hand. "Uh, guys, perhaps if we didn't put out press releases crowing about our ability to buy out universities, we wouldn't be perceived as bullies."
Jane: "Bob, I think your proposal is right on the money!"
Bob: "Hey, that's why they pay us the big bucks, right?"
Read the EFF's Fair Use FAQ
The students don't have to use Microsoft's compiler. This is a very stupid move on Microsoft's part, because it just generates bad publicity, without any payoff. They think that they can own a programming language and somehow exert control through that ownership. Right, the same way Stroustrup controls the activities of thousands of Visual C++ developers. And hey, those C coders won't twitch a finger without Dennis Ritchie's approval.
Not to take M$'s side or anything, but at least they're teaching something RELEVANT now. When I went there, they were inflicting MODULA-3 on us. (And Pascal.. but then, I like Pascal)
"Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
By Ryan Chen-Wing on Wednesday, August 14, 2002 at 12:33 p.m.
MS Ca Pres Clegg and Dr. Dave sign agreement At 10:00 today Microsoft Canada Co. President Frank Clegg announced $2.3 million funding that will facilitate three projects in the areas of academic research, education solutions, and curriculum integration. UW President David Johnston, UW's Director of ICR Vic DiCiccio, and MS Canada's Director of Education Sector George Kyriakis spoke as part of the announcement.
The aim of the research project is to develop equation recognition for new Tablet PCs that, in addition to having the functionality of laptops, have a screen which is touch sensitive to styli.
Clegg said that Tablet PCs are set to be released 7 November this year. He said he couldn't say for sure what the retail price will, "It would be great if we could get it down to the price of of a regular laptop."
Clegg and Dr. Dave discussing the Tablet PC The education solutions project will allow students to access lab equipment and simulators. A press release says that 8,000 course students in E&CE will benefit from this.
Under curriculum integration, first-choice applicants to UW's E&CE program will be allowed to take a new pre-university programming course in C#, E&CE 050. Completion of this course will be mandatory for students entering the E&CE program. C# is a new programming language developed by Microsoft.
The existing course E&CE 150, an introductory course to programming, will change from using C++ to C#.
DiCiccio commented on changing curriculum under the agreement, "E&CE weighed all the aspects of it and was comfortable with the change...UW is really sensitive to curriculum decisions it makes." He also joked, "$2.3 million isn't enough to sacrifice curriculum."
DiCiccio, Johnston, Clegg and Kyriakis At the end of the press conference, Clegg and President Johnston signed the agreement using an Acer Tablet PC. The announcement was made at UW in the Davis Centre's ICR Corporate Partner Lounge, which is also known as the fishbowl or the wine-and-cheese lounge. About 100 people attended.
The funding is part of the Microsoft Canada Academic Innovation Alliance, a $10 million dollar fund administered over five years that will accept proposals from acredited universities. A press release describes the four categories of the fund, academic research, education solutions, curriculum integration and industry outreach.
Kyriakis said, "We believe we should create ties between the business community and the academic community to ensure that innovation happens into the future." He added, "What we're doing at Waterloo is just fantastic."
All projects under the alliance will incorporate Microsoft technology. Clegg said, "We think that is the value that we provide."
Microsoft Canada President Frank Clegg has agreed to answer the 10 best questions posed by uws readers about the Microsoft Canada Academic Innovation Alliance, and its impact at UW. So, post your questions. uws editors will select the 10 best and send them to Mr. Clegg, then post his responses.
You can accomplish anything you set your mind to. The impossible just takes a little longer.
Guys, this is an ancient practice dating from when IBM and alums would give away mainframes for market share and also writeoffs, all the way through to Apples in the classrooms to hook the little monsters on GUIs. This is so old hat, it's just a knee-jerk reaction story. Move along, nothing new to see here.
________________________________________ History Must Not Fall Into The Wrong Hands ___________________________________
I'll worry when the University makes the C# class mandatory for English majors.
The difference here is choice. It's not a matter of it being Micosoft that's doing this, it's a matter of a company being able to have the influence over academia to mandate students learn to use their products.
There is nothing wrong with a University offering classes that deal with MS, but when they are forced, the message is sent that MS is insuring that when people graduate, they will have a healthy number of people in the workforce who are famiular with their prodcuts.
Weather or not MS's products are better or worse then their competitors is a moot point. I certiantly woudn't want to go to a school that mandates I am knowledgable of a particular comapnies products at the expense of learning about another companies products that I am more interested in (or am seeking a job working on after graduation)
Microsoft gets a good deal more of blame then if this was proposed by another company because it fits into a larger scheme of gorillia marketing tactics. Why spend more money/resources making our product better if A: we can make sure that everyone uses ours, and B: we can make sure that there will always be people around to fix it if it breaks.
The Internet is generally stupid
normally I would agree with you, but considering MS's history of domination, they will end up with a lot more cotrol over the industry, then most companies.
Where does someone go to school when they all are like this? how does one minimize the effects of corporate bias?
The Kruger Dunning explains most post on
Let me put it this way -- there's ALWAYS a market for very talented people.
[This is an excerpt from chapter 2 of my book.]
- adamI've read the article on UWStudent.org, and while I don't know anything about E&CE050, as a computer engineering student at UW, I have taken E&CE150 not too long ago and I can definitely say that the focus is not really on the specific language used, but things like algorithms, data structures, sorting/searching, root finding.
The second course of the set - ECE250 - is titled Algorithms and Data Structures and is taught in Java, and in either case, you are expected to pick up the language and start using it without any hand-holding. There's one hour tutorial at the start of the course that explains the language used (it was C++ for me), and after that, it's just TA's helping people during lab hours.
I don't think this is as big a deal as it sounds...
Personally, I find that to be a much better choice for making big bucks from sitting in front of a computer.
I can't imagine how you equate "paying several thousand dollars in annual tuition" with "making big bucks". Or did you mean that UW is the best choice for a stepping stone to those high-paying jobs? Because I'm sure there are millions of graduates of other schools around the world who would disagree with that statement.
Any sufficiently well-organized community is indistinguishable from Government.
The response of going to another school is so shallow it's hardly worth replying to, but as the comment got modded up...
At the University of British Columbia (where I'm a PhD student) Coke has a monopoly deal -- all vending machines and food sources on campus sell only Coke products. (UBC is isolated -- virtually no off campus sources are available.) So what -- just drink water? UBC has removed/is removing the drinking water fountains from around campus, because of "maintenance costs" -- which is a bit of a joke because none have ever been maintained as far as I can see. No connection to the contract with Coke, I'm sure... My collegues and I currently fill waterbottles from the taps in the bathrooms, and we're just waiting for some nasty disease to ripple through.
Universities fill a WAY larger role in society than job training. Deals like this one erode the functions of independant criticism.
MS is never going to win any mind share, but they still have the upper hand ... Because every last person I heard say "Fuck Microsoft" didn't turn down a job offer doing development on MS platforms/compilers -- if an offer was made.
Having principles can be damn expensive
Religion is a gateway psychosis. -- Dave Foley
As a developer who uses C++ and who realizes that very, very few people who use it actually know it I would like to thank UW for ensuring that I never have to look at a resume from a kid who graduates from there.
Droping C++ from the cariculum ensures that students graduating with degrees from UW will not be suitable for working on anthing that most of my peers would consider interesting.
Bravo UW.
Beware the wood elf!!!
you are right, but in most cases student opinion really doesn't matter.
I graduated from Bowling Green State University this past December. They completed our new student union sometime around then (I really don't remember when it was done, maybe Spring Break). Anyway, this fucking project was funded in part by a large donation from Pepsi Co. which came from the school deciding to go 100% w/Pepsi instead of multiple vendors.
I never have and never will like Pepsi. It's not b/c of them being stupid w/Spears, etc, it's just b/c it tastes like shit. Anyway. My last year or so I didn't have the choice of what drink to have on campus (no, I didn't have cash on hand to buy Coke somewhere else and drink it on campus).
The student body was asked what their opinion was. A panel was formed, they decided, fuck Pepsi and the Union donation, we were sticking w/choice.
The school OTOH decided that 8 million dollars was worth pissing on the students and building a huge Union (with a lot of empty space I might add).
back to the original comment. Yes, they make these deals but w/o really caring for the students. $ > students, always.
Here in the UK our universities have been a bunch of evil sell-outs for ages. We always joked that our university was really a conference park that took students in when it wasn't conference season. We joked, but the conference guests got better amenities in the university accomodation than the students did.
Also there was a lot of courses in compsci where you'd just think "Why the hell is this course in here ?" An example was on the MSc in Information Technology (basically a 1 year conversion course for people new to IT) where they had a course on inductive logic programming. This was way ahead of anything else the students were taught (data structures, basic pascal programming etc). The real reason was that the inductive logic dude was a former Oxford lecturer who came with attractive grant prospects.
It's all about making money and not teaching students. Universities are businesses. They have only a little more integrity than those spammers who offer to sell you a degree over the internet!
Also look at the fact that final degree marks have changed. In my parents' time it was incredibly difficult to get a 1st class degree, you had to work really hard to get a 2.1 etc. Now they basically split it like:
bottom 10% = Do no work at all- go to no lectures: pass general , fail or 3rd class (randomly decided)
middle 80% = 2.2 or 2.1- either did work or was intelligent but did no work.
top 10% = 1st.
graspee
Following in the footsteps of the esteemed Universtity of Waterloo, we'd like to announce a joint venture with the RIAA. In return for a generous donation from the music industry, we're adding a mandatory course in copywrite extension and protection. Students will learn first hand how the indefinite extension of copywrites and the robust persecution of lawbreakers, help insure the future of our great legal tradition.
U Waterloo has always been in the computer industry's pockets, it seems. Back in the 80's it was IBM, now it's Microsoft. Ho hum. UW does produce good engineers, but they tend not to think outside the box. (Which may not be a quality you want in all your engineers, anyway.)
(Disclaimer: while I've never attended UW, I used to live a block from campus, my (now ex-) wife worked there, and I once worked at a company where there were only two other (out of about fifty) non-UW grads on the tech staff. I also worked at the computer center of another university a few miles down the road from UW, we were pretty familiar with things at that campus.)
-- Alastair
Waterloo, Canada is named for Waterloo, Germany (it was founded by German people and it used to be called Berlin before WW2 when people made them change it).
Napolean's battle of waterloo took place in Belgium, not Germany, therefore a Napoleon joke is not required.
ALL of Conestoga College computers in EVERY computer lab will be running WinXP by the start of this semester. why? nobody I have been able to talk to knows, the instructors aren't really happy, the IT people sure aren't happy (some still stuck on Novell). They are building a brand new building though... ;)
- email president@uwaterloo.ca
- phone 519-888-4567, Ext. 2202
- fax 519-888-6337
4 years from now a bunch of grads will be heading to interviews...
...
Grad: "I know C#! Hire me!"
Industry: "C#. Check. What else do you know?"
Grad: "Huh? Like what?"
Industry: "Well, what did you learn in some of your other courses?
Grad: "I know how to design a web page so that it only works under Internet Explorer."
Industry: "Hmm..okaaaay. What type of degree did you say you have again?"
Grad: "I have a copy right here..."
Industry: "That says MCSE. That's not a diploma."
Grad: "No, it is. There's some fine print at the bottom. See?"
Well, it sucks a bit because it's MS, but to be fair, I've had three courses that used Java exclusively during my studies at Carleton University in Ottawa, Canada.
The two first year intro to programming courses as well as a second year data structures course all used Java. As much as it is a cheap rip-off, MS seems to be paying more attention (or lip-service) to the standards bodies than Sun did.
Don't get me wrong, I don't like that MS has basically ripped of Java, but I honestly don't see how this is any worse than the many schools using Java in the curriculum.
Plus, in my experience, C# encourages bad programming style. I wrote a work report last fall (I'm a UW CS co-op) tearing it apart, but I'll leave a full discussion of that to someone else.
Microsoft picked a good timing schedule for announcing this. The university admissions/offers cycle has just ended, so you can't easily rescind your acceptance of their offer of admission and switch to another university that also sent you an offer.
The way it works in Ontario, Canada is that the central university admissions group, the OUAC manages all admissions requests and communicates between the high schools and universities. If a university sends you an offer of admission, you reply to the OUAC before a deadline which is common among all universities. If you get another offer you like more (maybe with better scholarship $$) you send that one to the OUAC and it overrides the previous one. This is all nice and good as long as it is done before the deadline.
This deadline has already passed - I think it was about a month ago, so if someone got into Comp.Eng at Waterloo, they may just be kicking themselves now. (Note: I am not in this batch of applicants ... I have been in a well respected Engineering program at a well respected Ontario University for some years now. My Engineering Faculty actually did a formal survey of all students regarding this very subject last year because a situation like this with an unnamed but controversial corporation has arisen.) I think the timing of the announcement shows that MSFT knows that there will be opposition for this among students, thus they announce it now when it's too late to change your mind.
One other thing to note is that not all universities send their offers of admission around the same time. For example, I got my offer from UofT a couple of months before the dealine, but Waterloo's came 2 days before. Waterloo doesn't give you much time to decide. Furthermore, they give priority to a very small number of students with elite marks. This one person I knew in high school who was an uber-intellect got her waterloo admission even before I got mine from UofT. (Note: The 'elite' mark status depends on the University. Waterloo's threshold is very, VERY high, somewhere above 96%. I believe I had 'elite mark status' from UofT with my 90+% average, thus getting me an early acceptance from them.)
Note: I am not nor was I ever a student of the University of Waterloo or the University of Toronto. I chose to accept at another University.
First they came for UW, and I didn't speak up because I didn't go there...
By not going there, you are speaking up.
A Government Is a Body of People, Usually Notably Ungoverned
I always thought that open source software or free software had a great place in the university setting. Teaching students at an earlier age about the many advantages of open source software is a great thing. Ever since I was introduced to the Solaris workstations, GNU gcc, emacs, I've realized how powerful they are. I wouldn't want tomorrow's students missing that experience.
"All your brain are belong to us!"
It's already Bill's waterloo, and has been for years. MSFT has, for a long time, harvested the top CS and ENGG people from waterloo to work for them. This is a 'formalisation' of that relationship which has existed for a long time. It's pretty common knowledge when you get to the end of high school in Ontario, if you're a computers/engineering type person (like I was) that this is the case. All your upper CS/physical science teachers know about it through their former students who went to UW.
One guy from my school who was almost graduated from Waterloo CS at the time I was almost graduated from high school was offered something like US$60k + US$10k stock options and a whole whackload of benefits by MSFT.
It might be interesting to let them know that there are quite some people who don't like the idea of "buying a course" :)
For example: mail them to ask the pricelist to buy a course
This is nothing new. Rich patrons have been tying strings to their donations since the first university.
The only alternative to private charitable donations is more government funding. But I don't know about you, but I trust my government even less than I trust Microsoft. In my home state of California, University curricula change every four years like clockwork, just after elections.
I think a lot of the angst over this one is simply because this time it's Microsoft. Reactions would be much more subdued if Sun made a donation requiring a Java class. And the reaction would be downright positive if Redhat made a donation that required a GNOME class.
A Government Is a Body of People, Usually Notably Ungoverned
Then why not subject all of those "really productive types" to MATLAB instead of C#?
A Pirate and a Puritan look the same on a balance sheet.
No, there is more to the story. I don't go to UBC, but I live in Vancouver and am going to SFU (another local university) next fall from HS. Anyway, a year or so back UBC didn't meet their quota for selling and Coke was threatening to pull out unless they started to really change the status quo. Well, I am not sure what really happened after that, but they didn't apparently pull out. It is not paranoia, it is quite rational thinking.
Buying a Dell computer is equivalent to dropping the soap in a prison shower.
So you can be trained as a Microsoft lemming. There is a whole economy revolving around keeping Microsfot products running.
But hey, Microsoft products work great until you open the package and install them..... Was it Teddy R who put millions to work cleaning streets, etc to get the economy rolling? This is what Microsoft does with it's monopoly money. They paid AT&T 5 billion dollars to use Windows CE when nobody wanted it and now they are paying Universities and even countries just to use their flawed products.
Now it looks like you'll be picking your school with another criteria. How much MS crap is required for the degree.
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
Don't kid yourself - Microsoft is reaping what it has sewed in the IT industry for decades now; distrust.
Ian Goldberg
___
If you think big enough, you'll never have to do it.
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.
Xix.
"Everything is adjustable, provided you have the right tools"
This is not a case of an "additional mandatory course on C#" being added to the curriculum. This is an instance where the language of instruction in one of the already mandatory courses, namely ECE 150, is being changed from C++ to C#.
This does not make the degree a "Microsoft degree," anymore than using Java in introductory courses (as UW's School of Computer Science does) makes a degree a "Sun degree."
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.
I'm just suprised it's taken this long. In New Zealand, the Government can't afford to pay for tertiary education, and the majority of students seem unwilling to pay their own way - I'm picking it's only a (short) matter of time until the same thing happens here.
Until Governments everywhere bite the bullet and stop using other peoples money to pay for Public Education (an oxymoron if ever there was one), underfunded Universities are going to have to try every trick in the book to obtain funding.
If students themselves paid, in entirety, for their tution, then Universities wouldn't find themselves in the position of sucking up to large corporations in order to obtain money they desperately need, thereby compromising the education they are providing to their students.
That happens to be a very Ontario-centric, Toronto is the centre of the universe opinion. (Even though Waterloo is not in Toronto) Outside of Ontario, the opinion of Waterloo is that it has a very good graduate program, but its undergrad program puts out spagetti coders.
If your looking for an undergrad, take a look into UofC, or SFU. SFU has a coop program just as good as Waterloo, if not better.
If you're looking for a graduate school, you wanna school with a prof that works with stuff you are interested in. And a bigger school, such as UBC or UofT, that throws a lot of money at research. (Which sometimes involves selling your soul to the devil)
But you state you wanna go to Waterloo so you can make big bucks. Here's a little tip. Do what you like. If you like it, you will be good at it. If you're good at it, then you'll make money.
But if you wanna just make the big bucks, go to Waterloo. You and MS will make a great couple.
Microsoft has been after Canadian universities for years. In my first year at my university, Microsoft held a info session about jobs and stuff like that and introduced a programming contest. The contest was to write a program for Windows CE. No problem, right? Except the emulator (which was free) only ran on Win2000 or NT. To get around that, they gave away free copies of Win 2000, with a free development environment. I still have mine.
.NET and gave away free copies of VS .NET Beta 2. Do some stuff (write programs in VS, talk about them, etc) and get more free stuff (Office XP, Win XP, mice, etc). Need Win2000 to develop Web services? No problem. Ask and ye shall recieve. I still use VS .NET Beta 2, learned VB .NET on my own, learned C#, and will try VC++ .NET sometime. I keep my programs for a future application to Microsoft, (despite my dual booting Red Hat 7.3).
.NET and related technologies with tutorials, how to's, all kinds of neat little things. Students can post their creations, or tutorials. Some of them were damn good. Points were awarded for more free stuff. I used it frequently.
This year, a slightly different spin. Microsoft was introducing Visual Studio
Microsoft piloted DevHood.com, a website aimed at students using VS
The point? Microsoft wants kids to use their stuff and like it. They want kids to find out how easy it is. C# is easy. But then I've also taken 3 Java courses, so picking up C# was easy.
Don't knock Waterloo too badly. There was a time when I would sell my soul to go there. (I'm not there now). But Microsoft isn't doing anything different. They're just more direct. Most employers that I've been told about want Microsoft knowledge. Waterloo is doing what most universities say they are doing to their grads.
Making their grads marketable.
It affects a student indirectly even if not directly. The "spirit" of the E&CE department may have changed irrevocably today.
:-)
I don't think there's been a CS class since UW started that didn't have some screwiness. I went through the first CS130 as Java instead of Pascal. We also had things moved around with CS246, and ended up with a course that had about 5 weeks of material. It's part of the process of education, albeit one that they aren't very forthcoming about.
If you're interested in signing onto the letter that will be drafted to the CS department, drop me a line.
my user id is raewasch, and I go to the same school as you. you can figure out my email.
-Rob
-Rob Ewaschuk
Apple worked hard to SELL their products to the school for students to USE. Please correct me if I'm wrong, but I don't think Apple ever gave money to a school to mandate that students study Apple-proprietary technology. If they did, I'll slam them just as hard.
http://wwwtor.activate.net/microsoft/Aug14-02/incl ude/forms/proceed.htm
...that's because no one wants to corrupt young minds with their proprietary, inferior academic and development tools. If you don't believe that they are inferior, just try using their c++ compiler for classes that use inheritance and/or polymorphism. Getting it to work is more or less a crapshoot. [Granted, gcc 2.x has problems too, but that's what 3.x is for.]
And, for the record, the reason Sun does so well in academia is that they purposely avoid locking people into using their products through proprietary-isms. Profesionals in academia don't take to well to that kind of bullying, and they tend to be computer-literate enough to depoly OSS.
To make laws that man cannot, and will not obey, serves to bring all law into contempt.
--E.C. Stanton
Back in my college days, my CS professors stressed understanding of the concept over understanding of the language. As long as the concepts are reinforced I don't have a problem with implementing them in C#.
I do, however, have a problem with this quote from the article:
Kyriakis said, "We believe we should create ties between the business community and the academic community to ensure that innovation happens into the future."
What does the business community have to do with innovation? Most innovation in this country comes from academia. The biotech industry was built around university research, most of the computer industry from "Stanford University Networks" (SUN) to Cisco had their foundations in academia. The innovation usually flows from academia to the business sector...not the other way around.
Public sector businesses are great at refining the technologies for commercial sale and use, but when it comes to truly groundbreaking work...they stink at it. Research for research's sake costs lots of money and no corporation wants those costs to smack the bottom line.
I've got a suggestion for the people in Redmond. If you want to give "innovation" to academia publish the source code to Microsoft products for academic study.
-ted
This isn't news. Maybe it's still worth talking about. But let me paint you a picture from 15 years ago at my university.
CS graphics labs full of SGI, NeXT, and Sun workstations. Library word processing labs full of Apple hardware and Microsoft software with tutorials and manuals to encourage use. Another word processing lab full of IBM hardware with Big Blue banners. Students trained on proprietary software (Adobe, Microsoft, Corel), corporate posters polastered on the walls.
Okay, so this C# course is mandatory and in -theory- you could avoid all the other corporate influences. Yeah, in theory, but almost never in practice. And from looking at resumes, I know that Java(TM) has worked its way into mandatory paths of education recently. And let's not even get into the Maya, 3DS, Photoshop, and AutoCad stuff that goes on.
So let's keep talking about the downside of this trend, but as fun as it is to hate Microsoft, let's acknowledge that this practice wasn't started by them and they're not the only ones playing the game today.
It doesn't matter how current your programming language is. If you're using a toy to demonstrate concepts when a full blown implementation is just as available, that's where things get ugly.
Programming languages are not much of an issue to me nowadays. All of the languages that have seriously caught on (apart from Basic) have their structure ripped from C/C++. You can look at PERL and find bits of Bash and awk, but still.
How long does it take to learn a new programming language, and its syntax? Not *incredibly* long. It takes longer to learn the syntax, and find out about all the specialized functions that each one has built into it.
Being a compsci student, programming languages should be fairly simple to pick up (after C++, give a few weeks to learn how to do things equivalently). I wish we'd get more time learning how to do things (Makefiles etc) than focus on 10 different ways to say "Hello world"
I'd much rather take two semesters of a class that does something real (like tweak with linux, or write a C compiler) than one semester of something that won't be useful in the real world (tweaking NACHOS, or a COOL compiler).
It's times like that I wonder what *really* goes into getting a diploma.
/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
I can't wait to see what sort of scary EULA madness will eventually and inevitably be shrinkwrapped over the University of Waterloo's degrees. Just imagine the happy faces at graduation as they peel back the shrinkwrap on their degrees. And when MS move to a new licensing model, will all the version 1.0 University of Waterloo degrees be de-activated unless graduates pay a re-activation fee? The mind boggles.
Da Blog
"Universities should be about education,"
Yes in a ideal world it should be, but post HS education is all about money period. The fact that people get an education is just a byproduct of a business transaction.
"Anyhow, it seems to me a horrible idea to set this sort of prescident"
How about the deals college make with Credit Card and Long distance companies? You do know there are kickbacks for those little booths setup on campus? You also do know that most students get in way over their head in debt and that colleges and the CC companies know the parents will bail them out? Tell me that's not wrong. Did you also know colleges are scrambling to recover costs because students are bypassing the schools highly profitable phone service by using their cell phones. Bet you didn't know that most colleges either in the phone company business or get kickbacks from the local phone company. I am not even going to go into the deals which decide which textbooks you get and how much you will pay(get raped) for them.
"Higher Ed" sold its soul for money long ago.
BTW I also happen to be more than a little bitter about the spiraling cost of education. All I can say is support your local community college.
If you wanna get rich, you know that payback is a bitch
The local community college here uses almost pure MS crap in teaching CS. Not just specific skills, either, but general computer science.
I intend to appeal to the chairperson of the department to support me in setting up free(or very low cost) "workshops" for students(and faculty if they're interested) on other programming languages and environments. We have a Linux lab, but it typically goes unused since none of the faculty know enough to teach the students how to use it.
The key is to change that. Spread thw word that there are alternatives.
Back in the early 1980's, there was a change in the accreditation rules which stated that a College or University could not teach a specific computer language and remain accredited.
The result was a lot of courses, like "Data structures using C++" and "Business programming with FORTRAN", rather than specific language courses, because computer languages were no longer allowed to be an ends in themselves: the accreditation committees had seen the writing on the wall that days of "COBOL is forever" would son be over.
It's interesting to see that the U of Waterloo is endorsing a pure language course as a program entry requirement; I would not like to be standing near the fan when the accreditation committee gets a hold of this (though I'm not adverse to turning the fan on by telling them).
If I were a student currently at, or considering entering, the U of Waterloo, I would be rather worried that I would not be able to go on to a graduate degree from Stanford, MIT, CIT, Berkeley, etc., because the University from which I received my undergraduate degree was not accredited.
I would be particularly concerned if this was my third or second year, or even my first, if I turned down other offers to attend there instead.
-- Terry
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
Cisco paid my highschool a million dollars and gave them shitloads of hardware to teach cisco classes and they've done the same for several junior colleges and schools all over, you don't see anyone complaining about that.
Whoah, that's only a little tiny microscopic part of the problem. Consider a University that does not only ask students to be high profile and high pocketed and high IQ, but also MANDATES them to _BUY_ MS OFFICE and to intall it in the students personal computers (bough by them of course).
There should be plenty of universities, the one that I know is Harvard. You either install XP and MS Office or you can choose yourself another university (a lossers one or what?)...
Take a look at the computer requirements and be enjoy! (warining: the requirements are sent to the students as MS Word Attachments, so you must have office to look at them).
Linxu evangelization is fine, but when you have the inquisition at universities, what good is the Cult of Linux??? They'll just hung or burn you if you don't pledge guilty of wizardry!
unfinished: (adj.)
Lots of talk in here so far about this is good/bad for Education so I'd like to make another point.
I looked at the numbers in the MS press release and thought: $10 spread over 5 years and across all the universities in the country? How lame? $2.3M for this deal ($7.7M left for the remaining 4 years).
Ten million dollars is equivilant to what, perhaps 4 seconds worth of profit from Microsoft? Consider that Microsoft proper currently sits on $40 billion in cash. If they where taxes 30% on that money. $2.3 million would be due in about 2 hours. This doesn't even get in to their temendous cash flow.
Waterloo isn't just a Microsoft whore, it's a damed cheap one at that. I can understand selling out for the money, but they should have at least demanded $50M per year.
Article X: The powers not delegated... by the Constitution...are reserved...to the people
And at an Ivy League school you work real hard also, and you come out with the same work hard all the time attitude.
- adam
The Ivies recruit (well they don't "recruit" per se, more like "harvest") from the top high school all over the US.
- adam
In earlier years, the language CS students usually programmed in first was Pascal.* Java has now largely supplanted that, probably because it's freely available, easy to get impressive-looking results with (due to the standard GUI toolkits included with it), and stands a better chance of being relevant. Sun may have had a hand in promoting Java for academic use, too.
So Microsoft's trying to even the score...hopefully, most schools will look at C# and decide "no, we already teach Java, how is this any different?" Of course, if M$ waves cash in their faces, all bets are off...
* - At least, this was the case in the late 80's, when I went through the CS curriculum at UCSB. Lower-division CS classes tended to use Pascal; upper-division ones used C. They've since switched to Java in lower-division courses.
Be who you are...and be it in style!
I've got a suggestion for the people in Redmond. If you want to give "innovation" to academia publish the source code to Microsoft products for academic study.
like they already do? anyone at a decent college can get access to the source for microsoft products..
Please correct me if I'm wrong, but I don't think Apple ever gave money to a school to mandate that students study Apple-proprietary technology.
Giving schools free computers and bribing faculty and staff with cheap/free computers for personal use accomplishes the same thing.. Apple is after all a hardware company.
Well if you do in fact go there, you'd know that they didn't sell out their curriculum to microsoft, they just changed 1 class that was already mandatory and taught in c++ to c#.
/. Everyone knows going into a program at Waterloo that they will mostly likely have an easy chance at getting at job at MS.
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.
No you wouldn't.. you're just talking a big game because this is
This public service announcement was brought to you by... ;)
Compulsory Microsoft courses requiring acceptance of viral Microsoft 'shared source' licensing to basically 'salt the earth' and prevent OSS from ever growing any more.
It is a fact that acceptance of Microsoft's 'Shared Source' involves legal admissions of being privy to Microsoft IP, and also legal admissions that you have no rights to any of it. For that matter, there was something else in there blocking you from bringing suit against Microsoft over patents.
Any compulsory Microsoft programming language course could easily be made to require reference to 'Shared Source' to pass the course- what do you think the course materials would be? This is a missing step- but so easy to implement, given the existence of the viral Shared Source licensing, and the existence of schools in which you MUST take a Microsoft programming language course (presumably for certain majors).
It just falls into place- beautiful, beautiful strategy if you look at it strictly as warfare. If you look at it in terms of creating a society that's functional, then no- you are creating a society filled with booby-trapped coders, who can be taken out of action at any time by Microsoft.
Any college taking such a path would turn out EXCLUSIVELY coders who were legally vulnerable to any Microsoft action. They would be on record as having agreed that they had seen and worked with Microsoft IP, and that this IP was not theirs to keep. This is a setup for directed lawsuits to shut down any OSS project deemed threatening, because the burden of proof would be on the OSS project to prove that it was not infringing proprietary Microsoft IP, even though it was using coders that had made formal legal admissions that they had seen and worked with such IP, and knew it wasn't theirs to keep.
I really fail to see how this isn't a problem. It's not about 'mindshare' at all, it's about leveraging Microsoft's capability to get in a position where ALL CODERS (from a given school) are tainted with the Microsoft version of viral licensing, which equates to a permanent legal timebomb.
That is too high a price to pay just to have the pleasure of playing 'free market capital' with education, and being given money. People seem to have forgotten that there are IP concerns that could arise from this sort of thing. It is a very deadly threat, perhaps the only thing that could genuinely cripple OSS itself (a widespread condition of guilty-unless-expensively-proven-innocent w.r.t. software) and I don't feel I am underestimating Microsoft when I say that this threat is being wielded with full awareness and attention.
I was a freshman at UW in 1981. Back then it was IBM playing these games. And they've always had the idea that you take what they tell you to take.
/tmp drive to preserve space in your home directory. Ocassionally if you wanted to keep a compiled output you would just mv /tmp/output /home/myname. mv had a bug where it forgot to adjust quota usage. If you then deleted this file from your home directory, it would add space to your home directory quota that had come from the /tmp directory! Many of us had megabytes of storage once this was discovered.
/tmp that when he deleted it from his home directory, his quota wrapped to zero. Now he had an account where his home directory was frozen like ice and he was too afraid of confessing what he had done to ask the sysadmin to fix it.
I travel 3000Km across Canada to go to the school regarded as having the best math/CS program and when I get there I discover that the CS faculity has been pillaged by the private sector, so the new rules are that first and second year CS majors can only take ONE course in computer science each term and that for that ONE course each term there is ONE choice. First year: FORTRAN and COBOL. Second year: 6809 assembly language and an introduction to data structures.
Back then Ontario had grade 13, which meant they often had a computer credit on their high school transcript. None of us from out of province had this credit. If you had this credit, you could elect to take Pascal instead of FORTRAN (but the problem assignments were the same). It cost the university an extra $10 a student/term in extra computer time.
The WIDJET terminal rooms we were given were the worst computing environment I've ever encountered. Waterloo Interactive Direct Job Entry Terminals. Ugh! A complete waste of phosphorous, although it did save trees.
IIRC there were four IBM mainframes clustered together in the big Red Room. The terminals were handled by minicomputers which gathered the jobs together and submitted them to the IBM cluster.
Some of the terminal rooms were worse than others. As a student you were given roughly 100K of storage area for your work in progress. In order to get a directory listing of the files you owned, you had to submit a job. This meant you had to sit there with your "give me a directory listing" job in the job queue. On any given night you could be stuck in the job queue for five to ten minutes. Then you had to submit a job to call up the desired file to edit. Another five to ten minutes. You couldn't do anything else on the terminal while you waited. Unless you were foolish: doing anything else cancelled the job you were waiting for!
Finally, you would submit you program to run. Upper year students had priority over freshmen. Sometimes you would submit a job that would start at queue position 7. Half an hour later you might be at queue position 30. You can't work on another assignment while you sit there. That would cancel your run job. Other people are lined up at the door waiting for a terminal, but the terminals never come free because the whole room is stuck in the run queue, and no one is getting anything done.
For one of my statistics courses I had the joy of using the IBM PC room. Brand spanking new 4.77MHz machines. We did our coursework for that course in APL in the greek/geek APL character set. I learned APL inside out in my highschool days so this was one course I enjoyed.
The IBM PCs were so unreliable that at any given time 25% of the systems would be unresponsive. You'd be standing there waiting for a system and one out of every four systems would be inoperative.
In an evil moment I discovered a way to reserve myself a keyboard. Take two systems set up back to back and reverse the keyboards. People would come up to the system, press a key see nothing on the screen. Then they would press CAPS lock and the keyboard light would toggle on and off. Obviously a dead system. Nothing to see here, move along! Too many hours at queue position 30 in that other terminal room, my survival instincts had taken over.
The 6809 room was mildly redeeming. They were crashed a lot, almost as much as the IBM PCs. But if you did get a system that worked, you could actually use your time well. We used a 6809 assembler known as WSL (Waterloo Systems Language). WSL was the most modern and well structured language I learned at Waterloo. It was an assembler where you could right proper block structured code with a while/if/then syntax. I think this was an offshoot of the Waterloo Systems Group that eventually spun off the excellent Watcom C/C++ compiler.
The only way to get a CS education at Waterloo at that time was to get a COOP assignment to the WSG. There you would meet real CS professors who would teach you real material like how to unroll conceptually nested iterators either forward or backwards.
The other nice thing about the 6809 terminals were all the bugs in the file system. You had very little storage for your own programs. Roughly 100K. Sometimes it was hard to save all your work for just one assignment there. If you wanted to keep your old assignments for reference, tough luck. It became common practice to compile your programs to the
I explained this trick to a roommate of mine and went wild with it. He created such a huge file on
The non geek faction at Waterloo was very small at the time. The math/CS dept. had 4000 undergrads, engineering was next, then science, then the arts the professional schools. Some of the non geek departments were so small they got stuck in cubbyholes. For example, the kinners and wreckers (Kinnesiology and Recreation) shared the fifth floor of the math building with the pure math dept.
There was this strange geek ordor that hung around campus and even pervaded the arts faculties. Over in the English dept. they had a required course in CS which Waterloo was teaching in PL/C of all god forsaken languages. One of the best jobs on campus was being the TA camped out in the corner of the PL/C terminal room. Half the females on campus were all in that one room, and they all needed help. Hmmm, perhaps there was a method to the cirriculum selection at Waterloo after all.
In my residence the students in Systems Design Engineering and Physics had access to better CS instruction and better CS systems than those of us majoring in CS. At that time you needed a 92% graduating average from high school just to apply to Systems Design. Where I went to high school I had an English lit teacher who said he had given out one grade higher than 90% in the last ten years. The school system in Ontario had suffered from massive grade inflation in the grade 13 school year so that Ontario students could get all the scholarships according to these insane admission requirements. The guy who got the 90% grade at my highschool graduated Summa Cum Laude from Harvard in world literature, but he wasn't smart enough to be admitted to many of the programs at Waterloo.
The other language I encountered at UW was Snobol, I think for one assignment in the second year introduction to structured programming. This was the one time Waterloo exposed me to something that really set me back. I didn't know what to make of Snobol. It had this weird PL/1-like puffy pastry syntax, yet under the hood it had this powerful string matching facility that reminded me a bit of APL's powerful array primitives. This was the first time I used a language that encouraged you to code only for the cases at hand. Your patterns weren't necessarily foolproof, but they worked for the cases the assignment required. It was my first exposure to a Perl-like environment.
One language they wouldn't teach at Waterloo at that time was C. I think some senior courses used C, but they didn't teach C even for those courses. Even at that time, if you met a person who impressed you as a lean mean programming machine, nine times out of ten they did their serious programming in C.
In second year I obtained a C compiler for my 26 pound Osborne. It came from Software Toolworks in a zip lock baggy. By the end of second year I was spending half my time programming in C on my Osborne at home, and half my time in the arcade. Much later I explained the consequences of this set of choices to my family this way: the arcade was the only place on campus where talent was rewarded with a good result.
On one assignment intended to teach programming efficiency I came up with a superior algorithmic solution. Under interpereted Pascal on a 2MHz class machine, my program ran in 10 seconds, of which 7 seconds was spent by the program listing the results to the console. The class average run time was 30 MINUTES for the brute force algorithm (coded according to the lecture's efficiency guidelines). I got a 6 out of 10 for inefficiency. In Pascal I had written a for loop where the end value was a complex expression. In Pascal the end value is evaluated once and then pushed onto the loop stack. The TA didn't know the difference between Pascal and C so he marked me down for writing a complex expression that was evaluated each time through the loop. Then he marked me down another point for multiplying the same two integers in two different expressions (and not manually creating creating a temporary variable to save an entire machine instruction). Of course, if I made that change my program ran slower due to interpretation overhead. I lost 40% of my grade for four different complaints, every one of which slowed my program down! And I didn't even get a point back for the algorithm two orders of magnitude supperior to the brute force solution. I appealed this injustice to the arcade, which awarded me with a high score for the week.
Back then IBM was the evil beyond evil. Waterloo had the same kind of relationship with IBM that they are forming with Microsoft now. And IBM had the same vision (and respect) for the minds of the future: whatever we pour in there they'll be stuck with forever. Only I think they got $5 million in kind from IBM in the form of vastly overpriced IBM equipment. And yes, it had a direct impact on Waterloo's CS cirriculum. The good news, in the case of IBM versus the free world, is that IBM was soon knocked off their arrogant throne.
Now let's step back and look at C# versus C++.
My understanding of C# is that it's a C/C++ like syntax on top of the CLR and that the CLR is a model in same general family as Visual Basic and Perl and Python and Java (to some degree): values are typed dynamically, and statically enforced type declarations are optional to the programmer. I could be all wet. I formed this impression by listening to TechNetCast archives, which is all the depth I want on C#.
It makes my job easier here that Dijkstra, sadly, was in the news this week. Try to imagine what Dijkstra would have to say about the CLR as an introduction to programming.
Many people seem to think that an introductory course has succeeded if the students can create a program, knows how to execute the program, and can debug it to the extent that it often produces a correct output. Students exposed to computers in this context come away with a runtime centric view of the programming process. If only they had more time to trace their values through the helpful and forgiving runtime, their programs would be correct more often.
This is not the lesson I would choose to teach first, and most definitely not at a university with pretensions to serious education.
There is another view of programming that what matters is the text of the program. That the text of the program has a significance far beyond the runtime nature of the code. That you refine your programming skills by learning to structure the text of your program until it convinces you of its logical integrity, to the extent that your mental model of the problem itself is correct. (If you have real talent, the process of writing the program text will debug your mental model long before you run your code for the first time.)
We often forget that the text of a program represents one instance of a larger conceptual family of programs. In a language such as BASIC the text to runtime correspondence is so dominant you can't help but forget this.
Languages with the concept of a type hierarchy and object derivation are a better introduction to programming because the idea that a program text belongs to a family of related programs is explicit in that construct.
Languages which also feature static polymorphism (Ada generics, C++ templates) are explicitly oriented toward the program text as being more fundamental than the program runtime.
At this point in my programming career manifest types don't seem any different to me than manifest constants. The real types that algorithms manipulate are sequences, arrays, and associative arrays, yet many languages still persist in having a notion of declared types which is directly equivalent to the language's runtime type layout. The CLR makes it explicit that the syntax of the language is just a different face on exactly the same runtime type model. What a strange way to introduce polymorphism to new programmers: surface syntax as a polymorphism on runtime object representation.
For all the things you can say about C++, it has at least the virtue that it makes explicit all the features of programming where the text of the program is of paramount importance.
It's hard for me to be objective, after 15 years of living with it, about the syntactic contortions of C++ and its split personality as a C impostor.
For the most part, the syntax is not so bad that you can't cut and paste from working code most of the bits and pieces required to assemble something of your own. I can write advanced HTML verbatim, but for CSS I've never managed to rise above grab, paste, and mutute. The first 30 lines of every Perl program I write I have to try three variations for the syntax of each construct until my eye for line noise returns to me.
There are a couple of areas where the syntax of C++ stoops to the unforgivable and these all have to do with irregular composition. Nesting a template type into a template can blow off your leg with the >> parsing anomoly. There is absolutely nothing worse you can do with a beginnning programmer than reward their first courageous foray into composition with a parse error from left field.
The syntax of a template function declared within the class scope is different than when the same function is declared outside of class scope, for reasons that take a long time to master. (The type of the function return is likely to be in scope in one context, out of scope in the other, requiring Byzantine changes to your function prototype declaration.)
In my view this is the tragic flaw in C++ as a teaching language. The syntax nests differently than the language semantics. The scope of the return value for a function should be a function of the scope of the function name, but it isn't because in the PARSE of the declaration the subordinate term happens to come first. You are trying to teach the principles of semantic nesting, but every time the student becomes brave enough to reform their syntactic structure basis on these insights, the syntax blows up horribly.
I think C++ can be an excellent teaching language if you have a mentor who can help you past the punishments you don't deserve before your nerve collapses.
The other point I should mention here, for people who had an impression of C++ once upon a time, is that modern C++ is not your father's C++. Now that the standard library is complete and fully integrated with the philosophy of the language and its type system, there is no difficulty teaching C++ at a level of abstraction suitable for geeky neophytes. Modern C++ is entirely unlike C and much the better for it.
Third on my list for C++ is the support environment, and by this I primarily mean the quality of the diagnostics that come from the compiler when your brave attempts to nest one working structure into another working structure fall flat. To put it bluntly, it horrifies me that a language with the complexity of C++ did not admit the quality of the diagnostics into consideration during the standardization process.
Yet C++ is not uniquely to blame here. Wouldn't it be cool if someone would sit down and classify all the kinds of mistakes that programmers make in translating their often imperfect mental model into working code, define a standard of acceptable diagnostics in all such cases, and then work backward toward a surface syntax which ensures that the compiler can achieve those diagnotics standards? (I think I was told that this was how PL/C became the supreme mess of all time and perhaps poisoned this well for all time.)
But in real languages, 90% of the mistakes one commonly makes are artifacts of the way the language has been structured.
More to the shame of the C++ community is that few (if any) C++ compilers see fit to offer a diagnostic listing in which the compiler identifies the fully qualified entity to which it binds each variable, function, and operator (or the selection procedure it used to admit or reject the available search scopes).
Suggesting that Turbo Basic would be an improvement over teaching C++ is like suggesting that the New Math was so badly flawed students would have been better off practicing sales tax calculations.
My opinion is that C++ contains more deep wisdom about the whole of the practice of programming than any other pair of langauges combined. The languages that set out to be languages universally disappoint me. In that family I would lump FORTRAN, COBOL, Pascal, PL/C, BASIC, Java, C#, and Python (my choice from this group when all I want is a language). The other family, languages with an internal vision I would lump LISP, APL, Snobol, Perl, Ruby, Prolog/Haskell/Scheme, and C++. These are the languages that can actually change the way you think. C++ stands out among this group as the language that least tries to simplify the world around it. All the other languages in this group have a strangely hypnotic character (even Snobol which I primarily included as an honour to its paternity).
As a calorie free course credit, judged either by the pantheon of languages or the nature of the institution, one could do a lot worse than C#.
In my mind the repugnance of this development has less to do with its affiliation to the Evil Empire Mark II (this too shall pass) than with the very real possibility that one could emerge from the University of Waterloo, after four years of study, and still have no idea what an intellectual calorie tastes like.
but WinForms and ADO are the only things not submitted to ECMA
.NET framework has been submitted.
I've mentioned this before, but I'm always happy to squelch misinformation, so I'll repeat. The only things that have been submitted to the ECMA are C# and the CLI. The rest is not. Let me say that again. No part of the
My university is accredited. The University of Waterloo is absent because the above acredidation programs are limited to the US and Waterloo is in Canada as the article mentioned.. Your original post, while somewhat interesting, was not relevent to the story so I'm not really sure what kind of point you are trying to make, but if it makes you feel better, go ahead and keep pasting urls and making nonsensical statements to your hearts desire.
A University can not require a specific computer language and remain accredited. Those are the rules.
Requiring C# (or *any other computer language course*) will endanger a University's accreditation.
A Computer Science program is supposed to teach Computer Science. If you want to learn a computer language out of that context, you might as well go to a trade school or enroll in a vocational ng if it's a training program.
By requiring a course in a particular computer language, the U of Waterloo is damaging itself.
I don't give a flying XXXX *whose* computer language it is, or if the thing is public domain.
-- Terry
You'd have to be terminally thick to think stock options and other indirect employee benefits from Microsoft were worth the paper they're written on, in the long run.
Got time? Spend some of it coding or testing
So... Modula-3 is not relevant because you don't like it, but Pascal is?
Admittedly, gpc exists but gm3c doesn't. Yet.
Got time? Spend some of it coding or testing
He could fund a space elevator. USD$5-10G, cheaper than a bridge, bargain price and roughly 10% of Microsoft's current cash reserves.
I was going to say `no strings attached,' because nobody would be stupid enough to use Microsoft software to stabilise something that big (and therefore dangerous), but then I thought (1) sez who? they run Navy ships on it; and (2) the thing's just a great big carbon string anyway... a superstring, sort of.
Got time? Spend some of it coding or testing
I didn't say that they were at fault. As far as I can tell, this is a perfectly legitimate practice whose goal is to hire the employees which would, in the long run, give the most benefit to the company's stock value.
I learned WATFIV-S, too, and I would rather be taught a langauge developed by a university for the express purpose of teaching structured programming, than be forced to learn a language developed by a corporation for the express purpose of vendor lock-in.
Then next time the alumni association calls me for a donation the answer will be, "Why? Bill Gates already gave you more money than I ever could."
www.lucernesys.comHorizon: Calendar-based personal finance
I call that selling out curriculum.
And yes, I would consider leaving. I'm not particularly attached to my waterloo degree. I patently refuse to work for microsoft. I have plenty of work experience, and plenty of good references. I don't need a waterloo degree to carry me, I can stand on my own merits.
-Rob
-Rob Ewaschuk
I use Java all the time but replacing Scheme with it for AI makes no sense - not much different really from replacing Lisp with Pascal 20 years ago [shows age], and why would anyone do that?
Logically, I should feel that there's a place for C Sharp somewhere in the courses just as much as Java - after all it's a standard, right? But this feels worse, and a successful Mono won't make me feel much better.
And to think I was pissed as a new EE when they made me take those stupid-ass Java courses. What the hell will and EE do with Java? Even the instructors were pissed.
But Microsoft has accorded Waterloo this special status, like its graduates are better than top US schools. So you have to talk more about the 75+ percentile student. So questions like:
1) Is the average Waterloo student coming in better than the average at a top US school.
2) Does Waterloo do a better job with those students than a top US school.
I think the answers are 1) almost certainly not and 2) maybe, which put together doesn't make a Waterloo grad anything unusually special.
- adam
To learn the fundamentals of programming, it helps if the environment is as open as possible. Seeing resultant machine code, tracing through code in a debugger, dumping data structures in a compiler, running interactively via a REPL - a lot of these aspects are best done with "toy" languages or environments such as DrScheme.
In my day, Pascal (which I think used a compiler from the University of Waterloo), C, C++, Lisp, Prolog and Smalltalk were the mainstream languages and all except the last ran on a positively eclectic variety of machine environments.
Now in other courses where languages are not the focus, C, C++, Java and C Sharp might have a place. However, there is a risk of such languages or associated tools and libraries being tied to particular products. This is not much of a risk with C on its own, only a little more with C++, a risk with Java and a certainty with C Sharp.
Why only a 'risk' with Java? Well, although commercial, Java is fully implemented by a number of vendors - IBM and Sun, of course, but also BEA and a large group producing VMs for phones, PDAs and other devices. When you leave college and start buying products, there's only a modest chance that they'll come from Sun (unfortunately for Sun). More likely is that you $$ will go to Borland or IBM, with some small % going to Sun for things like their certification tools.
There are really two important points to keep in mind - that learning is about ideas, and for computing fundamentals this are best facilitated by specific pedagogical tools; and that academic institutions should be as independent as possible to preserve their own reputations and to avoid arbitrary constraints on a student's future.
we are we are we are we are we are the engineers!
we can we can we can we can code C# with our peers!
drink rum drink rum drink rum drink rum and come along with us!
for we change policies for the companies that allocate funds to us!
(next step: The Ridgid Tool replaced by The Flaccid Software as department mascot)
The complete source to all their products? I had no idea.
-ted
Perhaps this is Microsoft's Waterloo?
--
"Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
I don't think US vs. Canada is comparable though. Canada uses uncurved percentages for its grades (aka marks) (except in Quebec AFAIK where the government manages to curve percentage numbers, neat trick that), the US uses curved GPA for its grades. Some people try to convert saying 90 is an A or whatever, but it's not like that. Often it's just the top X percent get an A, the next get B, etc (college is usually like that). So if someone gets an A in the US, that could be a 99 in Canada, or a 90, or an 83.
Plus of course you have this huge difference in how grades are applied. For example my brother and I went to different high schools in Quebec. The top average in my high school was about 87 or so, at my brother's it was about 95. Same school board, similar kids (in fact he went to his because mine closed, so a lot of the same families were at both). So I don't think it was smarter kids, just different degrees of grade inflation. Then you imagine how grades can vary all across Canada. That's why the SAT gained the importance it did, because US high school grades varied so much.
- adam - adam
The worst thing, perhaps, is that C# is simply not used as an engineering programming language. Most engineers use Fortran, C, Matlab, spreadsheets, have software like Pro/ENGINEER, or, God forbid, use calculators, paper, and pencil.
C#, at best, is an application programming language useful only in the context of Microsoft Windows. Where is the logic in choosing this for non-CS engineering disciplines?
Also, UNIX always has had a strong userbase among engineers. How is C# going to help them?
I think the choice of C# has really detracted from Waterloo's attractiveness as a top-notch engineering school. I agree with other comments that the choice of C# is more along the lines of a communitity or technical college, which is expected to "sell out" to industry.
Healthcare article at Kuro5hin
Java and C++, the full gamut of languages from A to B.
My logic is more like
1) Microsoft hires a disproportionate number of Waterloo students.
2) Incoming Waterloo students are not superior to other schools Microsoft hires at.
3) Waterloo does not do anything particularly unusual with students beyond the co-op jobs.
4) Working as a co-op has no effect on your long-term potential at Microsoft, which is what Microsoft is theoretically hiring for.
5) Therefore there is likely something in the way Microsoft interviews that makes it overvalue Waterloo co-op students.
- adam
Mod3 and Pascal may both be decent enough teaching languages, but neither is particularly widespread in modern day, mainstream programming... although you could make a case for Pascal being more pervasive because of Delphi.
As for my "but then, I like Pascal" bit which so grievously vexed you, I was referring to the "inflicting" nature of being taught it... you know, the transitive verb from the prior sentance I was expounding on?
Hmm.. let's play the anal, inventive nitpicking game with YOUR post... just for fun!
So... Modula-3 is not relevant because there's no GNU compiler for it, but Pascal is?
--
"Never ascribe to malice that which is adequately explained by incompetence"
- Napolean Bonaparte
"Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
Do the math, people.
We have 300 students in ECE. We'll ballpark their tuition at AROUND $6K CDN for a year.
300*6000 = 1.8M
Still below the $2.3M from MS, granted.
But then, those are just the ECE students. What about the REST of the engineering Faculty? Or the rest of the student body? A student society rep from the Arts & Social Science Faculty at my Uni took it upon herself to write letters to the editor complaining about business grants to the Engineering faculty with FAR fewer strings attached (no curriculum changes).
Very simply, if even 400 UW students make flat out complaints, things will start happening. And it's not just tuition money that talks.
UWaterloo is, at least, partially, riding their reputation. That's not to say that they don't have a good program, but all accredited engineering programs in Canada are BASICALLY the same (they're all within 1 or 2% of each other in a continent-wide ranking of engineering programs). $2.3M is chump change compared to the reputation loss that would happen if they got massive complaints and didn't listen.
Dark Nexus
"Sanity is calming, but madness is more interesting."
"Yes they are. IN THE FUCKING USA!!!!"
Read the links.
The ACM is an international organization.
We are not talking about U.S. accreditation in particular, we are talking about accreditation in general.
And people outside the U.S. wonder why the U.S. is kicking everyone else's rears in software as a percentage of GNP... sheesh.
-- Terry
"It's Electrical & Computer Engineering. That may make a difference."
.com crash. Not a lot of high paying work for Java programmers these days: the skills were intended to make the people modular and replaceable -- and they are. Without an artificial shortage to drive wages up, the pay is lower than for other skill sets.
It only makes a difference as to the subcommittee doing the accreditation. The accreditation is a strange thing, but most of it arises out of the wishes of professional societies, and most of them are international. In this case, an E&CE program falls under the blanket of the ACM (and IEEE).
The professional societies have a vested interest in keeping ceritifcations in their professions from becoming nothing more than the moral equivalent of "union cards" -- "You got a card, you work; you don't got a card, you don't work. You don't like it, you talk to the shop steward".
"I went through this program, and I remember those courses. They used to be taught in C++."
Back before the rules changes in the mid 1980's, there were tons of language courses, as opposed to "CS concept using " courses (I took all of them that were available at my University, actually, including "COBOL" and "Business FORTRAN": this is not about me being a snob about my education vs. someone else's education).
The ACM and IEEE ended up all pissed off that the colleges were turning CS classes into vocational education programs, and insisted that the "Science" part of "Computer Science" get the major emphasis. Most of these classes stage largely -- or even completely -- the same, just under new names. After a while, the courses evolved away from teching languages. Just as the people who had changed the rules intended.
Their point (and I agree with it) is that there is a difference between a programmer and a software engineer: a programmer turns people's algorithms into machine instructions, whereas a software engineer solves problems using a computer as a tool. The mindsets required for these different approaches are miles apart.
Is C# a valid language to know? Probably it will be something nice to have on your resume in about 3 years, after the economic recovery gets going, now that VC purse strings are starting to open up again and new businesses are starting to be created again. Just like Java was the thing to have on your resume, before all the J2EE and other Java based Internet startups folded in the
But that's not my point.
My point is, and always has been, that if you intend to go on to a graduate degree (and most students would be smart to want this, now that there are no longer high-5 and low-6 figure salaries available to people without degrees or experience, just to get *any* warm body plugged into a cubicle), then you need to consider accreditation, and the ability to enroll directly into graduate programs at name universities, without having to take a semester or more of "make up classes".
You can say it's snobbish, the way that credits transfer between the University of California and California State University systems (for example).
OK. You've said it. So what? Does that get your degree from one accepted at the other's graduate programs without "make up classes"? No, it doesn't.
By acting in a way that U.S. Universities are not permitted to act and retain accreditation, U of Waterloo is going to hurt their graduate's ability to get into U.S. University graduate degree programs, without adding a semester or more of "being gratuitously different on purpose" tax.
You may not think this is fair, but that doesn't make me an asshole for pointing out that those are the facts, or that that's the risk they are running when they do what they are doing, and require a specific language class for entry into their programs.
-- Terry
"Just wait, fellow code monkeys.... India and China are the rising stars...."
;^))...
China will not be a threat until they go from an ideogrammatic to an alphabetic language representation, perfect written/voice input, or figure out how to build a keyboard with 32,000 keys (same for Japan, which has kana, but doesn't use it for digital documents).
Not to mention that problem solving ability tends to self-select against people in repressive societies, since problems-solvers don't tend to be incredibly particular about *which* problems they solve, or necessarily agree with their governments about *what* constitutes a problem.
India is more of a threat to U.S. supremacy in information technology, but until they get their act together on state interference with etherpreneurial ventures (e.g. 3 weeks for a business license in the most heavily regulated locations in the U.S. vs. 3 months or more in India), it's much more likely that they'll simply come to the U.S. and start their business here (1/3 of all businesses in Silicon Valley are started by non-US born people). At which point, it's still U.S. supremacy, even if it's a non-U.S. citizen doing the coding.
And it's not like people like me are sitting by and not saying anything when people try to dumb-down universities in North America (for example
-- Terry