I recently hijacked this thread at The Valve. Someone had asked for suggestions for reading lists on what high school students ought to read before entering university. Almost certainly they were intending were intending what literature and literary-criticism scholars would consider adequate preparation for their students. Just on a whim, I sort of hijacked the thread for a random series of rambles on what I'd want high school students to read/do before entering computer science or linguistics programmes in university.
The response was interesting. One or two of them already had some technical education and struck up a conversation. Eventually, however, the discussion was brought back on track to what they would probably have considered more "on topic" book suggestions.
One fairly interesting set of responses comes from a Tony Christini. Not responses to me, but perhaps responses to the fact that there wasn't that much response on the thread by literary-critic types:
What I am surprised at is that at a prompt for important basic college level reading material at a scholarly literary website, there have been virtually no suggestions of basic critical and/or theoretical books that might represent, indicate, or introduce the professional field(s). Is the field that dead to everyone at a basic level? Or is everyone that dead to introducing students and/or lay readers to the field?
I leave it as an exercise for the reader to determine why I might consider this interesting.
In any case, I'd like to save the reading list I presented here, and then segue into a related topic:
Well, for linguistics I’d definitely recommend that all incoming high school students read Fromkin et al’s “Introduction to Language”, which is highly accessible, general, and entertaining, and I started it in high school as well. As much as I suspect people may not like him here, I’d still recommend The Language Instinct by Pinker. Juan Uriagereka’s Rhyme and Reason is written for the scientifically-educated non-linguist, but it may work for geekier high school students. The above is very syntactically-oriented: Semantics by Saeed is a good introductory book taught to junior university students, but parts of it are good for everyone.
For computer science, it’s harder to recommend something, since a lot of the basic ideas in computer science can be best imparted by first *doing* prior to learning the theory, as much as I am more a fan of the latter rather than the former. And a lot of the best educational material is on the Internet---actually very few people use printed books in computer science departments for much of anything. If I had to recommend books, it would be for very advanced high school students. Some of Sebesta’s Concepts of Programming Languages would hardly be a bad idea. Lewis and Papadimitriou’s Elements of the Theory of Computation would be for mathematically-inclined high-school students, but it does start off introducing the basics: it’s a little dry though. Actually even *better* would be Discrete Mathematics and Its Applications by Rosen---something I read as a university freshman, for once. Programming Prolog by Clocksin and Mellish, if administered early enough, would save students from the trap of being unable to think of anything but imperative and OO programming in Java. Actually, I think much of the CS curriculum is taught in the wrong order.
It's really only possible to put together a reading list for undergraduate computer science. Undergraduate core course requirements in CS are highly coordinated. Where I am, the course curricula are set by a single committee. CS at an undergrad level is well-defined field.
At a graduate level, not so. I joined a US graduate program in CS a year ago, and I have the opportunity to experience first hand through the rather frustrating required course sequence that I must follow. The courses in the CS graduate program here are divided into several interest areas. We have to take a certain number of courses distributed over a certain number of areas.
Naturally, only one of these areas really interests me, and I wouldn't object to taking more courses in this area. But, surprise surprise, I can't take any more of these courses, since I've already filled my quota of them. Of the other areas, one, maybe two can hold my attention for any significant length of time. The remainder are mostly irrelevant to me.
"But Mandos," you exclaim. "Don't you want a well-rounded education? Do you think it's healthy to become so specialized?" And the answer is yes to the first question and no to the second. But the thing is that if they are going to force me to take courses that are irrelevant to me, why not let me take courses outside the department, then? Because some of these areas are so irrelevant to me that 19-th century French literature is just as relevant. And I suspect the literature might be more fun than some of the areas that people think are interesting in CS.
The problem is, of course, that most of CS is actually just a dumping ground (a lucrative dumping ground, but a dumping ground nonetheless) for parts of other fields that happened to have some relationship with computers or the theory of computation. So even if there are aspects of computation that are less interesting to me than, say, chemical phenomena, I have to live with CS, so that I can be paid to do research in the things I actually want to do.