SICP in Python
Introduction
1.
Chapter 1: Building Abstractions with Functions
1.1.
1.1 Introduction
1.2.
1.2 The Elements of Programming
1.3.
1.3 Defining New Functions
1.4.
1.4 Practical Guidance: The Art of the Function
1.5.
1.5 Control
1.6.
1.6 Higher-Order Functions
2.
Chapter 2: Building Abstractions with Objects
2.1.
2.1 Introduction
2.2.
2.2 Data Abstraction
2.3.
2.3 Sequences
2.4.
2.4 Mutable Data
2.5.
2.5 Object-Oriented Programming
2.6.
2.6 Implementing Classes and Objects
2.7.
2.7 Generic Operations
3.
Chapter 3: The Structure and Interpretation of Computer Programs
3.1.
3.1 Introduction
3.2.
3.2 Functions and the Processes They Generate
3.3.
3.3 Recursive Data Structures
3.4.
3.4 Exceptions
3.5.
3.5 Interpreters for Languages with Combination
3.6.
3.6 Interpreters for Languages with Abstraction
4.
Chapter 4: Distributed and Parallel Computing
4.1.
4.1 Introduction
4.2.
4.2 Distributed Computing
4.3.
4.3 Parallel Computing
5.
Chapter 5: Sequences and Coroutines
5.1.
5.1 Introduction
5.2.
5.2 Implicit Sequences
5.3.
5.3 Coroutines
Powered by
GitBook
SICP in Python
Chapter 4: Distributed and Parallel Computing
Contents
4.1 Introduction
4.2 Distributed Computing
4.2.1 Client/Server Systems
4.2.2 Peer-to-peer Systems
4.2.3 Modularity
4.2.4 Message Passing
4.2.5 Messages on the World Wide Web
4.3 Parallel Computing
4.3.1 The Problem with Shared State
4.3.2 Correctness in Parallel Computation
4.3.3 Protecting Shared State: Locks and Semaphores
4.3.4 Staying Synchronized: Condition variables
4.3.5 Deadlock