This project began with the original How to Think Like a Computer Scientist text by Jeffrey Elkner, Peter Wentworth, Allen B. Downey, Chris Meyers, and Dario Mitchell. Since 2011 Brad Miller, David Ranum, Barbara Ericson, Mark Guzdial, and many others have built on the text making it interactive.
Programming is not a "spectator sport". It is something you do, something you participate in. It would make sense, then, that the book you use to learn programming should allow you to be active. That is our goal.
This book is meant to provide you with an interactive experience as you learn to program in Python. You can read the text, watch videos, and write and execute Python code. In addition to simply executing code, there is a unique feature called 'codelens' that allows you to control the flow of execution in order to gain a better understanding of how the program works.
We have tried to make it as easy as possible for you to build and use this book.
You can see and read this book online at runestone.academy
Important
The restructuredText version of this book is deprecated!
- Create a virtual environment
- pip install pretextbook
- To build run: pretext build web
- pretext view web
Note: The pretext sources are in the pretext folder, we will keep the _sources folder until we are 100% sure that the book has been converted correctly and as thoroughly as possible.
- clone this repo to httlacs instead of thinkcspy
- Run rsmanage addcourse and add httlacs as course name and base course name
- Run rsmanage build --ptx httlacs
- clone this repo
- install pretext with
pip install pretext
- run
pretext build pdf
This will generate the needed assets and then try to build the pdf. The pdf will be in the output/pdf folder.
As mentioned above this method is deprecated, but will still work. Any updates to this book should be made in PreTeXt NOT RST.
You can build it and host it yourself in just a few simple steps:
pip install -r requirements.txt
-- Should install everything you needrunestone build
-- will build the html and put it in./build/thinkcspy
runestone serve
-- will start a webserver and serve the pages locally from./build/thinkcspy