/fopp

Foundations of Python Programming

Primary LanguageHTML

Foundations of Python Programming

Note the ac101 branch has been merged to master.

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.

Getting Started

We have tried to make it as easy as possible for you to build and use this book.

  1. You can build it and host it yourself in just a few simple steps:
    1. pip install -r requirements.txt -- Should install everything you need
    2. runestone build -- will build the html and put it in ./build/fopp
    3. runestone serve -- will start a webserver and serve the pages locally from ./build/fopp

Runestone Academy Version

If you are looking for the version of the source used on the Runestone Academy site yo will find it in the ac101 branch of this repository. The master branch is shared between at least two different courses, one used at the University of Michigan and the other developed in conjunction with the Google Applied Computing Series during 2018 and 2019. The main difference between the two is the focus on projects in the ac101 branch. You are, of course free to use either. We request the PRs that are generally applicable be made against master, and anything that is specific to the AC101 branch be made against ac101. Thanks.

Helping

We welcome PRs to fix typos, unclear wording, incorrect results, or anything else that needs fixing. We would especially welcome additional unit tests for existing programming exercises! The book has been used by many many people, so if you think that an answer is incorrect, please make sure you double check your work before submitting an issue or making a PR.