Frame: the problem and its names
This file states, in one sentence, the problem of presenting an algorithm, then the names the field and its practitioners use, and the name of the method used to review it.
The problem in one sentence
Decide which notation presents an algorithm so that a reader can follow it, implement it, or check it, and under which conditions.
Names for the same things
| Thing | Field name | Practitioner name |
|---|---|---|
| Informal algorithm text | pseudocode, pseudo-code | "the algorithm", algorithm box, reference language, command set |
| Constrained code-like text for designs | program design language (PDL), Caine and Gordon 1975 | structured English, design language |
| Drawn control flow | flowchart, structured flowchart, Nassi-Shneiderman diagram, control structure diagram (CSD) | flow diagram, activity diagram |
| Design by successive detail | stepwise refinement, Wirth 1971 | top-down design, pseudocode programming process (PPP, McConnell 2004) |
| Code and prose woven together | literate programming, Knuth 1984 | notebook, tutorial code |
| Machine-checkable design text | formal specification, TLA+, PlusCal | executable specification, model |
| Real code as the description | executable pseudocode | "Python is pseudocode", "write Python, not pseudocode" (Davis 2023) |
| Exam-board notation | reference language, pseudocode guide | exam reference language |
Reader tasks used as outcomes
| Task | Typical measure |
|---|---|
| Trace (forward, backward) | time, errors |
| Implement | correctness, time, errors |
| Find a bug | time to find and fix |
| Answer comprehension questions | accuracy, time, confidence |
| Compose an algorithm | proportion that works |
Method: a multivocal literature review
- This review is a multivocal literature review (MLR, Garousi 2019): formal literature and grey literature (material not published through journals or conferences) in one pool.
- Grey tiers: tier 1 = books, theses, standards-like and government documents, technical reports; tier 2 = wikis, course handouts, package pages, Q/A; tier 3 = blogs, e-mails, tweets.
- Each grey source is scored out of 20; see protocol and sources.
Search terms for existing reviews
- Academic: systematic literature review, mapping study, survey, multivocal review, combined with pseudocode, algorithm representation, program comprehension, visual against textual programming, pseudocode-to-code.
- Acronyms: SLR, SMS, MLR.
- Authors: Wyrich, Waddel, Noone, Ulate-Caballero.
- Result: the existing reviews are in review.md strand 0.
Search terms tried, three ways
- Academic: pseudocode comprehension; flowchart against pseudocode; program design language; algorithm representation; documentation format.
- Acronym: PDL, NS diagram, CSD, SPoC, TLA+, ERL.
- Author: Shneiderman, Ramsey, Scanlan, Curtis, Boehm-Davis, Green, Petre, Knuth, Wirth, Oda, Kulal, Newcombe, Cormen.
- Practice: exam board names (AQA, OCR, Cambridge International, College Board, Pearson Edexcel), CTAN package names, TeX FAQ, course handouts, Wikipedia, Rosetta Code.
- Terms that returned nothing relevant: "pseudocode ambiguity developers", "reproducing algorithms from pseudocode"; the query was wrong, since the field files this under reproducibility.