Situated Computational Thinking

Intro


The research group that I’m a part of, Re-Making STEM, of is looking at ways that computational thinking (CT) practices intersect with creative, collaborative human activities.  This has led to some really interesting explorations in computing, cognition, and culture. Our practical goals include: discovering ways that teachers and their students can engage with and learn CT, and discovering design principles for learning and applying CT in interesting ways.  In this post, we’ll look at some of those explorations and hopefully leave you with some things to think about.

Computational thinking

I think this definition of CT is as good a starting point as any:

Computational Thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent (Cuny, Snyder, Wing, 2010).

Wing (2010) says she’s not just using problem / solution to refer to mathematically well-defined problems but also to complex real-world problems.  She also says that the solutions can be carried out by humans, computers, or combinations of humans and computers. This definition places the emphasis on representation, but begs the question, what are forms that can be effectively “carried out” by information-processing agents?  What does “carried out” mean anyway?

Let’s pin these down for the sake of discussion.  We might say that the forms we’re talking about are abstract representations (abstractions, the noun).  Indeed, abstraction (the verb) is widely recognized as an essential component of CT (Grover and Pea, 2013).  Let’s say abstractions are formal representation (e.g. formal logic, mathematical equations, computer code), and “carry out,” means execute.  So we’re talking about executing algorithms. And let’s be real – we are only going to write formal algorithms if we intend to automate them with a computer.  

So if CT in practice is, “writing algorithms that can be executed by computers,” then we are really talking about programming.  This contradicts Wing’s clarifications about “problems” and “agents,” described above. Furthermore, the field is saying loud and clear that CT is not just programming.  Since 2013, the concept of CT has expanded (e.g. Weintrop et. al., 2015), and for most people it is certainly not limited to executing algorithms on computers.

Opening it up

Let’s look at this piece by piece, starting with the “carrying out.”  Even if we’re talking about formal representations and computers, CT involves formulating data as well.  Data is not “carried out,” or executed, like an algorithm – it is structured, processed, analyzed, synthesized, and interpreted (by humans and computers).  

Now let’s look at formality and agents as computers / humans.  We already saw what happens when we are strict about formality and computers.  If we loosen the restriction on formality, but still think of agents as computers (or virtual agents), then we allow pretty much any human-computer interaction.  If we keep formality strict, but allow for people as agents, then we allow for things like math to count. The latter might work for some, but I would ask: do we care about distinguishing between CT and mathematical thinking?  Is CT == mathematical thinking + computers? Do we want to allow for less formal expressions of CT?

Let’s put these two axes (more or less formal, extent of computer use) on a table.


We in the CS community might have a tendency to think about CT as living in the upper-left corner of the table (formal, tied to computer use).  In reality, creative collaborative human activity blends all of these types of communication, and CT (whatever it is) intersects with all of these other areas.  Authentic computational practice also involves multiple people and computers working together – there are more than two agents in the system. So, as a general case, we have systems with: agents (humans, computers, and virtual agents), situated in environments (physical, social / cultural, virtual), interacting using systems of representation (sounds, images, diagrams, natural and formal languages, etc.).  

One CT, many CTs

What are the implications of this?  I think there are two clear options for how we define CT:

  • (A) Restrict what we mean by CT.  This is perfectly reasonable and probably necessary for most practical purposes.  However, this has the inevitable consequence of fragmenting our understanding of CT.  There will be different CTs in different disciplines / fields. We will do this, but we should try to understand the restrictions that we are imposing, and the consequences of imposing them.
  • (B) Break our concept of CT wide open.  I think the scientific community (at least, those who are studying the construct of CT and how it plays out in real cultural contexts) should do this, so that we can explore how CT is understood and practiced in a variety of contexts and for a wide range of purposes.  

This is not a binary choice that we need to make, individually or collectively, once and for all.  The processes of imposing structures and breaking them apart will enrich our understandings of CT. In closing, I ask you to consider how you construct CT with your students and colleagues, and what effects this might have on who engages with and learns CT at your school.

These ideas in this post are part of a collaborative research effort with the Re-Making STEM PIs, Brian Gravel, Eli Tucker-Raymond, Maria Olivares, Amon Millner, Tim Atherton, and James Adler, and the dedicated research team, Ada Ren, Dionne Champion, Ezra Gouvea, Kyle Browne, and Aditi Wagh. 
This material is based upon work supported by the National Science Foundation under Grant Numbers DRL-1742369, DRL-1742091. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

References and further reading:

David Benedetto, At-Large Representative


Direct Instruction and Discovery – Why Pick Sides?

I recently read a post by Mark Guzdial on the CACM blog entitled “Direct Instruction is Better than Discovery, but What Should We be Directly Instructing?”  (link).  

