Ivy League Computer Science Curricula Exposed
Doug Treadwell writes "Many people have wondered what the difference is between the Computer Science education given in the average public university versus one given in an Ivy League university (or a top level public university). There have also been discussions here on Slashdot about whether any Computer Science curriculum gives students the knowledge they need for the working world. As a computer science student both questions are very important to me, so I decided to answer them for myself and build a website to share what I found. I was able to find the required reading for hundreds of courses at Stanford, Princeton, Carnegie Mellon, and Berkeley; along with some other institutions. This should also help answer some of those 'What should I read?' questions."
Personally I am an Electrical Engineering student at a top-5 public university in the country. Our selection of required course materials in no way reflects the quality/content of our courses, in general.
To become a professional you do a theoretical degree to give you a toolkit and learn how to find stuff out, then you do your professional training. Works for physicians, lawyers, engineers, accountants. You end up with two or more sets of postnominal letters, one of which is vocational. Why not software designers?
From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
This is ridiculously spammy, and I don't know how this got to the front page. This dude just went to the online course catalogs for these universities and copied the course descriptions and text books, and then put them up with amazon referral links. There is no insight, no comparison between universities, no analysis of difficulty level, no breakdown between theory and software development, and no firsthand accounts. Just lists of textbooks.
This site is nothing more than a list of recommended list of books with a pointer to them on amazon using his affiliate link!
I can't believe slashdot posted this. I like robots,
Two classes using the same book, similar assignments, and similar equipment can vary widely because of things like the professor's attitude, the lab- and teaching-assistants' attitudes, the overall attitude of the college or university to allowing and encouraging thinking beyond what is in the syllabus, and a host of other factors that are very hard to capture without actually being there.
Almost every university has at least one professor students are dying to take even if it means they will get a lower grade, they will have to work harder or longer, or they will have to wait to take his class. Everything else being equal, the more professors a university has like this, the better.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
I've met several CS grads and grad students from the Ivy League, and have to say I'm not impressed. For all the hooplah around the Ivy League, there isn't a bit a difference between them and any other CS department.
The Ivy League is just a brand, and a brand that is much more valuable in the liberal arts, not the sciences.
Same thing pretty much is tru
One of the major points that differentiate a good school from an average is the quality of teachers teaching the subjects and performing research.
Even if exact same books and syllabus is used, students will learn material differently from different teachers.
Any time any web site claims to save you money using the word "free" in all caps, run!
What do you mean they cut the power? How can they cut the power, man? They're animals!
Already been posted, but what a load of commercial, not very useful crap.
Editors, why not create a new "Commercial" category for this kind of stuff? It's not the first time we've seen commercialism slip through. Or why not let us readers vote on stories even once posted? "Duplicate", "Useful", "Commercialism", etc.
I've been fortunate enough to work on most of the big problems in computer science at one time or another. CPU scheduling. Network congestion. Compiler optimization. Proof of correctness. Secure operating systems. Image processing. Mobile robotics. Game physics. I've done very well financially. I have an advanced degree from one of the big-name schools. So I can't complain personally. Going into computer science worked out very well for me.
But I'm from the previous generation of programmers. Programming today is mostly about dealing with yet another API with another thousand or so interfaces, some of which work. By the time you're dealing with the fifteenth system for putting widgets on a screen and processing incoming events, you get fed up. Especially since you can see all the ways in which the new ones got something wrong that was a solved problem a decade or two ago.
Most of the basic algorithmic problems have been solved. Not only have they been solved, the solutions have been packaged up so that you don't have to look at them. How often do you really need to open Knuth any more?
Computing is the "stationary engineering" of today. About a century ago, stationary engineering, the work of, literally, keeping the wheels of industry turning, reached this point. In 1870 or so, stationary engineering was a growth job that needed smart people who understood the details of engines, generators, and steam. The basics of the field were still being figured out. Counterflow boilers and carbon commutator brushes were hot R&D topics. Just getting the machinery to work at all was tough, and there were serious reliability problems. By 1910 or so, most of the hard problems had been solved; big steam turbines and generators were working reliably, and plant operation didn't require much innovative thinking. Today, stationary engineering is a union job that few people even realize exists.
Computing is now about where stationary engineering was in 1910. Everything pretty much works, and most of what's going on is not that innovative. We're now dealing with scaling issues, which is where electric power was in 1910.
There's interesting stuff going on in robotics, parts of AI, statistical methods, and the handling of very large databases. We need small numbers of smart people to push that forward. There are areas of software engineering that need real engineering talent, like video compression and graphics, although such narrow, well-bounded problems tend to move into hardware. But we no longer need computer scientists just to run a data center or to set up business applications and web sites. Just careful, well-trained technicians.
That's what employers want, and that's what most of the students want. Most of the schools are willing to accommodate them.
Do you have any evidence whatsoever to support your rant? Have you perhaps attended both a state school and an ivy league school and are thus qualified to speak on this issue? I'm guessing that you have not, and are just spouting bullshit. Probably sour-grapes style bullshit, having never gotten into an ivy league school yourself.
"Cost means nothing..."
Then, to put it bluntly, they're idiots. Do the math; graduate with the same degree debt-free from a state university like I will, or owe hundreds of thousands of dollars as soon as the ceremony ends? Guess what? My dad was hired right out of college at URI by Raetheon. He was working next to Harvard and MIT grads, and they were all getting paid the same. It's really true that after the first job interview, no one cares where you graduated from.
Well, that's my rant, mod it down as you wish :P
Here's why I love Slashdot: unlike any other website I've ever seen, there's real content in the comments. Even on a story like this one, where the original article is garbage, there's informative discussion in the comment threads on the value and nature of Computer Science education in universities.
(We'll argue whether MIT is ivy somewhere else.) Most of the specific-knowledge courses like OS-360, PL/I, APL, LISP are in the dustbin of history. The general knowledge courses in algorithms, digital electronics, mathematics are still relevant and haven't changed a whole lot in three decades, although new software engineering techniques continue to be added.
That cache of "ivy" helps you stay in the job market, even long after many software engineers in our fifies are long put out pasture. Ironically many of the classmates I've kept in touch with switched to software after majors as diverse and geology, biology and music.
The most important component of a good engineering or computer science education is not what texts are used in the classroom, but rather, it's about who you interact with. This goes for both professors and your student colleagues. A top-notch CS program teaches you to think analytically. Interactions with faculty and the quality of lectures at these top tier institutions is what gives them their advantage. Rather than simply 'telling' students, "this is how you do such and such", top professors 'develop' these ideas with the students.