Computer Science Logo Style volume 3:
Beyond Programming 2/e Copyright (C) 1997 MIT
Computer Science Logo Style
Volume 3: Beyond Programming
Brian Harvey
University of California, Berkeley
Below this short table of contents is an expanded table of contents
including sections within each chapter. Click on the chapter name
to jump down. You can also download the complete text of each chapter
in PDF format for elegant printing, or browse the HTML version.
Note: These books are still in copyright, and in print. They are
posted here for your personal use, not for resale or redistribution.
Thanks!
Preface
- About This Series
- How to Read This Book
- What Isn't Included
- Computers and People
Acknowledgments
- What is a Computation?
- Finite-State Machines
- Nondeterministic Machines
- Representing Machines as Logo Lists
- Text Editors: A Use for Acceptors
- Regular Expressions
- Rules That Aren't Regular
- Regular Expressions and Finite-State Machines
- How to Translate
- Making the Machine Deterministic
- Eliminating Redundant States
- A Finite-State Adder
- Counting and Finite-State Machines
- Turing Machines
- Turing's Thesis
- The Halting Theorem
- Proving the Halting Theorem in Logo
- Program Listing
- Propositional Logic
- An Inference System
- Problems with Ordering
- Data Structure
- Program Structure: Recording Simple Propositions
- Program Structure: Recording Implications
- Using Implications to Represent Orderings
- Backtracking
- Generalized Inference Systems and Predicate Logic
- Logic and Computer Hardware
- Combinatorics
- Inductive and Closed-Form Definition
- Pascal's Triangle
- Simulation
- The Simplex Lock Problem
- An Inductive Solution
- Multinomial Coefficients
- Program Listing
- Local Optimization vs. Efficient Algorithms
- Memoization
- Sorting Algorithms
- Sorting by Selection
- Sorting by Partition
- Order of Growth
- Data Structures
- Data Structures in Real Life
- Trees
- Improving the Data Representation
- Trees as an Abstract Data Type
- Tree Modification
- Searching Algorithms and Trees
- Logo's Underlying Data Structures
- Program Listing
- Programming paradigms
- Interactive and Non-Interactive Languages
- Block Structure
- Statement Types
- Shuffling a Deck Using Arrays
- Lexical Scope
- Typed Variables
- Additional Types in Standard Pascal
- Critique of Typed Variables
- Procedures and Functions
- Call by Value and Call by Reference
- Parameters in Logo: Call by Binding
- Formal Syntax Definition
- Tokenization
- Lookahead
- Parsing
- Expressions and Precedence
- The Two-Stack Algorithm for Expressions
- The Simulated Machine
- Stack Frames
- Data Structures
- Code Generation
- Program Listing
- Microworlds: Student
- How Student Translates English to Algebra
- Pattern Matching
- Solving the Equations
- Age Problems
- AI and Education
- Combining Sentences Into One Equation
- Allowing Flexible Phrasing
- Using Background Knowledge
- Optional Substitutions
- If All Else Fails
- Limitations of Pattern Matching
- Context-Free Languages
- Augmented Transition Networks
- Program Listing
Appendices
Bibliography
- Read These!
- Chapter 1: Automata Theory
- Chapter 2: Discrete Mathematics
- Chapter 3: Algorithms and Data Structures
- Chapter 4: Programming Language Design
- Chapter 5: Programming Language Implementation
- Chapter 6: Artificial Intelligence
- Computers and People
Credits
Index of Defined Procedures
General Index
MIT
Press web page for Computer Science Logo Style
Brian Harvey,
bh@cs.berkeley.edu