This led me down the rabbit hole to:

  • Felienne Hermans’ blog post , “Programming and direct instruction” (link)
  • NY Times article “Why Are we Teaching Reading the Wrong Way.”  (link)
  • Kirschner, Sweller, Clark paper “Why Minimal Guidance During Instruction Does Not Work: An Analysis of the Failure of Constructivist, Discovery, Problem-Based, Experiential, and Inquiry-Based Teaching” (link) (I’ll call this the KSC paper)

Felienne’s post doesn’t seem to make as strong a claim as Mark’s headline, but does make the point that, “[C]hildren need help with learning to program because they will get stuck otherwise, drop out and decide programming ‘is not for them’.”  She concludes with the idea that we have to “embrace direct instruction,” and to “rote memorize the ifs and loops, if we want all children to learn well.”

The NY Times article was a nice interlude, which made the following point:

  • “[W]hile learning to talk is a natural process that occurs when children are surrounded by spoken language, learning to read is not. To become readers, kids need [..] explicit, systematic phonics instruction.”

Okay, so kids need systematic instruction for basic building blocks that are not naturally learned.  I’ve seen this before, and I buy it. But does that mean, categorically, that, “Direct instruction is better than discovery”?

Well, from the links above, we have a picture of direct instruction (DI): explicit systematic instruction; rote memorization.  What about the “other side.” The KSC paper wastes no time in painting this as a simple dichotomy:

  • “On one side of this argument are those advocating the hypothesis that people learn best in an unguided or minimally guided environment [and] must discover or construct essential information for themselves.”
  • “On the other side are those suggesting that novice learners should be provided with direct instructional guidance on the concepts and procedures [..]”

The paper goes on to lump together, “Constructivist, Discovery, Problem-Based, Experiential, and Inquiry-Based” and consider them all to be equivalent to the most extreme version of a single ideology: students must figure everything out for themselves.

Before I go on, I will say that I make no claims to any special expertise here.  I’m basing my points on: (A) my past experience as a HS math and CS teacher, and as a state STEM education director; and (B) my current studies of STEM education research at a university, in the department of education, where constructivism is the dominant theoretical perspective.  This is not a research paper – I’m not going to cite sources. I’m not going to rigorously argue my points.

I also recognize that science, math, engineering, and CS are unique disciplines that require different pedagogical approaches.  That said, I will try to keep things general rather than referring to any particular discipline.

Here are my points:

  1. DI vs. Discovery is a false dichotomy
  2. “Constructivist, Discovery, Problem-Based, Experiential, and Inquiry-Based” learning are not identical, and are not equal to “just figure it out.”
  3. Inquiry-based learning has benefits that go beyond mastery of basic skills
  4. Rote learning has risks

DI vs. Discovery is a false dichotomy.  If anything, it’s more like a spectrum, but this is probably oversimplifying it too.  Educators can and should use a variety of strategies.

“Constructivist, Discovery, Problem-Based, Experiential, and Inquiry-Based” learning may all share a constructivist foundation (or maybe not necessarily), but they emphasize different strategies, or aspects of teaching.  Constructivism might hold that we construct knowledge and meaning from experience, but that does not imply that we need to “just figure it out.”

Benefits of constructivist learning include development of:

  • Autonomy / agency / critical thinking
  • Communication / collaboration
  • Creativity / divergent thinking

Although these benefits are more difficult to measure than basic skills, evidence has been described in a number of empirical studies.  These skills are generally useful, and highly valued by employers.

Risks of rote learning include:

  • False impression of what “doing science / math / engineering / CS” is really about.  
  • Students may not have opportunities to have a voice in the class, or may not feel like their prior experiences are valued.
  • Whole-class direct instruction assumes that all students require the same instruction at the same time.  This can lead to frustration (and disengagement) for students who are not ready, or boredom (and disengagement) for students who have already advanced beyond the skills being instructed.

In closing, I encourage the reader to consider the pros and cons of different pedagogical strategies and draw their own conclusions.  

David Benedetto

David Benedetto, At-Large Representative

Contexts and Roles in CS Education

To make the case for computer science and to develop an effective program, educators must understand the context and the roles people play.

First, a few clarifications:

  • Computer science (CS) here refers to educational experiences where the primary objective is to develop computing skills and knowledge.
  • Computational thinking (CT) refers to using computational practices in CS and in other disciplines.  For example, using computer modeling and simulation in science and engineering courses.

In this post I’ll focus on the subjects and teachers with an especially strong affinity with CS / CT.  These are people that might be already teaching CS, and most definitely should be incorporating CT. They include:

  • Digital Literacy / technology integration
  • STEM  (math, science, engineering, and computer science).
  • Career & technical education (e.g. IT, engineering, business)

