skip to main content
article

Teaching roles of variables in elementary programming courses

Published:28 June 2004Publication History
Skip Abstract Section

Abstract

Computer programming is a difficult skill for many students and new methods and techniques to help novices to learn programming are needed. This paper presents roles of variables as a new concept that can be used to assist in learning and gives detailed instructions on techniques to present roles to novices. These techniques are based on current learning theories and they have been used in a classroom experiment comparing traditional teaching with role-based teaching. The results suggest that the introduction of roles provides students a new conceptual framework that enables them to mentally process programs in a way similar to that of good code comprehenders; the use of role-based animation seems to assist in the adoption of role knowledge and expert-like programming skill.

References

  1. J. R. Anderson. Cognitive Psychology and Its Implications. Worth Publishers, 5th edition, 2000.Google ScholarGoogle Scholar
  2. M. Ben-Ari. Constructivism in computer science education. Journal of Computers in Mathematics and Science Teaching, 20(1):45--73, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Ben-Ari and J. Sajaniemi. Roles of variables as seen by CS educators. In 9th Annual Conference on Innovation and Technology in Computer Science Education (ITICSE'04), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. Bereiter. Constructivism, socioculturalism and Popper's world. Educational Researcher, 23(7):21--23, 1994.Google ScholarGoogle Scholar
  5. M. J. Clancy and M. C. Linn. Patterns and pedagogy. In Proc. of the 30th SIGCSE Technical Symposium on CS Education, volume 31(1) of ACM SIGCSE Bulletin, pages 37--42, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. F. Détienne. Software Design-Cognitive Aspects. Springer-Verlag, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. E. Fleury. Parameter passing: The rules the students construct. In Proc. of the 22nd SIGCSE Technical Symposium on CS Education, volume 23(1) of ACM SIGCSE Bulletin, pages 283--286, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Good and P. Brna. Toward authentic measures of program comprehension. In EASE and PPIG 2003, Papers from the Joint Conference at Keele University, pages 29--49, 2003.Google ScholarGoogle Scholar
  9. S. Holland, R. Griffiths, and M. Woodman. Avoiding object misconceptions. In Proc. of the 28th SIGCSE Technical Symposium on CS Education, volume 29(1) of ACM SIGCSE Bulletin, pages 131--134, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. D. Hundhausen, S. A. Douglas, and J. T. Stasko. A meta-study of algorithm visualization effectiveness. Journal of Visual Languages and Computing, 13:259--290, 2002.Google ScholarGoogle ScholarCross RefCross Ref
  11. S. K. Madison. A Study of College Students' Construct of Parameter Passing: Implications for Instruction. PhD thesis, University of Wisconsin, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. P. Mulholland and M. Eisenstadt. Using software to teach programming: Past, present and future. In J. Stasko, J. Domingue, M. H. Brown, and B. A. Price, editors, Software Visualization -- Programming as a Multimedia Experience, pages 399--408. The MIT Press, 1998.Google ScholarGoogle Scholar
  13. D. Nguyen. Design patterns for data structures. In Proc. of the 29th SIGCSE Technical Symposium on CS Education, volume 30(1) of ACM SIGCSE Bulletin, pages 336--340, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. N. Pennington. Comprehension strategies in programming. In G. M. Olson, S. Sheppard, and E. Soloway, editors, Empirical Studies of Programmers: Second Workshop, pages 100--113. Ablex Publishing Company, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Sajaniemi. An empirical analysis of roles of variables in novice-level procedural programs. In Proceedings of IEEE 2002 Symposia on Human Centric Computing Languages and Environments (HCC'02), pages 37--39. IEEE Computer Society, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. Sajaniemi. Roles of variables home page. http://www.cs.joensuu.fi/~saja/var_roles/, 2003. (Accessed Nov. 12th, 2003).Google ScholarGoogle Scholar
  17. J. Sajaniemi and M. Kuittinen. Program animation based on the roles of variables. In Proc. of ACM 2003 Symposium on Software Visualization (SoftVis 2003), pages 7--16. Association for Computing Machinery, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. Sajaniemi and M. Kuittinen. An experiment on using roles of variables in teaching introductory programming. Computer Science Education, In press.Google ScholarGoogle Scholar
  19. R. Samurcay. The concept of variable in programming: Its meaning and use in problem-solving by novice programmers. In E. Soloway and J. C. Spohrer, editors, Studying the Novice Programmer, pages 161--178. Lawrence Erlbaum Associates, Hillsdale, NJ, 1989.Google ScholarGoogle Scholar
  20. D. Sleeman, R. T. Putnam, J. A. Baxter, and L. Kuspa. A summary of misconceptions of high school Basic programmers. In E. Soloway and J. C. Spohrer, editors, Studying the Novice Programmer, pages 301--314. Lawrence Erlbaum Associates, Hillsdale, NJ, 1989.Google ScholarGoogle Scholar
  21. E. von Glasersfeld. A constructivist approach to teaching. In P. Steffe and J. Gale, editors, Constructivism in Education, pages 3--15. Lawrence Erlbaum Associates, Hillsdale (NJ), 1995.Google ScholarGoogle Scholar
  22. E. Wallingford. The elementary patterns home page. http://www.cs.uni.edu/~wallingf/patterns/elementary/, 2003. (Accessed Nov. 12th, 2003).Google ScholarGoogle Scholar

Index Terms

  1. Teaching roles of variables in elementary programming courses

      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

      Full Access

      • Published in

        cover image ACM SIGCSE Bulletin
        ACM SIGCSE Bulletin  Volume 36, Issue 3
        September 2004
        280 pages
        ISSN:0097-8418
        DOI:10.1145/1026487
        Issue’s Table of Contents
        • cover image ACM Conferences
          ITiCSE '04: Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education
          June 2004
          296 pages
          ISBN:1581138369
          DOI:10.1145/1007996

        Copyright © 2004 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 28 June 2004

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader