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 you to copy and distribute the text; you are also free to modify it, so you can adapt the books to different needs and 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 2e: How To Think Like a Computer Scientist*

An introduction to programming using Python, one of the best programming languages for beginners. The second edition uses Python 3.

*Think Python 1e: How To Think Like a Computer Scientist*

The first edition of *Think Python*, using Python 2 (no longer recommended).

*Think Perl 6: How to Think Like a Computer Scientist*

A new introduction to Perl 6 by Laurent Rosenfeld.

### Data Science in Python

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*

*Think Bayes: Bayesian Statistics in Python*

An introduction to Bayesian statistics using simple Python programs instead of complicated math. Second edition coming soon!

*Think DSP: Digital Signal Processing in Python*

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

*Think Complexity 2e: Exploring Complexity Science with Python*

An introduction to complexity science, which includes small world graphs, scale-free networks, cellular automata, fractals and pink noise, self-organized criticality, and agent-based models.

### Java

*Think Java: How To Think Like a Computer Scientist*

New edition, revised and updated by Chris Mayfield and Allen Downey, and published by O’Reilly Media.

*Think Data Structures: Algorithms and Information Retrieval in Java*

Build your own Web search engine—including a crawler, indexer, and search interface—while learning about data structures and algorithms in Java.

### Physical modeling

*Modeling and Simulation in Python*

Models of discrete systems, like population growth, first-order systems, like epidemics and thermal systems, and second-order systems, like mechanical systems. For people who have not programmed before.

Use MATLAB to predict and explain the behavior of physical systems. Intended for people with no programming experience. Soon to be published by No Starch Press.

### Operating systems

*Think OS: A Brief Introduction to Operating Systems*

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

Learn about software synchronization by solving a series of puzzles.

### How to Think…

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

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

*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*).

### 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?.

The contents of this web site are available under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).