views:

692

answers:

12

Programming Collective Intelligence is an awesome way to get your feet wet in Machine learning. I am looking for similar books which has small but interesting programming projects. Do you have any recommendations?

Edit: It need not be related to machine learning. It could be any programming project-based books. Thanks.

Edit2: Collective Intelligence in Action is one more book that looks at some interesting CS stuffs. Do you guys have any similar recommendations?

+2  A: 

Amazon says: Customers buy this book with Visualizing Data by Ben Fry...

Jon
+2  A: 

If you want to go one step ahead, you might want to try this one: http://www.cs.toronto.edu/~mackay/itila/book.html. You can also order it as hard copy, but maybe the online version does the job.

It's actually a fun read, the math is hard (of course, it's machine learning) but it's an excellent start into a great topic!

bayer
+1  A: 

Best of Ruby Quiz is a book of a bunch of small interesting projects such as create a self learning Tic Tac Toe AI. The projects can definitely be done in any language, so don't let the fact that it says Ruby in the title deter you from it.

Anton
+5  A: 
James McMahon
Hey this looks pretty good. Thanks.
kunjaan
+5  A: 

Java After Hours: 10 Projects You'll Never Do at Work has some fun projects.

Bill the Lizard
"Never do at work" may be misleading. "Send e-mail from Java programs", "Use multithreading, Ant", "Send images to Web browsers"? All stuff I've done at work.
James McMahon
The table of contents is at http://my.safaribooksonline.com/0672327473?tocview=true, that makes it look more interesting.
James McMahon
@nemo: I think that Editorial Product Description is a lot more misleading than the subtitle. :)
Bill the Lizard
+8  A: 

Not a book, but a technical paper and an enormously fun learning experience if you want to know more about compilers (and metacompilers)... this website walks you through building a completely self-contained compiler system that can compile itself and other languages:

http://www.bayfronttechnologies.com/mc%5Ftutorial.html

This is all based on an amazing little 10-page technical paper by Val Schorre:

META II: A Syntax-Oriented Compiler Writing Language

from honest-to-god 1964. I learned how to build compilers from this back in 1970. There's a mind-blowing moment when you finally grok how the compiler can regenerate itself.... If you are interested in compilers, run, don't walk to read this gem of a paper. It can be found at the website.

I know the website author from my college days, but have nothing to do with the website.

Ira Baxter
Gentlemen, I fear we may be nerds. Seriously, this looks like a lot of fun.
James McMahon
+2  A: 

Making Things Talk: Practical Methods for Connecting Physical Objects by Tom Igoe

It is a great way to expand your programming knowledge in how to communicate with hardware. The book has lots of fun and interesting projects with good code examples. It's a great starting point for future projects that you may want to do on your own.

Jage
+1  A: 

Take a look at the Machine Learning book by Christopher Bishop. Has some good exaplanations on concepts. Should be a good point at knowing true foundations on ML. Lots of applications and open problems mentioned as well.

Ritesh M Nayak
+3  A: 

While Project Euler is not a book per se, it does contain a large number of "small but interesting programming projects". It's a great way to expand your math skills as well as try out new languages. (Code Kata seems similar but more CS-oriented; I've not yet dived into it.)

I also have fond memories of Parallel and Distributed Simulation Systems; the book itself may be a bit dry, but it's very example-driven, and applies to everything from cellphone tower switching to airport scheduling to weather simulation to video games. It's uncannily fun to write rollback-capable code, too.

leander
+1  A: 

I would check out Programming Pearls by John Bentley. It has lots of smaller problems to get your programming brain going.

Matt Price
+1  A: 

You could take a look at Growing Artificial Societies, and build it as you go.

DanDan
A: 

There are several relevant answers at this SO question:

  • Peter Norvig, Paradigms of AI Programming
  • Mark Jason Dominus, Higher-Order Perl
  • Abelson and diSessa, Turtle Geometry
  • Kernighan and Plauger, Software Tools in Pascal
  • Paul Graham, On Lisp
  • Peter Seibel, Practical Common Lisp

Links and descriptions over there. Also, Etudes for Programmers was the original CS project book, still worth sampling even at over 30 years old. (It isn't listed at the other question because it presents no source code of its own for the projects, except one.)

Darius Bacon