Modeling (developing and using models) is an essential science practice listed in the Next Generation Science Standards (NGSS). As is ‘Using mathematics and computational thinking’. In science, models are used to represent a system (or parts of a system), to help in the development of questions and explanations, and to communicate ideas about phenomena; they represent relationships among variables in order to explain phenomena. Interestingly, modeling is now taught as a practice in math classrooms as well thanks to the Common Core State Standards for Math (CCSSM). The modeling practice standards in NGSS and CCSSM are very closely aligned. Add computing to the mix, and you get the authentic STEM practice of computational modeling—widely used today in all STEM professions, where models are coded using programming tools to help model/simulate, understand, interrogate phenomena, and make predictions about them.
Computational modeling in science is that sweet spot at the intersection of science, math, and computing.
STEM+CT Integration
Coding and computational thinking (CT) are viewed as powerful tools that can/should be integrated in subjects such as Science, Math, Language Arts & Social Studies (among others) to promote rich learning and understanding in both computing and the host domain. Here is a snapshot (literally!) of the section on CT in STEM from Grover & Pea (2018)—
Science provides a great context for students to learn about key programming concepts such as variables (a hard to learn concept in intro programming), conditional logic, initialization, data. “Change” and “rate of change” are central ideas in science (and among NGSS’ cross-cutting science concepts) that perhaps provide a more intuitive context for learning variables – initializing them and updating them. Additionally, the immediate feedback provided by the visualization is powerful. Debugging the computational model forces learners into a “synergistic learning” (or mutually supportive) space at the intersection of science & CT where they examine whether their fault lies in the science aspects or the coding.
Over the last few years I’ve had the pleasure and good fortune of being a member of the expert group developing the PISA Math2021 Framework (that makes a start toward including CT), collaborating on efforts to examine frameworks for STEM+C integration, and best of all, co-leading STEM+CT projects that have involved integrating CT into pre-K science and math activities at home & school, leveraging math & CT synergies into middle school intro programming, and using computational modeling in middle and high school science (physics and biology) units.
The last one mentioned is C2STEM (short for Collaborative, Computational STEM): a large multi-institutional effort led by Vanderbilt University that includes Stanford University, SRI International, Looking Glass Ventures (my org), Salem State University, and ETR, along with school research sites in TN, CA, & MA. Briefly, C2STEM employs a learning-by-modeling paradigm that combines visual programming in a block-based programming environment (Snap! or rather a Netblox extension of Snap!) with domain specific modeling blocks to promote disciplinary (e.g., Physics, Earth Science) computational modeling, while providing synergistic learning of both discipline-specific and CS (CT) concepts and practices.
In its third year now, the project has involved running a pilot and 5 classroom studies (with a 6th on the horizon) in addition to all the design and development work. Our R&D efforts around the C2STEM system and curriculum/assessment have shown significant positive learning gains—in both Science & CT—among students in our classroom research. A designed Preparation for Future Learning (PFL) assessment showed that C2STEM students also demonstrated significantly better transfer in new a problem-solving context compared to the control group. Besides the obvious benefits to using computational modeling in science learning (such as those outlined in Weintrop et al.) especially in visual WYSIWYG block-based programming environments, students in our research students had this feedback (among others) to share about learning-by-modeling (Hutchins et al., pending acceptance)—
“it helps explain why what happens, happens,”
“It’s nicer than memorizing equations,”
“being given a scenario instead of just numbers was easy for me to see what is happening and how it needs to work,” and
“I understand how to use physics in a more real-world level instead of just in a classroom.”
That said, we’ve found that computational modeling is not easy and several students struggled in their model building tasks. I’ve been reflecting and trying to abstract from this project experience principles of designs for learning and transfer, and ways of scaffolding the learning process to ease students’ cognitive load without overly-scaffolding through direct instruction.
Scientific modeling is indeed a complex activity—it involves many component elements (see list below). And programming itself is also a complex activity especially for the novice learner. When students are new to coding, overlaying the two, i.e. with having to code models in a programming language to create computational representations of physical phenomena, is often a heavy lift for teachers and students new to programming. Such challenges have been documented in the past in the context of agent-based modeling using Netlogo as well.
Computational modeling involves these key component activities (among others)—
- Learning the syntax & features of the modeling environment
- Identifying relevant variables (conceptual model)
- Decomposing a simulation into the set-up part and the constantly updating part as the simulation is run
- Initializing the model with relevant start values of variables
- Modeling the continuous simulation into a discrete step-by-step approach
- Exploring and understanding relationships between variables (i.e. rules that govern the phenomenon)
- Updating variables through expressions (in each time tick)
- Setting up stopping conditions
- Debugging/experimentation to identify and fix errors
- Relating graphs and tables to code and the simulation “play”
- Creating a generalizable solution that works for a set of (logical) inputs
- Using the (general) model to make predictions for different scenarios
That’s a lot of stuff we expect our students to learn!! It is not surprising that in the CT integration progression (Figure 1 below) I had proposed in my keynote on Computational Thinking at ICCE’18 in Manila, computational modeling was at the high end of the progression. Expecting all students to start and succeed at that level of integration is a big ask!
It is clear that there is a crucial need to think deeply about how to reduce the load for both the learner and the teacher, and build student competencies in key component areas so that they can go on to successfully attempt, debug, and program their own simulations. I believe there could be a progression embedded in the mastery of these component activities. Additionally, it feels like ideas that we use to scaffold learning of programming (in general) could also be brought to bear in computational modeling contexts where students don’t have prior experience with programming. For example, we know from CS ed literature that learners struggle to create arithmetic, relational, and Boolean expressions that control loops and conditional statements. (This was in fact the topic of our research in another project that is now winding down – check out our recent ‘Concepts before Coding’ paper). So why not separate those steps out for students?
Conceptually planning a model should always be a precursor to coding a computational model. This conceptual planning step is where students would identify relevant variables, develop some sense for how those variables are related (although those initial conceptions would be interrogated, challenged, and probed further through the model building process). (We did try some of this in C2STEM). However, we should also help learners to capture in words or pseudocode their hypothesized relationships among variables (which they will code) and create expressions that capture the rules of the physical or biological phenomena. These steps could be aided by playing/exploring with pre-designed simulations. Such articulation of relationships prior to coding would help students with those thorny steps involving updating variables, create stopping conditions and such. Students would accrue the same benefits from such thinking and planning before before encoding them in expressions and then computational models, that they do when they spend time planning and/or writing pseudo-code before any kind of programming.
So… here’s an adaptation of the Grover (2018) CT learning progression that shares a potentially useful sequence of increasing complex tasks that combine both programming elements & domain ideas in computational modeling. Each step builds on the previous one(s). (To be clear, a key distinction from the CT learning progression is that one would expect all these steps to be covered in a secondary school computational modeling curriculum. It’s merely a proposed of breakdown/trajectory of component activities/understandings.)
Of course, there could be other ways to deal with the cognitive load related to learning both STEM+CT/coding in integrated settings, but I believe this breakdown is helpful in thinking about how to scaffold computational model building regardless of the type of inquiry and instructional activities that are designed in the curriculum. Also, this progression might be useful in CT integration contexts more broadly as well (ie not just science+CT).
Through examination of collaborative talk during model building, we have also found that some specific aspects of the model-building process provide fertile spaces for rich conversations and discussions among students that align with science practices of argumentation, explanation, reasoning, and the like, and that also engender synergistic learning of science and CT. These include setting up the simulation (initialization), debugging a model when it does not behave as expected, creating expressions to update variables, and setting up stopping conditions. This was the topic of our AERA poster (Grover et al, 2019) and our upcoming paper at CSCL (Snyder et al., 2019).
All in all, it’s great that computational modeling in K-12 classrooms is becoming reality, thanks to the NGSS and the CSForAll/STEM+CT integration movement, and the efforts of champions in this space— Uri Wilensky, Andy DiSessa, Bruce Sherin, Project GUTS, and more recently, Gautam Biswas (with whom I have the pleasure of collaborating on C2STEM). I’m sure my views on this will continue to evolve, especially over the coming days as I head over to an NSF STEM+C workshop at the University of Maryland to deliver a plenary address on ideas for designing for learning and transfer in STEM+CT integration settings. It is clear, though, that we have not yet found all the answers to the STEM+CT research agenda that was mentioned in Grover & Pea (2018). We still need to understand and address questions like— ‘What CT competencies are most important for various STEM disciplines?’, ‘How can learners best develop these competencies through their learning experiences with STEM coursework curricular units?’ and ‘How can we collaborate with STEM teachers towards their effective appropriation and uses of computational thinking methods and approaches in their curriculum?’
References:
Grover, S. & Pea, R. (2018). Computational Thinking: A competency whose time has come. In Computer Science Education: Perspectives on teaching and learning, Sentance, S., Barendsen, E. & Carsten, S.(Eds). Bloomsbury.
Grover, S., Hutchins, N., Biswas, G., Snyder, C. & Emara, M. (2019). Examining Synergistic Learning of Physics and Computational Thinking through Collaborative Problem Solving in Computational Modeling. Presented at AERA, 2019. Toronto, CA.
Snyder, C., Hutchins, N., Biswas, G., Emara, M., Grover, S., & Conlin, L. (2019). Analyzing Students’ Synergistic Learning Processes in Physics and CT by Collaborative Discourse Analysis. In Proceedings of the 13th International Conference on Computer Supported Collaborative Learning, Lyon. France.
Suggested Citation:
Grover, S. (2019, April, 29). Computational Modeling: How Can We Manage Cognitive Load When Students Must Simultaneously Learn to Code AND Code to Learn in a STEM Classroom? Retrieved from URL.