







A comprehensive introduction to automata theory that uses the novel approach of viewing automata as data structures.
The Algorithms - Learn Data Structures & Algorithms
The Algorithms - Open Source resource for learning Data Structures & Algorithms implementations in various programming languages
Growing Graphs
Experimental simulation of emergent complexity through graph-rewriting automata.


Practical Foundations for Programming Languages
Variety (cybernetics)
In cybernetics, the term variety denotes the total number of distinguishable elements of a set, most often the set of states, inputs, or outputs of a finite-state machine or transformation, or the binary logarithm of the same quantity.[1] Variety is used in cybernetics as an information theory that is easily related to deterministic finite automata, and less formally as a conceptual tool for thinking about organization, regulation, and stability. It is an early theory of complexity in automata, complex systems,[1]: 6  and operations research.[2]
Category Theory for Programmers: The Preface
Table of Contents Part One Category: The Essence of Composition Types and Functions Categories Great and Small Kleisli Categories Products and Coproducts Simple Algebraic Data Types Functors Functo…

What makes something data?
This is a question I posted on BlueSky on Friday 11/21/25, inspired by a talk I recently attended about evaluation of “AI” systems. I think…

A Pattern Language for Interfaces | Notion
System → Programs → Apps

Programming Language Foundations in Agda – Table of Contents
This book is an introduction to programming language theory using the proof assistant Agda.
The operad of wiring diagrams: formalizing a graphical language for databases, recursion, and plug-and-play circuits
Wiring diagrams, as seen in digital circuits, can be nested hierarchically and thus have an aspect of self-similarity. We show that wiring diagrams form the morphisms of an operad $\mcT$, capturing this self-similarity. We discuss the algebra $\Rel$ of mathematical relations on $\mcT$, and in so doing use wiring diagrams as a graphical language with which to structure queries on relational databases. We give the example of circuit diagrams as a special case. We move on to show how plug-and-play devices and also recursion can be formulated in the operadic framework as well. Throughout we include many examples and figures.

Conceptual Models: The Hidden Structure Behind Your Next Great Interface
Discover the hidden structure behind every great UI. Master how to use conceptual models to design systems that users instantly understand and grow to trust.

esoteric.codes
esolangs, esoplatforms, esosystems, and all that break from the norms of computing

A theory of type polymorphism in programming
The aim of this work is largely a practical one. A widely employed style of programming, particularly in structure-processing languages which impose n…
quint-co/quint
An executable specification language with delightful tooling based on the temporal logic of actions (TLA)
visualising data structures and algorithms through animation - VisuAlgo
VisuAlgo was conceptualised in 2011 by Associate Professor Steven Halim (NUS School of Computing) as a tool to help his students better understand data structures and algorithms, by allowing them to learn the basics on their own and at their own pace. Together with his students from the National University of Singapore, a series of visualizations were developed and consolidated, from simple sorting algorithms to complex graph data structures. Though specifically designed for the use of NUS students taking various data structure and algorithm classes (CS1010/equivalent, CS2040/equivalent (inclusive of IT5003)), CS3230, CS3233, and CS4234), as advocators of online learning, we hope that curious minds around the world will find these visualizations useful as well.
Agentic Engineering Patterns - Simon Willison's Weblog
Patterns for getting the best results out of coding agents like Claude Code and OpenAI Codex. See my introduction for more on this project.