Abstract
This paper studies the expertise differences between intermediate and expert programmers during incremental software development. We conducted experiments on the intermediates and experts by asking them to perform programming on the same problem. We recorded the process and analyzed the data. We identified the differences between intermediate and expert programmers in terms of design decision generation, test case generation, the hypotheses generation when debugging the program and actions at different Bloom’s taxonomy levels. It seems that experts generate higher levels, more general and higher quality hypotheses and are more able to evaluate their hypotheses and design decisions. Intermediate programmers seem to pay more attention to the detailed decisions and lack ability of evaluating the hypotheses. Experts are also better able to get rid of discredited hypotheses while intermediates often try to keep hypotheses despite some contradictory evidence. Experts generate an overview in general before beginning to program. Intermediates generate more hypotheses when they are debugging programs while experts produce them quickly and accommodate them with the data without introducing more hypotheses. Experts are better in using the domain knowledge and have better abstract knowledge than intermediate programmers at conceptual levels as well. With regards to Bloom’s taxonomy, it seems that experts spend more efforts at higher Bloom’s cognitive levels and intermediates have more activities at lower Bloom’s levels. This study might have implications for knowledge engineering and provide guidance for software development education.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Adelson, B., Soloway, E.: The role of domain experience in software design. IEEE transaction on software engineering 11, 1351–1360 (1985)
Beck, K.: Extreme Programming Explained. Addison-Wesley, Massachusetts (2000)
Chase, W.G., Simon, H.A.: Perception in chess. Cognitive Psychology 1, 55–81 (1971)
Davies, S.P.: Models and theories of programming strategy. International Journal of Man-Machine Studies 39(2), 237–267 (1993)
Davies, S.P.: Knowledge restructuring and the acquisition of programming expertise. International Journal of Human-Computer Studies 40, 703–725 (1994)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Massachusetts (1999)
Gamma, E., Kent, B.: Contributing to Eclipse: Principles, Patterns, and Plugins. Addison-Wesley, Reading (2003)
Gilmore, D.J.: Expert programming knowledge: a strategic approach. Psychology of Programming, 223–233 (1990)
Gilmore, D.J., Green, T.R.G.: Programming plans and programming expertise. The Quarterly Journal of Experimental Psychology 40(1), 423–442 (1988)
Glaser, R., Chi, M.T.H.: Overview. In: Chi, M.T.H., Glaser, R., Farr, M.J. (eds.) The Nature of Expertise. Lawrence Erbaum, Hillsdale (1988)
Gugerty, L., Olson, G.M.: Debugging by skilled and novice programmers. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, Boston, Massachusetts, United States, pp. 171–174 (1986)
Kinsner, W., Zhang, D., Wang, Y., Tsai, J.: Proceedings of the 4th IEEE International Conference on Cognitive Informatics (ICCI 2005). IEEE Computer Society Press, Los Alamitos (2005)
Koenemann, J., Robertson, S.: Expert problem solving strategies for problem comprehension. In: Proceedings of the Conference on Human Factors and Computing Systems (CHI 1991), New Orleans, LA, April 27 - May 2, pp. 125–130 (1991)
Martin, R.C.: Agile Software Development, Principles, Patterns, and Practices. Addison-Wesley, Massachusetts (2002)
Pennington, N.: Comprehension strategies in programming. In: Olson, G.M., Sheppard, S., Soloway, E. (eds.) Empirical Studies of Programmers: Second Workshop, pp. 100–113. Ablex. Publisher Coop., Norwood (1987)
Perkins, D.N., Martin, F.: Fragile knowledge and neglected strategies in novice programmers. In: Soloway, E., Iyengar, S. (eds.) Empirical Studies of Programmers, pp. 213–229. Albex Publisher Coop., Norwood (1986)
Petre, M., Blackwell, A.F.: A glimpse of expert programmers’ mental imagery. In: Proceedings of the 7th Workshop on Empirical Studies of Programmers, New York, pp. 109–123 (1997)
Priest, A.G., Lindsay, R.O.: New lights on novice-expert differences in Physics problem solving. British Journal of Psychology 83, 389–405 (1992)
Soloway, E., Ehrlich, K.: Empirical studies of programming knowledge. IEEE Transactions on Software Engineering 10(5), 595–609 (1984)
Spohrer, J.G., Soloway, E.: Analyzing the high frequency bugs in novice programs. In: Soloway, E., Iyengar, S. (eds.) Empirical Studies of Programmers, pp. 230–251. Albex Publisher Coop., Norwood (1996)
Vessey, I.: Expertise in debugging computer programs. International Journal of Man-Machine Studies 18, 459–494 (1983)
Vessey, I.: Toward a theory of computer program bugs: an empirical test. International Journal of Man-Machine Studies 30, 23–46 (1989)
Visser, W.: Strategies in programming programmable controllers: a field study on professional programmer. In: Olson, G.M., Sheppard, S., Soloway, E. (eds.) Empirical studies of programmers: second workshop, pp. 217–230. Ablex Publishing Corporation, Norwood (1987)
Robillard, P.N., Kruchten, P., Patrick, D.: Software Engineering Process with the UPEDU. Addison-Wesley, Reading (2002)
Wiedenbeck, S., Fix, V., Scholtz, J.: Characteristics of the mental representations of novice and expert programmers: an empirical study. International Journal of Man.- Machine Studied 39, 793–812 (1993)
Xu, S., Rajlich, V.: Dialog-based protocol: an empirical research method for cognitive activity in software engineering. In: Proceedings of the 4th ACM/IEEE International Symposium on Empirical Software Engineering, Noosa Heads, Queensland, November 17-18, pp. 397–406 (2005)
Xu, S., Cui, Z., Liu, D., Chen, X.: Programmer’s expertise during test-driven software development. In: Proceedings of the 7th IEEE International Conference on Cognitive Informatics, Lake Tahoe, CA, August 6-8, pp. 456–461 (2007)
Rajlich, V., Xu, S.: Analogy of Incremental Program Development and Constructivist Learning. In: Proceedings of the 2nd IEEE International Conference on Cognitive Informatics, London, UK, August 18-20, pp. 98–105 (2003)
Ye, N., Salvendy, G.: Expert-novice knowledge of computer programming at different levels of abstraction. Ergonomics 39(3), 461–481 (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Xu, S., Du, W. (2010). Programming Expertise during Incremental Software Development: An Empirical Study. In: Lee, R. (eds) Computer and Information Science 2010. Studies in Computational Intelligence, vol 317. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15405-8_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-15405-8_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-15404-1
Online ISBN: 978-3-642-15405-8
eBook Packages: EngineeringEngineering (R0)