The abstraction transition taxonomy: developing desired learning outcomes through the lens of situated cognition

We report on a post-hoc analysis of introductory programming lecture materials. The purpose of this analysis is to identify what knowledge and skills we are asking students to acquire, as situated in the activity, tools, and culture of what programmers do and how they think. The specific materials analyzed are the 133 Peer Instruction questions used in lecture to support cognitive apprenticeship -- honoring the situated nature of knowledge. We propose an Abstraction Transition Taxonomy for classifying the kinds of knowing and practices we engage students in as we seek to apprentice them into the programming world. We find students are asked to answer questions expressed using three levels of abstraction: English, CS Speak, and Code. Moreover, many questions involve asking students to transition between levels of abstraction within the context of a computational problem. Finally, by applying our taxonomy in classifying a range of introductory programming exams, we find that summative assessments (including our own) tend to emphasize a small range of the skills fostered in students during the formative/apprenticeship phase.

[1]  Ursula Fuller,et al.  Developing a computer science-specific learning taxonomy , 2007, ITiCSE-WGR '07.

[2]  A. Collins,et al.  Situated Cognition and the Culture of Learning , 1989 .

[3]  Benjamin S. Bloom,et al.  A Taxonomy for Learning, Teaching, and Assessing: A Revision of Bloom's Taxonomy of Educational Objectives , 2000 .

[4]  Etienne Wenger,et al.  Communities of Practice: Learning, Meaning, and Identity , 1998 .

[5]  Raymond Lister,et al.  Relationships between reading, tracing and writing skills in introductory programming , 2008, ICER '08.

[6]  Richard T. White,et al.  Book Review: Evaluating the Quality of Learning: The SOLO Taxonomy (Structure of the Observed Learning Outcome) , 1983 .

[7]  Tim Wahls,et al.  The Case for Pair Programming in the Computer Science Classroom , 2011, TOCE.

[8]  Stephen H. Edwards,et al.  DCER: sharing empirical computer science education data , 2008, ICER '08.

[9]  Raymond Lister,et al.  Some empirical results for neo-Piagetian reasoning in novice programmers and the relationship to code explanation questions , 2012, ACE 2012.

[10]  Susan E. Newman,et al.  Cognitive Apprenticeship: Teaching the Craft of Reading, Writing, and Mathematics. Technical Report No. 403. , 1987 .

[11]  Raymond Lister,et al.  Not seeing the forest for the trees: novice programmers and the SOLO taxonomy , 2006, ITICSE '06.

[12]  Charles E. McDowell,et al.  The impact of pair programming on student performance, perception and persistence , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[13]  Ray Bareiss,et al.  Coaching via cognitive apprenticeship , 2010, SIGCSE.

[14]  Raymond Lister,et al.  The BRACElet 2009.1 (Wellington) specification , 2009, ACE '09.

[15]  Ursula Fuller,et al.  Is Bloom's taxonomy appropriate for computer science? , 2006, Baltic Sea '06.

[16]  Tim Wahls,et al.  The effects of pair-programming on individual programming skill , 2008, SIGCSE '08.

[17]  Quintin I. Cutts,et al.  Computing as the 4th "R": a general education approach to computing education , 2011, ICER.

[18]  K. A. Ericsson,et al.  The Influence of Experience and Deliberate Practice on the Development of Superior Expert Performance , 2006 .

[19]  Mordechai Ben-Ari,et al.  Learning computer science concepts with scratch , 2010, ICER '10.

[20]  Edward Palmer,et al.  Developing authentic problem solving skills in introductory computing classes , 2009, SIGCSE '09.