Home

Welcome to Green Tea Press, publisher of Think Python, Think Bayes, and other books by Allen Downey.

Read our Textbook Manifesto.

Free Books!

All of our books are available under free licenses that allow readers to copy and distribute the text; they are also free to modify it, which allows them to adapt the book to different needs, and to help develop new material.

These books are available in a variety of electronic formats; some are also for sale in hard copy.

Available now

Think Python: How To Think Like a Computer Scientist

An introduction to programming using Python, one of the best programming languages for beginners.

Think Bayes: Bayesian Statistics in Python

An introduction to Bayesian statistics using simple Python programs instead of complicated math.

Think Complexity: Exploring Complexity Science with Python

Algorithms and data structures in Python, including graphs and arrays, and an introduction to complexity science, which includes small world graphs, scale-free networks, cellular automata, self-organized criticality, fractals, and agent-based models.

Think Stats, 2nd Edition

An introduction to exploratory data analysis. Like the first edition, this book emphasizes simple computational tools for exploring real data. It includes several new topics, including regression, time series analysis and survival analysis. It presents basic use of NumPy, SciPy, pandas, and StatsModels.    This book revises and extends the first edition, Think Stats: Probability and Statistics for Programmers

New books in progress

Think OS: A Brief Introduction to Operating Systems

An introduction to Operating Systems for programmers. Uses the C programming language.

Think DSP: Digital Signal Processing in Python

An introduction to digital signal processing with applications to sound and image processing.

Think Java: How To Think Like a Computer Scientist

I am working with Chris Mayfield to revise and update Think Java.

How to Think Like a Computer Scientist

How to Think Like a Computer Scientist is an introductory programming book for people who have never programmed before, available for several programming languages:

How To Think Like a Computer Scientist: C++ Version

How To Think Like a (Functional) Programmer: OCaml Version

Python for Software Design: How To Think Like a Computer Scientist

How To Think Like a Computer Scientist: Learning with Python (this book has now been replaced by Think Python).

Also from Green Tea Press

The Little Book of Semaphores

Learn about software synchronization by solving a series of puzzles.

Physical Modeling in MATLAB

Use MATLAB to predict and explain the behavior of physical systems.  Intended for people with no programming experience.

More Free Computer Science Books

Max Hailperin’s Operating Systems and Middleware: Supporting Controlled Interaction is now available under a Creative Commons license.

About free books

If you enjoy these books, please read about Five Easy Ways to Help Promote Free Books.

If you are thinking about writing a free book, here are reasons you should and suggestions about how: Free Books: Why Not?.