A structural learning theory approach to problem solving: An investigation in software maintenance. - Robert Shane Sharpe (1992)