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."
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.
The problem isn't that a C# class would be offered, or even that a C# class would be part of the required curriculum.
The problem is that the school agreed to make a C# class part of the required curriculum in return for money.
Schools have no business selling access to their students' minds in this fashion.
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
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
The problem in reality is that most resumes are reviewed for language experience and not conceptual areas.
I sort of agree with your sentiment that a learning a particular language is trivial once one learns the concepts of software engineering.
To become an expert in a language though, is a non-trivial task. In the real world, it is very important to have a good amount of experience in a particular language. Simply knowing certain design patterns is not enough because each language has it's own traits that affect which patterns should be used.
From a software engineering standpoint, a project should be architected in two completely different ways depending on whether its being implemented in Java or C++. Why? Each language allows for a different degree of object orientedness.
int func(int a);
func((b += 3, b));
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
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.
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
So what was your point again?
In reading it, I thought the point was clear.
Microsoft paid a university to change their curriculum. Sun did not. Sun never required Java to be taught. Sun never said you could only teach on their platform, etc. Microsoft not only piad to change what is taught, but to make sure it is only taught on Windows. (Article indicates Windows was a required part of the arrangement.)
I'll see your senator, and I'll raise you two judges.
Sun owns Java
Sun owns the Java trademark, not the language/APIs/specifications, as I suspect you well know.
The C# standard is of limited value because it is such a small part of Dotnet, and unlike Java, other vendors aren't producing Dotnet implementations.
The difference is real diversity in the market vs. fig leaf endorsements.
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.
I have been corresponding with some Waterloo faculty (I am a UW alum) and learned that the University Administration sprang it on the departments as a surprise, without consulting with the curriculum committees. Computer Science (in the Math Faculty) was adroit enough to avoid getting caught in this meat grinder, but ECE (part of the Engineering Faculty) was not so lucky, and had this agreement announced on top of them.
So whether it came from Microsoft or not, it did not come from the faculty, and thus was fundamentally motivated by money.
Crispin, U.Waterloo BMath/CS class of 1988
----
Crispin Cowan, Ph.D.
Chief Scientist, WireX Communications, Inc.
Immunix: Security Hardened Linux Distribution
Available for purchase