Other teachers, for example social studies and humanities teachers, are less likely to teach CS – it’s certainly possible, but would be a more significant departure from their regular teaching duties than the above.  However, there are ample opportunities to incorporate CT practices.

Digital literacy, educational technology, digital citizenship.

These areas, in general, are about the safe and effective use of technology for a variety of uses.  Business teachers will focus on using technology for business purposes. Technology integration specialists or library / media specialists tend to support the integration of technology across the curriculum.  While these areas are not strictly CS, these educators are excellent candidates to become CS teachers. They are also great candidates to support the integration of CT.

Note:  A comparison between these areas and computer science is available at the K12 CS Framework.  (K12CS, Defining Computer Science.)

STEM education.

In a nutshell: science is about systematically exploring phenomena; engineering is about designing and developing technologies.  Mathematics and computing are tools that are used to do science and engineering.

Computer science is fundamentally mathematical, rooted in formal logic.  Math educators are great candidates to teach CS, but it’s important to consider the primary objective.  CS can have a strong mathematical focus, for example, when you are working with data and analysis.

Computer science is a science – it is the study of the principles and use of computers.  CS is also an engineering discipline – it includes the design and development of computer hardware and software.  It’s important to remember that using computing tools to advance other science and engineering disciplines is not exactly CS – this is computational science and engineering, which is very much in the realm of CT.

I think it’s important to remember that teaching CS and incorporating CT into other subjects are different things, albeit both very important.

Note: The K12 CS Framework also includes great information on computational thinking, including a venn diagram that connects CS / CT practices with math, science, and engineering practices.  (K12 CS, Computational Thinking).

Career & Technical Education

Career & Technical Education (CTE) is an umbrella term that includes a number of career clusters (occupation groups) and pathways (leading to specific occupations).  CTE programs are generally two-year programs that students may take towards the end of K-12.

The Information Technology (IT) cluster in CTE​ includes the following pathways:

  • Network Systems Pathway
  • Information Support & Services Pathway
  • Web & Digital Communications Pathway
  • Programming & Software Development Pathway

While the IT pathways are clearly closely related to CS, there are a few important points worth making.  CTE programs are upper-HS level, and focus on specific skills for a certain career pathway. This is different from a K-12 CS program, which focuses on core CS skills and knowledge that are applicable in many careers not only in IT, but also in other clusters such as engineering, business, etc.

The bottom line is that students should learn fundamental CS skills and knowledge earlier in K-12 so that they can apply them to whatever pathway they pursue, whether or not they participate in a CTE program.

For more information about career clusters, please visit: Advance CTE, Career Clusters.

The social sciences and humanities

While I focused on strong affinity groups here, I don’t want to entirely leave out other groups.  Like other sciences, the social sciences are increasingly data-driven and rely on computational methods.  The humanities are a great place to explore the impacts of technology on society. Arts educators employ practices that are related to engineering design and development processes.  The discussion could go on into other disciplines.

Aside from systemic constraints, the degree of CT incorporation into these areas is limited only by the knowledge and imagination of the educators, and can be strongly aided by effective collaboration.  

So… where does CS / CT go?!?

Educators need to determine how to build a CS program that fits their need.  Schools need a strong CS program, and they also need to incorporate CT across the curriculum.  There is no magic bullet, but any solution starts with a solid understanding of the context and possibilities, and a concrete plan to move forward.

David Benedetto

David Benedetto, At-Large Representative

My Journey With CS

I’d like to get personal for this post.  My last post was about state-level CS policy.  I’ve been engaged in this work for the last few years at the NH Department of Education.  This time, I’ll talk about the path that took me to this work, and where I’m going from here.  My goal here is to highlight what CS has done for me. My path has been far from traditional, and it might help to illustrate that CS is not just a path to software engineering.  So here goes…

How I got into computers

My dad worked for the cable company.  He studied electronics when he was a teenager, but never got to complete his studies.  He started at the cable company much later in life as a lineman and worked his way up to a role in which he was designing communication infrastructure for central NH.  We always had the latest electronics, and when I was a teenager, we were the first house in our town to have broadband internet.

I took a programming class in 9th grade, and I hated it.  I don’t remember exactly why, but I told myself that wasn’t something I would do.  I didn’t write a line of code again until college.

Studying CS

When I went to college, I was undeclared in the College of Engineering & Physical Sciences.  A semester in, I declared Computer Engineering, and later switched to CS. Why was CS different for me the next time around?  I’m not sure. Maybe it was the professors or TAs. Maybe it was the Engineering survey course I took when I was undeclared, which helped me to see the big picture of how CS impacts the world.

In the higher levels I took as many interdisciplinary courses as possible.  My school offered me a research assistantship to work on data visualization for physics simulations, so I stuck around to work on my MS degree.

