Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



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:
  • Worthless (Score:5, Informative)

    by Anonymous Coward on Sunday July 27, 2008 @02:33PM (#24359859)

    The website provided is worthless with regards to its content and appears to be little better than poorly wrought blogspam.

  • by Adreno ( 1320303 ) on Sunday July 27, 2008 @02:35PM (#24359889)
    "Stanford, Princeton, Carnegie Mellon, and Berkeley"... only Princeton is a member of the Ivy League. Brown, Columbia, Cornell, Dartmouth, Harvard, UPenn, and Yale are the others. I can speak from experience in the Dartmouth CS program, that while you have an excellent networking opportunity and grant money is fairly available as a result of the school's renown, more tech-minded schools have superior programs for instruction in CS. Maybe the other Ivys are different though...
  • by John Hasler ( 414242 ) on Sunday July 27, 2008 @02:47PM (#24360019) Homepage

    Hint: MIT, Stanford, and Caltech are not "Ivy League".

  • Here's the deal. (Score:5, Informative)

    by Yaztromo ( 655250 ) on Sunday July 27, 2008 @02:54PM (#24360081) Homepage Journal

    Okay -- here's the deal with Computer Science, coming from someone who is a Computer Scientist (in training if not always in profession, although at the moment I can speak as someone who teaches upper-year undergraduate courses at a moderately sized University).

    I'm sure everyone has heard the mantra that University isn't intended to prepare you for the working world. To a certain extent this is true, however in order to build partnerships and gain additional sources of funding in Computer Science, this view is generally skewed in practise, with the end result that Computer Science doesn't always appear to be a scientific field of endeavour.

    So here's the issue: if what you're looking to do is get a good paying high-tech programming job, should you study Computer Science?

    In my opinion, no.

    Thirty-plus years ago, Computer Science was generally taught as a science. It was generally about algorithms and theory, and in many cases how they can be applied to science. Courses on things like computer simulation certainly weren't unheard of.

    Along the way, as corporations picked up the pace at which they adopted computers as general-purpose and problem-solving tools, and as the software industry exploded, Universities in general started getting the message that their graduates weren't well suited to software development tasks, and as such they started requiring more courses on software development methods, and "how to program" and "how to create software" -- which by-and-large, isn't really about science or the scientific method, but a problem of engineering.

    Fortunately, as the field continues to mature, some Universities are starting to "see the light", and are offering programs in Software Engineering. Based on my educational and industry experience, software engineers are exactly what most corporations are looking for when it comes to low and intermediate level software developers, and the good programmes emphasize the design of software, while only giving what background is needed into the science behind it all.

    This is how things should be. We don't send physicists out to build bridges, but instead use physicists to come up with the core science, and than have engineers apply it to build the bridge. Software should be no different. At the risk of being labelled a heretic, we need a lot less Computer Scientists, and a lot more Software Engineers.

    Note that this isn't to say that Computer Scientists don't have a role to play; theoretical Computer Scientists still have a significant role to play in determining what is possible, and in the creation of new algorithms to solve problems in the field, and practical Computer Scientists (of which I count myself a member) are needed to design solutions to complex real-world problems, the designs of which can be passed down to software engineers for actual implementation. Plus, both types of Computer Scientist are needed to train future generations in the field, both at the University level, and as general mentors.

    Unfortunately, education hasn't quite caught up with this ideal yet, but it appears to be getting there. Larger schools are starting to provide both types of program, reducing the software development courses in their core Computer Science departments and moving them to Software Engineering departments (with the courses cross-listed between departments, or at the very least allowing students in the one to take courses in the other to supplement their degrees). Smaller schools, however, continue to muddle the two topics into a single programme, which causes the type of confusion often seen here when discussion "Computer Science vs. The Working World".

    So there you have it. All the other sciences have a differentiation between the "science" and the "engineering" aspects, and Computer Science is no different. Eventually I predict this separation of concerns will be the norm, and we'll be all the better for it.

    The conclusion here is, if you just want to get out int

  • RTFA, it's an ad (Score:5, Informative)

    by AdamHaun ( 43173 ) on Sunday July 27, 2008 @02:55PM (#24360091) Journal

    The linked site doesn't have any actual comparisons of the programs, just a list of textbooks with Amazon affiliate links. It's a scam -- this story should be deleted ASAP.

  • Underpants gnomes (Score:5, Informative)

    by SoapBox17 ( 1020345 ) on Sunday July 27, 2008 @02:57PM (#24360111) Homepage
    1) Make simple web page linking (with your Amazon affiliate account) to CS books used by several big name schools. 2) Post story on /. making your web page sound interesting or useful even if it isn't. 3) Profit!
  • Re:slashdoted (Score:3, Informative)

    by fosterNutrition ( 953798 ) on Sunday July 27, 2008 @03:26PM (#24360359) Journal
    He also would have known it's "curricula," not "curriculums."

    (Yes, the summary gets it right, but not the "sight" itself)
  • by pz ( 113803 ) on Sunday July 27, 2008 @03:42PM (#24360495) Journal

    The OP forgot that the MIT curriculum -- the lectures themselves -- are already largely available. The course materials for nearly two thousand courses at MIT are available here:
    http://ocw.mit.edu/OcwWeb/web/home/home/index.htm [mit.edu]

    So are all of the lectures from an experiment in Computer Science education that predates MIT's open courseware, http://aduni.org/ [aduni.org] .

  • Really good point. Sometimes professors just assign any book and teach out of lecture notes anyway.

  • by John Whitley ( 6067 ) on Sunday July 27, 2008 @04:18PM (#24360771) Homepage

    Speaking only to the Ivy schools listed, Brown is known for having a consistently outstanding CS program. Their undergraduate CS education in particular is reknowned. They were one of the pioneers in creating a first year program that taught using OO design from the ground up, and were great at engaging the students with interesting problems. I haven't tracked the evolution of their undergrad CS program for years, but I gather via the grapevine that it's still quite strong.

    [Ob. Disclaimer: I have no personal association with Brown. I studied their CS education model back in the day, when I was in academia.]

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

    You realize that both Yale and Harvard are, for all intents and purposes, free to anyone whose family makes less than $60k? And heavily subsidized up to three times that amount? Absolutely everyone who makes it in to those schools can afford to go... Yale Daily News [yaledailynews.com] Harvard University Gazette [harvard.edu]

  • by Anonymous Coward on Sunday July 27, 2008 @06:15PM (#24361551)

    I've TA'ed in various schools - and the most important thing that differentiates students in a top CS program is how hard they're willing to work. Professors (regardless of how good they are) will teach classes at much faster speeds and cover far more material because they know the students will put in the hours necessary out of class to understand everything that's been glossed over. Similarly, the homework assignments are harder. Downside, of course, is that if you can't keep up, you're screwed.

    Also looking at it from the Ivy League perspective is silly. The top programs are MIT, Berkeley, Stanford, CMU, Michigan, Wisc-Madison, UT Austin - none of which are Ivy League schools. And in an undergrad. program all the books are the same anyway - they're all standard texts.

    One more thing - please don't choose Software Engineering over Computer Science if you want to stay in the profession. You'll be drastically limiting your career options if you do. Software Engineering degrees just might make you more attractive to an employer when you're coming out of school - but in the long run, it will really limit the interesting engineering jobs you can do. Of course, if you don't want to stay in engineering, then you should be looking at other things when you choose.

  • by Tacvek ( 948259 ) on Sunday July 27, 2008 @07:41PM (#24362197) Journal

    At my school, for my EE, science and math courses, the books are there solely for the mandatory (graded) homework exercises. The Profs would always cover all the material in lecture, so reading the book was not necessary.

    The book was useful in the event that you missed a lecture, or forgot something, and perhaps for review, but nobody actually expected you to read through the chapters. If you did, the lectures would be pointless, except for hints about what will be on the exams, and any in-class quiz's or exams.

    Thus I have had several courses taught using what even the professors were forced to agree was likely the wost text in the market for the given subject. But the Profs did not care, as the books were really only about the exercises.

  • Big difference... (Score:3, Informative)

    by fugue ( 4373 ) on Monday July 28, 2008 @01:24PM (#24371567) Homepage

    I did a computer science BSE at Princeton, and now I'm a PhD student a U of Colorado, Boulder. Forget assigned reading--Princeton and MIT, at least, have their intro CS problem sets online (anyone interested can track them down pretty easily). As for CU, I'm not going to make it too easy either (don't want our little server to get /.ed) but try searching for FractalGrading and going from there.

    My experience at CU (as a TA 3 years ago; things may have changed) is that the emphasis here is on exposing students to C++ syntax, and then seeing an example of how to use it. Students end up lost, unable to think. When they're asked to turn a thought into an algorithm, they start by naming some C++ syntax, and, unsurprisingly, that's about as far as they get. At Princeton, we were given a though, shown how to build an algorithm, shown how what we knew already wasn't quite adequate (ie. taught why we might need some concept), shown the concept, taught a small amount of syntax that would let us program the concept, and then given a programming assignment in which we put it all together.

    Basically, at Princeton we learned to think like programmers, whereas at CU we expose students to a large set of tools without rhyme or reason. The result is that people who come in to the CU curriculum already knowing how to program do fine, and the rest struggle and become frustrated. Since grading reflects on the teaching as much as on the students, we basically pass everyone, even though by the end of the intro course half the students wouldn't be able to understand the idea of a linked list, let alone implement one.

    Of course, there is a vast difference between the intelligence of the average student here and that at Princeton. But I have seen no research comparing the method of teaching here to the method at an "average good school", and my personal experience is that it doesn't work very well.

  • by John Whitley ( 6067 ) on Monday July 28, 2008 @05:37PM (#24375509) Homepage

    Sounds like your program might not have gotten the curriculum sorted out yet. Brown and other programs had really clearly thought out the order of introduction for basic OO concepts (which came absolutely first) with control flow and basic algorithms, including making all of these things concrete through hands-on work. These schools were having immense success with their students using this approach.

    You're right in that just mashing OO into the curriculum without a real rethink of the whole first year program is problematic at best. This is not what the top CS-edu schools were doing. Sadly, much of the 90's in many CS first-year programs was a nightmare of pseudo-OO concepts without solid pedagogy taught in C++. This, when in years prior CS departments shied away from C in the first year because its warts detracted from the essentials of algorithms and data structures. I spent a lot of time trying to un-break students back then... :-(

All the simple programs have been written.

Working...