Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Teaching roles of variables in elementary programming courses

Published: 28 June 2004 Publication History

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.
[2]
M. Ben-Ari. Constructivism in computer science education. Journal of Computers in Mathematics and Science Teaching, 20(1):45--73, 2001.
[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.
[4]
C. Bereiter. Constructivism, socioculturalism and Popper's world. Educational Researcher, 23(7):21--23, 1994.
[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.
[6]
F. Détienne. Software Design-Cognitive Aspects. Springer-Verlag, 2002.
[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.
[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.
[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.
[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.
[11]
S. K. Madison. A Study of College Students' Construct of Parameter Passing: Implications for Instruction. PhD thesis, University of Wisconsin, 1995.
[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.
[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.
[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.
[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.
[16]
J. Sajaniemi. Roles of variables home page. http://www.cs.joensuu.fi/~saja/var_roles/, 2003. (Accessed Nov. 12th, 2003).
[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.
[18]
J. Sajaniemi and M. Kuittinen. An experiment on using roles of variables in teaching introductory programming. Computer Science Education, In press.
[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.
[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.
[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.
[22]
E. Wallingford. The elementary patterns home page. http://www.cs.uni.edu/~wallingf/patterns/elementary/, 2003. (Accessed Nov. 12th, 2003).

Cited By

View all
  • (2023)A Bug's New Life: Creating Refute Questions from Filtered CS1 Student Code SnapshotsProceedings of the ACM Conference on Global Computing Education Vol 110.1145/3576882.3617916(7-14)Online publication date: 5-Dec-2023
  • (2022)Exploring Math + CS in a Secondary Education Methods CourseProceedings of the 53rd ACM Technical Symposium on Computer Science Education - Volume 110.1145/3478431.3499405(689-695)Online publication date: 22-Feb-2022
  • (2021)Improving Undergraduate Novice Programmer Comprehension through Case-Based Teaching with Roles of Variables to Provide ScaffoldingInformation10.3390/info1210042412:10(424)Online publication date: 16-Oct-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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
Published in SIGCSE Volume 36, Issue 3

Check for updates

Author Tags

  1. elementary programming
  2. roles of variables
  3. teaching

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)19
  • Downloads (Last 6 weeks)1
Reflects downloads up to 03 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)A Bug's New Life: Creating Refute Questions from Filtered CS1 Student Code SnapshotsProceedings of the ACM Conference on Global Computing Education Vol 110.1145/3576882.3617916(7-14)Online publication date: 5-Dec-2023
  • (2022)Exploring Math + CS in a Secondary Education Methods CourseProceedings of the 53rd ACM Technical Symposium on Computer Science Education - Volume 110.1145/3478431.3499405(689-695)Online publication date: 22-Feb-2022
  • (2021)Improving Undergraduate Novice Programmer Comprehension through Case-Based Teaching with Roles of Variables to Provide ScaffoldingInformation10.3390/info1210042412:10(424)Online publication date: 16-Oct-2021
  • (2021)A Call for Research that Explores Relationships between Computing and Mathematical Thinking and Activity in RUMEInternational Journal of Research in Undergraduate Mathematics Education10.1007/s40753-020-00129-2Online publication date: 7-Jan-2021
  • (2020)Algoritma yazma ve öğrenimi hakkında meslek yüksekokulu öğrencilerinin görüşleriOpinions of vocational school students about algorithm writing and learningBalıkesir Üniversitesi Fen Bilimleri Enstitüsü Dergisi10.25092/baunfbed.68083422:1(367-380)Online publication date: 10-Jan-2020
  • (2018)Adaptive remediation for novice programmers through personalized prescriptive quizzesProceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education10.1145/3197091.3197097(51-56)Online publication date: 2-Jul-2018
  • (2018)Design, Implementation, and Evaluation of an Educational Software for the Teaching of the Programming Variable ConceptResearch on e-Learning and ICT in Education10.1007/978-3-319-95059-4_19(315-322)Online publication date: 5-Oct-2018
  • (2017)Evaluating the Effectiveness Roles of Variables in the Novice Programmers LearningJournal of Educational Computing Research10.1177/073563311770731256:2(181-201)Online publication date: 10-May-2017
  • (2017)Problem Solving and Algorithmic Development with FlowchartsProceedings of the 12th Workshop on Primary and Secondary Computing Education10.1145/3137065.3137080(25-34)Online publication date: 8-Nov-2017
  • (2017)Variable EvaluationProceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education10.1145/3017680.3017724(345-350)Online publication date: 8-Mar-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media