ABSTRACT
History has given us the array as the fundamental data structure to present to students within the CS1 curriculum. However, with the recent growth in popularity of object-oriented languages for CS1 (C++, Java, C#), and with that, the acceptance of the objects-first or objects-early approach to teaching CS1, it becomes imperative that we re-evaluate our long-held beliefs about what is appropriate to teach. It is our position that the first data structure that students are exposed to should not be arrays, but rather some other form of collection. We will give some examples of how to use <i>java.util.HashMap</i> and some of the other Java Collections classes in substitution of arrays. We also present data concerning the academic performance of students using arrays versus those using Java Collections for CS1 lab exercises.
- Alphonce, C.G. and Ventura, P.R., Object orientation in CS1-CS2 by design, in 7th annual conference on Innovation and Technology in Computer Science Education. 2002: Aarhus, Denmark. p. 70--74. Google ScholarDigital Library
- Alphonce, C.G. and Ventura, P.R., Using Graphics to Support the Teaching of Fundamental Object Oriented Principles, in OOPSLA 2003 Educator's Symposium. 2003: Anaheim, California. Google ScholarDigital Library
- Atchison, W.F., et al., Curriculum 68: Recommendations for academic programs in computer science: A report of the ACM curriculum committee on computer science. Communications of the ACM, 1968. 11(3): p. 151--197. Google ScholarDigital Library
- Austing, R.H., et al., Curriculum '78: Recommendations for the undergraduate program in computer science- a report of the ACM curriculum committee on computer science. Communications of the ACM, 1979. 22(3): p. 147--166. Google ScholarDigital Library
- Backus, J., The history of Fortran I, II, and III. ACM SIGPLAN Notices, 1978. 13(8): p. 165--180. Google ScholarDigital Library
- Bauer, F.L. and Wössner, H., The "Plankalkül" of Konrad Zuse: A forerunner of today's programming languages. Communications of the ACM, 1972. 15(7): p. 678--685. Google ScholarDigital Library
- CC2001, The ACM/IEEE joint task force on the "Model Curricula for Computing" final report -- computing curricula 2001, computer science volume. 2001.Google Scholar
- Giloi, W.K., Konrad Zuse's Plankalkül: The first high-level, "non von Neumann" programming language. IEEE Annals of the History of Computing, 1997. 19(2): p. 17--24. Google ScholarDigital Library
- Gries, D., Where is programming Methodology these days? SIGCSE Bulletin, 2002. 34(4): p. 5--7. Google ScholarDigital Library
- Howe, E., Thornton, M., and Weide, B.W., Components-First approaches to CS1/CS2: Principles and practice, in Proceedings of the 35th SIGCSE technical symposium on Computer Science Education. 2004, ACM Press: Norfolk, VA. Google ScholarDigital Library
- McCormick, J.W., Teaching Ada by the book: The pedagogy of Ada in CS1 (panel), in Proceedings of the conference on TRI-Ada '93. 1993, ACM Press: Seattle, WA. p. 162--167. Google ScholarDigital Library
- Pratt, T.W., Programming languages: design and implementation. 2nd ed. 1984, Englewood Cliffs, N.J.: Prentice-Hall. xix, 604. Google ScholarDigital Library
- Sebesta, R.W., Concepts of programming languages. 6th ed. 2003, Boston: Addison-Wesley. cm. Google ScholarDigital Library
- Sethi, R., Programming languages: concepts and constructs. 2nd ed. 1996, Reading, Mass.: Addison-Wesley. Google ScholarDigital Library
- Tucker, A.B., et al., Computing Curricula 1991: Report of the ACM/IEEE-CS Joint Curriculum Task Force. 1990. Google Scholar
- Tucker, A.B. and Noonan, R., Programming languages: principles and paradigms. 1st ed. 2002, Dubuque, Iowa: McGraw-Hill. Google ScholarDigital Library
- Watt, D.A., Programming language concepts and paradigms. Prentice Hall international series in computer science. 1990, New York: Prentice Hall. Google ScholarDigital Library
Index Terms
- Ancestor worship in CS1: on the primacy of arrays
Recommendations
Wanted: CS1 students. no experience required
This paper reports research on the effect of prior programming experience on success in an objects-first CS1. In an objects-first, approach students are taught from the very beginning to think in terms of objects and the fundamentals of object-oriented ...
Wanted: CS1 students. no experience required
SIGCSE '04: Proceedings of the 35th SIGCSE technical symposium on Computer science educationThis paper reports research on the effect of prior programming experience on success in an objects-first CS1. In an objects-first, approach students are taught from the very beginning to think in terms of objects and the fundamentals of object-oriented ...
From objects-first to design-first with multimedia and intelligent tutoring
ITiCSE '05: Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education"Objects-first" is an increasingly popular strategy for teaching object-oriented programming by introducing the concepts of objects, classes, and instances before procedural elements of a programming language. Still, this approach emphasizes coding ...
Comments