Diagram, Debug, Fold: Computer Programming as a Form of Critique