Paradigms of Artificial Intelligence Programming

(github.com)

173 points | by dunefox 8 days ago

4 comments

  • eliben 8 days ago

    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.

    • dmos62 8 days ago

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

      • dunefox 8 days ago

        What exactly did you take from it?

        • dmos62 7 days ago

          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).

    • fizixer 8 days ago

      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.

      • StrangeDoctor 7 days ago

        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.

        • unishark 7 days ago

          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.

          • wglb 8 days ago

            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.

            • atty 8 days ago

              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.

              • tasubotadas 8 days ago

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

                • jph00 8 days ago

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

                • jyriand 8 days ago

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

                  • Jtsummers 8 days ago

                    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).

                    Edit:

                    CLTL2: Common Lisp the Language

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

                    CSP: Communicating Sequential Processes

                    EOPL: Essentials of Programming Languages

                    • nmadden 8 days ago

                      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.

                      • dunefox 8 days ago

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

                      • cyberbanjo 8 days ago

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

                        • Jtsummers 8 days ago

                          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.

                      • tasubotadas 8 days ago

                        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

                        • rch 8 days ago

                          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.

                          • dddbbb 8 days ago

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

                            • cgopalan 8 days ago

                              CTM - Concepts, Techniques and Models of Computer Programming

                              • nabla9 8 days ago

                                AMOP - The Art of the Metaobject Protocol

                                AIMA - Artificial Intelligence: A Modern Approach

                                • podiki 7 days ago

                                  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?

                                  • dunefox 7 days ago

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

                                  • jointpdf 8 days ago

                                    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...

                                      • mhh__ 8 days ago

                                        MTW (Gravitation) is a classic

                                        • dunefox 8 days ago

                                          Taocp, Htdp, Papl, ...

                                        • swatson741 8 days ago

                                          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.

                                          • dunefox 8 days ago

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

                                            • swatson741 8 days ago

                                              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.