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


Forgot your password?

ArsDigita University 204

Philip Greenspun, whose name you may recognize from photo.net or Philip and Alex's Guide to Web Publishing, is founding a tuition-free program in computer science that's intended to provide the equivalent of four years' worth of CompSci in a single, 6-day-a-week, 12-hour-a-day year. You heard it right: tuition-free. And they're accepting applications. There are a few catches: you'll need a bachelor's degree already, and you'll need to be so bright that people put on sunglasses when you walk into a room. But even the rest of us can eavesdrop with lectures and course notes to be made available online. See this column about the program, or visit ArsDigita University.
This discussion has been archived. No new comments can be posted.

ArsDigita University

Comments Filter:
  • by Anonymous Coward

    As someone with a wide variety of computer-language skills, I must say that your focus is pretty limited.

    I've been programming for almost 20 years, and am fluent in over a dozen languages, from 3 different flavours of assembly, through higher-level languages such as C and Pascal, to scripting languages such as Perl, Rexx, and others.

    While Perl is useful to an extent, it is easily the worst language I've ever used. It's difficult to learn, and even harder to read. I've had way to many nights trying to understand bad Perl.

    And just as a disclaimer, I've never been to MIT (and Lisp isn't one of the lanugages I know.)

    Oh, and by the way, Perl rules the universe.

    Yes? And MS Rules the PC-desktop, - was your point that "Crap floats to the top"?

    Just because something is popular, doesn't make it good.

  • by Anonymous Coward on Monday April 17, 2000 @03:25AM (#1128168)
    I know your post was a troll, but I'll reply anyways.

    There are 3 "basic" computer related degrees.
    • Computer Engineering: Those fine people who help build computers. They know the insides and outsides of the microprocessor by heart, and enjoy every minute.
    • Computer Information Systems: These are the great people down the hall who call themselves sysadmins. If you have a problem, you go and ask them. What? You don't know how you use a spreadsheet? Ask one of them. Not necessarily programmers, but they can shell out a VB program pretty fast, and can teach us techies a thing or two about user-friendlyness.
    • Computer Science: Computer Science is a mix between the above two. They have to know how the system works at the processor level if they want to write really great programs, but they also have to know the CIS stuff in order to write usable programs. This area probably has the largest range of what people do because it is a mix between the above. They may end up writing an OS and be friends with the processor, or may end up having to write the spreadsheet that no-one can figure out how to work. "Software Engineers" are normally put into this catagory.
    Yes, some schools do just shell out "stupid MCSEs." But I would be surprised that "most CS programs" in a four year university do.

    As for the scientist part. It is an applied science. Mathematics, Physics, Philosophy. Problem solving at its very finest. I think you would find it very hard to write a 3D engine without a hard background in both Math and Physics. You would also find it hard to write an operating system without a good knowlege of processor and hardware design.

    It also has grounds in complexity theory. Computer programs are by their very nature complex, and cannot be simplified. Physics is moving closer and closer to a unified theory, but no matter what you do, programs you write will be complex.

    I'll shut up now.

    the long winded AC
  • by Anonymous Coward on Monday April 17, 2000 @03:58AM (#1128169)
    I went to a CS degree from a Physics/Math and some Chemistry background. I would agree that computer science is less a science than engineering profession. Now, that said, I would also say that with some improvements and more focus on theory than "implementation". Saddly, this is not what is happening. When I started my degree it did have a strong theoretical base but, by the time I finished, the Public university had pretty much taken a defacto buy-out from the largest employer in the area. Now the program is little more than a degree mill. Future CS students:

    Look for a program that emphasises data structures, OS implementation, compiler construction, and Mathematical aplications. Don't wind up a slave to someone elses proprietary program and don't work on any thing that you could not re-implement yourself given adequate time.
  • by BOredAtWork ( 36 )
    There are a few catches: you'll need a bachelor's degree already, and you'll need to be so bright that people put on sunglasses when you walk into a room.

    Translation: You need to already have a degree very similar to the one offered, and be willing (and financially able) to go for a year without holding a steady job so you can study to earn what amounts to the same degree you already have. Remind me again why anyone would want to do this? I'm looking forward to graduation so that I can start earning money, and NOT have to study for 12 hours a day anymore. This sounds like a novel idea, but rather useless...


  • Some people here have asked [1] why someone with a bachelor's would attend and [2] what's with the 6x12 work estimate.

    As far as [1] is concerned, I would guess that this program is mainly aimed at people with degrees in something other than CompEng/Sci who need the technical skills from the ground up. A person who already has most of the technical skills can just attend the three week bootcamp or do the home study course.

    As far as [2] is concerned, the 72 hours/week includes homework so it doesn't seem unreasonable to me, considering that it is supposed to be an MIT-level curriculum.

    -- OpenSourcerers [opensourcerers.com]
  • I have no idea if it is a "good" web server but I thought people might be interested to know that there is a Lisp-based web server project at MIT [mit.edu].

    -- OpenSourcerers [opensourcerers.com]
  • Not true... ArsDigita _already_ has a "recruitment course"... It is a 3-week long "boot camp" that they use to train and recruit prospective employees which covers specifically the sort of work done at ArsDigita.com (and can be taken at home rather than travelling to Cambridge to take the class). Incidently, it is also free.

    ArsDigita university only has one section in its curriculum that covers the work that ArsDigita.com does. Mostly ArsDigita University covers the sort of computer science theory you would find in a major university.

  • And that's another comment I'd like to make. Almost every LISP bigot I've heard of talks about how "beautiful" LISP is. My reaction is, So what if it's beautiful? Computer languages are written to be useful, not just beautiful. Is anyone actually developing anything useful in LISP? I think it's pretty obvious that Perl is very useful.

    IMO, your reaction is valid to an extent. Surely you can see however, that a CS degree is not about learning a language (that you can then apply in a job or in a project). It is about educating you about how to solve problems using computation. Unfortunately, that's a wide remit that also includes hacking up a guestbook CGI script.

    A lot of people fall into the trap of talking of 'ivory towers' in disparaging terms and suchlike. The techniques and knowledge you gain by applying yourself to a CS degree (if it was good) are not 'one trick ponies'. Sure, Perl is useful. But surely, more useful, is the mindset that can pick up and run with whatever language is going, because of the familiarity and experience of the type of language it is. That mindset will probably design a solution that is better. Sure, you don't need a CS degree and millions code really well without one. But a CS degree is not a lesson in coding. That's not what the point is.

    The point is, that ArsDigita uses Tcl because it suits their requirements. Lisp might have, if their requirements were different. It could well be that no set of requirements nowadays results in the adopting of Lisp. That doesn't matter. Lisp will still suffice to illustrate points. Lisp may not be useful in production environments, but the job of a CS lecturer is not to prepare you for the workplace. That's your job.

    If you want to be prepared for the workplace, then get experience in using the languages you want to work with. Of course, a CS degree will give you the background to run with these languages much faster. There's theory and implementation.

  • I think it's a great idea, and the syllabus and talent they've put together looks great. But who will take advantage of it? How many people are interested in learning theory and doing programming (usually means fairly young, I suspect), and can afford to go a year without pay, and are not already CS graduates? Of course, they only have space for 30, so it doesn't need to be a big market, but I feel like I must be missing something.

  • That's one reason they only accept people who have already gotten a degree. Not every school has to teach everything. Go to a nice liberal arts college, learn how to think and communicate, then go to ArsDigita and learn what to think and communicate about.
  • I bet that the people who get into this ArsDigita University could just as well get a full scolarship on one of the other great computer science universities(MIT, CMU, CIT, etc).

    Most universities don't give scholarships for masters students. They also usually take more than a year to complete.

  • You're thinking of Computer User Training Academy. Computer Science programs teach mostly theory, which doesn't become obsolute very quickly. Much of what's taught was known 40 or 50 years ago, and it's still quite relevant.
  • Agreed. In comparing Math and CS, I quickly found that CS was more at the vocational training end of the scale, at least in its core requirements. However I did develop a nice sideline of acing CS theory courses, since they were full of 12-hour-a-day C programmers who couldn't tell abstract algebra from a hole in the ground.

    My rule for CS is: if it can't be figured out in a few hours without a computer, it can't be programmed with one, regardless of the number of 72-hour weeks one puts in.
  • This is from the glossary of Phillip and Alex's guide to Web publishing.

    LISP: "Lisp is the most powerful and also easiest to use programming language ever developed. Invented by John McCarthy at MIT in the late 1950s, Lisp is today used by the most sophisticated programmers pushing the limits of computers in mathematical physics, computer-aided engineering, and computer-aided genetics. Lisp is also used by thousands of people who don't think of themselves as programmers at all, only people who want to define shortcuts in AutoCAD or the Emacs text editor. The best introduction to Lisp is also the best introduction to computer science."

    And here's what he says about Perl: "Lisp programmers forced to look at Perl code would usually say 'if there were any justice in this world, the guys who wrote this would go to jail.'"

    Elsewhere on the site, he has this to say about Perl: "As nasty and tasteless as Tcl is, it is a positive dream compared to Perl. The only conceivable way to write a correct Perl program IMHO is cutting and pasting from someone else's code."

    I'm up on free education as the next joe, but take into account how biased this type of education may be. If you read on in the site, you'll read more about "MIT this" and "MIT that." Perhaps that's why he thinks LISP is so great. From what I understand, MIT is a haven for LISP and Emacs bigot, whereas evereywhere else most everyone uses Perl, C, shell, Python, and other useful programming languages.

    And that's another comment I'd like to make. Almost every LISP bigot I've heard of talks about how "beautiful" LISP is. My reaction is, So what if it's beautiful? Computer languages are written to be useful, not just beautiful. Is anyone actually developing anything useful in LISP? I think it's pretty obvious that Perl is very useful.

    I apologize if this seems off-topic, but for me I feel wary of education which may actually be rife with a bunch of MIT intellectual "LISP is beautiful!" garbage. If LISP is so great then why does ArsDigita use Tcl instead of the almighty beautiful LISP?

    Oh, and by the way, Perl rules the universe.
  • Phillip, there's no need to get uppity. If I'm in the wrong, and I often am, then simply pointing out to me where I'm wrong and educating me as to the truth in this situation will be sufficient to change my point of view.

    Why do we use Tcl for this last step? We don't anymore. ArsDigita will build you a 100% pure Java site and support it.

    This is not an improvement! Java has proven itself to be nothing but hype and nothing but slow. Where is this supposed "Java revolution" that's supposed to have happened? Tcl/Tk (or Perl/Tk, for that matter) is more cross platform than is Java and faster, too. It is Java which has earned the moniker "Write once, Debug everywhere," not Tcl/Tk.

    It turns out that AOLserver is a great efficient proven Web development tool. It happened to include a compiled-in Tcl interpreter. So we used it.

    Why didn't AOLserver include a compiled-in LISP interpreter? For that matter, why isn't there any web server which includes a comiled-in LISP interpreter? If LISP is as great as you people claim it is, then certainly there should be at least one, right? Several people have come to your defense by saying, "The reason that AD didn't use LISP is because they used AOLserver, which used Tcl." I think that's a cop-out. The response is obvious: Then why didn't AD select a web server which uses LISP?

    If we were as smart as you, we'd have rewritten the whole thing in Perl instead of building a $20 million (revenue) profitable business.

    If you have built a $20 million in revenue profitable business then you have built one more $20 million in revenue business than I have, and that is to be congratulated. Why then do you feel the need to make such snide comments to me like the one above?

    If you don't know about any of the advancements in computer technology developed at MIT over the last 40 years nor any of the useful innovative software systems written in Lisp, maybe you should take a computer history course.

    Why don't you just tell me some of them? Provide hyperlinks if available. I will be convinced and believe your point of view if I see good evidence that LISP is as great as you claim it to be. But as is, you look much more like an upset, MIT snob than an effective defender of LISP.

  • Phillip,

    Thank you for your thoughtful response. I can see your point of view. At the same time, I think it enables me to put mine into better perspective.

    My whole point is that I feared a course in programming coming from a person who was a LISP/Emacs/MIT bigot. Mind you, this is my impression of MIT people: they think they are smarter than everyone else, they think Emacs is better than any other application (I believe you wrote on your web page, "All good programmers will spend most of their time in Emacs," from which I infer that if you aren't spending most of your time in Emacs, then you're not a good programmer), and they think that LISP is better than any other programming language. In short, they are elitist snobs. I used a few of your quotes regarding LISP and Perl to illustrate.

    But am I wrong about MIT people? Are they not snobs? Is LISP really a useful programming language? I don't know, I can be convinced otherwise. But I think that I'm not the only one who has this opinion.

    If you look back on some of the things in your respone to my response, I think they can still reinforce my point:

    Lisp programmers were too busy congratulating themselves for being smarter than C programmers.

    As for Lisp, a lot of language bigotry caused Lisp programmers to waste time arguing and reimplementing Lisp instead of building apps.

    So I can't be all wrong about LISP programmers being snobs.

    And as to your claims about what LISP as produced,

    The operating system. Time-sharing. RSA encryption. TCP/IP and a lot of earlier network stuff.

    This does not really look all that impressive. Isn't it true that several of these concepts were also implemented in other langauges other than LISP? Isn't it also true that there are hundreds of other concepts in the field of computer science that were implemented in languages other than LISP? In short, what makes LISP so great? What makes it stand out among the other languages? To me, the only thing that makes it stand out is the LISP "bigots" who are "too busy congratulating themselves for being smarter than C programmers."

    And another question, I understand that you are tired of people arguing about which language is better than the other, and I certainly understand that. Why then did you go into detail about how awesome LISP is and how horrible Perl is? If the tools are unimportant, then I don't see the point in all the LISP touting and Perl bashing.

    I must add that what I am totally against is a few people being elitist about some "lots of inane and stupid parentheses" language that no one is using except for some research projects at MIT. Personally, I think it's what gives MIT programmers a bad name.

    I appreciate the discussion.

  • I don't understand what your point is in posting this. The book is posted on an MIT site. It's written by three people who are obviously affiliated with MIT. So of course they're going to fawn over the incredible awesomeness of LISP. That is one of my beliefs: that the only people who talk about how great LISP is are MIT people. My question is this: are there any non-MIT people who will rave on and on about how great LISP is?

    I beg you: prove me wrong. Show me that LISP advocacy is more than just MIT snobbery.

  • ...to use Lester Thurow's epithet.

    As a college dropout who wants a CS/MIS degree, I'm kind of oversensitive on this subject, but I've become "educated" enough to want to quit the bullsh*t and move on to the training end of it. But making a baccalaureate degree a prerequisite to this "deep-dipping" program just creates a different kind of stumbling block.

    Generally, I scowl at the notion that a college degree is really a bellwether of competence and an entry visa of sorts into the world of IT profressionals. My father, a self-taught manufacturing engineer, suffered a similar fate at the hands of an industry that increasingly admitted only college-trained individuals -- never mind their lack of experience and useful knowledge -- to the ranks of "made guys."

    (Donning flameproof skivvies...)

  • Hey, Phil....what's with the Bachelor's requirement?

  • How does the old scale translate to the new and why did they change?
  • ok, i can see why its great to have a free education, especially if all the materials will be posted to the net. im not knocking that part, i think it kicks ass, and if it happens i will be sure to take advantage of it during vacations.

    but the idea that you cant get a technical degree without an undergrad cs degree just isnt true.

    every school in the country is hard up for grad students in cs and electrical/computer (ece) engineering. im not just talking phds, but also master's programs. the labor shortage, remember? nobody wants to go to school for two to five more years when they can pull so much starting straight out of college. the result is that universities and plenty of them are taking lots of people into masters' programs that have undergrad in a field completely unrelated to cs or engineering. its weird, but its definitely happening.

    im a biology major from a small liberal arts college, and i got into terminal master's electrical/computer engineering programs at both uTexasAustin and cornell. (admittedly i got rejected from mit, hahahaha.) this arsdigita is really only for english/psych/polisci majors. people who majored in a science can definitely get into a master's program. and seriously, i think a master's is worth more. both education-wise and vocationally.

    ok, so it will definitely take me longer than a year (im thinking 2 to 2 1/2) and it costs me money, but one year at UT costs less than half of what one year at my current school is. and so engineering!=CS but you kind of see what im saying. if youre willing to get rejected by MIT, it is still possible for you to major in something completely unrelated to computer science and still get into a CS (or related) graduate program.

    with the testing-requirements as high as have been listed, the people arsdigita is shooting for may very well have these options available. finally, i too want to see what the attrition rate of arsdigita will be. to be honest, i dont think that kind of acceleration can be done well. you can only cram in so much knowledge per day. people just stop learning after a certain period- like that far side cartoon, where the guy says "can you excuse me? my brain is full." 12 hours of class a day is just too much structured work time. even if most of it is basically study hall to complete assignments, its still worse than the traditional lecture then do work in your free time aspect of college life. i dont want to sound overly critical, but i seriously feel that the biggest problem is going to be the human attrition rate to that kind of scheduling.

    nevertheless, good luck. i hope the program succeeds- if only because i want my free instruction materials on the web!

  • That would mean I'd have to be up, like, first thing... in the afternoon! Who's together by then? You can still taste the toothpaste...

    Now weary traveller, rest your head. For just like me, you're utterly dead.
  • If someone came to me after going through this course, I'm pretty sure they would have a good chance of landing a job.
  • Are there even 3744 useful productive hours in a 4 year degree or even a BS+MS? When I went to school you got a major a minor and filled out the other 40-50% with fluff. If we compare this to a typical I'net consulting engagement @ 80% utilization eg. billable hours then you're talking about a 90 hour work week for 1 solid year. If even 10% of all people can maintain that then they are probably already working @ a dotcom startup or Bain or McKinsey and being paid in the high 5's low 6's. If they aren't then when they finish the first question will be "Well why didn't you just start your own company?"
  • MSCS and other "trade certificates" are not so useful

    Since when is a "master of science in computer science" degree regarded as a trade certificate? I agree with you if you are referring to MCSE etc., though.

  • by ruud ( 7631 ) on Monday April 17, 2000 @03:07AM (#1128192) Homepage

    I mean, can you imagine what the people that have spent 6 years getting a MSCS have gone through? Let's see, in 1994 they were using Win3.11/Dos5. 1995, Win95A. '96-Win95B. 1998 - Win98. 1999 - Win98SE. Toss in the changes made to Windows NT/2000 (That would be from 3.51 to W2K) and all of the different *nixs and look what you have... People with a lot of knowledge about outdated, mundane, obsolete technology. I guess you could argue that they still have that knowledge and can use it towards modern stuff, but I would still rather have the education in things that can help me get a job today...

    A university degree in CS is not about knowing how to use an operating system. It's about the concepts and the theory behind it. If you want to learn to use a specific technology, get a MCSE or equivalent.

  • by Bob McCown ( 8411 ) on Monday April 17, 2000 @02:54AM (#1128193)
    The two most valuable lessons I learned in college was to never turn down free food or free beer...
  • "The only really new language that's come out has been Java"

    Eh? What's so new about Java?
  • "It seems with a computer science degree, half of anything you learned more than a year ago is obsolete"
    "1994 they were using Win3.11/Dos5. 1995, Win95A. '96-Win95B. 1998 - Win98. 1999 - Win98SE. Toss in the changes made to Windows NT/2000 (That would be from 3.51 to W2K) and all of the different *nixs and look what you have..."

    So? Where's the connection between these two statements?

    Upon starting his CS education, a friend of mine told me that he was suprised that the CS curricula didn't include courses on how to use various operating systems and other pieces of software.

    I told him that CS wasn't about being able to use some piece of software (or hardware), but about the concepts that go into the creation of those things.

    There are indeed operating-systems courses that one may take when persuing a CS degree, but those are in OS-design, not -use.

    CS isn't about learning to use the latest version of Windows anymore than mathematics is about knowing where all of the buttons on the latest TI graphing calculator are.
  • I am also mildly put off by the anti-Perl rhetoric. It's not my first choice in languages, but it is quite elegant, in its own way.

  • But that's where the buck stops. Your attitude is dripping with contempt and disregard about a subject field I dare say you probably know less about than you might think. At least if you truly are an EE, that is. Here's why...

    Unless your university was a true visionary about your eventual future employment, your exposure to the field of CS was cursory at best. You might have sat in a Fortran class, maybe even a C--or, heaven forbid--C++ class, taken some abstract assembly of an imaginary processor, and patted yourself on the back about all the computer stuff you knew. Your computer training in any case would have been heavily firmware oriented, as befits an EE. You learn to bit-twiddle, and anything that doesn't look like bit-twiddling is greeted with contempt.

    Now to reality: learning the nuts and bolts of computer programming (bit-twiddling) is only the first step of a long and arduous journey. The real challenge lies in complete systems, in seeing the bigger picture, the forest as it were. EEs seldomly get past the trees. The EE equivalent would be to learn the basics about semiconductors, inductors and capacitors, and then immediately have to design an entire working system from these scraps of knowledge.

    EEs are woefully unprepared to deal with large software systems. I know because I've done much of the typical EE course work, and I've worked for years with entire departments of EEs. My university required more than a cursory exposure to EE subjects for my CS major, so I've mingled with both the people and the attitudes quite freely. My previous job at TVA amongst people designing power systems (substations, hydroplants, nuclear generators) has taught me quite well the superficial exposure of EEs to computer programming.

    There's a world of difference between squeezing the last cycle of performance out of an 8051, and writing objects that must interface with hundreds of other ones, and making it all actually work, and work seamlessly. The programming focus of EE and CS degrees is worlds apart, as it well should. A good CS degree will expose you to the necessary notions and ideas that hopefully in the future will get you on the right path.

    Now I'm not claiming that a CS degree in itself will teach you everything you need to know. In fact, it will probably teach you very little of what you will eventually need. But it will expose you to the subject matter, and at some distant point in the future you will hopefully remember sufficiently to know where to start looking. You will have a significant leg up on the EE working with you, who will have to start from first principles on a lot of those same things. It's very analogous to the EE that might have learned about MOSFETs and op-amps at some point, but will have to do some serious recap in any real job.

    Let's face it, a very significant number of EEs end up working as programmers. I don't know the exact numbers, but there must be tons (same for physicists and mathematicians, incidentally, fields I originally pursued before I "wisened up"). Most of those EEs will never again use any of the EE material they spent many nights studying. Sad maybe, but that's the economic reality. There's much higher demand for high-level software than systems design or firmware. So in that light I find it ironic and slightly pathetic that it would be the EEs making fun of CS people.

    To sum up, I would hire an EE if I was working close to hardware, maybe designing a board with some micro in need of firmware, or for device driver development. I would stay as far away as possible from an EE for anything with a grander scope. In my experience EEs suck above the detail level, and CS people suck below the system level. EEs can't wrap their mind around object thinking, and CS people can't shed object thinking. These are certainly grand generalizations, but I believe they conform to the broad strokes painted by the previous posters.

    Uwe Wolfgang Radu
  • I'm sure they'd hire any black jewish gay female paraplegics who subscribe to their brand of fanaticism.

    That's what I hate about plaintext. Sarcasm is so hard to detect.

  • If there is any reasoning in this world that post will be moderated waaayyyy up

    Good job explaining the fundamental differences between the majors. I have to say that I have seen a lot of two year colleges and other specialty schools that offer basically the out of a box MCSE deal. This has gotten to the point of being semi annoying just since a lot of us are working on 4 year degrees and these certification schools try to level themselves as being equals of those degrees.

    oh well small rant
  • "The greatest danger to good computer science education today is excessive relevance" -- Dennis M. Ritchie

    I'm quoting from memory so I probably got it slightly wrong, but that's the gist of what he said. And he's right. Tools come and go. Vendors come and go. If you understand what you're doing, you're a professional. If you don't understand what you're doing, you're a trained monkey.

  • To quote from the introduction to Tcl for Web Nerds [mit.edu]:
    If in reading this introduction, you've come to realize that "Hey, Tcl is just like Lisp, but without a brain, and with syntax on steroids", you might wonder why Lisp isn't a more popular scripting language than Tcl. Lisp hasn't been a complete failure, by the way; it is used as an extension language by users of some popular programs, notably AutoCAD. But Tcl has been much more successful. It has been compiled into hundreds of larger programs, including AOLserver, which is why we wrote this book.

    As a software developer, you're unlikely to get rich. So you might as well try to get through your life in such a way that you make a difference to the world. Tcl illustrates one way:

    • make something that is simple enough for almost everyone to understand
    • give away your source code
    • explain how to weave your source code in with other systems
    In the case of AOLserver, for example, Jim Davidson and Doug McKee had only a few months to build the whole server from scratch. They wanted users to be able to write small programs that ran inside the server process. They therefore needed a safe interpreted language so that a programming error by one user didn't crash the server and bring down all the Web services for an organization.

    Tcl was available. Tcl was easy to download and designed to fit inside larger application programs. But the Tcl interpreter as distributed had one terrible bug: it wasn't thread safe, i.e., you couldn't have two copies of the Tcl interpreter running inside the same program at the same time. Doug and Jim had to read through the Tcl source code and modify it to be thread safe. So it was critically important for them that Tcl was open-source and simple enough so as to not require months or years of study to understand the whole system. Compare this to Lisp. Some of the best and brightest computer scientists raised money to build commercial Lisp implementations that they then went out and hawked in an indifferent and confused marketplace. They succeeded only in breaking their hearts and their investors' wallets. A handful of academics produced free open-source implementations, notably CMU Common Lisp (see http://www.cons.org/cmucl/ [cons.org]) and various versions of Scheme (see http://www-swiss.ai.mit.edu/scheme-hom e.html [mit.edu]; Scheme 48 is the closest to Tcl in spirit). But these multi-megabyte monsters weren't designed to fit neatly into someone else's program. Nor was there any document explaining how to do it.

    Lisp developers have the satisfaction of knowing that they got it right 30 years before anyone else. But that's about all they have to show for 40 years of hard work and hundreds of millions of dollars in government and private funding. These days, most former Lisp programmers are stuck using Unix and Microsoft programming environments and, not only do they have to put up with these inferior environments, but they're saddled with the mournful knowledge that these environments are inferior.

    "But, Mulder, the new millennium doesn't begin until January 2001."
  • by sethg ( 15187 ) on Monday April 17, 2000 @05:11AM (#1128204) Homepage
    I think the program is aimed at smart people with bachelor's degrees in a non-technical field. I got out of college with a bachelor's in political science from MIT, and nobody was offering me a $125k job.
    "But, Mulder, the new millennium doesn't begin until January 2001."
  • Are you kidding me? They want people to go sit in a classroom/lab for 12 hours a days, six days a week.

    Piece of cake. I code at work for 12 hours a day six days a week, and all it takes is 5mg of Ritalin every 3 hours. :)

  • by mind21_98 ( 18647 ) on Monday April 17, 2000 @03:21AM (#1128210) Homepage Journal
    I'm wondering if the reason why they need a bachelor's degree is because they aren't accredited. They could get a lot more students and the class would be more meaningful if the course was accredited. Without accredidation, the course is meaningless for those without a previous college education.

    However, it is a good brush-up course for those who already have a degree. It would also be a way to reach to the people who can't afford college or can't get into it for some reason.
  • > Does a polynomial-time algorithm (P) exists that can solve an NP-complete problem?


  • > Create a programming language that has the functional elegance of LISP, the systems programming ability of C, the type-checking system of ML, and objects like Java.

    If you will settle for 3 out of 4, I will nominate Ada.

    > Market it correctly so that it goes into wide use.

    Well, maybe not Ada. Though it does seem to be catching on in France for some reason.

  • > despite my 800 in the Language section of the SAT and my attendence of AP English as a sophomore

    As you were saying?

  • As, I belive, Djikstra have said:

    Computer science is about computers as much as astronomy is about telescopes.

  • by irix ( 22687 )
    Are you kidding me? They want people to go sit in a classroom/lab for 12 hours a days, six days a week.

    Riiight. I'll be amused to see what their burnout rate is.

    Also, comparing this to a Comp Sci degree is a bit silly. This is essentially what all of the "computer colleges" out there are offering - intensive skill-based training. It may be free, and taught by some of the best people in the world, but that is still what it is.

  • And it has nothing to do with philanthropy.

    Do you think that Greenspun's company might be able to emply the services of a few of the grads?

    Think about it - what does it cost for them to recruit people? And once they are recruited, they still have to learn their (*cough* eliteist) AOLServer/Tcl/Emacs/Oracle way of doing things anyways.

    Now you create a place to "educate" (really train them on what *you* want them to learn) people for "free" and you get to hire the best ones for your company. They get a free supply of people all ready to slam right into their workforce.

    The $1M that it will cost is nothing compared to what it will save them in hiring/training costs, and I'm sure they get the tax writeoff on top of that.
  • --I think the program is aimed at smart people with bachelor's degrees in a non-technical field.--

    Isn't that an oxymoron? :)

    In all seriousness, I know plenty of people who are smart who aren't cut out for a career in computer programming. They don't neccissarily equate, and getting yourself into a 12 hour a day, 6 day a week program isn't likely the best way for you to find out either.
  • Phil, let me first say that I own your book and I respect what you are doing - especially making things open and available to everyone.

    I run my own small business, so I do know about tax deductions, but wasn't my point at all.

    You may say that you would only hire a couple of people, but I would doubt that. These people just spent pratically their entire lives for a year immersed in your culture and learning your way of doing things. More than a couple will wind up joining you.

    That said, if you say that isn't your prime motive then I respect that.

    Good luck hiring 200 web developers in the next year - we're in short supply :)
  • by noom ( 22944 ) on Monday April 17, 2000 @06:26AM (#1128221)
    Considering the time span of the course, do you think it makes sense that all students (at least the on-campus ones) should already have a background in programming (not necessarily professionally, but they'd be able to write a reasonably complex program in some language)? It doesn't take very long to learn how to program, but it certainly does take a long time for someone to become fluent. It's the difference between being able to speak French by translating an English sentence you've already constructed, and eventually just forming the French sentence without even thinking in English first. That's the kind of apprehension you need to be a good programmer -- and it takes more than a few months to apprehend this.

    It really surprises me that you'd think that an MIT/Stanford-style CS curriculum can be apprehended within just one year. I'm a senior CS student at CMU and while I don't doubt that all of the CS lectures I've had could fit into the schedule you specified, I don't imagine that a student would retain much of that knowledge.

    You simply don't get a good knowledge of CS from just listening to a lecturer tell you about CS. You need to go off on your own and struggle with the problems. You need to spend days at a time banging your head against a wall until you can find and then prove your algorithms correct. And you need to do that over and over again, until, upon getting a new problem, you immediately say to yourself: "I can use such-and-such a theorem to reduce that problem to finding a true quantified boolean formula -- darn, that's P-SPACE complete!" (or "wow! I've proved that P=P-SPACE" if you're a supa-genius)

    And what's more, this knowledge is cumulative. You simply WON'T get it in 3 months, or 4 months, or 2 years. You might be smart enough to recite every single proof you've ever encountered so far (perhaps you were an accomplished actor) but I seriously doubt that any of your students will magically transform themselves into creative computer science students within the period of just one year of listening to someone else talk about computer science or solve problems for them.

    If you think it'd be fun, go ahead and teach whatever curriculum you'd like, but I have a feeling you'll lose your students after a month or two if you don't give them any time to let them struggle with difficulty. And heck, beyond just learning the formalism in CS, when are they even going to have time to hack on large projects? You don't learn software engineering by attending lecture. You learn it by building horribly unmaintanable programs (unintentionally, of course) and reflecting on that after the fact.

    If this program will be valuable to anyone, it's probably for people who write about technology and want to get a sense of the depth of CS (beyond programming), but don't expect to become proficient in it.
  • I totally agree! helping those who have already proved themselves as being a part of the "elite" isn't really going to help the world at all. I'm sorry, but building good dynamic web sites isn't that hard. Why provide education to those who can educate themselves? Who and what does this promote? Mr "Tcl/AolServer" Greenspun? or the web as a whole?
  • I took a "four year" (did it in 3 years plus 17 day interim) CS degree that I started in 1992. None of it is obsolete yet.

    We learned algorithm analysis, language theory, computer architecture, etc. None of this stuff is obsolete or ever will be (with the possible exception of architecture).

    It's job experience that gets obsolete. That's why those "I ain't got no book larnin'--I'm a self-made man!" types always make me laugh.
  • While the value to the targeted students won't be all that great. The fact that a complete CS course of apparently exceptionally good quality is going to be made available under an Open Content License is Tremendous.

  • by Ellen Spertus ( 31819 ) on Monday April 17, 2000 @11:16AM (#1128232) Homepage

    Mills College in Oakland, California, where I teach, has had programs since the mid 80s to teach computer science to people who already have a bachelor's degree in some other field.

    In one program, students take computer science courses and then go into industry or CS grad school. Last year, one student went on to graduate school in CS at University of Washington, another to University of Virginia.

    Another program leads to a MA degree in Interdisciplinary Computer Science, in which students take computer science courses and do an interdisciplinary thesis combining their old area with computer science. We've had some really interesting people come through.

    While our programs aren't free, we do offer teaching and research assistantships. As at MIT or ADU, your teachers will be from MIT and comparable schools. (Like philg, I'm MIT^3.) Unlike MIT, classes are small (generally fewer than 20 students).

    For more information, see the web page [mills.edu] or send me email [mailto].

  • There are a few catches: ...you'll need to be so bright that people put on sunglasses when you walk into a room.

    You mean like through self-immolation [timesofindia.com]?
  • by cshotton ( 46965 ) on Monday April 17, 2000 @07:10AM (#1128237) Homepage
    This is a fallacy. You simply cannot assimilate all of the technology, techniques, and lessons learned that come from four+ years of study by trying to cram it all into one year. There are lots of experiences that require calendar time to fully absorb. This is a variation on the mythical man-month.

    You could also argue that if you're smart enough to get into this program in the first place, you're probably smart enough to figure out most of the stuff by yourself anyway. Computer Science degrees are really about teaching you how to approach solving computer-related problems. A vast majority of the classroom content is either out of date or has little practical application for most graduates. So whether you get that in a year or 4 is irrelevant. What you're missing is the years of training your brain to look at and solve problems that are fundamentally different from most other disciplines.

    I don't believe you can compress that experience into one year, and I certainly wouldn't consider hiring someone who claimed to have accomplished it in that timeframe.

  • 2) Prove whether or not solutions can be obtained for NP-Complete problems.
    There's no question on whether solutions exist for NP-complete problems; the question is whether polynomial-time solutions exist.
  • I went to college early, skipping my senior year, in a special program. The following year I applied and gained entrance to Cornell U. After being bored and insulted with /required/ remedial writing classes, despite my 800 in the Language section of the SAT and my attendence of AP English as a sophomore (apparently they thought that since I skipped my last year of HS I must be an illiteral moron), and obtaining permission from the dean of the Comp Sci department to take 400 and 500+ level courses my freshman year there, which didn't really cover anything new anyway, I dropped out, frustrated and disgusted. I now work for that very same university in the IT dept (my girlfriend still goes to school here...so I'm not heading to the valley just yet). I would like to get a diploma, not because I think it really has any special merit, but because that's what people look for. I know I can probably quit my job and within days get another one anywhere I want, but without the diploma it still feels like the rank and file code grinders think they're better than me. I read in the Jargon file somewhere that a self-made hacker was more respected than those who had to pay to be taught. I guess that's just not true any more.

  • 1) Solve all of the "research"-level problems in Knuth's "Art of Computer Programming".

    2) Prove whether or not solutions can be obtained for NP-Complete problems.

    3) Create a programming language that has the functional elegance of LISP, the systems programming ability of C, the type-checking system of ML, and objects like Java. Market it correctly so that it goes into wide use. Wallow in cash.

    I never said I wanted to be a theoretical computer /scientist/. How many people with BSs in CS do you know that are actually doing research? I never claimed I was an RMS. I never even said I wanted to impress you. My point was that this university requires a BS as a prerequisite...which is a Catch 22 for anybody who has the skills but not the diploma.
  • Yes...I flunked the typing section of the SAT. Thanks for pointing that out Anonymous Coward.
  • Ok, while everbody is lambasting me, let me just clarify. Perhaps I didn't state that in the best way. My point is that a lot of people will be barred simply because they do not already have a BS. I would love to take a crash course like this...sifting out three years of cruft. Let me decide what I want to do with the remaining time. Let /me/ decide how I want to "grow personally". College cannot make you a well-rounded person. Only you can.
  • That's not my point. My point is that whenever you encounter a really difficult problem (the ones stated above, for example), a degree in the field can at least give you an idea of where to start looking. You might have seen something like that problem in passing during a class.

    Yes, certainly college imbues the qualities of persistence and determination. Having had to solve challenging problems in the past will help one in solving challenging problems in the future. However I reached a certain point where I was sick and tired of solving problems and jumping through hoops for their sake alone. There is a point at which the itch to actually DO something is too great. So I scratched that itch. Yes, perhaps I dropped out too soon. I originally majored in physics. I guess if I just endured another three years I might be doing something really interesting.

    MIT has a program called the Undergraduate Research Opportunities Program, or UROP for short. It allows undergraduates (even freshmen!) to participate in research.

    Well, that is great for MIT. MIT also happens to be an engineering oriented university in the first place. Go somewhere much larger and more general (do advisors remember who you are at MIT?) and faculty access and meaningful research opportunities (i.e. something more than a lab technician job, titrating all day) are harder to come by.

    The only problem I have with your statements is the tone, not the content. I'm just trying to say that although you are obviously very intelligent, having a degree would probably benefit you in more ways that just having a piece of paper, and maybe you were a bit quick to drop out.

    Yes, the tone might not have been the most appropriate...but it comes from exasperation. I used to be on the "right track". But it sure looked like if I held on I would be coming out as yet another preconfigured cog.
  • "A college degree is, as a very wise PhD once told me, just another union card. It affords you access to employment opportunities. The education you get while you get your "card" is up to you. You can choose to do the least amount of work possible, squander opportunities to learn from others who might be smarter than you, and not make any lifetime friends. Or you can take the precious time when your only "job" is to learn as much as possible from every possible source."

    I wholeheartedly agree. College is only a /license/ to learn. Learning is actually up to you. The things college actually provides are 1) professors 2) facilities 3) fertile environment. In very large and/or Ivy League colleges professors can be very inaccessible as they either have no time for you, due to their primary work as researchers, or just don't give a damn about you, which is also very common. So 1 is out for me. For majors like biology/pre-med, and "pure" engineering, facilities are very important. After all, you can't pick up a nuclear reactor or chemical laboratory at your five and dime. But for CS, a home computer will do just fine for equipment. Besides a Unix account, and perhaps an ethernet internet connection, there really isn't much as far as facilities that a college can provide. So 2 is out. 3 was the most important to me. I thought I'd finally be escaping high school, to a place where I could learn and explore with people interested in the same without being labeled. But I rudely awoke to the reality that the "fertile environment" of the Ivy League is basically cut-throat competition amongst a bunch of GAP models driving BMWs, and majoring in econ so that they can become stock brokers or defend tobacco companies. That really left me with no reason to stay. If all college is is cramming books into my head in preperation for tests, I might as well do that all by myself.
  • "Even if you find it a painful experience, there's always graduate programs where you can have lots of fun :)"

    Yes, so I've heard. Actually the later courses I had just started to taste (well, one at least), was pretty cool. It was a "hands-on" engineering approach to networking, the final project being the creating of a working (but virtual) telephony system.

    Actually the field is moving so fast, my daily work (enterprise Java) could /almost/ be consider research-like. Indeed a coworker of mine was doing his masters thesis on a system he was actually writing for productin use...alas, he went off to startup-land (and actually offered me a position, but current circumstances limit that as a possibility)...which leaves me in my current situation, bitching on Slashdot... :\
  • by Hard_Code ( 49548 ) on Monday April 17, 2000 @07:26AM (#1128248)
    "When you start try and be friends with everyone. Try to appear bright and keen, try to be nice all the time. Come in on time, and go home a little (but not too much) late - people will know you are working hard, but not showing them up. Don't worry about their response(s) in IT your time will come. Wait for the crisis, you won't have long! Pitch in when the crisis comes, demonstrate your value. Afterwards you will find that the team will accept you, and will accord you more respect. When the next person joins go out of your way to be kind to them. This will not go unnoticed by your team mates, and will reflect well on you."

    I have done all of the above, and am happy to say I am merrily on my way to a fulfilling career as yet another cubicle dwelling valued employee and productive human resource.
  • by Hard_Code ( 49548 ) on Monday April 17, 2000 @07:42AM (#1128249)
    "There is more to getting a college degree than just knowing how to code or do calculus or whatever you choose to do. I promise that if you ever decide to get a degree, you will learn more than you ever have from a C++ book or from reading through some websites. It is my experience that intelligent individuals who don't interact with others are pretty much only good for that one thing that they know how to do. They resist learning new things (because they think they already know everything), and they can't work well with others. Almost every college student takes courses that don't apply to his/her major. Don't be so insulted by this fact that you feel college is for those not bright enough to figure it out on their own.

    Well, I guess this is the fundamental point I disagree on. I too had pipe dreams of magical self-exploration and actualization. But, at least at Big University, it turns out to be pretty much high school all over again, except that you now pay through the nose for being told what to do. You are free to explore all sorts of alternative education avenues, as long as you do it on your own time, or "any color as long as it's black" (so what does college buy me, then?). As for being learning-resistent I have interests in many different topics, with varying ranges of depth, but certainly not things I'd have time to pursue if I were doing rote work. I'm pretty much entirely disillusioned with college in general. The fantasy that it is some enlightening journey of self-exploration is utter bs.
  • by MosesJones ( 55544 ) on Monday April 17, 2000 @02:52AM (#1128253) Homepage

    The most valuable thing I learn't at University was about interaction with others, I've found since that the most productive team members are not always the best read, but the best able to communicate their ideas.

  • That's all well and good, but after being involved in a bit of education myself (3 degrees), I've found that higher-level education is more than an information dump (if it's done right).

    Education can allow you to see the errors of those who have gone before you so you don't repeat those mistakes. You know you've achieved enlightenment when you realize how shockingly little we really know about anything, and how we manage to make do anyway. You appear to have a long way to go before you reach that point my friend...

    So while you're waiting to go the valley and make your millions, here are some problems you can work on to fill your time...

    1) Solve all of the "research"-level problems in Knuth's "Art of Computer Programming".

    2) Prove whether or not solutions can be obtained for NP-Complete problems.

    3) Create a programming language that has the functional elegance of LISP, the systems programming ability of C, the type-checking system of ML, and objects like Java. Market it correctly so that it goes into wide use. Wallow in cash.

    I breathlessly look forward to hearing from you...

  • Actually we've budgeted about $30,000 per year per student in expenses to arsdigita.org and the number will probably grow a bit (for one thing, we're paying faculty $150,000/year).

    I admit to secretly hoping that schools with $billions in the bank (e.g., Harvard and MIT) will find other ways to raise money than shaking down middle class families. But really the point of ArsDigita University is just what we say it is... to teach the undergrad CS curriculum to folks who might have missed it when they were in college studying liberal arts or biology or whatever.
  • MIT would agree with you about CS not being a science. The CS department at MIT is actually a subsection within the EE department which is part of the School of Engineering. The real sciences (Biology, Chemistry, Physics) are collected up in the School of Science.

    But there is nothing wrong with engineering! It is fun and satisfying to build real-world things, even if we're never going to cure cancer.

    -- Philip (kicking back at ArsDigita London where the flowering trees are really beautiful all over the city)
  • Fear not! As noted below, we're only going to do the first course in calculus from MIT (18.01, which is a few weeks of differential calculus and then the rest of the term on integral calculus). The last thing a CS nerd needs is Div, Grad, or Curl. Nor do they need to know how to use a Frobenius to approximate a solution to a differential equation!

    And if the students don't learn calculus, they can always become lamers like me and use Maple or Macsyma :-)
  • Most of the hackers at ArsDigita (including moldy old me) have built Web presentation layers in Perl, Tcl, and Java. We agree with you that Java isn't an improvement over Tcl for merging templates with db data. On the other hand, since the presentation language isn't core to our toolkit, why not make our data models and abstractions available to those who've got big Java libraries (and, okay, the ArsDigita investor in me says "to those who have big budgets")?

    Why didn't AD select a Web server that uses Lisp? There weren't any back in 1995 that could talk to an RDBMS. We wanted to build applications to solve real users' problems, not get mired in a tools debate. So we built apps instead of tools. SAP was written in COBOL initially. I'm sure that they didn't like COBOL but they wanted to solve the ERP instead of the language problem so they did (and now SAP is the world's #2 market cap software company, after Microsoft).

    Why was I snide? I'm sick of hearing arguments about languages and development tools. It is what gives programmers a bad reputation for being losers.

    A few MIT things? The operating system. Time-sharing. RSA encryption. TCP/IP and a lot of earlier network stuff. Computer algebra (and the Lisp-based Macsyma, which is still the most useful computer algebra system (though I admit that Maple is easier to install and use)). As for Lisp, a lot of language bigotry caused Lisp programmers to waste time arguing and reimplementing Lisp instead of building apps. But some good apps were built, esp. in the areas of electronic design and automated mechanical design. A lot of systems used Lisp as an extension language, e.g., the Interleaf publishing system and the AutoCAD drafting system. And a lot of the good ideas from Lisp made it into Java.

    But the bottom line is that tools per se won't make much difference. At MIT, we teach our students to generate entire Web sites (including all the scripts) from machine-readable specs. Instead of arguing over tools and maybe getting a 3X productivity improvement (e.g., from using Apache/Perl instead of Netscape Enterprise Server/Java), they are writing programs that write programs. They'll get a 1000X productivity improvement over even the best Perl coder even if their ultimate target language is EDSAC machine code.

    The future of Web development is high-level specification and automatic generation of sites. This is what we try to teach students, where we do at ArsDigita when appropriate for a service, and where we are pushing toolkit development.
  • ... and yet here is one of the faculty members who tortured me in grad school, coming into slashdot anonymously. It hurts.

    If I were intelligent or level-headed, I would have gone to medical school like my brother Harry.

    But rest assured, ArsDigita University students won't have to suffer with me all year. I'm only teaching one course (though I might be a TA for some of the others).

    (Note to the rest of you: before you start a little online community like photo.net, be aware that you might get "a few dozen" unsolicited emails over the years from someone like this anonymous coward. It is one of the great joys of being a non-commercial Web publisher.)
  • I think that the reason colleges do 4 courses in parallel instead of intensively is because it leads to maximum admin convenience given (1) full-time faculty, and (2) students in different majors or on different schedules. Note that MIT was built during the Industrial Revolution and works sort of like a facotry. The professors are like machines. They are nailed to their classrooms. The students are like the widgets. They move from machine to machine on conveyors (corridors). Compare to Oxford University, started during the time of guilds and apprenticeships. They have tutors.

    1300 on the SATs might be good enough if you took them before the rescaling. Your HS career is certainly better than mine! (see photo.net/samantha/ for an account of my high school achievements). Anyway, we don't stop people from taking the SATs again and crushing them like a bug.

    Why do we focus on SATs? MIT has a huge admissions bureaucracy that does a great job but costs more money to run than our whole little school. So we needed some criteria that would yield us a high-quality student body but that wouldn't take up a lot of time to administer.
  • I'm in our London office now, as a matter of fact. We're expanding Munich and Tokyo. We'll be opening Sydney and maybe Paris Real Soon Now (TM).
  • I'm already at the ArsDigita London office (got here on Friday night) and I must say that English ISDN lines feel slower than my old 14.4 modem in the US. The only reason British Telecom can do this to you guys is that the government has taken away your guns. We may have mass killings in the US but at least the firepower seems to have cowed utility monopolies into a semblance of service.
  • by pgreenspun ( 64424 ) on Monday April 17, 2000 @04:58AM (#1128276) Homepage
    To the extent that we have a "business model" (I don't even like to use the phrase when talking about ArsDigita Corporation), it is.... Open Source. All of the materials that we develop, including the video lectures, will be available free of charge to other schools worldwide. So it is true that we're too poor right now to make a huge difference by ourselves (teaching 30 students). But remember that the world is full of rich people and companies who might like to do this but have not because they can't get the curriculum together or don't know enough PhD CS nerds. If 100 other organizations worldwide pick up our courseware and use it, that would be 3000 people/year. That would be a lot more than MIT and Stanford together educate.

    Not only have we open-licensed all of our content but we're going to spend summers inviting people from around the world to come learn how to teach our curriculum.

    Basically the world right now is floating in money. And many of those with money are in fact quite generous. What is in scarce supply is knowledge and human resources. By showing other people how to do what we're doing and helping them do it, we hope to encourage imitators.
  • by pgreenspun ( 64424 ) on Monday April 17, 2000 @05:03AM (#1128277) Homepage
    You've a bright future in business, Tom, but only if you learn that businesses don't need tax writeoffs. Businesses aren't taxed the same as individuals. Virtually everything that a company buys is 100% deductible. I can hire a personal masseuse for every programmer here (currently we only have one masseuse). Her fees are deductible. A donation to the Boston Symphony Orchestra is no more or less deductible than the salary of the masseuse, the salary of a programmer, the rent on the building, the pencils in the stock room, etc.

    As for whether this is a recruiting pipeline for us, it isn't a very effective one. We need to hire 200 developers in the next year or so. The first ADU graduate won't be available for more than 14 months. Many of them will return to their professional lives (some are university profs or MDs or PhDs in other fields). Some will wish to start their own businesses. Some will wish to work for large companies. We might end up hiring a couple. That would be $500,000 per person in recruiting expenses. Plus a lot of distraction. So it wouldn't be very good business.
  • Oh yes, the most interesting question you raise is actually answered in a cut-and-pasted excerpt from my Tcl for Web Nerds intro. Why weren't there any good Lisp-based Web servers in 1995 (or now)? Lisp programmers were too busy congratulating themselves for being smarter than C programmers. So the C programmers sat down and figured out what the real problems of publishers and end-users were and came up with practical stuff like AOLserver in 1994, Apache/mod_perl (1998 or 1999 by the time all the db connection pooling kinks were worked out?), etc.

    Engineering excellence doesn't mean having a fancier system; it means having a system that solves the users' problem better faster and cheaper.

    Am I bitter? No worse than Medea...

    (I'm also confused by the person who claims that pgreesnpun isn't me. I am me, dammit!)
  • by pgreenspun ( 64424 ) on Monday April 17, 2000 @06:48AM (#1128279) Homepage
    Your suggestion that we try to do more than a post-bacc is a good one. But keep in mind that we don't have much money (only $1 million/year). It is a lot easier to teach a Harvard grad than a raw high school kid. We're going to do the easy stuff first, try to do it well, and then expand as we get more resources.

    If you look at Michael Saylor, who started his school with $100 million, you see the difference that more money makes. He is trying to do a whole liberal arts curriculum. He is trying to innovate in the method of instruction (online instead of face-to-face). I predict that he will have a tougher time than we will, even though he isn't constrained by money. When looking for teachers across a broad range of subjects, he will have a tough time just figuring out whom to call. Whereas I'm only one degree of separation from any qualified CS teacher in the world.

    If we were to start giving bachelor's degrees we'd have to ask ourselves in what way we were better than Harvard or MIT. Those schools have, respectively, about 350 and 150 years of experience doing what they do. We would be tuition-free but so will they in the long run (I think). The guy below who said that I was an egomanaic is mostly right. I don't like to be involved in something unless it can be the world's best. I know how to make the world's best post-bacc CS program. But I don't know how to build a great college that will do all the things that need to be done for 18-22 year olds.
  • by pgreenspun ( 64424 ) on Monday April 17, 2000 @07:16AM (#1128280) Homepage
    It certainly does not make sense to require folks to have a programming background. MIT does not require a programming background for admission to the EECS undergrad program.

    As for "struggle with the problems" our students will have ample time for that. Only 2 or 3 hours per day (out of 12) are spent in lecture. The rest if problem sets.

    When will our students have time to "hack on large projects"? The rest of their frigging lives! We want to do the best that we can with one year and then send our graduates on their way. We don't expect them to become Richard Stallman-grade programmers during one year with us or anyone else.

    Finally, who ever said that we were teaching programming? We're teaching computer science! Some of our students might choose to go on to grad school at CMU and bury themselves in complexity theory or parallel algorithms or whatever. (We do have a couple of courses in software engineering but those are only two out of 11).
  • ArsDigita does its engineering work in
    • a data modeling and declarative query language (SQL)
    • abstractions implemented in PL/SQL or Java running inside the RDBMS
    • helper code implemented in C running inside the RDBMS or the Web server
    We do some presentation and merging RDBMS data with graphic design templates in Tcl or the AOLserver templating language (ADP).

    Why do we use Tcl for this last step? We don't anymore. ArsDigita will build you a 100% pure Java site and support it. Our toolkit is about getting the data models and workflow models right, not about language religion. Beyond that, we use whatever is most expedient. It turns out that AOLserver is a great efficient proven Web development tool. It happened to include a compiled-in Tcl interpreter. So we used it. If we were as smart as you, we'd have rewritten the whole thing in Perl instead of building a $20 million (revenue) profitable business.

    If you don't know about any of the advancements in computer technology developed at MIT over the last 40 years nor any of the useful innovative software systems written in Lisp, maybe you should take a computer history course.

  • by pgreenspun ( 64424 ) on Monday April 17, 2000 @04:19AM (#1128282) Homepage
    Some of the folks who have applied to ArsDigita University already have MDs, for example, and they fit your profile of the "costing these people $125K". But others have history degrees from Ivy League colleges. High SAT scores + a Yale degree in humanities big bucks job. Even ArsDigita.com pays graduating CS nerds a mere $100,000.

    But you're kind of missing the point. This isn't career prep. We don't teach C programming or Oracle DBA. We teach the standard MIT/Stanford-style CS curriculum. We want to teach people who are going to change the world in some interesting way, not get all excited about $125K one way or the other (that's kind of like a rounding error for someone skilled in IT).

    On the social life score, all I can say is that we expect our students to enjoy the same rich social life enjoyed by top computer science students around the world :-)
  • by pgreenspun ( 64424 ) on Monday April 17, 2000 @04:30AM (#1128283) Homepage
    Here's a fine example of how MIT turns out better engineers than Swarthmore. Elliot is whinging about Tcl and AOLserver while the engineers at AOL built a $120 billion business serving over 30,000 hits/second with AOLserver. Elliot hasn't bothered to check the arsdigita.com Web site (we've announced Apache and 100% Java versions of our toolkit, which really never used Tcl for much more than presentation; the Apache version is already up and running (it was authored by Robert Thau, the designer of the Apache module structure)).

    If Elliot had looked at the curriculum, he'd have noticed that, just like MIT, we don't actually teach any computer languages. We expect the students to be bright enough to pick up the syntax as they learn the concepts (we might have to break the rules a tiny bit at http://arsdigita.org/university/ because we're introducing Java relatively early and Java has so much syntax and machinery).

    As for teaching the "elite", Elliot, well we're sorry that we don't meet your standards. But with my piddling $1 million/year that I could afford to invest, we can't innovate too much. We're going to teach the Stanford/MIT stuff to people who had the qualifications necessary to get into Stanford and MIT in the same way (face-to-face education) used by Stanford and MIT. We're also going to let it all hang out on the Web for those who want to be monsters of self-motivation, but we don't judge ourselves by how well those folks learn.

    Anyway, the bottom line Elliot is that if we had your intelligence and generosity, we could do more. But we don't so we're limited to just teaching 30 people/year in Cambridge for free.
  • "Yes, the tone might not have been the most appropriate...but it comes from exasperation. I used to be on the "right track". But it sure looked like if I held on I would be coming out as yet another preconfigured cog."

    Well, there are rote learning sheep who are doomed to live in mediocrity; and there are those that are genuinely interested in their field, probably part of a life long quest to understand the world around them. You can do both at academic institutions at the undergraduate level.

    Your comment seems to be a negative assertion regarding the average curriculum's structure, if I'm not mistaken. My answer to that is: yes, there is certainly needless repetition in every undergraduate education -- however, this repetitive mnemonic approach is often necessary to lay the foundations from which one would have a greater understanding of the problems ahead, and shouldn't be mistaken with an attempt to manufacture or program students. It's definitely a downside if you're ahead of the curve, but most will not likely be able to find the intellectual support systems that one needs to grow, outside of the academic community.

    Even if you find it a painful experience, there's always graduate programs where you can have lots of fun :)
  • And that's another comment I'd like to make. Almost every LISP bigot I've heard of talks about how "beautiful" LISP is. My reaction is, So what if it's beautiful? Computer languages are written to be useful, not just beautiful. Is anyone actually developing anything useful in LISP? I think it's pretty obvious that Perl is very useful.

    Let me first quote RMS:

    "LISP is the most powerful programming language."
    Why isn't it used more ? Read Richard P. Gabriel's article"LISP: Good News, Bad News, How to Win Big" [mit.edu] for some of the reasons.

    As for LISP successes (they were asked for in an earlier post): Common Lisp had the first standardized object oriented language (CLOS). There are few, if any, OO languages that can even begin to touch the dynamism possible in CLOS (with the meta-object protocol, of course). EMACS anyone ? Garbage collection hmmm... user extensible programs ? ahem. I think it has been very successful, it just took a lot of flak from the failure of AI in the 80's.

    The beauty in LISP is that it is really the language that you want it to be. LISP macros are actually code that transforms expressions into other expressions before evaluation or compilation; so in essence you can write a compiler (yes, LISP is usually compiled to native code) for your own language. This means abstraction without the usual overhead. This property has been used for instance to implement Prolog(ish) compilers on top of LISP.

    LISP is the second oldest programming language still in use (Fortran is older) and it has been designed to be extensible; for instance, today's usual plugin hacks with DLL's or .so's are as easy as (load "filename"). Lisp has evolved for 40 years and IMO Common Lisp is a very mature language. All this dynamism is not without a cost however. Real CL systems take up a lot of memory, because the environment is almost like an OS. Imagine keeping GCC in memory for every C program you run.

    Why do I like it ? Bottom-up programming, self-modifying programs, goto ;), function builders, macros, strong typing, closures, extreme multi-paradigm support... actually I can't specify, it's the whole package that rocks.

  • ... to keep your skills up to date ?

    Now don't get me wrong, just because you are done with school, doesn't mean you are done with learning !

    If you ALREADY need a degree to be able to participate, then what's the point of spending ANOTHER 6-day-a-week, 12-hour-a-day year ?

    "If I protest an illegal tax, does that make me an illegal tax protestor ?" - Pohoreski
  • by DGregory ( 74435 ) on Monday April 17, 2000 @03:04AM (#1128291) Homepage
    Okay let me get this straight. They only accept people who already have bachelor degrees, and they only accept really intelligent and motivated people. Wouldn't these people already have really nice jobs that they probably won't be willing to leave for a year? That doesn't make this program cost-free, it costs these people the $125k they'd be making at work. Oh yes and their social life... how much of one can you really have, being in school 12 hrs a day? And what do the students get out of it? Some experience maybe (but we all know it's job experience that really counts) but a degree from a college that isn't even accredited.

    If that isn't wacked, I don't know what is.
  • What about people who, for one reason or another, never took the SAT (e.g. prior military service allows one to be accepted at a university without SATs)? Are admissions handled on a case-by-case basis, or are the rules rigid in this regard?

  • I am currently just about to exit college and enter the 'real world'. Because of some poor choices as a freshman, I am graduating with an English degree. Now, not to knock English degrees TOO much, but I am at least moderately interested in this program simply because it offers a quick way to get a useful specialty in today's world. English majors aren't exactly overpaid. As for the burnout rate, I suspect it will be high. But med school (which looks for roughly the same level of candidate) generally has a similar level of intensity, especially during intern shifts. So maybe it wouldn't be that bad after all. I just wish there was something that you could receive -- if not a Masters, perhaps a second BS so that the work is evident to everyone as having been harder than DeVry's Technical Institute.
  • This could be a really exciting development, especially given the threads on Dave Farber's IP listserv regarding the scarcity of high-tech workers and whether or not tech companies should be able to have all the high-tech visas they want.

    The argument has shifted past debate over whether or not tech firms are trying to screw american workers and into examining fundamentally why the scarcity exists. The consensus seems to be that the quality of CS faculty is decreasing, becoming more and more isolated from the world outside of academia.

    This could be amazing, injecting an academic perspective into the career-oriented IT pool. The concept of a free university is wonderful. But the big crippling problem I see is why should this be a post-bachelor program? If someone's got a degree, they don't really need a program like this as badly as say, someone who didn't have the financial means to go to/finish college in the first place.

    Let's face it, the current university programs aren't doing a good job at making graduates understand the industry. An institute like this could take care of that problem.

    If this program gets off the ground, I would like to see them courting the biggies like Cisco, Oracle, the IPO darlings (Hey, RHAT is going down but they've still got serious market capitalization value) for some heavy heavy endowments. That way they could dramatically widen the entitlement to prospective students.

    With this sort of arrangement, prospective IT professionals get something more in-depth than an MCSE mill, and the tech companies get a solidly-trained work-force of people that really understand the concepts at hand.


  • I first learned of him when read something he write called Travels With Samantha [photo.net] -- it's about a trip around the country he took one summer after his dog George died. It really is worth reading -- his description of Minnesota (where I spent a year in college) is one of the best-written things I've ever read about the state.

    Oh well, sorry for the WOB.

    Take care,


    Stephen C. VanDahm
  • It's about the concepts and the theory behind it.

    I'll second that. I am just finishing up my CS degree.

    The vast majority of the "real" CS classes are theory. We write very little code. A lot of it is math and optimization techniques.

    Most of what is taught transcends any operating system, or even a programming language. I've had a few classes where we can turn in our homework/projects in any language we'd like, just as long as the professor can check it on a computer on the network in the college. (Which includes C/C++, Java, Pascal, FORTRAN, ADA, even MATHLAB.)

    In my college the 20x level "CS" classes are things like Microsoft Office and really basic programming. My guess is the initial poster has these classes confused with "real" Computer Science.

    Computer Science is the science of solving problems using computers. It is not the science of how to use an operating system.

    - Bunny

  • (Some defense of Cornell is in order here:)

    After being bored and insulted with /required/ remedial writing classes, despite my 800 in the Language section of the SAT and my attendence of AP English as a sophomore (apparently they thought that since I skipped my last year of HS I must be an illiteral moron)

    Are you refering to the John S. Knight Freshman writing seminar? That's considerably more than a "remedial writing class" -- it exposes you to writing in different fields of study, like philosophy, government, literature, etc.

    And to put it bluntly, from the writing ability you displayed in your post, your writing really isn't that wonderful.

  • I think the idea is that you have a degree, but _not_ a CS degree. People with degrees in English and History and whatever have a problem just buzzing off and finding a well-paid job.

    Here in England, it's really common to find yourself with a nearly useless degree and then do a Masters in CS in order to get a programming job (at least, lots of the people in the company I work for have done this). In which case, a free one year second degree is mighty lots cheaper than doing a Masters and possibly more sensible.
  • The thing I like about this is that it only takes one year. It seems with a computer science degree, half of anything you learned more than a year ago is obsolete.

    People seem to forget (or not know in the first place) that a good computer science degree isn't about learning how to use the latest operating system, or how to use the latest languages, but rather the principles behind each. Sure, we learn various languages, but we also learn the common features between languages, and the different styles of programming. Makes it really easy to pick up a new language when you've already seen one similar to it in the past.

    As for staying current, sure, the stuff that's used out in the world changes fairly frequently, but to use your example of the Windows line, how different in Win95 from Win98? WinNT? Win2K? Not *that* different. As for Unix, well, it pretty much looks the same (from the command prompt, anyway) as it did back in 1995 when I started my degree. The only really new language that's come out has been Java, and it's not exactly a hard language to learn. Regardless, if you're interested in computers as a whole, keeping on top of the latest operating systems or the latest language shouldn't be too much of a problem. If you're not interested in the field, well, one has to wonder why you got a CS degree in the first place.

    As always, my two cents on the whole issue.

  • I mean, can you imagine what the people that have spent 6 years getting a MSCS have gone through? Let's see, in 1994 they were using Win3.11/Dos5. 1995, Win95A. '96-Win95B. 1998 - Win98. 1999 - Win98SE. Toss in the changes made to Windows NT/2000 (That would be from 3.51 to W2K) and all of the different *nixs and look what you have... People with a lot of knowledge about outdated, mundane, obsolete technology. I guess you could argue that they still have that knowledge and can use it towards modern stuff, but I would still rather have the education in things that can help me get a job today...

    Your above example depends on the strength of the computer science department at whatever college you attended. In general a good computer science degree will not be bogged in specifics of any one operating system or language except as tools to teach specific concepts. For instance here at GeorgiaTech the OS of choice is primarily Unix, every CS student takes intensive classes in compiler and translation theory (code in C, lex and yacc), object oriented programming ( 1 class in Java and 1 in Smalltalk), operating system components (write hard drive controllers and other low level system components in C/C++), automata theory, proofs and applied combinatorics as well as a design class that involves creating a shipping product for a local company of choice. What I have just described is the mandatory CS curriculum that every CS student takes before branching of into specializations. Now with this non-OS specific (yet primarily *nix based) curriculum I have friends who will be working at MSFT in the summer (Yes, even though most of their school-based experience of NT is simply as the OS where their code is written because they don't want to boot Linux or Solaris) as well as others who will be working on next gen web applications using technologies that were still drafts a year ago. Now the jobs and positions most of my friends and I have gotten are irrespective of applications we used in school because employers know we have the background to pick up new technologies and understand the concepts behind technologies and not just how to use them.
    Case in point, I recently turned down a position at Intel working on testing compilers for a new generation of chips for mobile processors because I hate testing. I got this position even though I have no knowledge of assembly because I have the knowledge of compiler theory concepts and know how to program. The poeple at Intel realized rightly that this was more important than merely knowing the specifics of a language, in their words if you believe you can pick up assembly, the job is yours.

    On the other hand at my girlfriend's university the entire CS curriculum is taught by 2 professors and is peppered with classes like Programming with Visual Basic, Introduction to C++ and Using Computer Applications. I agree that such a curriculum will create students that will be obsolete before they graduate.

  • For the past three decades, a great undergraduate computer science education has been available to students at Berkeley, Carnegie-Mellon, MIT, and Stanford.
    Stanford didn't offer an undergraduate program in computer science until the late 1980s. Big political battles preceded that decision, but that's another story.

    The ArsDigita curriculum looks reasonable. The MIT influence is clear; they start with Structure and Interpretation of Computer Programs. LISP as a first language seems strange today, though. Perhaps the idea is that learning LISP, like learning Greek, improves your thinking.

    I have misgivings about trying to do it all in one year; the students won't have much time to do anything with what they're learning. Two years, maybe.

  • If you read the page you would have found that they say that they will work their best to accomodate those in unfortunate circumstance (read disability or economically).

    The problem is, I'm not in particularly "unfortunate circumstances" yet there's no way I could do this. On the other hand if they consider not being able to have no income for a year unfortunate, I should be encourgaing them in other charitable activities. ;?

    -Kahuna Burger

  • by kwsNI ( 133721 ) on Monday April 17, 2000 @03:03AM (#1128338) Homepage
    The thing I like about this is that it only takes one year. It seems with a computer science degree, half of anything you learned more than a year ago is obsolete.

    I mean, can you imagine what the people that have spent 6 years getting a MSCS have gone through? Let's see, in 1994 they were using Win3.11/Dos5. 1995, Win95A. '96-Win95B. 1998 - Win98. 1999 - Win98SE. Toss in the changes made to Windows NT/2000 (That would be from 3.51 to W2K) and all of the different *nixs and look what you have... People with a lot of knowledge about outdated, mundane, obsolete technology. I guess you could argue that they still have that knowledge and can use it towards modern stuff, but I would still rather have the education in things that can help me get a job today...

    OK, so now I've pissed off every moderator with a degree in computer science...


  • it's funny that most of the posters don't seem to get the point of the requirement that applicants have a bachelors degree already - the program is for people who did NOT study cs in college.

    had this been available two years ago, i would have given it strong consideration (my degrees are in history). a senior professor in the humanities at a research university makes around 60-70k a year - adjuncts and TAs make around 15K a year, so the income a smart, non-cs major would forfeit would be negligible.

  • I'll agree that performance on standardized tests is a somewhat reliable indication of how well someone will be able to adapt to a rigorous academic program. However, why rely only on SAT? Wouldn't it be just as effective to simply say "You must have recieved a score in the top 2% of a well-accepted academic achievement test"? Wouldn't the same objectives be achieved by accepting, for example, Mensa [mensa.org] membership as a prerequsite?

    Likewise, as in the job world, having a hard requirement for having a Bacheleor's degree may exclude some very bright people who already have achieved an equivilent (or superior) level of understanding through self-learning and practical experience, but just don't have a piece of paper to prove it.

    If you are going to set up a non-traditional program like, why limit yourself to traditional selection criteria? I can understand your desire for exclusivity, but why not use this opportunity to try out new approaches for achieving that goal?

    Speaking for myself, I'd love to apply for your program -- it sounds very exciting to me. Unfortunatly, I never finished my BS degree (but somehow still managed to become a hard core SQL/OOP geek). While I do meet the other requirements, I'd still have to figure out how to support my family and pay my mortgage for a year without working. [And, frankly, Calculus makes my head hurt :-)] I guess I'll just have to follow along on the web.

    "The axiom 'An honest man has nothing to fear from the police'

  • The lack of any kind of business model makes ArsDigita University not very interesting, I fear. It's pure philanthropy-- Greenspun's company is footing the bill as an act of pure public service. Service that only benefits 30 students per yr with high intelligence and SATs. Is this the most worthy cause he could find? This model is not sustainable, and won't be widely copied. What's the point? What I'd like to see is true open source university model, that combines money from Universities, corporations, alumni, advertising dollars, whatever, to provide free high-tech teaching. How's this for a model: companies donate employee time to teach current software classes. In return they get access to graduates as interns and new employees. Universities donate faculty time to teach the more basic-science courses on data structures, algorithms, mathematics, etc. In return they get... well I haven't figured that part out yet. Maybe there's a model where graduates who land high-paying gigs give back to the University, and the more they make the more they're obligated to give? Although I think that's been tried (at Yale?) with only moderate success... Any ideas?

Money can't buy love, but it improves your bargaining position. -- Christopher Marlowe