Skip to content

Yueleng/design_of_computer_programs

Repository files navigation

design_of_computer_programs

Design of Computer Programs by Peter Norvig

catalog

Winning Poker Hands

  • Steps of the design process and developing for clarity and generality.

  • Arguments for program correctness and exprimentation and simulation.

  • Design trade-offs; Simplicity and clarity; Decomposition and composability.

Back of the Envolope

  • Back of envolope calculations: When to use brute force and when to be clever.

  • The Zebra puzzle: Generator expressions.

  • Permutations and combinations.

  • Cryptarithmetic; Recursive and wishful thinking; Longest palindrome substring algorithm;

Regular Expressions, other languages and intepreters

  • Defining the language of regular expressions and interpreting the language.

  • Defining the set of strings matched by regular expression

  • Other languages.

Dealing with complexity through search

  • Search: finding your way with a flashlight or boat.

  • Analying the efficiency of algorithm.

  • Recurrence relations and matching data types with algorithms.

Dealing with uncertainty through probability

  • Probability: the game of Pig.

  • Maximizing expected utility to optimize strategy.

Word Games

  • Managing complexity

  • Large sets of words

  • Appropriate data structures

About

Design of Computer Programs by Peter Norvig

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages