Posts tagged ‘modeling’

Coding is not the new literacy, modeling is: But modeling needs coding

I buy Chris Granger’s argument here, that coding is not nearly as important as modeling systems.  The problem is that models need a representation — we need a language for our models.  The point is modeling, but I don’t think we can have modeling without coding.  As Michael Mateas said, there will always be friction (see post).

We build mental models of everything – from how to tie our shoes to the way macro-economic systems work. With these, we make decisions, predictions, and understand our experiences. If we want computers to be able to compute for us, then we have to accurately extract these models from our heads and record them. Writing Python isn’t the fundamental skill we need to teach people. Modeling systems is.

via Chris Granger – Coding is not the new literacy.

March 20, 2015 at 7:50 am 27 comments

What are the cognitive skills needed for model-building?

Mylène is describing in the below blog post about how she’s helping her students develop a set of cognitive skills (including a growth mindset) to help them build models.  What I found fascinating in her post were the implicit points, obvious to her, about what the students didn’t know.  One student said, “I wish someone had told me this a long time ago.”  What are the cognitive skills necessary to enable people to build models, or program?  Causal thinking is absolutely critical, of course. What else is necessary that we haven’t identified?  We need to check if students have those skills, or if we need to teach them explicitly.

Last year I found out in February that my students couldn’t consistently distinguish between a cause and a definition, and trying to promote that distinction while they were overloaded with circuit theory was just too much.  So this year I created a unit called “Thinking Like a Technician,” in which I introduced the thinking skills we would use in the context of everyday examples.

via Growth-Mindset Resource Could Support Model-Building « Shifting Phases.

January 25, 2013 at 1:18 am Leave a comment

Bret Victor’s “Inventing on Principle,” and the trade-off between usability and learning

I have had several people now send me a link to Bret Victor’s video on Inventing on Principle. It is a really impressive demo!

His system reminds me of Mike Eisenberg’s work on SchemePaint.  Mike wanted the artist to be able to interleave programming and direct manipulation.  In SchemePaint, you could draw something by hand, then store the result in a variable to manipulate in a loop.  Or you could write some code to tesselate some graphical object, then add tweaks by hand.  It was beautiful.  The work that Mike did on SchemePaint led to his wonderful work on HyperGami, a CAD system for origami, which was the start of his Craft Technology group. That’s the group from which Leah Buechley graduated — she did the LilyPad.

People are sending me Bret’s video asking, “Wouldn’t this be great for learners?”  I bet it could be, but we’d have to try it out. At one point in his lecture, Bret says, “Why should I have to simulate the computer in my head?”  Because that’s the point of understanding computer science.  Bret’s system looks like a powerful visualization system, and visualization can be used to lead to real understanding, but it isn’t easy to design the visualization and context such that learning occurs.

The problem is that visualization is about making information immediate and accessible, but learning is about changes in the mind — invisible associations and structures.  Sometimes good usability makes it easier to make these associations and structures.  Tools like Scratch and Alice increase usability in one direction (e.g., syntax) while still asking students to make an effort toward understanding (e.g., variables, loops, and conditionals).

My first PhD student was Noel Rappin, who explored the features of modeling environments that lead to learning.  He had a CHI paper about his work on helping chemical engineers learn through modeling.  Our colleagues in chemical engineering complained that their students couldn’t connect the equations to the physical details of the pumping systems that they were modeling. Noel built a system where students would lay out the physical representation of a pumping system, then “look underneath” to see the equations of the system, with the values filled in from the physical representation (e.g., height difference between tanks).

He ran a pilot study where students would lay out a system according to certain characteristics.  They would then manipulate the system to achieve some goal, like a given flow rate at a particular point in the system.  When Noel asked the pilot students if they gained any new insights about the equations, one student actually said, “What equations?”  They literally didn’t see the equations, just the particular value they were focusing on.  The system was highly usable for modeling, but not for learning.

Noel built a new system, where students could lay out a model, and values from the model were immediately available in an equation space.  To get the flow rate, the student would have to lay out the equations for themselves.  They would still solve the problem by manipulating the physical representation in order to get the right flow rate, and the system would still do all the calculations — but the students would have to figure out how to compute the flow rate.  The system became much harder to use.  But now, students actually did learn, and better than students in a comparison group.

Bret’s system is insightful and may have some terrific ideas for helping learning.  I’m not convinced that they’re new ideas yet, but an old idea in a new setting (e.g., JavaScript) can be powerful.  I worry that we get too entranced by improvements in usability.  In the end, learning is in the student, not in the system.

