The Fourth Tradition

Posted

Tedre and Sutinen’s paper “Three Traditions of Computing: What Educators Should Know” (2008) has shaped my view of computer science, software engineering, and programming since I first read it. (Its paywalled home is here, but remember, Sci-Hub is your friend…) Their analysis is worth re-reading at least a couple of times, but this table (reproduced from the paper) is an excellent overview:

Mathematical tradition Engineering tradition Scientific tradition
Assumptions Programs (algorithms) are abstract objects, they are correct or incorrect, as well as more or less efficient – knowledge is a priori Programs (processes) affect the world, they are more or less effective and reliable – knowledge is a posteriori Programs can model information processes, models are more or less accurate – knowledge is a posteriori
Aims Coherent theoretical structures and systems Investigating and explaining phenomena, solving problems Constructing useful, efficient, and reliable systems; solving problems
Strengths Rigorous, results are certain, utilized in other traditions Combines deduction and induction, cumulative Able to work under great uncertainty, flexible, progress is tangible
Weaknesses Incommensurability of results, uncertainty about what counts as proper science Limited to axiomatic systems Rarely follows rigid, preordained procedures; poor generalizability
Methods Empirical, inductive, and deductive Analytic, deductive (and inductive) Empirical, constructive

Reading it again today, though, I’m struck by what’s not there (and by the fact that it’s taken me almost 15 years to notice its absence). I think there should be a fourth column titled “Humanist tradition” that focuses on values, on how computing is used, and on how cognitive and social psychology support, shape, and limit what we can build and how we build it. As a very rough draft:

I’d be very grateful for feedback and improvements.