DeNero J. Composing Programs 2025
Download this torrent!
DeNero J. Composing Programs 2025
To start this P2P download, you have to install a BitTorrent client like qBittorrent
Category: Other
Total size: 1.84 MB
Added: 2025-04-11 13:06:02
Share ratio:
12 seeders,
2 leechers
Info Hash: 244D75C26C6C7416F21FDD5BD1FF8B25569D5AF3
Last updated: 2.2 hours ago
Description:
Textbook in PDF format
Welcome to Composing Programs, a free online introduction to programming and computer science.
In the tradition of SICP, this text focuses on methods for abstraction, programming paradigms, and techniques for managing the complexity of large programs. These concepts are illustrated primarily using the Python 3 programming language.
Building Abstractions with Functions
Getting Started
Programming in Python
Installing Python
Interactive Sessions
First Example
Errors
Elements of Programming
Expressions
Call Expressions
Importing Library Functions
Names and the Environment
Evaluating Nested Expressions
The Non-Pure Print Function
Defining New Functions
Environments
Calling User-Defined Functions
Example: Calling a User-Defined Function
Local Names
Choosing Names
Functions as Abstractions
Operators
Designing Functions
Documentation
Default Argument Values
Control
Statements
Compound Statements
Defining Functions II: Local Assignment
Conditional Statements
Iteration
Testing
Higher-Order Functions
Functions as Arguments
Functions as General Methods
Defining Functions III: Nested Definitions
Functions as Returned Values
Example: Newton's Method
Currying
Lambda Expressions
Abstractions and First-Class Functions
Function Decorators
Recursive Functions
The Anatomy of Recursive Functions
Mutual Recursion
Printing in Recursive Functions
Tree Recursion
Example: Partitions
Building Abstractions with Data
Introduction
Native Data Types
Data Abstraction
Example: Rational Numbers
Pairs
Abstraction Barriers
The Properties of Data
Sequences
Lists
Sequence Iteration
Sequence Processing
Sequence Abstraction
Strings
Trees
Linked Lists
Mutable Data
The Object Metaphor
Sequence Objects
Dictionaries
Local State
The Benefits of Non-Local Assignment
The Cost of Non-Local Assignment
Implementing Lists and Dictionaries
Dispatch Dictionaries
Propagating Constraints
Object-Oriented Programming
Objects and Classes
Defining Classes
Message Passing and Dot Expressions
Class Attributes
Inheritance
Using Inheritance
Multiple Inheritance
The Role of Objects
Implementing Classes and Objects
Instances
Classes
Using Implemented Objects
Object Abstraction
String Conversion
Special Methods
Multiple Representations
Generic Functions
Efficiency
Measuring Efficiency
Memoization
Orders of Growth
Example: Exponentiation
Growth Categories
Recursive Objects
Linked List Class
Tree Class
Sets
Interpreting Computer Programs
Introduction
Programming Languages
Functional Programming
Expressions
Definitions
Compound values
Symbolic Data
Turtle graphics
Exceptions
Exception Objects
Interpreters for Languages with Combination
A Scheme-Syntax Calculator
Expression Trees
Parsing Expressions
Calculator Evaluation
Interpreters for Languages with Abstraction
Structure
Environments
Data as Programs
Data Processing
Introduction
Implicit Sequences
Iterators
Iterables
Built-in Iterators
For Statements
Generators and Yield Statements
Iterable Interface
Creating Iterables with Yield
Iterator Interface
Streams
Python Streams
Declarative Programming
Tables
Select Statements
Joins
Interpreting SQL
Recursive Select Statements
Aggregation and Grouping
Logic Programming
Facts and Queries
Recursive Facts
Unification
Pattern Matching
Representing Facts and Queries
The Unification Algorithm
Proofs
Search
Distributed Computing
Messages
Client/Server Architecture
Peer-to-Peer Systems
Distributed Data Processing
MapReduce
Local Implementation
Distributed Implementation
Parallel Computing
Parallelism in Python
The Problem with Shared State
When No Synchronization is Necessary
Synchronized Data Structures
Locks
Barriers
Message Passing
Synchronization Pitfalls
Conclusion
Main
Related Sites
About Composing Programs