There’s a really neat paper that’s been circulating, Studying the Language and Structure in Non-Programmers’ Solutions to Programming Problems. The paper presents a study surveying non-programmers and their use of language in describing programming problems.
The idea is to shed light on what words / meanings non-programmers use and how those might clash with typical programming language keywords or overall design.
The raters found that the most popular use of the word
then is for sequencing, or specifying that an action should happen after finishing a prior action. This is inconsistent with its use in most programming languages, where it means consequently.
Lots of really great insights here for anyone designing a programming environment.
(see also Glen Chiacchieri’s redesign of the results section of the paper)