Abstract
What measurable effect do the language and paradigm used in early programming classes have on novice programmers' ability to do design? This work investigates the question by using data collected from 136 "first competency" students as part of a multi-national, multi-institutional study of students' approach to and attitudes toward design. Analysis of a number of surface characteristics of their designs found strikingly few differences between designs produced by students at schools that teach using objects-early, imperative-early, and functional-early paradigms. A similar lack of difference was found between students at C++-first and Java-first schools. While statistically significant differences are found for three characteristic comparisons across language and paradigm, these results seem to have little meaning for teaching given the complexity of the null hypotheses tested in those three cases. In particular, for the following design characteristics no statistically significant differences across language or paradigm of early instruction were found: attempt to address requirements, type of design produced, number of parts in design, recognition of ambiguity in design, and connectedness of design.
- Astrachan, O. L., Bruce, K. B., Koffman, E. B., Kolling, M., Reges, S. Resolved: objects early has failed. In Proceedings of SIGCSE. St. Louis, MO. March, 2005. 451--452. Google ScholarDigital Library
- Blaha, K., Monge, A. E., Sanders, D., Simon, B., VanDeGrift, T. Do students recognize ambiguity in software design? A multi-national, multi-institutional report. In Proceedings of the 27th International Conference on Software Engineering (ICSE). 2005. 615--616. Google ScholarDigital Library
- Bruegge, B., Dutoit, A. Object-Oriented Software Engineering. Prentice Hall. 2000. Google ScholarDigital Library
- Bursic, K. M., Atman, C. J. Information gathering: a critical step for quality in the design process. Quality Management Journal 4 (4). 1997. 60--75.Google Scholar
- Chen, T.-Y., Cooper, S., McCartney, R., Schwartzman, L. The (relative) importance of software design criteria. In Proceedings of ITiCSE. Monte da Caparica, Portugal. June, 2005. 34--38. Google ScholarDigital Library
- Fincher, S., Petre, M., Tenenberg, J., Blaha, K., Bouvier, D., Chen, T.-Y., Chinn, D., Cooper, S., Eckerdal, A., Johnson, H., McCartney, R., Monge, A., Mostrom, J. E., Powers, K., Ratcliffe, M., Robins, A., Sanders, D., Schwartzman, L., Simon, B., Stoker, C., Tew, A. E., VanDeGrift, T. A multi-national, multi-institutional study of student-generated software designs. In Proceedings of Kolin Kolistelut -- Koli Calling. 2004.Google Scholar
- Fix, V., Wiedenbeck, S., Scholtz, J. Mental representations of programs by novices and experts. In Proceedings of Interchi '93. April, 1993. 74--79. Google ScholarDigital Library
- Hadjerrouit, S. Java as first programming language: a critical evaluation. SIGCSE Bulletin 30 (2). June 1998. 43--47. Google ScholarDigital Library
- Hamilton, J. A., Murtagh, J. L., Zolier, R. G. Programming language impacts on learning. Ada Letters. September, 2000. 12--19. Google ScholarDigital Library
- Jeffries, R., Turner, A. A., Polson, P. G., Atwood, M. E. The processes involved in designing software. In Cognitive Skills and Their Acquisition. Erlbaum. Hillsdale, NJ. 1981. 255--283.Google Scholar
- Lahtinen, E., Ala-Mutka, K., Jarvinen, H.-M. A study of the difficulties of novice programmers. In Proceedings of ITiCSE'05. June, 2005. 14--18. Google ScholarDigital Library
- McCracken, W. M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B.-D., Laxer, C., Thomas, L., Utting, I., Wilusz, T. A multi-national, multi-institutional study of assessment of programming skills of first-year CS students. SIGCSE Bulletin 33(4), 2001. 125--140. Google ScholarDigital Library
- McCracken, M., Newstetter, W., Chastine, J. Misconceptions of designing: A descriptive study. In Proceedings of ITiCSE. Cracow, Poland. June, 1999. 48--51. Google ScholarDigital Library
- Or-bach, R., Lavy, I. Cognitive activities of abstraction in object orientation: an empirical study. SIGCSE Bulletin 36 (2). June, 2004. 82--86. Google ScholarDigital Library
- Tenenberg, J., Fincher, S., Blaha, K., Bouvier, D., Chen, T.-Y., Chinn, D., Cooper, S., Eckerdal, A., Johnson, H., McCartney, R., Monge, A., Mostrom, J. E., Petre, M., Powers, K., Ratcliffe, M., Robins, A., Sanders, D., Schwartzman, L., Simon, B., Stoker, C., Tew, A. E., VanDeGrift, T. Students Designing Software: A Multi-National, Multi-Institutional Study. In Informatics in Education, 4(1). 2005. 143--162.Google Scholar
- Vandenberg, S., Wollowski, M. Introducing computer science using a breadth-first approach and functional programming. In Proceedings of SIGCSE. Austin, TX. March, 2000. 180--184. Google ScholarDigital Library
- Weisert, C. Learning to program: it starts with procedural. Information Disciplines, Inc. June, 1997.Google Scholar
Index Terms
- Relationship of early programming language to novice generated design
Recommendations
Relationship of early programming language to novice generated design
SIGCSE '06: Proceedings of the 37th SIGCSE technical symposium on Computer science educationWhat measurable effect do the language and paradigm used in early programming classes have on novice programmers' ability to do design? This work investigates the question by using data collected from 136 "first competency" students as part of a multi-...
For me, programming is ...
ICER '09: Proceedings of the fifth international workshop on Computing education research workshopFun, interesting, hard, rewarding, and challenging: these are the most frequent responses of 697 students from five institutions at the end of a first programming course. Student experience with introductory programming courses is of interest to the ...
First-year students' impressions of pair programming in CS1
Pair programming, as part of the Agile Development process, has noted benefits in professional software development scenarios. These successes have led to a rise in use of pair programming in educational settings, particularly in Computer Science 1 (CS1)...
Comments