Icosian Reflections

…a tendency to systematize and a keen sense

that we live in a broken world.

IN  WHICH Ross Rheingans-Yoo—a sometime quantitative trader, economist, expat, EA, artist, educator, and game developer—writes on topics of int­erest.

"Weedout" Courses Considered Harmful

"The Perils of JavaSchools", by Joel Spolsky, is a wonderfully fun read for students of computer science. A veritable demigod of the software world tells a story -- ringing with appealing truth throughout -- of a tragic fall from grace in modern CS curricula...and at its core, that great deluder Java.

It's relentlessly snarky, and feels relentlessly true, as it lays out in gruesome detail the extent to which kids nowadays are being coddled and left tragically unprepared for the big scary world where pointer arithmetic, abstraction, and recursion are inescapable necessities. It's hard to read it without coming away with the sense that Spolsky has hit upon the great uncomfortable truth in computer science -- that some curricula simply fail to properly train young minds in key concepts.

It's a fun read.

But it's got some problems.

Though I am loathe to disagree with such a titan of my field, I respectfully submit that Spolsky not only misses the broad point of a computer science education, but gets it so badly wrong that he manages to align himself with one of the most pernicious systemic problems facing the field of computer science -- and the broader tech community -- today.

Since I have a great deal of respect for Spolsky, this post turned out very, very long. (Even after I pushed off large portions of the initial concept to other posts.) If you're more in the mood to read a shorter post where I throw out unsubstantiated claims and don't stop to explain everything, I've tried to summarize my main points in a summary-post.


(1)

The heart of the essay is in two early paragraphs:

You

READ MORE

Scariness and Self-Selection: A Shopping-Week Meditation

nb: For those outside of the Harvard ecosystem, "shopping week" is the first week of classes, during which all courses are open to drop-ins. It's only at the end of shopping week that we submit study cards and are assigned final schedules.

One of the things that inevitably happens during shopping week is that classes are overfull. Since almost all students shop weakly more courses than they end up taking, even classes with correctly-sized rooms end up crowded, short on chairs, and/or with students sitting on the floor.

I've noticed that this problem is remarkably bad in upper-level CS / Math / Stat courses (it might also be bad everywhere else; I just don't have enough data to say). Once you get past the intro-programming and intro-theory sequences, concentrators have almost-infinite freedom in selecting technical electives in the department, so there's a lot of comparison-shopping going around.

To make it worse, a phenomenon I'll dub "window-shopping" is particularly egregious in the CS department -- in-the-know concentrators will show up for the first two lectures of a well-liked professor's class just to hear funny one-liners, even if they know they won't be taking the course that semester.

What this means is that it's not uncommon for the attendance at the first lecture of the semester in a 100- or 200-level class to be 150-200% of the actual enrollment the professor and the College had planned for.


I shopped five courses this shopping week, and in four of them, the professor remarked on such over-attendance.

In two, the professor made a half-joke along the lines of "Well, this is obviously too many people to fit in the room, so

READ MORE

Yes, you should hire college-educated computer scientists

Daniel Gelernter, CEO of Dittach, has a WSJ op-ed titled "Why I’m Not Looking to Hire Computer-Science Majors":

The thing I look for in a developer is a longtime love of coding -- people who taught themselves to code in high school and still can't get enough of it...

The thing I don't look for in a developer is a degree in computer science. University computer science departments are in miserable shape: 10 years behind in a field that changes every 10 minutes. Computer science departments prepare their students for academic or research careers and spurn jobs that actually pay money. They teach students how to design an operating system, but not how to work with a real, live development team.

There isn't a single course in iPhone or Android development in the computer science departments of Yale or Princeton. Harvard has one, but you can’t make a good developer in one term. So if a college graduate has the coding skills that tech startups need, he most likely learned them on his own, in between problem sets. As one of my developers told me: "The people who were good at the school part of computer science -- just weren’t good developers." My experience in hiring shows exactly that. (...)

Now, full disclosure: I'm a computer science major, and Harvard's course in iPhone development is taught by my current boss. Then again, I've had a longtime love of coding, taught myself to code in high middle school and still can't get enough of it, and so on. But I still have so many things to say about this, which I hope aren't too biased

READ MORE

Happy Ada Day!

For reasons which are pretty opaque to me, apparently today has been designated Ada Lovelace Day? Which is kinda weird, since "October 14" appears nowhere on her Wikipedia page, but well, okay. At least it makes a convenient excuse to write a blog post, since she was a pretty damn cool person.

If you've never heard of Ada Byron, Countess of Lovelace before, there are much better places to read about her life than on my blog. (Like what, Ross? Well, uh, this piece on The Mary Sue? Is kinda over-excited, or maybe just adequately excited. In any case, probably go read it and come back.)


So yesterday, when a friend asked me the other day what exactly "theoretical computer science" was, if not programming, I thought a little bit and said something like:

Well, imagine that, instead of actually sitting down and telling a computer to do something, you wanted to think about what sort of things a computer could do, if you instructed it right. If you think about computation as a process, as a structural description of arithmetic, and ask what you can do with that...

I mean, look at Ada Lovelace. She wrote a lot about what you could do with a computing machine, if you had one, but she didn't, so it was a century before the things she wrote down were ever ran through an automatic computer. She wasn't a programmer--she was a mathematician. And, really, a good one, too.

And then, surprise! Today is Ada Day! That's weird.

But really, if there was someone who understood what Charles Babbage's "Analytical Engine" actually was (even better than he

READ MORE
1 / 1