ABSTRACT
The development of high level programming knowledge is not well known and there are no direct techniques to evaluate and measure it. Measurement of programming skills is mostly based on the evaluation of programs written by students but the final programs do not reveal the correctness of students' mental models of programming concepts. This paper presents a new analysis model that can be used to evaluate students' mental models based on their program writing protocols with three different measures. The analysis model is based on the concept of roles of variables and extends the methodology of Rist's theory of schema expansion in programming but has a better coverage and is more finely grained than Rist's model. This paper also reports a study in which the applicability and the general validity of the model was studied by following the emergence of novice students' programming knowledge during their first programming course. The results suggest that the model is generally applicable for analyzing programming knowledge in novice level and that the three measures can be applied when focusing on different aspects of this knowledge.
- B. Adelson. Problem solving and the development of abstract categories in programming languages. Memory and Cognition, 9(4):422--433, 1981.Google ScholarCross Ref
- B. Adelson. When novices surpass experts: The difficulty of a task may increase with expertise. Journal of Experimental Psychology: Learning, Memory and Cognition, 10(3):483--495, 1984.Google ScholarCross Ref
- J. R. Anderson. Cognitive Psychology and Its Implications. Worth Publishers, 5th edition, 2000.Google Scholar
- J. B. Black, D. S. Kay, and E. Soloway. Goal and plan knowledge representations: From stories to text editors and programs. In J. M. Carroll, editor, Interfacing Thought: Cognitive Aspects of Human-Computer Interaction. MIT Press, 1986. Google ScholarDigital Library
- P. Byckling and J. Sajaniemi. Roles of variables and programming skills improvement. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education (SIGCSE 2006), pages 413--417. Association for Computing Machinery, 2006. Google ScholarDigital Library
- S. P. Davies. Knowledge restructuring and the aqcuisition of programming expertise. International Journal of Human-Computer Studies, 40:703--726, 1994. Google ScholarDigital Library
- F. Détienne. Expert programming knowledge: A schema-based approach. In J. M. Hoc, T. R. G. Green, R. Samurcay, and D. J. Gilmore, editors, Psychology of Programming, pages 205--222. Academic Press, 1990.Google ScholarCross Ref
- F. Détienne. Program understanding and knowledge organization: the influence of acquired schemas. In P. Falzon, editor, Cognitive Ergonomics: Understanding, Learning and Designing Human-Computer Interaction, pages 245--256. Academic Press, 1990. Google ScholarDigital Library
- F. Détienne. Software Design---Cognitive Aspects. Springer-Verlag, 2002. Google ScholarDigital Library
- D. J. Gilmore. Expert programming knowledge: A strategic approach. In J.-M. Hoc, T. R. G. Green, R. Samurcay, and D. J. Gilmore, editors, Psychology of Programming, People and Computer Series, pages 223--234. Academic Press, 1990.Google Scholar
- S. Madison and J. Gifford. Modular programming: novice misconceptions. Journal of Research on Technology in Education, 34:217--229, 2002.Google ScholarCross Ref
- R. S. Rist. Plans in programming: Definition, demonstration and development. In E. Soloway and S. Iyengar, editors, Empirical Studies of Programmers, pages 28--47. Norwood, NJ: Ablex Publishing Company, 1986. Google ScholarDigital Library
- R. S. Rist. Schema creation in programming. Cognitive Science, 13:389--414, 1989.Google ScholarCross Ref
- R. S. Rist. Knowledge creation and retrieval in program design: A comparison of novice and intermediate student programmers. Human-Computer Interaction, 6:1--46, 1991.Google ScholarDigital Library
- S. P. Robertson. Knowledge representations used by computer programmers. Journal of the Washington Academy of Sciences, 80(3):116--137, 1990.Google Scholar
- A. Robins, J. Rountree, and N. Rountree. Learning and teaching programming: A review and discussion. Computer Science Education, 13(2):137--172, 2003.Google ScholarCross Ref
- 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/, 2006. (Accessed Jul. 15th, 2006).Google Scholar
- J. Sajaniemi, M. Ben-Ari, P. Byckling, P. Gerdt, and Y. Kulikova. Roles of variables in three programming paradigms. Computer Science Education, in press.Google Scholar
- J. Sajaniemi and M. Kuittinen. An experiment on using roles of variables in teaching introductory programming. Computer Science Education, 15(1):59--82, 2005.Google ScholarCross Ref
- J. Sajaniemi and R. Navarro Prieto. Roles of variables in experts' programming knowledge. In P. Romero, J. Good, S. Bryant, and E. A. Chaparro, editors, Proceedings of the 17th Annual Workshop of the Psychology of Programming Interest Group (PPIG 2005), pages 145--159, 2005.Google Scholar
- E. Soloway and K. Ehrlich. Empirical studies of programming knowledge. IEEE Transactions on Software Engineering, SE-10:595--609, 1984.Google ScholarDigital Library
- E. Soloway, K. Ehrlich, J. Bonar, and J. Greenspan. What do novices know about programming? In A. Badre and B. Shneiderman, editors, Directions in Human Computer Interaction. Ablex Publishing Corporation, 1982.Google Scholar
- L. E. Winslow. Programming pedagogy---a psychological overview. SIGCSE Bull., 28(3):17--22, 1996. Google ScholarDigital Library
Index Terms
- A role-based analysis model for the evaluation of novices' programming knowledge development
Recommendations
Roles of variables in object-oriented programming
OOPSLA '05: Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsRoles can be assigned to occurrences of variables in programs according to a small number of stereotypical patterns of use. Studies on explicitly teaching roles to novices learning procedural programming have shown that roles are an excellent ...
Estimating programming knowledge with Bayesian knowledge tracing
ITiCSE '09: Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science educationIn this paper we present a concept for three-phase measuring method, which can be used to obtain data on student learning. The focus of this method lies on the technical aspects of learning programming, answering questions like which programming ...
Pockets: a tool to support exploratory programming for novices and educators
ESEC/FSE 2015: Proceedings of the 2015 10th Joint Meeting on Foundations of Software EngineeringExploratory programming is one of the programming techniques, and it is considered to be an effective way to improve programming skills for novices. However, there is no existing system or programming environment educating exploratory programming for ...
Comments