Suggestion for a system that makes you a better programmer: Try to put the programmer into the end-user's role as often as possible. The PL model should not encourage thinking in terms of hacking, but in terms of end-user behavior. This page collects papers about programming language usability. '''Novice programmers''' * studies and expert opinions: http://www-2.cs.cmu.edu/~pane/cmu-cs-96-132.html * An Analysis of the Errors Made by Novice Programmers http://www.sacla.org.za/SACLA2006/Papers/RP01%20Pillay%20Programming%20Errors.pdf * An Exploratory Study of Novice Programming Experiences and Errors http://gild.cs.uvic.ca/docs/summary/SuzanneThompsonThesis.pdf * Studying the language and structure in non-programmers' solutions to programming problems http://web.cs.cmu.edu/~pane/ftp/PaneRatanamahatanaMyers2001.pdf * A development study of cogntive problems in learning to program http://www.ppig.org/papers/15th-tucker.pdf * Visualizing Roles of Variables to Novice Programmers http://www.ppig.org/papers/14th-sajaniemi.pdf * The Roles Beacons Play in Comprehension for Novice and Expert Programmers http://www.ppig.org/papers/14th-crosby.pdf * From Procedures to Objects: What Have We (Not) Done? http://www.ppig.org/papers/19th-Sajaniemi.pdf * Cognitive strategies and looping constructs: an empirical study http://cq-pan.cqu.edu.au/david-jones/Teaching/Innovation/Lit_Review/p853-soloway.pdf ---- '''Expert programmers''' ---- '''Visual programming languages''' * bibliography: http://web.engr.oregonstate.edu/~burnett/vpl.html