Hacker News new | past | comments | ask | show | jobs | submit login
Paradigms of Artificial Intelligence Programming (github.com/norvig)
173 points by dunefox 5 days ago | hide | past | favorite | 32 comments

Ah, PAIP... it's such a wonderful book! I highly recommend aspiring programmers to read it even if they don't care about Lisp or AI; the sheer amount of common programming wisdom in this book is priceless.

Seconded. I divide my programming into pre- and post-having-read-PAIP eras.

What exactly did you take from it?

Difficult to put into words. The book is a sort of walkthrough of programming. It walks you through writing a number of programs iteratively, as in it starts with the most naive approaches and gradually improves upon them. That makes it a very involving process (because, like a good story, it starts in a common place and then takes you somewhere). It also introduces you to a lot of exciting things, especially if you're not that experienced. After reading the first chapters I wrote my own pattern matcher for example (I hardly knew what it was before then, let alone felt confident writing one).

Speaking of which, there is radio silence about the AIMA 4e in the community. No one appears to talk about it, no one appears to use it, no appears to be praising it, or criticizing it. It doesn't exist.

Fine then.

I’m currently working through it, first printing off amazon (expensive, only place I could find it in stock) has a fair number of errors but they are being resolved timely. The main issue right now is that all of the exercises have been removed from the book and placed online, but are a complete mess. The Pearson site has a release date for the exercises in 2021.

Compared to my 3e it feels streamlined and easier to approach, but still comprehensive.

We use it for "AI" classes (as in literally the class with this title, as opposed to machine learning and other narrower jargon). I think most everyone does.

The class itself is kind of a spork though, not really useful when you have classes for the more modern topics.

Curious. I found it extremely informative, particularly after Semantic Information Retrieval (“We just need more memory” No, that is not enough) and another book by feignbaum and feldman https://mitpress.mit.edu/books/computers-and-thought-1.

The physical book is quite expensive - I am personally waiting for an ebook version, either pdf or ePub. I think right now you can only get a DRM’ed version through a service called vitalsource? I will not be supporting a textbook DRM platform just to read it.

AIMA is too big and contains to many irrelevant approaches for modern AI.

At $160 it's quite a lot to ask...

PAIP, SICP -- seems like if a book has a acronym, then it must be great. Can't come up with more examples though.

Sticking with the Lisp family: LiSP (Lisp in Small Pieces), AMOP (The Art of the Metaobject Protocol). More general: TAOCP (The Art of Computer Programming).


CLTL2: Common Lisp the Language

CLRS: Introduction to Algorithms, referred to by the authors’ initials

CSP: Communicating Sequential Processes

EOPL: Essentials of Programming Languages

One day I’d love to find a reasonably priced copy of LiSP. It’s the most elusive widely-recommended book I’ve ever come across.

Tbh, I'd just download it and buy it if you find one.

TLS, TRS I've seen abbriviated, for the little,reasoned schemer

I thought about those but I don’t think I’ve seen those abbreviations used to introduce the books, only once a discussion is already started about them.

The CSP abbreviation I gave is also a bit of a stretch. Most people who use it probably mean it for the concepts, not the book itself.

PRML - Pattern Recognition and Machine Learning

TESL - The Elements of Statistical Learning

GoF - Design Patterns: Elements of Reusable Object-Oriented Software

PGM - Probabilistic Graphical Models

I'm optimistic about:

SL - Subjective Logic

OL - Optimal Learning

I'd enjoy knowing if anyone else has run across these, and what they might think.

I like calling TESL Elements, as a nice analogy to Euclid.

I've seen TAoCP (The Art of Computer Programming) and TaPL (Types and Programming Languages) used before, and both are definitely great.

CTM - Concepts, Techniques and Models of Computer Programming

AMOP - The Art of the Metaobject Protocol

AIMA - Artificial Intelligence: A Modern Approach

I haven't read either of these, but certainly want to. I'm a big fan of Lisp, and recently started learning some Haskell, too. (First languages were Basic, Java, C, ...then Python, Common Lisp...) Would you (or anyone else) recommend one over the other first? Why?

I would say SICP since it's an introductory course and explains the concepts using Scheme, not CL.

ESL - Elements of Statistical Learning

Greatness isn't a requirement for acronyms, only long unwieldy titles. The cryptic string of letters being instantly recognizable among geeks, on the other hand...

MTW (Gravitation) is a classic

Taocp, Htdp, Papl, ...

There's nothing quite like PAIP. It's more a book history than a book of programming. Although the programs are the main focus of the book it's not what gives the book quality. It's programs are relics but, it's content is not.

I just find Norvigs way of programming, exploring, and explaining so intriguing. Everytime I read something written by him I learn a few things.

Personally, I find his prose to be plain and boring but, his insight is really interesting.

"Now we would like to go a step further and extend the system to handle differenti­ation. This is a favorite problem, and one which has historical significance: in the summer of 1958 John McCarthy decided to investigate differentiation as an interest­ing symbolic computation problem, which was difficult to express in the primitive programming languages of the day. This investigation led him to see the importance of functional arguments and recursive functions in the field of symbolic computa­tion. For example, McCarthy invented what we now call mapcar to express the idea that the derivative of a sum is the sum of the derivative function applied to each argument. Further work led McCarthy to the publication in October 1958 of MIT AI Lab Memo No. 1: "An Algebraic Language for the Manipulation of Symbolic Expressions," which defined the precursor of Lisp."

PAIP is filled with writing like this. You could remove this paragraph from the book and, it wouldn't make the explanation any more or less comprehensible. The level of detail at which he provides this insight is interesting. It ends up being more than just amusing anecdotes. It's what makes the book worth reading imo.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact