Skip to main content

Programming Expertise during Incremental Software Development: An Empirical Study

  • Chapter
Book cover Computer and Information Science 2010

Part of the book series: Studies in Computational Intelligence ((SCI,volume 317))

  • 758 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Adelson, B., Soloway, E.: The role of domain experience in software design. IEEE transaction on software engineering 11, 1351–1360 (1985)

    Article  Google Scholar 

  2. Beck, K.: Extreme Programming Explained. Addison-Wesley, Massachusetts (2000)

    Google Scholar 

  3. Chase, W.G., Simon, H.A.: Perception in chess. Cognitive Psychology 1, 55–81 (1971)

    Google Scholar 

  4. Davies, S.P.: Models and theories of programming strategy. International Journal of Man-Machine Studies 39(2), 237–267 (1993)

    Article  Google Scholar 

  5. Davies, S.P.: Knowledge restructuring and the acquisition of programming expertise. International Journal of Human-Computer Studies 40, 703–725 (1994)

    Article  Google Scholar 

  6. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Massachusetts (1999)

    Google Scholar 

  7. Gamma, E., Kent, B.: Contributing to Eclipse: Principles, Patterns, and Plugins. Addison-Wesley, Reading (2003)

    Google Scholar 

  8. Gilmore, D.J.: Expert programming knowledge: a strategic approach. Psychology of Programming, 223–233 (1990)

    Google Scholar 

  9. Gilmore, D.J., Green, T.R.G.: Programming plans and programming expertise. The Quarterly Journal of Experimental Psychology 40(1), 423–442 (1988)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Martin, R.C.: Agile Software Development, Principles, Patterns, and Practices. Addison-Wesley, Massachusetts (2002)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Priest, A.G., Lindsay, R.O.: New lights on novice-expert differences in Physics problem solving. British Journal of Psychology 83, 389–405 (1992)

    Google Scholar 

  19. Soloway, E., Ehrlich, K.: Empirical studies of programming knowledge. IEEE Transactions on Software Engineering 10(5), 595–609 (1984)

    Article  Google Scholar 

  20. 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)

    Google Scholar 

  21. Vessey, I.: Expertise in debugging computer programs. International Journal of Man-Machine Studies 18, 459–494 (1983)

    Google Scholar 

  22. Vessey, I.: Toward a theory of computer program bugs: an empirical test. International Journal of Man-Machine Studies 30, 23–46 (1989)

    Google Scholar 

  23. 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)

    Google Scholar 

  24. Robillard, P.N., Kruchten, P., Patrick, D.: Software Engineering Process with the UPEDU. Addison-Wesley, Reading (2002)

    Google Scholar 

  25. 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)

    Article  Google Scholar 

  26. 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)

    Google Scholar 

  27. 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)

    Google Scholar 

  28. 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)

    Google Scholar 

  29. Ye, N., Salvendy, G.: Expert-novice knowledge of computer programming at different levels of abstraction. Ergonomics 39(3), 461–481 (1996)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics