

Philip Greenspun: Improving Undergraduate Computer Science Education - adamdoupe
http://blogs.law.harvard.edu/philg/2007/08/23/improving-undergraduate-computer-science-education/

======
portLAN
The separation of life into school, college, then work is completely
artificial in the first place. Trying to fix "undergraduate " education is
just putting a band-aid on a broken system. It even assumes the premise that
the goal is to _receive a degree_ , by completing X units of assigned work
(whether over 4 years or 2.5).

People don't learn in the same ways, at the same rate, at the same age, and
waiting until they're adults just wastes years of neuroplasticity. On the
other end, stopping after 4 years or some other arbitrary amount is just
under-utilization of adult learning capacity.

 _"If the colleges were better, if they really had it, you would need to get
the police at the gates to keep order in the inrushing multitude. See in
college how we thwart the natural love of learning by leaving the natural
method of teaching what each wishes to learn, and insisting that you shall
learn what you have no taste or capacity for. The college, which should be a
place of delightful labor, is made odious and unhealthy, and the young men are
tempted to frivolous amusements to rally their jaded spirits. I would have the
studies elective. Scholarship is to be created not by compulsion, but by
awakening a pure interest in knowledge. The wise instructor accomplishes this
by opening to his pupils precisely the attractions the study has for himself.
The marking is a system for schools, not for the college; for boys, not for
men; and it is an ungracious work to put on a professor."_ \-- Ralph Waldo
Emerson

------
geebee
I think this is the class that inspired the infamous "Java is the SUV of
programming languages" entry that got slashdotted a few years ago. Phil said
that the students who picked J2EE all had to drop the class - the workload was
too great for them to keep up.

At first, I was surprised to hear that MIT students were having trouble
completing a program in Java, until I saw what was required and the time
they'd have to complete it. I wasn't sure if I could do it in the time
alloted, even without carrying a full courseload, and I knew java reasonably
well at the time.

This post, along with Paul Graham's comments about Lisp, really changed the
way I think about programming. Kind of like the JFK statement about seeing
things as they never were, and asking yourself "why not?"

Why the hell should it take so long to go from an idea to an implementation. I
was just accepting the achingly boring typing that Java had inflicted on my
life as part of the cost of writing a program. Time to realize that I can't
implement a chat server in half a day, and ask myself "why not?"

Anyway, I think that even the students who have to drop this course learn a
valuable lesson, as long as they struggle with it for a while.

------
aston
Reads okay until you realize it's an advertisement for Greenspun's class. His
proof of how well it works is that most people who take it like it (not
surprising, given its reputation as too much work unless you know you like it)
and that most people who take it work at Microsoft and Google (he fails to
note just how many MIT grads do the same thing without his course).

There was enough blatant self-interest here that I couldn't make it through to
the end.

~~~
eusman
Greenspun's class goes back as much the online communities started to become
reality. It's among the first, if not the first in academia, for engineering
internet applications in a time nobody even considered collaboration and
online communities worth. One thing it doesn't need is advertisment!

Nonetheless, your arguments collide. If the percentage of people who get
employed by Goog and Ms is the same as of those MIT students not taking it,
then your argument that this is advert of the course is fault. So, you cancel
your own argument.

~~~
aston
Obviously Greenspun's a webapp veteran. That doesn't mean his class doesn't
need advertisement. As I alluded to in the previous post, it's not
particularly popular at MIT. And to my knowledge, it's not a class like SICP
that's been taken up at universities around the world.

I think at best Greenspun's inclusion of those factoids was meant to imply
some causation (that his class helps people get jobs). Maybe he was just name
checking for the fun of it. Either way, I suspect most of the alums who took
his class and then went on to get jobs at GOOG and MSFT would have been able
to without it.

~~~
jmzachary
Isn't 6.001 (SICP) a required class whereas 6.171 (SEIA) optional? I did not
attend MIT, so I could be wrong.

~~~
aston
You're right, 6.001 is a required course within the major. I'm not citing its
internal popularity, really (although folks love the class). A number of other
universities have similar courses offered, whereas I haven't heard of any
other 6.171-like classes.

------
ivankirigin
Excellent advice. This was particularly good: "Everything that is part of a
bachelor's in CS can be taught as part of a project that has all phases of the
engineering cycle, e.g., teach physics and calculus by assigning students to
build a flight simulator"

~~~
felipe
The CMU SE program in Silicon Valley is exactly like that:

<http://west.cmu.edu/prospective_students>

I am an alum from this program, and it was the best learning experience I ever
had in my life (seriously).

------
epi0Bauqu
So who here actually took his class? I took it IAP 2000, and it really did
have a big impact on me. I was course 8 though (Physics).

~~~
luxiou
Fall '03, probably one of the most useful (and brutal) courses I took. MIT's
CS program leans a bit on the the theoretical side, so classes like this serve
up a good dose of reality.

~~~
menloparkbum
I was an in-class advisor for this ccourse seven years ago. From personal
experience, I'm not sure I'd recommend it. It is the sort of thing you learn
on the job, anyway... and you get paid for it. The higher paying entry-level
jobs require knowledge of hairier stuff these days. VMWare, for instance, pays
a much higher starting salary than either Microsoft or Google. However, I'm
not sure what other courses one could take to prepare for this sort of work.
It seemed like most of the CS students at MIT wanted to become lawyers or
investment bankers (but, this was back in the dot-com bust).

------
felipe
I believe the key problem is that (most) students who enroll to a CS program
expect to become engineers, but the CS curriculum is supposed to form
scientists, not engineers. The key distinction is that in a SW Eng program the
emphasis is on the process to build software (stuff like CMM, XP, quality
processes, architecture methods, etc...).

Sure CS grads can make fantastic engineers, but my point here is that the
difference between CS and SE is not well understood in the industry.

