Anchor Code: Modularity as Evidence for Conceptual Learning and Computational Practices of Students Using a Code-First Environment

In response to increasing calls to include computational thinking (CT) in K-12 education, some researchers have argued for integrating science learning and CT. In that vein, this paper investigates conceptual learning and computational practices through the use of a code-first modeling environment called Frog Pond in a middle school classroom. The environment was designed to enable learners to explore models of evolutionary shifts through domain-specific agent-based visual programming. It was implemented as a curricular unit in seventh grade science class. We analyzed video and log data of two contrasting student pairs. This paper presents one of our findings: Development of modular core functional code-units or what we call anchor code. Anchor code is a body of code that creates a stable base from which further explorations take place. We argue that anchor code is evidence for conceptual learning and computational practices. Introduction & theoretical background There are increasing calls to integrate computational thinking (CT) into K-12 education (e.g., diSessa, 2000; Weintrop et al., 2016; Wilensky et al., 2014; Wing, 2006). One thrust of this work has been to bring computational tools directly into science classrooms to help learners engage in authentic scientific practices and grapple with difficult concepts (e.g., Papert, 1980; Sengupta et al., 2013; Weintrop et al., 2016). Computation can help enrich science education by bringing tools, practices, and methods that more authentically align with modern science fields. On the other hand, the study of science can provide a context in which computational thinking is powerful. This paper investigates student learning of conceptual ideas and computational practices around a “code first” (Horn et al., 2014) programming toolkit for adaptation in a middle school biology classroom. Using Camtasia video and computer log data from pairs co-constructing code, we investigate learning about evolutionary change and computational practices. To characterize CT practices, we draw on a taxonomy consisting of computational thinking practices specifically relevant to science and math education developed by Northwestern’s CT-STEM project (Weintrop et al., 2016). The scientific phenomenon we focus on is adaptation. An extensive body of work has shown that programming and computational models can help learners grapple with difficult concepts like natural selection and genetic drift (e.g., Centola, Wilensky, & McKenzie, 2000; Horn et al., 2014; Wagh, 2016; Wagh & Wilensky, 2013). Much of this work has used agent-based models (ABMs). Research has shown that programming agent-based models using graphical, domain-specific primitives (i.e. coding blocks) can help learners develop mechanistic understandings of evolutionary change (Wagh, 2016). This type of understanding is important for learners to move from thinking about evolution as a deterministic, directed process to thinking about it as a decentralized process that emerges from a multitude of events involving interactions between individual organisms. Frog Pond: An example of a code-first environment We designed a computer-based learning environment called Frog Pond to be used in conjunction with middle school science curriculum on evolution. Frog Pond is an example of a code-first modeling environment (Horn et al., 2014). A code-first modeling environment is one in which the primary mode of interaction is through code, it is extremely easy for a learner to create a program within a few minutes or even seconds of using the environment, and diverse outcomes can be observed from a small set of rules. Frog Pond is an agent-based code-first environment that uses a blocks-based interface. It was created using a blocks-based programming environment called NetTango (Horn & Wilensky, 2011) that provides an alternate blocks-based interface to NetLogo (Wilensky, 1999).