Reference Library
Show entries where...
Natural Language Processing with Python
Steve Bird, Ewan Klein, Edward Loper
Introduction to Natural Language Processing (NLP), using Python's Natural Language Toolkit. Aims to provide practical skills and techniques, with a bit less emphasis on the underlying theory than other books. Available for free online, but proceeds from the physical version go toward funding further development of the NLTK.
Paradigms of Artificial Intelligence Programming
Peter Norvig
Introduction to both artificial intelligence and Lisp programming (largely Common Lisp, with a section on Scheme). Covers major historical programs in the development of AI, as well as common techniques and problem-solving approaches taken in AI programming. It's a great introduction to Lisp, AI, and the history of AI, so if you're interested in any one or more of those, this is the book you want.
Purely Functional Data Structures
Chris Okasaki
A functional programmer's take on data structures. The book starts out with example implementations of common non-functional structures, and explains the different characteristics of the functional and non-functional versions. It then goes on to describe how to take advantage of functional characteristics when designing and choosing data structures, getting some very impressive and powerful results. Examples are in Standard ML, with Haskell versions in an appendix. Great, clear, and essential for serious functional programmers.
The New Turing Omnibus
A. K. Dewdney
This is a great collection of the interesting bits
of computer science. It covers topics ranging from fractals to error-correcting codes, from text compression to NP-completeness. It's great either for non-CS-folks as a guide to what the field is all about, or as a survey of interesting problems and sub-fields for those who already love the subject.
Simply Scheme
Brian Harvey, Matthew Wright
This introductory text on Scheme and computer science in general is meant to be a prequel to the Structure and Interpretation of Computer Programs book. Available for free online or in book form.
The Haskell School of Expression
Paul Hudak
This book attempts to teach Haskell by diving right in to what might appear to be one of the language's weak spots: graphics, audio, and multimedia in general. It's a good overview of the language, but it relies a lot on a series of domain-specific languages for the multimedia parts that I didn't really think showed off Haskell itself.
Programming in Haskell
Graham Hutton
More or less the standard
introductory text on Haskell. It's a slim but comprehensive volume covering everything you need to know to get started.
JavaScript: The Good Parts
Douglas Crockford
Douglas Crockford is the creator of JSON, a key figure in the ECMAScript standardization process, and an old-school hacker of the best kind. This book argues that, despite the mass of awful code out there in the wild, and despite the haste with which it was put together, and despite the sometimes bizarre ideas that made it into the language, JavaScript has brilliance in it.
By avoiding the bad parts, and using an elegant subset that takes advantage of the better parts of the language (like closures, first-order functions, and prototypal inheritance), it is possible to make JavaScript development not just bearable, but enjoyable.
Most Haskell tutorials on the web seem to take a language-reference-manual approach to teaching. They show you the syntax of the language, a few language constructs, and then have you construct a few simple functions at the interactive prompt. The hard stuff
of how to write a functioning, useful program is left to the end, or sometimes omitted entirely.
This tutorial takes a different tack. You'll start off with command-line arguments and parsing, and progress to writing a fully-functional Scheme interpreter that implements a good-sized subset of R5RS Scheme. Along the way, you'll learn Haskell's I/O, mutable state, dynamic typing, error handling, and parsing features. By the time you finish, you should be fairly fluent in both Haskell and Scheme.
An Introduction To FM
Bill Schottstaedt
Mathematical and programming (with source) overview of frequency modulation techniques, from radio to musical instruments.