skip to main content
10.1145/1028664.1028700acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Ancestor worship in CS1: on the primacy of arrays

Published:23 October 2004Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. Backus, J., The history of Fortran I, II, and III. ACM SIGPLAN Notices, 1978. 13(8): p. 165--180. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. CC2001, The ACM/IEEE joint task force on the "Model Curricula for Computing" final report -- computing curricula 2001, computer science volume. 2001.Google ScholarGoogle Scholar
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gries, D., Where is programming Methodology these days? SIGCSE Bulletin, 2002. 34(4): p. 5--7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. Pratt, T.W., Programming languages: design and implementation. 2nd ed. 1984, Englewood Cliffs, N.J.: Prentice-Hall. xix, 604. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Sebesta, R.W., Concepts of programming languages. 6th ed. 2003, Boston: Addison-Wesley. cm. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Sethi, R., Programming languages: concepts and constructs. 2nd ed. 1996, Reading, Mass.: Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Tucker, A.B., et al., Computing Curricula 1991: Report of the ACM/IEEE-CS Joint Curriculum Task Force. 1990. Google ScholarGoogle Scholar
  16. Tucker, A.B. and Noonan, R., Programming languages: principles and paradigms. 1st ed. 2002, Dubuque, Iowa: McGraw-Hill. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Watt, D.A., Programming language concepts and paradigms. Prentice Hall international series in computer science. 1990, New York: Prentice Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Ancestor worship in CS1: on the primacy of arrays

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader