(Updated May 15, 2022)

Welcome to Programming by Design!

The idea of Programming by Design came out of years of developing notes and examples for students who needed more help. At the same time, they attended various computer science programming and theory classes. This was necessary since the textbooks were frequently awful in content, delivery, examples, and historical detail. After accumulating such a swath of topics into web pages, it was considered that this collection might have value beyond what the author had originally intended.

Thus the publishing journey began. The cardinal idea held by the author is that knowledge should be free. However, we all must pay something for credentialing. Therefore, the author retains the copyright of the works but will be made available through the Creative Commons and Open Education Resources as appropriate.

This site still maintains much of the author’s original layout and will change over time as content is refined.

You will note that the top of this text contains an Updated tag. The code bugs, textual errors, and complete rewrites are made in place rather than noting changes in an errata section. The tag at the top of the page indicates the last time the author made changes. This denotes that corrections or additions have been made to the page.


“What is a master but a master student? And if that’s true, then there’s a responsibility on you to keep getting better and to explore avenues of your profession.”

Neil Peart


The site works best when using an up-to-date browser.