Teaching

I’m not sure if my lack of focus is a good thing or a bad thing, but after almost 6 years of college, I still didn’t know what I wanted to do, so I took a leave.  I worked a few brief stints in industry, but wasn’t passionate about what I was working on. I realized that teaching & learning are what drive me, so I decided to teach.  It wasn’t hard for me to become a HS math teacher, and I was in the classroom in no time. Unfortunately, I had no idea what I was doing!

I got my legs under me, and then had an opportunity to switch schools and teach more CS.  This was amazing for me. I got to rediscover what I love about CS, and reinvent myself as a teacher.  I was in this job when the Obama administration announced the CSforAll initiative. I was introduced to equity issues in CS while participating in an NSF-funded research project.  The principal investigator on that project became a mentor to me. I started advocating for broader participation in CS at my school.

Advocacy & Policy

I caught wind of a state-level job that was opening up: STEM Education Director.  I thought this would be a great opportunity to work on broadening participation statewide.  I got the job in part because of my experience and goals in CS education, and my connections with local leaders.

The mentor mentioned above brought me onto our state team in the ECEP (Expanding Computing Education Pathways) Alliance.  This team established the CS4NH Alliance. With a strong team in NH and national support from groups like CSTA, ECEP, CSforAll, and Code.org, we’ve made great progress in short time.  

The Next Chapter

With inspiration from the many amazing people I’ve had a chance to work with, I decided to apply to doctoral programs.  In the fall, I’ll be going back to school and start working on a project funded by NSF under the STEM + Computing Partnerships program.  Wherever this leads me, I hope to inspire and empower the next generation of CS educators.

And the moral of the story is…

I hope you take something of value away from this story.  Here are a few that come to my mind as I write this:

    • Apply your CS skills and knowledge in other domains.  CS has helped me to analyze not just explicitly computational processes and computing systems, but also teaching and learning processes, and complex systems like our public education system.
    • Connect with CS innovators and be a sponge.  I’ve been inspired and mentored by CS innovators and educators.  I truly believe that the CS Education community has some of the most amazing, supportive people in the world.
    • Keep your ear to the ground.  Keep track of what’s going on and what opportunities are out there.  Follow your muse!

 

 

CS educators and advocates – keep on innovating, and share your story!

David Benedetto


David Benedetto, At-large Representative

Why You Should Care About CS Policy

If you’re reading this, it means that you are a dedicated teacher who cares about CS education.  You might not think about policy very much, but it can have a big impact in broadening participation in CS in your state.  Here are a few reasons why policy matters.

Establishing CS as a Core K-12 Subject Area.  

NH and many other states have MS and HS technology program requirements.  These programs are a mixed bag – many are primarily digital literacy, but a lot of schools are incorporating coding, makerspaces, robotics, and other experiences that are very much a part of CS education.

At the HS level, there are Career / Technical Education (CTE) programs in the Engineering and Information Technology clusters that are related to CS.  These are good programs, but they are for 11th and 12th grade students who already plan to go into IT or Engineering.  We know that this is too late for equity.  

Establishing K-12 Computer Science standards that are distinct from CTE program standards signals that CS is a core subject for ALL students, and helps tie the CS-related experiences mentioned above into a cohesive whole.   Core K-12 CS provides a pathway into the CTE programs above and others, for example: Business / Financial Operations; Healthcare Technology; and more.  

Getting Reliable Data and Using it to Make Improvements

In NH, certification, standards, and funding are all linked.  Each certification area has a linked set of academic standards.  This is how courses are identified in our state information systems.  Since our K-12 standards and certification are brand new, we have a big push to recertify current CS teachers and reclassify courses.  This will give us a new lens into CS education across the state.  

When we have opportunities to utilize state and federal funds to advance our objectives, we rely on this data to target our programs and achieve the greatest impact.  We need to define CS and identify CS so that we can be smart about expanding and broadening participation.

Growing the Pool of CS Teachers

Our certification rules are linked with the program approval standards for teacher preparation programs.  This means that with our new K-12 CS certification we now have the opportunity to establish programs that lead to certification as a CS teacher.

The rules are also a guideline for teachers who teach some CS, to take the plunge and become a “full-fledged” CS teacher.  Our certification program is competency-based, so educators can acquire the necessary skills and knowledge through a number of means.

You Can Help

Is there a line of communication between your CSTA chapter and your State Education Agency?  Find out what they’re up to and what you can do to help.  We all need to work together to make CS for All a reality.

Check out the CSTA Advocacy Menu for some ideas for CS Education Week, Dec. 4-10, 2017:

For more information on state-level K-12 CS policy, please check out these documents:

 

 

David Benedetto
At-Large Representative