MS/Waterloo Curriculum Deal On Hold
Plummer writes "After announcing a recent deal with Microsoft that would see C# become a mandatory portion of first year electrical and computer engineering, the University of Waterloo has backed off and asked for a year to evaluate the proposal. The year will be used to evaluate the merits of the language and ensure that any curriculum changes made, will meet the standards UW engineering is known for. The full story here and here."
can we attribute slashdot to this reverse in policy wasnt this story run here and highly criticised. Could it be that while being a totally corrupt school waterloo is more interested in the real industry leaders (read slashdot readership) might think less of their graduates.
Would this tarnished reputation (which this decision wont fix in itself) be worth a nice chunk of ms money? Could this be considered board mismanagement and the such.
Every other academic institution that takes gates'ss's's money has always said it wont affect their product placement (least officially). So why waterloo.
Ubc for example has been taking ms money for years and tons of it. But I dont see things like c# been taught exlcusively or linux being left out of essential training.
Who on the board of waterloo was willing to sell the students out for a new building and a nice retirement package.
I wouldn't mind this so much, if not for the fact that tomorrow they were going to add a course in Jedi mythology as a requirement to the curriculum for religion majors.
--George L.
Better to use a well understood language by the teachers, than introduce new students to a language the TAs haven't used before.
Teach the concepts, not the language.
Saskboy's blog is good. 9 out of 10 dentists agree.
Whatever happened to keeping politics of all sorts out of school curriculum? I guess that went out the door when a Women's Studies course was instated at my local university, but a Men's Studies course was removed because it wasn't "politically correct."
Oh, well. It could be worse. This could degenerate into some sort of Bourne Shell vs. Bourne Again Shell argument.
RomSteady - I came, I saw, I tested. GamerTag: RomSteady / http://www.romsteady.net
The problem with C, C++, C#, Java, and a load of other languages that people are being taught is THIS:
/rant off
You cannot master the language in one semester!
Yes, you can learn the funtimentals, and techinqually, you can learn good programming structures through selective function teaching(i.e. glossing over Goto), but the complexites for most languages prevent mastery of them in only 4 months.
Pascal is B&D, it prevents bad coding techniques by elimating commands that call them. It breaks programmign down to its roots, and with its limited functionality, forces students to plan their code before coding it.
With these features, I'm unsure why people insist on using an industral tool to teach someone basics. I feel like I'm giving students a motorcycle without first giving them a two wheel bike, ahh
(note: all posts to "Why pascal is not my favorite language" will be concidered ~='s)
~~~
Click here, you know you wanna!
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?"
When I went to school we had whole labs of machines donated by Sun and Intel which no one protested about being out of the ordinary. Similarly there is at least one mandatory classes for CS majors which uses Sun Microsystem's proprietary progamming language and many optional classes as well require Java or strongly suggest it.
:)
Until Slashdot started trying to cause a controversy with the C#/University of Waterloo thing I had assumed this widespread practice in the American university system was taken for granted. Academia is all about politics especially when it comes to the curriculum, technical arguments for or against programming languages are just one slice of the cake. If it wasn't about politics we'd all be learning Lisp and Smalltalk in school instead of C++ and Java. OK, we actually did learn Scheme and Smalltalk at GA Tech so maybe that's a bad example.
Disclaimer: The opinions expressed in this post are mine and do not reflect the opinions, thoughts, strategies or plans of my employer.
The record.com article: If the changes don't go ahead, the $561,000 Microsoft was giving to support the projects would no longer be available, he said.
The 80s: people usually had to pay for programming languages.
The 90s: programming languages and environment available for free (evolution).
The New Millennium: people get paid to use a specific programming language (involution... well, this is
When my Freshman year professor in the CS AP class was asked the question, "What language are we going to learn in this class?"
To which he quickly replied, "Any monkey can buy a book and learn a language, what's important is the concepts behind programming. To ask what language your going to learn is to miss the point. If our university focused on teaching a language then we would not be properly teaching our students.
Then my senior year, there was a class we had where every assignment was in a new obscure languages and we were expected to adapt rapidly.
The problem in reality is that most resumes are reviewed for language experience and not conceptual areas. To get a job you need XXX years of language XXX. What a stupid way to hire people, but it's the system and I play the game for a check.
C# is for the Flying Code Monkeys!
I used to wonder what was so holy about a silent night, now I have a child.
Because it isn't an addition. It's replacing some other class that a student would take.
Basically, Waterloo got caught with their pants down being bribed by MS -- nothing new -- but they didn't try to cover up or play it down, which is kind of impressive.
May we never see th
At a forum organized by EngSoc, UW President Johnston said that mistakes were made in the announcement of a partnership with Microsoft Canada Co. "In retrospect, it was a mistake to announce an agreement in principle with respect to the curriculum initiatives, a mistake for which I take responsibility."...
Johnston described what will happen in the coming weeks. "What we will have to do over the next few weeks is ensure that the [sic] necessary for any curriculum change occurs, and that those committees, and, ultimately, the Senate that oversees them, are satisfied that the principles that we always must observe when external funding is involved in anything are followed in this case."
That looks like a few weeks, not a year, and it sounds like he wants a rubber stamp:
The MS-UW deal will be talked about at Monday's meeting of Senate, the the university's highest academic body. In early September, the President of UW's faculty association requested a "full airing" of the issue at Senate.
Additionally, MS Candada President Frank Clegg was specific about what the deal means to all 300 incoming freshmen:
The Microsoft Canada Co. sponsorship does require C# to be taught on a platform based on the Windows® operating system.
Replacing C++ for C# in freshmen courses should be worth the entire reputation of the school, far more than $5,000,000. My reputation is worth more than that!
DMCA, Hollings, Palladium. What might have sounded like paranoia is now common sense.
Because C/C++, despite their widespread use, are not all that great choices for application languages. The biggest thing they have going for them is that they're fast and have lots of libraries available. OTOH, they aren't the quickest language in the world to debug, they have a pretty weak type system, there are a lot of minor incompatibilities in compilers...
Perl/PHP are fine...but as you said, for web apps (or perl for scripts). Not well suited for general app dev.
A lot of people don't like python, and python is not what you'd call blazing fast.
Javascript is a joke. It's for annoying web page junk.
Java is the closest thing to a modern application language -- it's compiled, it does bounds checking and whatnot, but it has a few severe flaws. It's very memory-hungry. Despite years of improvements and promises, it's still awfully slow compared to C/C++. It puts too much emphasis (IMHO) on architecture/design, like OO and interface design, which is awfully overwhelming to new CS students.
We need an applications language. It can't be hideously slow (like most of these proposed C/C++ replacements), so at most it could do RTTI and array bounds checking at runtime. If you have a really expressive language, your compiler can go gonzo optimizing, a la Eiffel or SML or Ocaml.
It'd be nice if it had a somewhat less foreign interface -- SML and Ocaml are a bit much to swallow if you're used to C.
C# -- dunno about performance implications, but it's gotten grudging approval from some language people I know -- seems like it might do a good job of filling the gap that Java tried to fill.
Of course, I'd much rather a non-MS language become big...
May we never see th
Java is already proven and adopted industry-wide. C# is not. MS is being called out for attempting to gain a bit of de facto acceptance by the old 'indoctrinate the youth' ploy. All those saying, 'what's wrong with more languages being taught', I say, go invent a language and see if you can get it taught as a required course a year later at any university.
LEXX
"Gold still represents the ultimate form of payment in the world." - Alan Greenspan, 1999
The fact of the matter is for every UW student that goes to work for Bill, his/her education was in part subsidized by the government of Canada... Therefore, the Canadian taxpayer has been indirectly subsidizing Micro$oft for years, and it's about time Gates started anteing up for the cost of developing some of his future employees!
Height: 38U, Weight: 0 Newtons, Eyes: #0000FF, OS: Gray Matter 1.0 (Alpha)
Look I've been on campus while this shit-storm has happened and there were two major camps of students.
1: Don't care...
2: No way that I'm going to sit here and not bitch.
My real point is there were very few supporters for this deal, the campus news papers have put negative spin on it, students that understood the deal tried to inform others and so on.
By most this was seen as a step for Microsoft to enter the very Unix domenated computer education cirriculam. Start with one-two courses... then is a 2-3 years own 'em all
I'm really glad that this deal began to show its cracks.
--
After this 2-4 of coke, and the next 2-4 of coke I only have one 2-4 of coke left. Better buy more.
I am seeing posts along the lines of "Waterloo has finally seen MS's dark side", or "Victory over Greed" etc etc...
But if you read another story on the same page (MS Canada President Frank Clegg responds to top ten questions), Clegg states quite frankly that it was Waterloo who first proposed the idea of C# as a teaching language. So this initiative did not come from MS.
Life is like a web application. Sometime you need cookies just to get by.
On the other hand, when I read a CV if I don't see at least three languages with at least two of them being radically different (ie C, C++ and Java won't cut it for "radically different"(*) -- throw a Lisp or APL or some such in there and you're getting closer), then I'll know the guy either has no imagination/curiosity or has problems learning new things.
;-)
(*) Although Fortran IV, Fortan 77 and Fortran 95 might
-- Alastair
Isn't the point of being a CS major of being able to learn new languages quickly and on your own? Knowing the fundamentals behind the language should be more important than the syntax of that language.
First of all, I have written a little software in C# and a lot more in Java. C# is a great language in its class and very useful indeed. If you hate it because of M$ say that, but don't say it is a bad language.
;)
That taken care of, I agree with some of the posters saying that it is the concepts that are important. But I also belive that if the concepts to be understood you also have to understand what is behind it all, which includes how a CPU works, how a compiler works, how an interpred language work, and how OO really works.
I think that one should walk this tree with asm, C, BASIC, Ruby, C++/Java/C#, in parallell with the rest of the courses. Try to connect it, for example asm/C with real time and OS courses, while you have ruby for the OO courses.
What language is used should be controlled by the need, not by the industry. Ruby is a great example of an easy to use interpreted language, but also a great example of a language that is VERY object oriented. You get the point without having to figure out other unrelated concepts. Everything really is an object (5.times {|n| print n} for example).
To top off the education it is time for the industry strength languages. C++ is an incredibly powerful language for a number of reasons, but is also very complex and huge in all its quirks. C# and Java would also be good languages to teach now, and to be used as well.
I also want to point out that the choices I have made above when it comes to languages is influenced by what languages I use myself. There are many other excellent languages, so if you like to just exchange your favorite languages to what I have written above
Actually C++ and pretty much every language out there conflates representation with type. From the point of view of Russell's typed set theory there is no particular problem adding an integer to a real number, however there is a big problem adding yards to volts.
I can't say much about the C++ type system since I abandoned the language as garbage back in '92. Hoare's comment on Algo 60 vs 68 came to mind. However since C++ retains the void type and the whole C baggage it is difficult to see how it can have a strong type system.
It is a pity that the catastrophe of ADA brought down the idea of dimensional analysis with it. Of course Hoare's Turing award lecture (please don't use this for anything safety critical the compilers are certain to be full of bugs) gave a salutary warning on unbounded complexity. But I thing dimensional analysis could have been retrieved from the wreckage since it has no run-time impact.
Looking for an Information Security student project suggestion?
Try http://dotcrimeManifesto.com/
I second the other posters that the first programming langauges taught should be Scheme AND assembly language (though I would probably recommend MIPS instead of x86). I have heard that Berkeley does exactly this. First semester you learn Scheme. Second semester you learn assembly langauge. If you can survive/master those two languages, then all other languges will simply fall somewhere in between on the spectrum of programming langauges.
cpeterso
I always thought the purpose of attending college was to learn how to think, and express yourself to your peers and others. To create using the building blocks you learn. Learn a scripting language, a procedural language, and some OO stuff. That's all the computer language you need. The rest should be writing papers, creating useful designs, etc.