Skip to content

Programming by Design

If you're not prepared to be wrong, you'll never come up with anything original. – Sir Ken Robinson

  • About
  • Java-PbD
  • C-PbD
  • ASM-PbD
  • Algorithms
  • More!
    • Commodore 64
    • Operating Systems
    • Odds and Ends
    • Theory

Programming by Design

(Updated October 28, 2026)

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 frequently lacked content, delivery, examples, and historical detail. After turning many written topics into web pages, the author realized this collection might have value beyond what they originally intended.

Thus, the publishing journey began. The author’s cardinal idea is that knowledge should be free. The cost of credentialing is another thing altogether. Therefore, the author retains the copyright of the works, which will be made available through Creative Commons and Open Education Resources as appropriate.

Editor's Note
This site is being renovated during the Fall 2026. The format and style will remain the consistent dark theme. Many topics are being rewritten, and collections are being moved into new categories in the top menu.

You will note that the top of this page contains an (Updated Month DD, YYYY) 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/chapter and when the last formal change was made.


“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. You may need to enable pop-ups for this site so code examples can load in a separate page.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Copyright © 2018 – 2026 Programming by Design.