MS/Waterloo Curriculum Deal On Hold 254
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."
Before you say anything stupid... (Score:2)
so close. (Score:3, Interesting)
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.
Re:so close. (Score:2)
I suppose things could have changed, but the startup I worked for in the late 80s hired computer people from two places, UW and Queen's -- and the company was founded by UW grads.
Re:so close. (Score:2)
Guelph? Don't make me laugh. (Score:2, Insightful)
You're force-fed twice as many different languages?
Well, damn, in first year our profs make up a language and expect us to write a fully functional compiler for it.
Depending on how you take your courses, in first year you've already designed most of your own MIPS chip.
And I don't think you've finished ahead of Waterloo in recent years. Waterloo's taken the top spot for at least 5 years running.
Microsoft now recruits from your co-op program? I hate to break this to you, but on the Microsoft benchmark... they rank UW as the #1 university in the world (recently they tried to hire more than 80% of the graduating computer engineering class).
Waterloo CS graduates computer scientists and mathematicians who are highly capable at both theory and practice, highly motivated and excellent problem solvers. Guelph graduates code-monkeys. Your obsession with programming languages and coding really demonstrates this point nicely.
I know a guy in second year who spent the summer designing and implementing a new garbage collection system for Java that's about 5x as efficient as the garbage collector most implementations use (including the high performance ones). And no he's not top of the class or anything, just an average UW CS student.
Oh, and some advice: almost all computer languages are the same. If you actually know your stuff you can pick up a reasonable language (i.e., not malbolge) in no time at all.
Re:Guelph? Don't make me laugh. (Score:2)
This from a UW "computer scientists and mathematicians ?
Perhaps your education hasn't included languages as diverse as:
FORTH
Assembly Languages
DB/C (also known as PL/2) , COBOL
Fortran
Java/C/PL-I/Algol
LISP
PERL
APL
These languages are only "the same" in the sense that they are used to program computers, and they start out as text files!
Floatsam (Score:2, Insightful)
Re:Floatsam (Score:4, Insightful)
Teach the concepts, not the language.
Re:Floatsam (Score:2)
C# is nothing like C, it is much more like Java. And the students have to know C as well, C# would just be an addition to the curriculim. Why is this bad? As far as I'm concerned, the more languages the better.
Re:Floatsam (Score:3, Insightful)
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.
Re:Floatsam (Score:2)
Re:Floatsam (Score:2)
I'm not saying they're removing an option -- they're making it so that some *other* elective that would have been taken isn't.
Who cares about the languages (Score:2)
Computer science teaches you things that extend FAR beyond learning language syntax. My last tough comp sci course involved no less than 4 different languages and we weren't "taught" any of them in the course - it was assumed we would learn the necessary syntax on our own. Lectures were focused on things like portability, performance issues, analysis of algorithms etc, concepts not tied to any once specific language. The languages used during the course simply allowed us to learn the underlying comp sci theory... Syntax is easy.
Wish I had the money (Score:2)
Like 42 42 * 42 + 1806 eq "that would be great" print
Re:Wish I had the money (Score:2)
Darn!! (Score:4, Funny)
--George L.
ROFL (Score:2, Funny)
/etc/hosts (Score:2)
Anyone see the embedded Windows .NET ad in the full story page of this article..?
No. A line in my G:\winnt\system32\drivers\etc\hosts file redirects DoubleClick ad requests to a WinApache virtual host on my machine that puts up a PNG image reading "DoubleClick blocked."
No, I'm not trying to cheat OSDN out of ad revenue. That's actually the only ad site I currently block because 1. it gets rid of most of the Java and Flash ads and 2. it gets rid of a lot of potential privacy invasions.
So? (Score:2, Insightful)
Re:So? (Score:3, Insightful)
Re:So? (Score:2)
In theory, yes. In the real world, companies that aren't IBM want graduates that can hit the ground running and know the language in that shop.
Or let me put it to you this way: if all other things being equal, your buddy knows the language that company X uses, or at least the language used in the hiring manager's project, your buddy gets the job and not you.
These days companies that aren't IBM don't have the time to invest in you; they want what you learned in school to freshen up their older members' stale skills to help make their product work. Besides, you won't be there two years later anyway.
Wake up and smell the Jolt.
Been there, done that, didn't get the job either.
Re:So? (Score:2)
If a university wants to offer a course in C#, I'm cool with that. The problem is when they teach C# in place of another, more widely used language, like C or C++. University students don't know where they'll end up after graduation, so their skills need to be as broadly applicable as possible. Universities aren't doing their students any favors by limiting their student's educations to a language that only runs on the newest versions of a single platform.
A program's core curriculum should be taught in a language that's well-established, widely used, and versatile, like C or C++. Languages like Java and C# should then be offered as possible second languages.
Re:So? (Score:3, Insightful)
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.
Re:So? (Score:2)
Do yourself a favour and don't list every single piece of technology you've ever touched on your resume. That's what agencies are for. Your resume is meant to sell yourself as a person, not yourself as a reference library. List some problems you've worked on, some experiences you've had, mistakes you've made and how you coped with them, how you work in a team, etc.
Re:So? (Score:3, Funny)
(*) Although Fortran IV, Fortan 77 and Fortran 95 might
Re:So? (Score:2)
Yet Another Slashdot Celebration (Score:5, Funny)
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.
Slashdot Myopia? (Score:3, Informative)
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.
Re:Slashdot Myopia? (Score:5, Insightful)
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.
Re:Slashdot Myopia? (Score:2, Interesting)
Various Java courses are mandatory at my university. Our main *nix server is a SPARC running Solaris. There are Sun workstations peppered across campus. As such, I wouldn't be surprised if we have a deal with Sun.
The same is true for IBM. In my mandatory OOP&D course, we're forced to sign an agreement put forth by IBM. This allows for free educational use of Smalltalk.
I doubt it's a coincidence that we're taught UML (also mandatory), and find ourselves with a rather hefty donation (supposedly in the millions) from Rational.
I've also been through mandatory classes for C and C++.... although I doubt bribery is involved.
These are all classes I've taken. All mandatory at my school, and I'm only in second year. Who knows what the future holds?
So what was your point again?
Frankly, I don't find it hard to justify even the more underhanded deals considering the state of tuition fervor in Ontario universities. Thanks to deregulation, Computer Science and Computer Engineering students face unrestricted tuition increases in the near future, whereas various other science course, and the liberal arts, are provide some security. Over the past 10 years, tuition has supposedly increased by ~130%. If choosing a mandatory C# course over a mandatory Java course means saving the students money, I can't see why the option wouldn't be given strong consideration at the very least.
Re:Slashdot Myopia? (Score:3, Insightful)
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.)
Re:Slashdot Myopia? (Score:2)
It sucks that academic institutions are increasingly becoming commercialised - whether this manifests as corporate sponsorship or downgrading their teaching standards to attract more fee-paying students.
It's hard to see what other reason there would be to teach C#, beyond the chance of MS sponsorship. If purity of OO was required, Python or Ruby or Smalltalk 80 would demonstrate the principles admirably. If the need is to "give the kids skills they can use in the workplace", then Java or C++ would be a better choice.
Nope, in this case, it was just the possibility of corporate money that drove the decision.
Re:I still don't see the problem. (Score:2)
Well sure, if you assume away the problem like that, the problem disappears. But I don't think your assumption is valid. I think that the courses are not going to be the same "either way"; I think that the only reason the school created a mandatory class in a Microsoft-specific language is because they got paid to do so.
Assume for the moment that I'm right on that point. Do you see a problem with the school selling its curriculum like that?
If C# is Microsoft specific, (Score:2)
The fact is that, thanks to Mono, C# is actually supported and has a compiler/environment provided by more than Microsoft. And I think more will come along as time goes by. Java has Sun and IBM, C# has Microsoft and Ximian.
Re:Slashdot Myopia? (Score:2, Insightful)
I am not saying that C# or
Re:Slashdot Myopia? (Score:2)
Re:Slashdot Myopia? (Score:2)
Just because it is standard, does not make it a working standard. Case in point is ODBC, which is not a "REAL" standard, but yet exists everywhere and works.
Again, I am not saying C# is bad, I like C#. But C# is like Delphi, both are based on standards, but totally incompatible with the real standard. This does not take away from the usefulness of the language, simply the fact that Java will work across platforms and C# not.
Re:Slashdot Myopia? (Score:2)
Re:Slashdot Myopia? (Score:2)
Re:Slashdot Myopia? (Score:4, Insightful)
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.
did you submit a story? (Score:2)
Oh, please (Score:2)
Comparing Tech's incidental use of Java to to U. Waterloo selling out to Microsoft is absurd.
Re:Yet Another Slashdot Celebration (Score:2, Insightful)
There will always be politics at universities, but politics between faculty is much better than the politics of companies coming in and trading cash for curriculum.
The University is one of the last of the good places, where faculty generally try to put together a curriculum that they believe is in the best interests of the students. There are often violent disagreements, and some faculty just want to teach subjects because it's their favorite area, but in the end, it's just a big war of words with low-level university politics being as bad as it gets.
But now, when you throw in multi-million dollar deals, the balance swings dangerously in the direction of a curriculum that is constructed to be in the best interests of a company, and not of the students. When you put up the beliefs of faculty against a multi-million-dollar behemoth, the faculty lose, they lose their spirit and dedication to the best interests of the students, and we all lose.
The only winners will be rich companies who will be able to afford to convert universities to their own personal training academies.
Re:Yet Another Slashdot Celebration (Score:2)
--Dan
Re:Yet Another Slashdot Celebration (Score:2)
I don't care about either of them.
ANYTHING that stops them teaching Pascal is a plus.
Re:Yet Another Slashdot Celebration (Score:2)
Was, past tense.
If you're going to teach programming fundamentals, either teach something that has real-world applicability (such as C or Basic), or teach assembly language (such as MIX).
I probably wouldn't mind the use of Pascal iff there was a widespread software engineering degree course that you could take, which would (instead of teaching, say, Pascal), would throw perl, C & C++, Java, C# and Visual Basic at you, while de-emphasizing aspects such as compiler writing in return for emphasizing algorithm selection and usage. Database implementation would be de-emphasized in favor of database design & normalization, plus the use of SQL.
And above all else, using set notation etc. is a waste of space.
Computer Science is great - for producing Computer Science teachers. The world needs more engineers than researchers.
Simon
Re:Yet Another Slashdot Celebration (Score:2)
You're right about Java, though. I think there ought to be an either/or option. Those students that want Java can take Java. Those that want C# can take C#. Those that want the third approved language choice can take the third choice.
The thing here is choice. Microsoft was trying to tilt the scales with their money, and the school backed off as soon as they saw the effects this would have had. It's true that you can't keep politics out of school curriculum. The best you can hope for is to stem the tide.
I doubt slashdot directly affected this (Score:2)
Yet it is good to hear a nice heartwarming story about Microsoft losing an account (for the time being).
Baby steps people, baby steps.
Re:I doubt slashdot directly affected this (Score:2)
uw's ways? (Score:2, Interesting)
It seemed as though UW just hoped that this could go through without anyone really doing much. I mean, with a deal like this, having MS 'donate' $10M to the, wouldn't you want it to happen in front of all the students?
Of course not. You do it at the time when there are the least amount of people on campus (and practically no students), right before the fall term, after summer exams are over. The only reason I had heard of it beforehand was a sign on an 8x11 piece of paper when I came here to bring my sister to an interview.
But it didn't go unnoticed. It took up most of the space in the Imprint (UW's student-run newspaper) and a lot of talk among students. The University just ended up looking like a fool and having to retract to 'think' about what its doing.
But how many people think this will change the final outcome anyway?
Re: uw's ways? (Score:2)
>
For those who have never been to college, be aware that universities are notorious for announcing and implementing all manner of policy changes at that time. My alma did it to me several times.
Bring Back Pascal! (Score:5, Interesting)
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)
Bring back Scheme and assembly (Score:5, Insightful)
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.
Re:Bring back Scheme and assembly (Score:2)
Re:Bring Back Pascal! (Score:2)
Any CS or EE curriculum that aims at teaching mastery of a language is not worth taking anyway. To the degree that CS or EE should teach programming at all, it should teach general principles of programming, not the idiosyncracies of specific languages.
I agree with you that "industrial" languages like Java, C#, C, or C++ are particularly bad choices for introductory teaching. If they are used in advanced courses, that's because the libraries and support to teach the subject matter only exists in them, not to teach those languages per se. Pascal actually still isn't a bad choice for teaching, although I think Scheme and a few others are probably better. The fact that they are commercially irrelevant is an advantage as far as I'm concerned.
Re:Bring Back Pascal! (Score:2)
Job interviews (Score:4, Funny)
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?"
Re:Job interviews (Score:2)
Programming languages. (Score:3, Funny)
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
Re:Programming languages. (Score:2)
but only when used on a certian platform.
Teaching it only on Windows was part of the deal. See article.
Any Monkey can learn C# (Score:4, Interesting)
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!
Re:Any Monkey can learn C# (Score:3, Insightful)
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.
Re:Any Monkey can learn C# (Score:2, Insightful)
I agree that experience in language XXX is a primary criterion in screening resumes.
It's important to point out that most UW students are in a co-operative program where they are looking for their first jobs immediately following their first year or even their first semester! In fact, Engineers (for whom this controversy developed) are required to be in co-op. The languages taught in first year classes have a direct bearing on students' suitability as job candidates.
When I started at UW, first year CS students were taught using Pascal running on Windows and then moved to Modula-3 (haha) on Unix. On the other hand, first year Engineering students learned using C++ on Windows.
I found the use of Pascal and Modula-3 nearly crippling in the entry level co-op job market as most employers and the most desirable positions often required C++ experience. If not C++, then Java.
Fortunately for the freshmen CS job hunters, CS now uses Java and C++ to start off with.
As far as I can tell, most serious development is still carried out in C++. It's efficient, powerful (though perhaps too loose), and sufficiently portable if you're careful. I think the switch to C# could be detrimental to the Engineers if it is used at UW before it gains widespread industry acceptance. Whether it is ever adopted by industry is another matter.
Another thing worth mentioning is that (Computer) Engineering students at UW already have a strong Microsoft bias. Their development experience is typically using MS Visual Studio on MS Windows. So I don't think the switch to C# from MS style C++ is a big philosophical issue.
The CS Department (now the "School of CS") in the Math Faculty has always had a strong Unix bias. We usually use gnu tools on Solaris. CS at UW still has a "Go Unix, down with Evil Empire!" attitude.
Although I agree that CS concepts are not language dependent, the job market sure is! It doesn't hurt to have a variety of language experience, but C# is a poor choice for students' early job prospects. But I'll let the Engineers battle that one out!
I'm open to correction or criticism. The above is just my take on matters.
Did I miss something? (Score:5, Informative)
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 [uwstudent.org] 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!
Big reason nobodys mentioning (Score:4, Insightful)
LEXX
Re:Big reason nobodys mentioning (Score:2)
Industry adoption is not an argument. Otherwise, CS courses wouls have to concentrate on COBOL and Visual Basic.
Unecessarily Saving moey (Score:2, Insightful)
Never mind Gates' money... (Score:5, Interesting)
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!
Re:Never mind Gates' money... (Score:2)
Do employees of Microsoft Canada pay taxes on their salary? Congratulations, the tax system is working as it is supposed to, and Microsoft Canada is putting money back into the government.
You want to force endowments and charitable giving to a place or thing not of the giver's choice, and you are no longer doing charity. You are doing taxes and just calling them something else. At least be honest.
From the eyes of a UW Student (Score:4, Interesting)
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.
Texas A&M (Score:2, Interesting)
Who started this? (Score:4, Informative)
But if you read another story on the same page (MS Canada President Frank Clegg responds to top ten questions [uwstudent.org]), 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.
Re:Who started this? (Score:3, Insightful)
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 [uwaterloo.ca] (in the Math Faculty [uwaterloo.ca]) was adroit enough to avoid getting caught in this meat grinder, but ECE [uwaterloo.ca] (part of the Engineering Faculty [uwaterloo.ca]) 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. [wirex.com]
Immunix: [immunix.org] Security Hardened Linux Distribution
Available for purchase [wirex.com]
My thoughts (Score:4, Informative)
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
Re:My thoughts (Score:3, Interesting)
The most obvious one is the special-quoted strings with no escapes. Those were obviously put in there so that people would stop typing forward slashes into filenames. There is a huge contingent of people who think you have to #ifdef every filename to make code portable between Windows and Unix, and the more that people think this the better for MicroSoft, because it discourages people writing portable code. In fact all Windows calls take forward slashes and I strongly encourage anybody writing code for Windows to use forward slashes at every moment possible so that they have no temptation to break this.
This language was not designed as a "better Java". The people told to make it got a chance to put in their ideas for a "better Java" so there is some good stuff there. But they were also ordered to make this a lock-into-Windows language and this is scary.
This is good (Score:2)
You can NOT teach first year programming students with such a tool PERIOD.
I've said it before, I'm sure I'll say it again:
http://slashdot.org/comments.pl?sid=38000&cid=4
Bryan
Re:This is good (Score:2)
All of this came out at the forum on Thursday (Score:2, Interesting)
"In retrospect, it was a mistake to announce agreement in principle with respect to the curriculum initiatives, a mistake for which I take the responsibility." (my emphasis)
You might call it "good news" although I think at best it's a Pyrrhic victory [shu.ac.uk]. The damage done to UW's reputation -- unnecessarily as it turns out -- is going to take more fixing than just another slashdot article. We got stomped on, and justifiably.
Fortunately the forum was streamed and recorded by the student government, the Feds [www.feds.ca], and you can listen to it by downloading the mp3 [mp3.feds.ca] (29 MB). Although we might take down UW's internet connection
I'm hosting a group project [simonwoodside.com] to transcribe the recording. Please help! It contains the president's apology but also some interesting information about C# as well.
simon
UW CS Alum
simonwoodside.com [simonwoodside.com]
PS. The School of Computer Science rejected the deal before the original announcement. This is all concerned with Computer Engineering, not CS.
I've seen it before... (Score:2)
UW President Johnston started taking heat so he backed up a bit. If he's like the self serving assholes I've had to deal with, he'll put it on hold while he has a fair **cough, cough** study and then declair that a deal with Microsoft is indeed in the best intrest of everyone.
I've seen it all before. Nothing to look at here... Move along. Move along...
MS: UW MUST use WINDOWS to teach C# (Score:2)
I thought these two points were VERY telling:
Q1) Since Microsoft, presumably, is simply encouraging the learning of ECMA standard C#, it should not matter whether the OS platform of the students is something other than Windows if another compliant C# platform exists and costs or other reasons U of W might have for using it make it attractive. Can Mr. Clegg assure U of W that Microsoft will not invalidate the agreement, or withdraw funding if C# is taught using Ximian Mono on Linux?
Frank Clegg (president of MS Canada): "The Microsoft Canada Co. sponsorship does require C# to be taught on a platform based on the Windows® operating system."
And question 6, which seems to me to concern academic freedom:
Q6: Your donation to the University of Waterloo in part funds curriculum development for ECE 050 and a curriculum change in ECE 150. As the curriculum change for ECE 150 did not require a change to course description it was not vetted through the Faculty Council or through the Senate Undergraduate Committee. This means that it affects the part of the curriculum usually understood to be the jurisdiction of the faculty member. Will Microsoft still provide UW with its donation if the professor for ECE 150 chooses to follow the course description without teaching C#? If it will not, how does Microsoft feel about compromising academic freedom at the university?
Frank Clegg: Funding for this curriculum initiative was decided based on the university's exploration of possibilities for sponsorship in the preparation of new curriculum material on C#. If the university decides not to teach C#, then there will not be a need to create any corresponding new material for which funding was initially allocated.
I hope the University gives these considerations due attention in their deliberations.
High level professionals (Score:2)
I'm sorry for those who don't agree, but IMHO high level professionals (those formed by top universities) should be able to learn Java, C#, or whatever other language by themselves.
All you need to know is a good academic language, like C ou Java, not necessarily one these, to give the students good basis. Afeter a language learned the most important thing is focus in Computer Theory and Mathematics.
Extension courses are welcome, but each student should choose whick course to do, which technology to learn. No obligation.
What amazes me more, is seeing top universities students ignores the programming quality of the unix world, and ignoring the possibilities of learning avaiable in the FreeSoftware comunity.
There are things that really makes me sad.
C#, Java, Ada or Pascal - it won't matter (Score:2)
Take a look at Engineering requirements. You have to take classes that won't have anything to do with your field but are part of the generic requirements. These classes will be used to weed out freshmen if they have too many and they get real easy if they need more students. For example good old "statics and strengths" for EE. I took that one at two different schools. One was tring to weed out EEs and that class was very hard while the other school needed EE's and the class was trivial. Its an odd feeling to wonder if your going to even pass a class that uses the same textbook as a different school where you got an A the semester before.
So of EE/CS departments are so willing to weed out students, why not make CS 101 in Assembly? That way you know the poeple who get through the 1st semester have some understanding of what the hardware is doing.
If you are a UW alumni ... (Score:2)
The concerns I'm listing are:
Not sure what difference it will make but I'll feel better ...
Slashdot Quiz (Score:2)
A - Overreact to rumor
B - Actually get some heat on Waterloo that made them reconsider
C - Have absolutely no impact on this at all
D - CowboyNeal makes really good asparagus omlettes
Re:Some seeing the dark side of MS (Score:2, Insightful)
This does not mean the deal is off for good, just put on hold for a year to allow the curriculum committees to make a decision.
Remus
Read the whole thing before you judge him (Score:2, Interesting)
Check out the comments of Dean Chaudhuri. I don't doubt that this decision will get the fifth degree.
Simon
Re:Some seeing the dark side of MS (Score:2, Insightful)
Or...
This is a rare occasion where an organization publically regrets a MS agreement.
????
Re:Some seeing the dark side of MS (Score:2)
Re:What is so good about C Octothorpe anyway? (Score:2)
Re:What is so good about C Octothorpe anyway? (Score:2)
So can Java:
"The following is a list of programming languages for the Java virtual machine aside of Java itself. Currently (spring 2002), it comprises about 160 different systems. It is a mix of experimental, research oriented implementations and of commercial ones. I excluded extensions to Java by the provision of class libraries implementing the functionality of other languages constructs. The source code of a program executed in the Java VM has to have a syntax different to Java to be included in this list."
Here is the list. [tu-berlin.de]
LEXX
Re:What is so good about C Octothorpe anyway? (Score:5, Insightful)
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...
Re:What is so good about C Octothorpe anyway? (Score:3)
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.
Re:Hoare's Turing Award Winning Speech (Score:2)
Re: The Ada catastrophe:
You mean such warnings as: I mean, how many languages use Dem Debil Exceptions these days? Or the notational dot form, as in object.method ? And apart from Boeing, Beriev, Lockheed, Airbus, Antonov etc [adaic.com] who uses Ada for safety-critical systems?But I come not to bury Hoare, but to praise him (Hell, he invented the case statement..):
The astounding success [af.mil] of the SPARK [sparkada.com] subset of Ada-83 and Ravenscar [openravenscar.org] subset of Ada-95 has vindicated him with a vengeance. You also have to remember that Hoare's speech(pdf) [yale.edu] was in 1980 - and Ada-83 was greatly simplified from the Ada proposals of just 3 years earlier. But even then it was vastly more simple and powerful than C++ or Java. public static void main(String argsv){}? Ye Gods. Never mind, maybe if someone keeps on quoting the large and growing body of evidence [adaic.com] about language choice being important, that it's not "religion" but a matter of objective measurement, and that one reason why most software sucks is that good programmers are using lousy languages [mozilla.org], then maybe things will change..... Nah.Re:What is so good about C Octothorpe anyway? (Score:2)
C++ has a cute "typesystem", in that there are class libraries that do some checking (such as the string class you allude to) but this is not strong typing.
C++: The safety of C, with the performance of Smalltalk.
Crispin, Waterloo class of '88, and not particularly proud of it any more :-(
----
Crispin Cowan, Ph.D.
Chief Scientist, WireX Communications, Inc. [wirex.com]
Immunix: [immunix.org] Security Hardened Linux Distribution
Available for purchase [wirex.com]
Re:Why not teach C#? (Score:2)
But You'll still have to install an (expensive) Mircorsoft compiler. You think they're gonna give that away for free? Development tools are a big money maker for MS, I don't think they're gonna stop now :-/
As for VB script, we know how useless it is. It was supposed to be the Java killer as far as the web was concerned, that never materialized.
Re:Why not teach C#? (Score:2, Interesting)
Yes, it's right here [microsoft.com]. It includes C++, C# and the VB.NET compiler. And the C++ compiler can compile to straight x86, but it doesn't do good optimizations either - so it's just like gcc
Re:Why not teach C#? (Score:2)
Perhaps you've missed it, but CS and EE curriculums are not generally meant to teach students specific industry related languages. As they aim to teach students programming concepts they often teach languages that are rarely used outside of university, but are conceptually clear.
Wether or not C# will be suitable remains to be seen.
Re:Why not teach C#? (Score:2)
I don't like mandatory non-core classes. If someone is going to a university to learn eletronic engineering there is no reason to require them to do an arts module, learn a language or any other crap.
On the other hand I think that it is perfectly reasonable to require engineering and science students to understand programming and to require all students to take mathematics and philosophy.
If I was taking an intro to programming course I would choose C# for a number of reasons. First like Java and pascal it is reasonably well structured and encourages students to start writing good programs. There will be plenty of time for the students to learn how to program badly using FORTRAN, COBOL, C etc.
Second unlike pascal, C# is not crippled by braindamaged design. The pascal type system and one pass design is not something I would want to have to defend.
Third, I would want to use a language that supports metadata and has some nice examples of its use - the XML serialization class is a nice example of what programmer defined metadata can do - and yes before folk who know Java but not C# chime in, no the Java support for metadata is not a substitute.
Now metadata etc. is not the type of thing that is normally taught in an intro class, however my experience is that no compulsory intro class is all novices and I don't see why a course has to be a no-op for the most able students.
Re:Why not teach C#? (Score:2)
This is the only one I could find, although I think it's a port.
using System;
class Hello {
public static void Main() {
Console.WriteLine("Hello World");
}
}
Re:proper facts for the uninformed... (Score:2)
Actually, first year CS students now take courses in that nasty proprietary language, Java. Of course, that has nothing to do with all the nice hardware and money Sun has donated to the university in the past. Nope, NONE AT ALL. Move along.
And due to the existence of projects like Mono and Portable.NET, and the fact that the language is an ECMA specification, there have been a number of students (small, but still there) asking for a change to C# for over a year now (C# since it's similar enough to Java that the change would be relatively non-disruptive with respect to the course material).