[FoRK] An autodidact's CS curriculum
Jeff Bone
<jbone at place.org> on
Thu Dec 6 09:38:53 PST 2007
On Dec 5, 2007, at 4:15 PM, silky wrote:
> myself i'm going to try and get my hands on some sort of
> math/algorithm 2nd-year-uni level book. open to recommendations. never
> having been to uni i feel like i missed out on all that good
> algorithmic/theoretical stuff.
After thinking about it a bit and perusing my shelves some, here are
a few recommendations; collectively this is a sort of partial
surrogate for the CS and math core of a university first- and second-
year CS curriculum...
On the core CS side; nb. the first one may be a bit introductory,
but there are some gems buried in it even for the experienced
practitioner.
- How To Think Like A Computer Scientist --- pick your flavor:
Python, C++, Java, or Logo(!)
- Structure and Interpretation of Computer Programs by Abelson and
Sussman
- any of Sedgewick's algorithms books --- there are several, pick
your flavor
- and particularly Analysis of Algorithms by Sedgewick and Flajolet
- Data Structures by Amsbury (or equivalent, this may be a bit
dated...)
Systems and practice stuff, pick some:
- any operating systems text by Tannenbaum
- The Art of UNIX Programming by Raymond
- Practical Reusable UNIX Software by Krishnamurthy et. al.
- John Bentley's Programming Pearls series
- The UNIX Programming Environment by Kernighan and Pike
And for general edification and ala carte reading:
- ACM Turing Award Lectures: The First Twenty Years, 1965-1985
On the math side:
- some calculus sequence through differential equations (I don't
have any favorites here...)
- logic: First-Order Logic by Smullyan and Introductory Logic and
Sets for Computer Scientists by Nissanke
- graph theory; I like Discrete Mathematics by Dossey et. al.
- linear algebra: I like Introduction to Linear Algebra by Strang
- statistics: How to Think About Statistics by Freeman, The Art
of Probability by Hamming (advanced)
...year three and onwards typically pushes into more theoretical
underpinnings (automata theory and compilers, programming languages,
etc.) as well as specific application areas (graphics / CHI,
databases, operating systems) and so on. Note that the statistics
stuff isn't actually ordinarily part of a first or second year
curriculum AFAIK, but I think that's a severe deficiency.
Hope some of this is helpful, it's just one man's --- more to the
point, one college drop-out's ;-) --- opinion.
jb
More information about the FoRK
mailing list