about summary refs log tree commit diff stats
path: root/js/games/nluqo.github.io/~bh/v3ch7/biblio.html
diff options
context:
space:
mode:
authorelioat <elioat@tilde.institute>2023-08-23 07:52:19 -0400
committerelioat <elioat@tilde.institute>2023-08-23 07:52:19 -0400
commit562a9a52d599d9a05f871404050968a5fd282640 (patch)
tree7d3305c1252c043bfe246ccc7deff0056aa6b5ab /js/games/nluqo.github.io/~bh/v3ch7/biblio.html
parent5d012c6c011a9dedf7d0a098e456206244eb5a0f (diff)
downloadtour-562a9a52d599d9a05f871404050968a5fd282640.tar.gz
*
Diffstat (limited to 'js/games/nluqo.github.io/~bh/v3ch7/biblio.html')
-rw-r--r--js/games/nluqo.github.io/~bh/v3ch7/biblio.html341
1 files changed, 341 insertions, 0 deletions
diff --git a/js/games/nluqo.github.io/~bh/v3ch7/biblio.html b/js/games/nluqo.github.io/~bh/v3ch7/biblio.html
new file mode 100644
index 0000000..190fe18
--- /dev/null
+++ b/js/games/nluqo.github.io/~bh/v3ch7/biblio.html
@@ -0,0 +1,341 @@
+<HTML>
+<HEAD>
+<TITLE>Computer Science Logo Style vol 3: Bibliography</TITLE>
+</HEAD>
+<BODY>
+<CITE>Computer Science Logo Style</CITE> volume 3:
+<CITE>Beyond Programming</CITE> 2/e Copyright (C) 1997 MIT
+<H1>Bibliography</H1>
+
+<TABLE width="100%"><TR><TD>
+<IMG SRC="../csls3.jpg" ALT="cover photo">
+<TD><TABLE>
+<TR><TD align="right"><CITE><A HREF="http://www.cs.berkeley.edu/~bh/">Brian
+Harvey</A><BR>University of California, Berkeley</CITE>
+<TR><TD align="right"><BR>
+<TR><TD align="right"><A HREF="../pdf/v3ch07.pdf">Download PDF version</A>
+<TR><TD align="right"><A HREF="../v3-toc2.html">Back to Table of Contents</A>
+<TR><TD align="right"><A HREF="../v3ch6/v3ch6.html"><STRONG>BACK</STRONG></A>
+chapter thread <A HREF="permissions.html"><STRONG>NEXT</STRONG></A>
+<TR><TD align="right"><A HREF="https://mitpress.mit.edu/books/computer-science-logo-style-second-edition-volume-3">MIT
+Press web page for <CITE>Computer Science Logo Style</CITE></A>
+</TABLE></TABLE>
+
+<HR>
+
+
+<P>This book is a little like the previews of coming attractions at the movies;
+it's meant to whet your appetite in several directions, without giving you
+the complete story about anything.  To find out more, you'll have to consult
+more specialized books on each topic.
+
+<P>There are a lot of books on computer programming and computer science,
+and whichever I chose to list here would be out of date by the time
+you read this.  Instead of trying to give current references in every
+area, in this edition I'm listing only the few most important and
+timeless books, plus an indication of the sources I used for each
+chapter.
+
+<P>Computer science is a fast-changing field; if you want to know what the
+current hot issues are, you have to read the journals.  The way to start is
+to join the Association for Computing Machinery, 1515 Broadway, New
+York, NY 10036.  If you are a full-time student you are eligible for a
+special rate for dues, which as I write this is 25 per year.  (But you
+should write for a membership application with the current rates.)  The
+Association publishes about 20 monthly or quarterly periodicals, plus the
+newsletters of about 40 Special Interest Groups in particular fields.
+
+<P><H2>Read These!</H2>
+
+<P>
+If you read no other books about computer science, you must read these two.
+One is an introductory text for college computer science students; the other
+is intended for a nonspecialist audience.
+
+<P>Abelson, Harold, and Gerald Jay Sussman with
+Julie Sussman,
+<EM>Structure and Interpretation of Computer Programs,</EM> MIT Press,
+Second Edition, 1996.
+
+<P><BLOCKQUOTE>
+The introductory computer science text at MIT, this book uses Lisp as the
+vehicle for an intense study of everything from data structures to machine
+architecture.  Although it's not a book about artificial intelligence as
+such, this is the definitive presentation of the artificial intelligence
+view of what computer science in general is about, and the best computer
+science book ever written.
+
+<P></BLOCKQUOTE>
+
+<P>Hofstadter, Douglas R., <EM>Godel, Escher, Bach: an Eternal
+Golden Braid,</EM> Basic Books, 1979.
+
+<P><BLOCKQUOTE>
+This book won the Pulitzer Prize for its success in explaining to readers
+who aren't computer scientists some of the deepest ideas of computer
+science, and it makes a strong case for the view that those ideas also have
+a lot to teach us about human intelligence.
+
+<P></BLOCKQUOTE>
+
+<P><H2>Chapter 1: Automata Theory</H2>
+
+<P>The reference I used in thinking about this chapter was
+
+<P>Minsky, Marvin, <EM>Computation: Finite and Infinite
+Machines,</EM> Prentice-Hall, 1967.
+
+<P><BLOCKQUOTE>
+Part of the interest of this particular text is that its author is a leading
+figure in artificial intelligence research, and so the question of whether
+the insights of automata theory apply also to human intelligence is always
+visible as a motivating force in the presentation of the theory.  Minsky's
+bibliography will refer you to the original papers by Turing, Kleene,
+Church, and so on as well as some left-field references to biological
+information processing from people like Lettvin and McCulloch.
+
+<P></BLOCKQUOTE>
+
+<P>
+
+<P><H2>Chapter 2: Discrete Mathematics</H2>
+
+<P>This chapter touches on several topics.  An overall introduction for
+computer scientists is
+
+<P>Liu, Chung Laung, <EM>Elements of Discrete Mathematics,</EM>
+McGraw-Hill, Second Edition, 1985.
+
+<P><BLOCKQUOTE>
+This book requires no advanced mathematical background, but it does require
+that the reader feel comfortable with mathematical notation and the notion
+of formal proof.  The topics include both purely mathematical ones, like set
+theory, combinatorics, and modern algebra, and related computer science ones
+like computability, formal languages, automata theory, analysis of
+algorithms, and recursion.  This list is not unlike the one in the book
+you're reading now, and in fact Professor Liu expresses a goal similar to
+mine: to show computer science undergraduates the relevance of mathematics
+to their work.  The difference is that I use actual programs to illustrate
+the ideas whenever possible, whereas his is a &quot;straight&quot; math book.  (Of
+course another difference is that he treats all these topics in much more
+depth.  But don't be scared away; he starts simply.)
+
+<P></BLOCKQUOTE>
+
+<P>On the topic of mathematical logic, there is a range of books that vary in
+accessibility.  Among the most pleasant are
+
+<P>
+<P>Smullyan, Raymond, <EM>What Is the Name of This Book?</EM> Prentice-Hall, 1978
+<P>--, <EM>The Lady or the Tiger?</EM> Knopf, 1982
+<P>--, <EM>5000 B.C. and Other Philosophical Fantasies,</EM> St. Martin's, 1984
+<P>--, <EM>Alice in Puzzle-Land,</EM> Penguin, 1984.
+<P>
+
+<P><BLOCKQUOTE>
+These are books of puzzles based on logic, but they go beyond the simple
+propositional inference puzzles like the one in the text.  Smullyan starts
+with some of the classic puzzle categories, like the Liars and Truth-Tellers
+puzzle, and builds up to an exposition in puzzle form of topics like
+self-reference, modal logic, and Godel's Theorem.
+
+<P></BLOCKQUOTE>
+
+<P>&quot;Logic programming&quot; is the use of mathematical logic formalisms as a
+programming language.  It is also called &quot;declarative programming&quot; because
+instead of issuing commands to the computer, the programmer makes statements
+about things known to be true.  The algorithm by which the programming
+system makes inferences from these statements is not explicitly provided by
+the programmer, but is built into the language.  The most widely known
+logic programming language, although not the only one, is Prolog.  An
+accessible introductory text is
+
+<P>Ennals, Richard, <EM>Beginning Micro-Prolog,</EM> Harper &amp; Row,
+Second Edition, 1984.
+
+<P><BLOCKQUOTE>
+I list this book here because it's a Prolog text and therefore relevant
+to mathematical logic, but for me the main interest of the book is that
+it argues for the use of Prolog in teaching kids, as an alternative to Logo.
+The book gives examples of logic programming at work in various curriculum
+areas.
+
+<P></BLOCKQUOTE>
+
+<P><H2>Chapter 3: Algorithms and Data Structures</H2>
+
+<P>To a software engineer, the issues in this chapter are among the central ones in
+computer science.  That's not my own way of thinking, so it's possible that
+my presentation doesn't give the field all the pizazz that an enthusiast
+would manage.  To compensate for that, you should read
+
+<P>Bentley, Jon, <EM>Programming Pearls,</EM> Addison-Wesley, 1986.
+
+<P><BLOCKQUOTE>
+This is a collection of monthly articles written by Bentley for the
+<EM>Communications</EM> of the Association for Computing Machinery.  It
+requires virtually no formal mathematics and is extremely readable.
+If the book has a moral, it's &quot;Think first, program later.&quot;  It makes
+its case with a number of true-to-life examples of projects in which orders
+of magnitude were saved in the execution time of a program by rethinking its
+fundamental structure.
+
+<P></BLOCKQUOTE>
+
+<P>
+
+<P><H2>Chapter 4: Programming Language Design</H2>
+
+<P>There are textbooks in &quot;comparative programming languages,&quot; but I'm going
+to stick to the strategy of the chapter by using Pascal as the example.
+<EM>Structure and Interpretation of Computer Programs,</EM> one of my
+must-reads, will be useful as a contrast here, giving the Lisp point of view.
+
+<P>Jensen, Kathleen, and Niklaus Wirth, <EM>
+Pascal User Manual and Report,</EM> Springer-Verlag, Third Edition, 1985.
+
+<P><BLOCKQUOTE>
+This is the official report of the international committee responsible for
+the design of the language.  The book has two parts, a reference manual and
+the committee report itself.  The latter includes some explicit discussion
+of the design decisions in the language.
+
+<P></BLOCKQUOTE>
+
+<P><H2>Chapter 5: Programming Language Implementation</H2>
+
+<P>I really didn't have a reference for this chapter; I just sort of
+forged ahead on my own!  But here's the book I <EM>should</EM> have
+read first:
+
+<P>Friedman, Daniel P., Mitchell Wand, and
+Christopher T. Haynes, <EM>Essentials of Programming Languages,</EM>
+MIT Press, 1992.
+
+<P><BLOCKQUOTE>
+This book uses the Scheme dialect of Lisp as the basis for a
+study of programming language interpreters.  It's harder reading
+than most of the books in this bibliography, but it encourages the
+reader to think very deeply about how programming languages work.
+
+<P></BLOCKQUOTE>
+
+<P><H2>Chapter 6: Artificial Intelligence</H2>
+
+<P>I'll list two references here; one on language understanding in
+general and one that contains a paper about the Student program
+specifically.
+
+<P>Winograd, Terry, <EM>Language as a Cognitive Process, Volume 1:
+Syntax,</EM> Addison-Wesley, 1983.
+
+<P><BLOCKQUOTE>
+A planned second volume on semantics was not published.  This is a
+technically meaty book, but considering its depth it is quite readable.
+The book strikes a good balance among technical programming issues,
+psychological issues, and the ideas of mainstream linguistics.  It includes
+an extensive bibliography.  When I attended Terry's course at Stanford in
+which he first presented the material that became this book, it was the
+first time I experienced a course that ended with a standing ovation for the
+instructor.  The book shows the same clarity of explanation and the same
+enthusiasm.
+
+<P></BLOCKQUOTE>
+
+<P>Minsky, Marvin L., <EM>Semantic Information Processing,</EM> MIT
+Press, 1969.
+
+<P><BLOCKQUOTE>
+This is a collection of early research reports.  I include it here because
+one of its chapters is a paper by Bobrow on STUDENT, and you won't be able
+to find the more complete description in Bobrow's unpublished thesis.
+Other chapters describe similar microworld-strategy projects of the same
+vintage.
+
+<P></BLOCKQUOTE>
+
+<P><H2>Computers and People</H2>
+
+<P>Last but far from least, some of the most fascinating reading connected with
+computer science is found outside of the technical literature, in the
+reactions of psychologists, philosophers, and sociologists to the computer
+as a social force.  You owe it to yourself to understand the human context
+of your work; you owe it to everyone else to be strongly aware of the
+social implications of what you do.
+
+<P>Turkle, Sherry, <EM>The Second Self: Computers and the Human
+Spirit,</EM> Simon and Schuster, 1984.
+
+<P><BLOCKQUOTE>
+A sociologist's view of the computer culture, this book explores both the
+psychology of computer experts and the ways in which a computer-rich
+environment has changed the thinking of non-experts not only about
+technology but about what it means to be human.
+
+<P></BLOCKQUOTE>
+
+<P>Weizenbaum, Joseph, <EM>Computer Power and Human Reason: From
+Judgment to Calculation,</EM> W. H. Freeman, 1976.
+
+<P><BLOCKQUOTE>
+Weizenbaum is a computer scientist, and this book is in part a technical
+argument about the limitations of what computers can do.  But it is more
+importantly a call to computer scientists to take responsibility for the
+uses to which their inventions are put.  Weizenbaum argues that there are
+things we <EM>shouldn't</EM> do with computers, even if we <EM>can</EM> learn
+how to overcome the technical obstacles.  Computer-based weapons of war are
+an obvious example, but Weizenbaum is also worried about things like
+automated psychotherapy, which was just a daydream when the book appeared
+but has since become a reality to a limited extent.  Many computer
+scientists find this book offensive, and it is certainly possible to find
+flaws in the details.  But the critics rarely present an alternative with
+an equally strong social conscience.
+
+<P></BLOCKQUOTE>
+
+<P>Dreyfus, Hubert L., <EM>What Computers Still Can't Do: A
+Critique of Artificial Reason,</EM> MIT Press, 1992.
+
+<P><BLOCKQUOTE>
+Dreyfus is a philosopher who uses the phenomenological ideas of Heidegger
+and others to suggest a fundamental flaw in the assumptions AI researchers
+make about human intelligence.  To try to sum it up in one sentence, the
+sort of thinking that people do in solving a puzzle is very different from
+the much more profound intelligence we use in carrying out our more customary
+activities.  AI programs mimic the former but not the latter.  This is a
+revision of an earlier book, taking into account more recent developments
+in AI research.
+
+<P></BLOCKQUOTE>
+
+<P>Weinberg, Gerald M., <EM>The Psychology of Computer
+Programming,</EM>
+Van Nostrand Reinholt, 1971.
+
+<P><BLOCKQUOTE>
+This book studies programming as a social activity, programming as an
+individual activity, and the programming environment.  In my opinion, its
+main contribution is the idea of &quot;egoless programming,&quot; which means more
+or less that when your friend finds that impossible bug in your program for
+you, you should feel happy rather than threatened.  Weinberg offers several
+good ideas for how to act as part of a programming community.  On the other
+hand, I'm less enthusiastic about his manager's-eye view of the programmer
+as a cog in the machine, rather than as a creative artist.  But overall I
+think this book is well worth reading; it's also entertainingly written.
+
+<P></BLOCKQUOTE>
+
+<P>
+
+
+<P><A HREF="../v3-toc2.html">(back to Table of Contents)</A>
+<P><A HREF="../v3ch6/v3ch6.html"><STRONG>BACK</STRONG></A>
+chapter thread <A HREF="permissions.html"><STRONG>NEXT</STRONG></A>
+
+<P>
+<ADDRESS>
+<A HREF="../index.html">Brian Harvey</A>, 
+<CODE>bh@cs.berkeley.edu</CODE>
+</ADDRESS>
+</BODY>
+</HTML>