February 21, 2012 at 7:50 am 17 comments

Adele Goldberg: Modeling not Programming

You know how sometimes you read something that directly speaks to what you’ve been thinking about lately?  From Adele Goldberg’s chapter “Alan Kay and the Search for the Holy Grail” in Points of View: A Tribute to Alan Kay.

It would be a mistake to think that this notion of programming for everyone could be satisfied by any single programming language, and certainly not by one of the structured, procedural, 1960s languages.  With “programming” Alan really intended “modeling.” A person achieves Alan’s goal if he or she can construct a computer executable model of a real world phenomenon, perhaps without understanding the detailed syntax and execution model of a professional programming language. The challenge question was (and sill is): What combination of hardware, operating system, language, library, and user-level presentation and interaction enables general purpose modeling?…

Why is this distinction between modeling and programming critical? It lifts our thinking about teaching from how to program functions–such as sorting names or calculating a bank balance or directing a robot to talk in a circle–to how anyone might express his or her understanding of how complex persistent interactions can be represented, simulated, and observed. It also emphasizes the creation of shared representations of what we can think of as the primitive objects from which new and interesting objects (aka models) can be constructed, as well as the framework in which the construction can take place.  Thinking in this way allows us to view software much like a dictionary of words (the interesting objects) from which particular words are selected and connected to form new patterns — a programmer’s “novel.”  No one has to know all the words in the dictionary to write a story, no one has to know all the objects in a programming language library to start making new connections that tell the computer what to do.

It’s a great goal that the modeler should not have to know all the objects “to start making new connections.” It does still leave the requirement that the modeler has to know how to connect the objects.  Maybe that’s the phonics of computing.  We have evidence from several sources that the simple ideas (variables and values, sequential execution, parameter passing to other routines) are huge problems for students, and those are some of the necessities for connecting objects.

August 5, 2010 at 11:14 am 2 comments

NRC Non-Statement on What is Computational Thinking

I read the new National Research Council report on what is Computational Thinking on the way out here to Berkeley (for the ACM Education Council meeting).  It was fascinating but a little disappointing.  As Marcia Linn explains in Preface to the report, the goal wasn’t to create and present a consensus view of what is computational thinking.  Instead, the report simply presents the discussion, the lack of consensus, with lots of argument and dialogue.  I found the discussion really interesting with some wonderful speakers presented.  I didn’t come away with any answers, though.

I was particularly pleased to read a revisiting of the NRC Fluency with IT report (sometimes called the “FITness Report”), led by Larry Snyder.  There are lots of people creating “information technology fluency” classes, but they often get it wrong.  As this report describes, the FITness report does call for programming — maybe in a domain specific language, maybe even in Excel, but definitely in a precise and testable way.

Some of my favorite parts of the report:

  • The discussion of the 2004 NRC report on what is computer science, which quotes Gerald Sussman saying “Computer science is not a science, and its ultimate significance has little to do with computers.  The computer revolution is a revolution in the way we think and in the way we express what we think.”
  • Alan Collins (who significantly influenced my dissertation work) whom I haven’t heard much from recently, was there and emphasized the importance of “representational competence, which he described as the effective application of computational means of representation of knowledge.”
  • The discussion of modeling is really interesting.  Uri Wilensky and Yasmin Kafai spoke of the importance of having students learn to critique models and question assumptions of models.
  • The report quotes Donald Knuth and Fred Brooks (in previously published work) and includes Alan Kay and Roy Pea who were at the event.

The report does get to what I see as one of the key questions of computational thinking.  Asking “What is Computational Thinking?” doesn’t make much sense by itself.  It’s more interesting to ask it in terms of outcomes, “What does computing education for everyone mean and what does such education offer?”  The report does speak to the key question, “Who is ‘everyone‘?”  Thinking about K-12 students as ‘everyone’ leads to one kind of focus on computational thinking, thinking about science and engineering majors leads to another, and thinking about college vs. non-college attending citizens leads to different emphases in computational thinking. The report doesn’t answer the question of who ‘everyone‘ is.  A key contribution of this report is to highlight that question and point out some of the different answers and the implications of each answer.

June 21, 2010 at 12:38 pm 2 comments

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,052 other followers


Recent Posts

Blog Stats

  • 2,030,559 hits
September 2022

CS Teaching Tips