This page is in progress!


A program is set of instructions that results in a computer or computers performing a task. Programming is the act of creating these instructions.

There are four components at play in the act of programming:

  1. The task – The spoken-language explanation of what you want to instruct the computer to do, ex. 1: “Sort this list of data” / ex. 2: “Build a website”
  2. Abstract structures – The concepts, tools, patterns, and understanding of systems that you need to employ to write the instructions, ex. 1: the algorithm and data structures you will use to sort the list / ex. 2: the languages, tools, or services to combine and in what way to build the website
  3. Concrete code – The instructions themselves that the computer(s) can understand: the code. This code can be text written in a programming language or the process of connecting disparate services, ex. 1: the code written in JavaScript to perform the sort and output the result / ex. 2: the DNS and server setup with a WordPress installation
  4. The result – The result of the coded instructions, ex. 1: the sorted list / ex. 2: the live website

When learning to program, it is really hard to get from #2 to #3, no matter what medium you are using for your instructions. Many new programmers end up working for several years by trial and error and copy/paste without understanding what they are doing and why.

NODOI is an engaging universe of monsters and metaphorical stories that bridges the gap between #2, the abstract structures, and #3, the concrete code. The monsters and metaphorical stories of NODOI are memory tools that ease the process of understanding and recalling abstract structures.

NODOI makes programming and computer science concepts friendlier, easier to learn, and more accessible to all.