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.
- J. R. Anderson. Cognitive Psychology and Its Implications. Worth Publishers, 5th edition, 2000.Google Scholar
- M. Ben-Ari. Constructivism in computer science education. Journal of Computers in Mathematics and Science Teaching, 20(1):45--73, 2001. Google ScholarDigital Library
- 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 ScholarDigital Library
- C. Bereiter. Constructivism, socioculturalism and Popper's world. Educational Researcher, 23(7):21--23, 1994.Google Scholar
- 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 ScholarDigital Library
- F. Détienne. Software Design-Cognitive Aspects. Springer-Verlag, 2002. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- S. K. Madison. A Study of College Students' Construct of Parameter Passing: Implications for Instruction. PhD thesis, University of Wisconsin, 1995. Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- J. Sajaniemi. Roles of variables home page. http://www.cs.joensuu.fi/~saja/var_roles/, 2003. (Accessed Nov. 12th, 2003).Google Scholar
- 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 ScholarDigital Library
- J. Sajaniemi and M. Kuittinen. An experiment on using roles of variables in teaching introductory programming. Computer Science Education, In press.Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- E. Wallingford. The elementary patterns home page. http://www.cs.uni.edu/~wallingf/patterns/elementary/, 2003. (Accessed Nov. 12th, 2003).Google Scholar
Index Terms
- Teaching roles of variables in elementary programming courses
Recommendations
Teaching roles of variables in elementary programming courses
ITiCSE '04: Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science educationComputer 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 ...
Roles of variables and programming skills improvement
Roles of variables capture tacit expert knowledge in a form that can be taught in introductory programming courses. A role describes some stereotypic use of variables, and only ten roles are needed to cover 99% of all variables in novice-level programs. ...
Roles of variables and programming skills improvement
SIGCSE '06: Proceedings of the 37th SIGCSE technical symposium on Computer science educationRoles of variables capture tacit expert knowledge in a form that can be taught in introductory programming courses. A role describes some stereotypic use of variables, and only ten roles are needed to cover 99% of all variables in novice-level programs. ...
Comments