{"title":"代码是如何形成的:研究学生的程序演变","authors":"Brian A. Danielak","doi":"10.1080/07370008.2022.2044330","DOIUrl":null,"url":null,"abstract":"Abstract This paper focuses on a historically understudied area in computing education: attending to students’ *design thinking* in university-level introductory programming courses. I offer an account of one student—“Rebecca”—and her experiences and code from a second-semester course on programming concepts for engineers. Using data from both code snapshots and clinical interviews, I explicate both the challenges of studying students’ software design processes and the potential for such study to inform accounts of teaching and learning. My analysis focuses on two related aspects of Rebecca’s code for a multi-week class project: 1. The origin, nature, and evolution of unusual structural and behavioral features of Rebecca’s code 2. The subtle, yet complex reasons that led Rebecca to make particular design choices in her codeMy data comes from ethnographic observation of Rebecca’s class, fine-grained compile-time snapshots of Rebecca’s codebase, and semistructured interviews with Rebecca. I first present an analysis of only Rebecca’s final submitted code (what an instructor would typically see) detailing Rebecca’s unusual use of file-scanning loops and her seven-fold repetition of a particular code chunk (once for each day of the week). I then augment that analysis with code snapshot history and data from semi-structured interviews with Rebecca. This augmented analysis reveals _affect_ [@hannula_affect_2004; @eynde_case_2006] and _framing_ [@van_de_sande_achieving_2012; @mestre_resources_2005] offer substantial explanatory power for understanding why Rebecca made particular design choices.","PeriodicalId":47945,"journal":{"name":"Cognition and Instruction","volume":"40 1","pages":"266 - 303"},"PeriodicalIF":2.3000,"publicationDate":"2022-03-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":"{\"title\":\"How Code Takes Shape: Studying a Student’s Program Evolution\",\"authors\":\"Brian A. Danielak\",\"doi\":\"10.1080/07370008.2022.2044330\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Abstract This paper focuses on a historically understudied area in computing education: attending to students’ *design thinking* in university-level introductory programming courses. I offer an account of one student—“Rebecca”—and her experiences and code from a second-semester course on programming concepts for engineers. Using data from both code snapshots and clinical interviews, I explicate both the challenges of studying students’ software design processes and the potential for such study to inform accounts of teaching and learning. My analysis focuses on two related aspects of Rebecca’s code for a multi-week class project: 1. The origin, nature, and evolution of unusual structural and behavioral features of Rebecca’s code 2. The subtle, yet complex reasons that led Rebecca to make particular design choices in her codeMy data comes from ethnographic observation of Rebecca’s class, fine-grained compile-time snapshots of Rebecca’s codebase, and semistructured interviews with Rebecca. I first present an analysis of only Rebecca’s final submitted code (what an instructor would typically see) detailing Rebecca’s unusual use of file-scanning loops and her seven-fold repetition of a particular code chunk (once for each day of the week). I then augment that analysis with code snapshot history and data from semi-structured interviews with Rebecca. This augmented analysis reveals _affect_ [@hannula_affect_2004; @eynde_case_2006] and _framing_ [@van_de_sande_achieving_2012; @mestre_resources_2005] offer substantial explanatory power for understanding why Rebecca made particular design choices.\",\"PeriodicalId\":47945,\"journal\":{\"name\":\"Cognition and Instruction\",\"volume\":\"40 1\",\"pages\":\"266 - 303\"},\"PeriodicalIF\":2.3000,\"publicationDate\":\"2022-03-18\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"3\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Cognition and Instruction\",\"FirstCategoryId\":\"102\",\"ListUrlMain\":\"https://doi.org/10.1080/07370008.2022.2044330\",\"RegionNum\":1,\"RegionCategory\":\"心理学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q2\",\"JCRName\":\"PSYCHOLOGY, EDUCATIONAL\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Cognition and Instruction","FirstCategoryId":"102","ListUrlMain":"https://doi.org/10.1080/07370008.2022.2044330","RegionNum":1,"RegionCategory":"心理学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"PSYCHOLOGY, EDUCATIONAL","Score":null,"Total":0}
How Code Takes Shape: Studying a Student’s Program Evolution
Abstract This paper focuses on a historically understudied area in computing education: attending to students’ *design thinking* in university-level introductory programming courses. I offer an account of one student—“Rebecca”—and her experiences and code from a second-semester course on programming concepts for engineers. Using data from both code snapshots and clinical interviews, I explicate both the challenges of studying students’ software design processes and the potential for such study to inform accounts of teaching and learning. My analysis focuses on two related aspects of Rebecca’s code for a multi-week class project: 1. The origin, nature, and evolution of unusual structural and behavioral features of Rebecca’s code 2. The subtle, yet complex reasons that led Rebecca to make particular design choices in her codeMy data comes from ethnographic observation of Rebecca’s class, fine-grained compile-time snapshots of Rebecca’s codebase, and semistructured interviews with Rebecca. I first present an analysis of only Rebecca’s final submitted code (what an instructor would typically see) detailing Rebecca’s unusual use of file-scanning loops and her seven-fold repetition of a particular code chunk (once for each day of the week). I then augment that analysis with code snapshot history and data from semi-structured interviews with Rebecca. This augmented analysis reveals _affect_ [@hannula_affect_2004; @eynde_case_2006] and _framing_ [@van_de_sande_achieving_2012; @mestre_resources_2005] offer substantial explanatory power for understanding why Rebecca made particular design choices.
期刊介绍:
Among education journals, Cognition and Instruction"s distinctive niche is rigorous study of foundational issues concerning the mental, socio-cultural, and mediational processes and conditions of learning and intellectual competence. For these purposes, both “cognition” and “instruction” must be interpreted broadly. The journal preferentially attends to the “how” of learning and intellectual practices. A balance of well-reasoned theory and careful and reflective empirical technique is typical.