/sicp

Primary LanguageScheme

  1. Building Abstractions with Procedures
    1. The Elements of Programming
      • Expressions
      • Naming and the Environment
      • Evaluating Combinations
      • Compound Procedures
      • The Substitution Model for Procedure Application
      • Conditional Expressions and Predicates
      • Example: Square Roots by Newton’s Method
      • Procedures as Black-Box Abstractions
    2. Procedures and the Processes They Generate
      • Linear Recursion and Iteration
      • Tree Recursion
      • Orders of Growth
      • Exponentiation
      • Greatest Common Divisors
      • Example: Testing for Primality
    3. Formulating Abstractions with Higher-Order Procedures
  2. Building Abstractions with Data
    1. Introduction to Data Abstraction
      • Example: Arithmetic Operations for Rational Numbers
        2.1
      • Abstraction Barriers
        2.2, 2.3
      • What Is Meant by Data?
        2.4, 2.5, 2.6
      • Extended Exercise: Interval Arithmetic
    2. Hierarchical Data and the Closure Property
    3. Symbolic Data
    4. Multiple Representations for Abstract Data
      • Representations for Complex Numbers
      • Tagged data
      • Data-Directed Programming and Additivity
    5. Systems with Generic Operations
      • Generic Arithmetic Operations
      • Combining Data of Different Types
      • Example: Symbolic Algebra