Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Books Education Programming

Ivy League Computer Science Curricula Exposed 312

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."
This discussion has been archived. No new comments can be posted.

Ivy League Computer Science Curricula Exposed

Comments Filter:
  • by Anonymous Coward on Sunday July 27, 2008 @02:30PM (#24359823)
    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.
  • by Kupfernigk ( 1190345 ) on Sunday July 27, 2008 @02:31PM (#24359839)
    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?
  • Give me a break (Score:5, Insightful)

    by Anonymous Coward on Sunday July 27, 2008 @02:40PM (#24359939)
    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.
  • Pathetic Ham (Score:5, Insightful)

    by shaitand ( 626655 ) on Sunday July 27, 2008 @02:43PM (#24359973) Journal

    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,

  • by davidwr ( 791652 ) on Sunday July 27, 2008 @02:45PM (#24360003) Homepage Journal

    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.

  • Re:Give me a break (Score:5, Insightful)

    by hansraj ( 458504 ) * on Sunday July 27, 2008 @02:45PM (#24360005)

    Also, what's up with that "exposed" in the subject of the story? I don't see any sort of conclusion about the quality of curriculum (good or bad) to justify that sensational title.

    The only thing "exposed" here are slashdot editors napping while selecting what "stories" go on the front page!

  • The Ivy League (Score:5, Insightful)

    by coaxial ( 28297 ) on Sunday July 27, 2008 @02:48PM (#24360029) Homepage

    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

  • Major Difference (Score:3, Insightful)

    by warrior_s ( 881715 ) * <kindle3@NospaM.gmail.com> on Sunday July 27, 2008 @02:50PM (#24360045) Homepage Journal
    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.
  • by blahplusplus ( 757119 ) on Sunday July 27, 2008 @03:12PM (#24360265)

    "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?"

    Computer science is really an information science, or what I like to call a "Hub science". It ranks up their with physics IMHO as one of foundational disciplines. Since one will need some education in it as a pre-requisite to actually function in the future in many jobs just because information technology will be everywhere.

    The problem is the industry moves very fast and the need to solve problems (which is creating new discplines on the fly faster then academica can catch up) is far out-stripping academia's ability to keep their curriculum updated from 'research in the field' (i.e. in the workplace), since computer science is becoming very broad very fast and there is no way for academics by themselves keep on top of the explosion of information.

    In fact, I'm surprised academics have not moved (even tentatively) to what I call the "wiki-pedia, professional / expert model" of education. It's an idea I've had brewing in my mind for some time now, where industry, academia, and professionals in the field have a wiki-like forum. Specifically where workers and industry share feedback about better engineering practices. And they come up with this wiki-like software, in which they can edit courses and curriculum, textbooks, and whatnot in real time with a feedback / comments section for every page in these (online) wiki-able electronic notes / lectures, and textbooks, and then one can use this kind of software as a base and have them go to print textbooks, etc, when necessary.

    The idea that a group of experts in academia can possibly do a better job then everyone else who's working in industry I think is an idea past it's time. Wikipedia has shown that many experts, academics (and non-experts) alike all hammering away at a problem will catch things that one organization or institution can't by itself simply out of mere time constraints. No one has enough time in the day, that can compensate for others who do have the time (retired professionals, scientists, professors, bright students, etc).

    "Computer science", today, is really vast subject and if we really get down to it. It's a huge field that is really in it's infancy still. In the games industry, just doing graphical special effects, particles, water simulation, and shaders, etc, is becoming a discipline unto itself. New disciplines are being created via cross polination of many other disciplines constantly that haven't totally shaken out yet.

    Another real problem is that programming is really a subet of mathematics and physics to some extent, and our teaching of math and physics is really not that great in many schools at the public/highschool level. As a personal note: I've found myself borrowing a lot of concepts and methodologies from physics and whatnot when working on things. There is an enormous amount of cross polination, because in comp sci, many of the things you can do are effectivelly only limited by your imagination.

    Damn near anything and everything can be converted to abstract representations, reconceptualizaed, etc, to be better understood. I think the real problem though is that programming right now lacks visualization tools, and that much 'code' and compiler tools are not really that developed yet, I've been thinking about what I call 'virtual engineering', where mathematical statements are converted to visual representation geometry (i.e. visual signs, etc, to stand in for how something the programmer doesn't see actually behaves as if it were a visualizable mechanical system in the real world). Although this is really basic, it does give you some idea of what I'm talking about.

    I think that programming was really born out by mathematicians, especially, the type I like to call s

  • by ColdWetDog ( 752185 ) on Sunday July 27, 2008 @03:41PM (#24360493) Homepage

    Were there any big events that led to the current forms of licensing of medical practitioners, lawyers, engineers, etc., or did those things just develop gradually over the decades/centuries?

    At least for physicians (and I am one), much of the impetus for licensing came from very dis separate views on what training was appropriate [wikipedia.org] coupled with distinct themes of limiting the number of practitioners and therefore increasing the value of the "license". The underlying paternalistic concept being that patients could not evaluate how good / bad a physician was therefore the state needed to intervene.

    So yes, general and specific failures of medical practice has led to a very structured regulatory framework with some clear indication that it has protected the general populace (and created a whole new class of problems, natch).

    So, can you create a reasonable analogy using software - probably not. You can argue that anyone hiring a 'software practitioner' IS in the position to be able to evaluate their competence - the state need not step in. You can further argue that in most cases software threatens neither life nor property. However, in some cases that is clearly not the case. So it's a mixed bag in that respect.

    The other requirement for a rational state-sponsored license would be if one could create clear guidelines as to what 'programming' actually entailed and that one could create a framework that would be able to delineate "good" programmers from "bad" ones. That would be pretty tough.

  • by devnullkac ( 223246 ) on Sunday July 27, 2008 @03:44PM (#24360525) Homepage

    Discover what many people have spent tens of thousands of dollars to learn, FREE!

    Any time any web site claims to save you money using the word "free" in all caps, run!

  • Re:The Ivy League (Score:1, Insightful)

    by Anonymous Coward on Sunday July 27, 2008 @03:54PM (#24360603)

    He wasn't a CS major, but you don't have to look any farther than the White House to realize this may apply to other majors as well.

  • by Pvt_Waldo ( 459439 ) on Sunday July 27, 2008 @03:56PM (#24360623)

    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.

  • by Animats ( 122034 ) on Sunday July 27, 2008 @04:26PM (#24360801) Homepage

    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.

  • by Bryan Ischo ( 893 ) * on Sunday July 27, 2008 @04:34PM (#24360847) Homepage

    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.

  • "Computer science is really an information science, "

    No, it's not. Sure it's part of it, but hardly the only aspect.

    "The problem is the industry moves very fast and the need to solve problems (which is creating new discplines on the fly faster then academica can catch up) is far out-stripping academia's ability to keep their curriculum updated from 'research in the field' ("

    Again, wrong. What new problem has there been in 98% of the industry? nothing in the last 10 years, and I'm being generous.

    "In fact, I'm surprised academics have not moved (even tentatively) to what I call the "wiki-pedia, professional / expert model" of education."

    Hardly new. What are you posting from 1994?

    "It's a huge field that is really in it's infancy still."

    Absolutely is not in it infancy anymore. That's a myth to keep people from feeling to guilty about the poor standard they have.

    "Another real problem is that programming is really a subet of mathematics and physics to some extent,"

    Only at the lower levels, most programming doesn't require any math ability at all. Sad, but true.

    "I think that programming was really born out by mathematicians,"

    Yes, but computers are powerful, and languages are so high level that it is irrelevant.

    There are some exceptions, and those exceptions are always the coolest stuff to do.

    "But truthfully, the real world is a 3D place, math is merely a kind of abstract representational system to calculate the various geometries and their relationships we deal with in the real world."

    The deuce you say!

  • by Anonymous Coward on Sunday July 27, 2008 @05:40PM (#24361311)

    The existence of licensed Professional Engineers has not ruined Electrical or Computer Engineering. It hasn't stifled innovation.

    The PE model, or something very similar, would work quite well for software development.

    As it is software development today does impact lives, livelihoods, and personal property so there are a number of situations where a PE would be useful. And just like other fields that have PE exams/licensing not everyone would need to obtain a PE so there is not much to fear.

  • by Anonymous Coward on Sunday July 27, 2008 @07:44PM (#24362219)

    While technicians with a poor understanding of the fundamentals may be what some employers want (less $) and what many graduates are, it generally results in sub-optimal or, more typically, grossly-negligent design. The code works most of the time and that is "good enough" until a business tries to maintain the software codebase, scale it up, or train new engineers on it. Even "the easy stuff" when done poorly results in huge amounts of wasted effort in the future, or stagnation of capabilities because it is "too expensive" to rewrite it all (even though keeping the old code often costs far more in the long run).

    The new ways of teaching CS are not producing the kind of conscientious developers we need. Of course, being conscientious and meticulous is something that really must be learned far before the point at which most people begin programming. In addition, dumping people directly into OO programming in Java without the basics of procedural programming, C/C++, pointers, registers, assembler and hardware often results in people who cannot make the transition to lower-level languages and more complex systems - or who do and mess things up horribly. A recent project written by some "programmers" not in the development group was far behind schedule and impossibly buggy. After a year being wasted by a team of three, it was reassigned to the development group, where it was rewritten mainly by one talented engineer (who was educated outside the US) in a few weeks. The result was a relatively simple program that was robust, had far more capabilities, used built-in OS features instead of attempts at its own implementations, and was less than 1/10 the size.

    A project rarely goes better or faster when poor programmers are added, as they often don't produce much and at the same time reduce the effectiveness of the other team members who must monitor more closely the quality of their work and/or fix the bugs they introduce. The arguments for quality over quantity are also referenced in Agile, Crystal, and Lean development methodologies, as they try to keep the teams small, high quality, highly communicative, and highly reflective. Unfortunately these methodologies are rarely taught in universities, instead teaching either Waterfall or nothing at all.

    Software engineering is less like engineering and more like research and development or an artistic endeavor. Although there are plenty of high-level tasks that have been done before and it seems like doing them again should be prodictable, there is infinite variety in the way that something can be written, the way each programmer thinks, the requirements and the perception of them, and the constantly changing underlying technologies.

  • by TomRK1089 ( 1270906 ) on Sunday July 27, 2008 @07:48PM (#24362251)

    "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

  • by Anonymous Coward on Monday July 28, 2008 @01:02AM (#24364359)

    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.

  • by SloppyElvis ( 450156 ) on Monday July 28, 2008 @11:18AM (#24369455)

    The only solution is to require licenses for politicians.

  • by peter303 ( 12292 ) on Monday July 28, 2008 @12:03PM (#24370299)
    (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.
  • by sdotman22 ( 1245522 ) on Monday July 28, 2008 @12:06PM (#24370351)
    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.

"Experience has proved that some people indeed know everything." -- Russell Baker

Working...