Peter Norvig Joins Stanford HAI
hai.stanford.edu
hai.stanford.edu
It's also one of the few AI books that isn't rooted squarely in Algol. It's written with fairly decent though not always portable Common Lisp, just like most Common Lisp books of the era.
It can be read here, in mobi or zipped HTML format: https://github.com/norvig/paip-lisp/releases/tag/1.1
Or here, in PDF: https://github.com/norvig/paip-lisp/releases/tag/v1.0
For a native web copy, abuse Safari Online's free trial. It's what I assume everyone else does when they want to read a niche technical book that O'Reilly put out but doesn't print another run of.
Depending on the day, the book ranges anywhere from $2 to $60 on Amazon, used, if you want a hard copy.
(Edited to fix the very butchered title that I wrote in error initially.)
Norvig would disagree -
http://www.norvig.com/Lisp-retro.html -
----- As an AI text, PAIP does not fare as well. It never attempted to be a comprehensive AI text, stressing the "Paradigms" or "Classics" of the field rather than the most current programs and theories. Happily, the classics are beginning to look obsolete now (the field would be in sorry shape if that didn't happen eventually). For a more modern approach to AI, forget PAIP and look at Artificial Intelligence: A Modern Approach. -----
But I would highly recommend reading PAIP. I felt that some important examples of classic AI (like SHRDLU, not to mention Eurisko) could be included, but it's still really good.
«As an advanced Lisp text, PAIP stands up very well. There are still very few other places to get a thorough treatment of efficiency issues, Lisp design issues, and uses of macros and compilers. (For macros, Paul Graham's books have done an especially excellent job.)
As an AI programming text, PAIP does well. The only real competing text to emerge recently is Forbus and de Kleer, and they have a more limited (and thus more focused and integrated) approach, concentrating on inference systems. (The Charniak, Riesbeck, and McDermott book is also still worth looking at.) One change over the last six years is that AI programming has begun to look more like "regular" programming, because (a) AI programs, like "regular" programs, are increasingly concerned with large data bases, and (b) "regular" programmers have begun to address things such as searching the internet and recognizing handwriting and speech. An AI programming text today would have to cover data base interfaces, http and other network protocols, threading, graphical interfaces, and other issues.»
While yes, it aged poorly as an AI text, and excellently as a Lisp & AI programming text, it's a better book than AI:AMA, even if ignoring that it's based around a better language.
That was the only place where he compared PAIP and AIMA. I guess he considers these books serving purposes different enough so comparisons in other areas have less sense. Back to where we started, PAIP isn't universally considered a better book, even though it's good.
I've read and enjoyed that book 10+ years ago. Haven't been following AI/ML since then. Is it still a "modern approach"?
Hnnng. This is the whole thing. Turing machines are limited. Data (inputs from humans) have more power.
Can you expand on this? Nearly every field is learned with extensive reading.
Yes, this is taking the way learning is done in almost every case and field and applying it to programming. No, it still hasn't really caught on universally in computer science.
Even getting to the more applied side of things, books are common. Perhaps the most well known one https://en.wikipedia.org/wiki/The_Art_of_Computer_Programmin... predates Norvig by several decades (not that I think Knuth kick started the idea either). Yes it does have exercises after each chapter but these are far less than the very dense extensive reading content including application of algorithms (and questions are obviously optional, and in the typical style of math text books).
It's a great work (I'd be lying if I'd said I'd poured into the entirety of it extensively, but I've spent weeks on certain portions, like the MMIX fascicle and Sorting and Searching), but PAIP has a significantly better claim at "kickstarting" the "read code instead of write it" trend, because in TAOCP the code doesn't take center stage, and it was never the point for it to (hence the creation of MIX & MMIX).
Pointing to examples (K&R) advocating learning by writing is not evidence that learning by reading was not widely known and used in computer science. That's a logical fallacy.
I will point out, though, that I never said anything along the lines of "was not widely known [...] in computer science." What an absurd thing to accuse a comment of saying! I do insist that it wasn't widely used, though, and TAOCP, a series that's infamous for not actually being read often, isn't a great example of it being widely used, even if TAOCP did fit the criteria (which in my updated comment above, I contest).
I did not find that. This is the first paragraph of your edited comment:
> For anyone not in the loop, Norvig was the author of Paradigms of Artificial Intelligence Programming. This was a substantial contribution to the field of educational computer science literature, and helped to kickstart the idea that the way to learn is to read, not just write.
It's still wrong. It did not kickstart that idea in computer science.
> "Computer science [..] filled with books that encourage you to write code [..] PAIP [..] has you spend much of the book reading code."
You replied:
> "There is a long and rich history of books in early computer science."
which seems to be missing the point, it's not reading books they are talking about, it's reading code as something to learn from, compared to learning by writing code, as the change which PAIP kick-started. "no you're wrong" is a low quality rebuttal, even moreso when it's backed by nothing more than the "assurances" of a throwaway account.
I completely agree with everything else you said, though.
I went back to the original post that said it was edited, rather than that one. If it was there all along and I missed that part about reading code specifically then that doesn't really change what I wrote at all. TAOCP has vast amounts of code you are expected to read and understand (pseudo assembly and a fairly rigorous algorithmic specification language even if it may not be a "real" language).
But reading real code has long been a "thing". Why do you think UNIX and derivatives were so popular and widely used as teaching aids in universities in the 70s and 80s?
> which seems to be missing the point, it's not reading books they are talking about, it's reading code as something to learn from, compared to learning by writing code, as the change which PAIP kick-started. "no you're wrong" is a low quality rebuttal, even moreso when it's backed by nothing more than the "assurances" of a throwaway account.
I don't think it's worth getting too upset over. The "assurance" is a figure of speech, not appealing to my authority. And I don't see why you're getting calling out a low effort response because it is in response to a low effort claim. I didn't think it required anything more.
For example, there are far more incomplete Common Lisp tutorials than there are working / fleshed out code examples on GitHub. The endless unfinished tutorials and "books" are suspiciously similar, and nearly always give up at the same not-yet-practical level.
The same goes for other technical subjects. Raspberry Pi is another area where you can find different versions of nearly the exact same incomplete tutorials everywhere.
I know for me, reading is only the first step in learning. Doing is far more educational, and often when things go wrong, I go back and read it again. So I wouldn’t argue that reading isn’t worthwhile, but at least in my experience reading is only 50% of my learning process, I might I’m even go lower than that, 20-40% range.
As an example, I read the Rust Book beginning to end, but it wasn’t until I started writing code with it that I truly understood some of the concepts, like move-by-default. When I read about move-by-default, I understood what it was saying, but I only grokked it after writing code and experiencing it—and at the same time realizing that it was the first time I’d actually worked with a language that had that as a fundamental piece of it.
I have a lot more examples like that, just happens to be a memorable one.
I don't see how K&R can be a good example (or a bad one or any kind of example at all) in the context of computer science education. Its purpose is to teach the C language to experienced programmers. It has no aspirations of teaching computer science.
K&R is not even about teaching you to code. It says in the preface to the first edition that it assumes you already know concepts like loops and assignment statements. It also says if you're a beginner, you need to supplement the book by seeking the assistance of someone with more experience.
Man, it's almost like a field accidentally discovered a better way of working and other people are slowly trying to make them more normal. Learning by fast feedback on individual action is better than learning by reading and not acting.
I think maybe you’re referring specifically to learning how to program and not computer science at all. Because nearly every CS curriculum was dominated by a lack of hands-on programming and only in the last decade or so became more code-writing focused, which is exactly the opposite of the narrative you are painting here.
K&R was the main textbook for my first university CS class at Caltech in 1990. (Though, to be fair, the bulk of what I would call “computer science” as distinct from “mechanics of programming in the language used for the class” of that class was taught through other means, but still.)
the former already seems like a big project - the latter sounds impossible. (I'm assuming you're not skimming and actually doing the problem sets)
Is that in rambling prose? Dense math?
I dunno. I'm a skeptic by nature (not just of UFO's, etc., but of almost everything) and I watched that episode and thought it was good. Fravor seemed like a sharp, knowledgeable, down-to-earth guy who was simply stating what he experienced... and went to great lengths to be clear that he wasn't necessarily positing that what he saw was caused by Little Green Men from Mars.
FWIW, I don't believe that intelligent aliens are visiting Earth, although I do believe that it's likely that there (is|was|will be) intelligent life elsewhere in our universe at some point in time. Given that bias, I didn't find anything particularly objectionable in the Fravor episode. But perspectives vary, of course...
[1]: https://www.nist.gov/people/jeff-shainline
[2]: https://en.wikipedia.org/wiki/Travis_Oliphant
[3]: https://stanford.edu/~jlmcc/
[4]: https://en.wikipedia.org/wiki/Douglas_Lenat
[5]: https://www-cs-faculty.stanford.edu/~knuth/
[6]: http://bach.ai/
[1]: https://en.wikipedia.org/wiki/Joscha_Bach
[2]: https://scholar.google.com/citations?user=Q_yeuCUAAAAJ&hl=en...
[3]: https://www.amazon.com/Principles-Synthetic-Intelligence-Arc...
> We have noticed an unusual activity from your IP and blocked access to this website.
https://www.udacity.com/course/design-of-computer-programs--...
That sounds about right. Whenever I have to revisit code I wrote more than 3+ years ago I tend to think "Why the hell did I do it that way?"
Occasionally, now knowing the trend, I'll even comment in an apology to my future self. When I encounter those past comments my general sentiment is something like "yeah, thanks for the spaghetti asshole, would half a day to clean this up have really been so hard?"
And sometimes I remember the circumstances of that spaghetti, boiled around 2:00 AM, and remember "nope, wasn't time". Even though now I can do it better and faster.
How did you manage to keep sharp at coding?
HN started complaining about Google being too spammy around 2008, and then about results getting too clever around 2012 or so.
AIUI Norvig was also instrumental in Google's research philosophy, which is to embed research teams alongside the products they're developing rather than having a separate research lab that throws papers over the wall for later implementation. Somewhat ironic, given that he ended up heading the dedicated Research department, but Research was viewed as sort of an incubator whose successful projects would be "adopted" by some other product team. He's the reason machine-learning is pervasive at Google and ordinary SWEs use TensorFlow, rather than it being the sole province of Ph.Ds.
"Note to recruiters: Please don't offer me a job. I already have the best job in the world at the best company in the world. Note to engineers and researchers: see why." (sic)
This specifically reminds me of reinforcement learning.
"Now that we have a great set of algorithms and tools, the more pressing questions are human-centered: Exactly what do you want to optimize? Whose interests are you serving? Are you being fair to everyone? Is anyone being left out? Is the data you collected inclusive, or is it biased?"
This is like a meta-view of automation. When tasks were automated, people were able to do higher order thinking. For example, when people no longer had to do menial excel spreadsheets work, they were able to glean more meaningful insights from the data.
"The next challenge is to reach people who lack self-confidence, who don’t see themselves as capable of learning new things and being successful, who think of the tech world as being for others, not them"
This is the same insight Ajay Bangha (CEO of mastercard) made on giving financial access to the Next Billion Users.
I was first introduced to Mr. Norvig when taking a MOOC course (Intro to AI). There I witnessed his approach to problem solving and his clever & elegant solutions. I couldn't help but be in awe.
Google's approach to ML/AI probably is not what Peter really liked, judging from his past writings and books. There is certainly a strong sense of symbolic and rule-based intelligence, based on my limited reading and even more limited understanding.
But I guess Google paid very well... In reality, Google probably should sponsor Peter and let him work at Stanford...
[1] https://static.googleusercontent.com/media/research.google.c...