Archives For Programming

What is Computational Thinking (CT)?

Mitch Resnick and Jeanette M. Wing are the two main people who best describe Computational Thinking (CT).

Mitch Resnick, Director of the Lifelong Kindergarten group at the MIT Media Lab and creator of Scratch published this paper with Karen Brennan in 2012.  Computational thinking has three main parts: Concepts, Practices, and Perspectives.

screen-shot-2016-12-04-at-10-50-42-am

  • Concepts are the actual computer science ideas.
  • Practices are the ways of thinking and problem solving.
  • Perspectives are beliefs about oneself and having a mindset that is open to being a computer scientist and/or thinking like a computer scientist.

Jeanette M. Wing, head of Computer Science at Carnegie Mellon University, explains Computational Thinking in a 2006 article

Here are Wing’s everyday examples of people using computational thinking:

When your daughter goes to school in the morning, she puts in her backpack the things she needs for the day; that’s prefetching and caching.

When your son loses his mittens, you suggest he retrace his steps; that’s back- tracking.

At what point do you stop renting skis and buy yourself a pair?; that’s online algorithms.

How do Completely Automated Public Turing Test(s) to Tell Computers and Humans Apart, or CAPTCHAs, authenticate humans?; that’s exploiting the difficulty of solving hard AI problems to foil computing agents.

Prefetching and caching, back-tracking, algorithms, and solving AI problems are all computer science concepts. All this takes place in your daily life.

Wing suggests that computational thinking is not just about programming computers but thinking like a computer scientist. A computer scientist is a creative human problem solver that thinks with computers, not a boring human who tries to think like a computer, says Wing.

Who is Teaching Computational Thinking?

As coding and computational thinking have been written into curricula around the world, we are seeing people working to understand what it means.  Here is a collection of sites and projects of people making sense of CT.

Coding and CT in the United Kingdom

Computing At School Barefoot (aka CAS Barefoot) is an project in England designed to support primary school teachers to understand and teach computational thinking. Here is how they define and explain CT.

What does it look like in UK schools?

Marc is a teacher and Apple Distinguished Educator in the UK has been integrating coding into his early years curriculum for several years. Here are some examples of the activities he has been doing:

Unplugged Activities February 2, 2015

Programming Apps for Early Years July 13, 2013

He also has a book Enabling Environments: A Computing Curriculum Beginning in Early Years

And, here is a blog post if you are looking for apps for teaching coding from a teacher in the UK.

Coding and CT in the United States

33 states allow students to count computer science courses toward high school graduation.

Code.Org

Google is conducting research in the area of computer science education in the US.

Google has also put together a course on Computational Thinking for Educators.

ISTE has compiled many resources to support educators and parents in understanding CT.

Coding and CT in British Columbia, Canada

British Columbia has recently launched a new curriculum that explicitly includes coding and computational thinking. Coding and CT are found within the new Applied Design, Skills and Technologies (ADST) curriculum, last updated June 27, 2016.

Here are K-3 Coding Resources compiled by Karen Lirenman.

Questions I have about Coding and Computational Thinking:

  1. Is it a requirement to teach coding in order to teach Computational Thinking?
  2. In Ontario, should we be teaching computational thinking and coding even if it is not in the curriculum?
  3. If we decide to teach coding and CT in Ontario, do we have to cut back on something else? If so, what are we cutting back on?
  4. Many subjects have habits of mind that we are trying to develop in students. In math we want to develop powerful math thinkers, in social studies we want critical thinkers, in language we want to be able to express ideas in sensitive and culturally responsive ways. How does focusing on CT help or hinder these existing habits of mind and ways of thinking that we are already trying to emphasize the in the existing curriculum?
  5. Computational thinking and algorithmic thinking are all about logic and being highly systematic. Dr. Donna Kotsopoulos has asked whether this is counter to what we have been saying about divergent and creative thinking relating to 21st Century skills. Does computational thinking run in opposition to 21st Century learning ideals? In what ways does computational thinking compliment or detract from the 6Cs: character, citizenship, communication, critical thinking, collaboration, and creativity?
  6. How often do we lead coding activities that teach coding concepts like sequencing and debugging but do not go deeper into thinking and beliefs?  How do we go beyond the pure computer science concepts and into deep thinking?

**Updated January 4 2017 with information about artsy.net and seeing more Miro art.**

This blog post includes a 5 minute video, a lesson plan and examples of student that show integration of visual art curriculum and Computational Thinking in my grade 3 classroom.

Thank you to Bea Leiderman, Carolyn Skibba, Douglas Kian and my experience at the Apple Institute in Berlin for this idea.  Using Keynote and Kandinsky is Bea’s idea. It’s brilliant. Bea, Carolyn and I went to the Bauhaus Archive in Berlin where we saw Kandinsky’s work. We also had in depth workshops on Keynote. The combination of these experiences at the Apple Institute in Berlin lead to this idea and a project. Bea, Douglas and I are currently working on a project where we are investigating how these ideas of art, coding, and Computational Thinking might fit together. This is the early stage of this team project.

This video gives an overview of the lesson and a chance to peak inside my grade 3 classroom:

Visual Arts Expectations

These are the expectations from the Ontario Arts Curriculum that apply to this lesson:

Elements of Design:

• line: variety of line (e.g., thick, thin, dotted)

• shape and form: composite shapes; symmetrical and asymmetrical shapes and forms in both the human-made environment and the natural world

Principles of Design:

• variety: slight variations on a major theme; strong contrasts (e.g., use of different lines, shapes, values, and colours to create interest)

Creating and Presenting:

D1.1 create two- and three-dimensional works of art that express personal feelings and ideas inspired by the environment or that have the community as their subject

D1.2 demonstrate an understanding of compo – sition, using principles of design to create narrative art works or art works on a theme or topic

D1.4 use a variety of materials, tools, and techniques to respond to design challenges

Reflecting Responding and Analysing:

D2.2 explain how elements and principles of design are used to communicate meaning or understanding in their own and others’ art work

Exploring Forms and Cultural Contexts:

D3.2 demonstrate an awareness of a variety of works of art and artistic traditions from diverse communities, times, and places

Computational Thinking Goals

Karen Brennan and Mitch Resnick published a paper in 2012 describing a framework for teaching and assessing Computational Thinking (CT). I learned about this paper from a presentation by Julie Mueller at a CT event for teachers in August 2016.  Based on this framework, these are the CT goals of this lesson:

Coding Concepts (actual computer science concepts): Sequencing and Debugging.

Practices (thinking habits): Being incremental and iterative, testing and debugging, reusing and remixing.

Perspective (beliefs about self): Using technology to express oneself.

Materials:

ios10-960x960_swift-playgrounds-icon_us-enscreen-shot-2016-12-04-at-11-51-01-amimovieseesaw

Source: Wassily Kandinsky [Public domain], via Wikimedia Commons

the-smile-of-the-flamboyant-wings

Source: The Smile of the Flamboyant Wings, 1953 by Joan Miro

For more information on Joan Miro, check out this artsy.net site here. Thank you Louise L. for letting me know about this site.The page I have linked “provides visitors with Miró’s bio, over 400 of his works, exclusive articles, and up-to-date Miró exhibition listings. The page also includes related artists and categories, allowing viewers to discover art beyond our Miró page.”  The rest of artsy.net is very much worth looking at also.

Teacher Prior Knowledge/Experience:

Student Prior Knowledge/Experience:

  • Time to play with Keynote

Lesson Part 1:

Bell-work and Minds On:

As students enter the classroom, give them the option of taking either a Miro or Kandinsky colouring sheet. While the students settle and the teacher takes attendance, students colour the colouring sheets anyway they like.

Introducing the Project and Meeting Miro and Kandinsky:

Introduce the project by showing an example. This was created by Bea:

Next, show examples of Kandinsky and Miro works. Ideally show the same art work as the colouring pages and several more.

screen-shot-2016-12-04-at-12-41-25-pm

Explain how the art is abstract. Show how the example has movement that happens with just a single click.

Go over the success criteria:

screen-shot-2016-12-04-at-11-47-07-am

Teach Art Concepts:

Have students compare their colouring pages to the actual artists’ works. Notice the main differences. Miro uses curved lines and primary colours whereas Kandinsky uses many different colours but has more geometric shapes and straight lines.

Teach Coding Concepts:

Introduce the coding concepts of sequence and debugging.

Working On It:

Now it’s up to students to create their own Kandinsky or Miro style art, or a mixture of both.  You should model how to find shapes, lines, and how to add animation. There are two ways to animate and they are shown in the screenshots below.

First, tap on the More button (…) and then select “Transitions and Builds.”
img_0485

Or, tap on the object you want to animate and tap on “Animate.”

img_0484

Warning: Many students will figure out how to add the animations but won’t be able to link them together.   I skip telling them this step so they are confronted with having to problem solve and debug.  Once they have a need for this information, I show them how, though many figured it out on their own.  The screenshot below shows how to link the animation. To sequence the animation tap on the object, then tap Animate, then tap the heading to get the options you see in the screenshot.  Notice that you have to change “Start Build” from “On Tap” to “With Previous Build” or “After Previous Build.”img_0486

Once students have completed their projects ask them to share the Keynote files with you.  You could do this by using Airdrop or having them save the Keynote file to Google Drive.

This is the end of the first part of the lesson. Now you will need some time to convert those Keynote files on your Mac to mP4. This part was time consuming.  I wish I could export keynote files to iMovie on iPad. But, at this point you can only send a copy As Keynote, PDF, or PowerPoint.

Teacher’s Homework Prior to Part 2:

This part is not fun.

  1. Open each file in Keynote on a Mac and export the file as a Quicktime. (File>Export To>QuickTime…)
  2. Then, open each file in iMovie and export as MP4.
  3. Share these files with students. I used Google Drive.

Lesson Part 2:

Bell-work and Housekeeping:

Give students instructions to retrieve the MP4 file you created with the Keynote files.  Ask students to open the file in iMovie. Review the success criteria.

Teach Art Concepts ~ Reflection:

Students use iMovie to create a voice over audio recording explaining why Miro or Kandinsky would like their art work.  Review the key elements and principles of design for each artist. Give students time to do their reflection and upload videos to Seesaw.

Teach Coding Concepts:

When students are finished uploading their art reflection, have students use Apple Swift Playgrounds Learn to Code 1 to reinforce coding concepts. Have students work on the Command puzzles.

Examples of Student Work:

Here are examples of the animations prior to students adding reflections.

Here are examples including the reflection:

Constructing Modern Knowledge CMK14

Constructing Modern Knowledge (CMK) provided a summer stopping point at the intersection of learning and maker culture right in the heart of constructivism.The crowd was pretty special: whimsical, intelligent, techy, artsy, and hip in the way that people who reject hip are hip (read: geeks).  It was a group of way finders who seemed to be happy being at the outer edge of the world of education and meeting up to make a community and create some nifty projects in a 4 day period. CMK was a 4 day event held in Manch-Vegas (Manchester, New Hampshire) July 8-11 2014.  It’s taken this long for me to let this blog post free.  I have great respect for Gary Stager and his collaborators. I am also unsettled about the place of make, invention and programming at school. I want it to work, but it continues to make me uneasy.  Join me in revisiting this event and indulge me by reading my thoughts about programming, constructivism and constructionism. Thank you.  If you make it through this post, check back later this week for another on CMK14 keynote speaker Pete Nelson, Treehouse Master.

Who? Papert et al

It was perfectly clear that Seymour Papert is the patriarchal figure of CMK.  Gary Stager made frequent mention of Papert and Logo with fond affection, great loyalty and zeal.  Papert is the intellectual father and even his descendants were honoured faculty at the event.  Artemis Papert was there with her family Brian Silverman and daughter.  Authors of the authoritative book on Logo, Learning with Logo Dan and Molly Lynn Watt, also point to the lineage of this gathering.  They are elders of the community that shape the narrative by way of oral and written history.  They are also sharp minds ready to assist with the more recent incarnations of programming languages for students such as Mitch Resnick and MIT’s Scratch.   During Stager’s opening address he made so many references, both direct and indirect to Papert that I wish I had started a tally. IMG_1327

Where’s Papert? Who gets credit and who doesn’t.

Stager is not only honouring the intellectual past of programming in education, he seemed to be fighting for recognition for Papert and Papert’s contribution. He indicated several times that Papert has been systematically erased from the story of programming in education.  I was not able to get to the bottom of this sentiment expressed by Stager, but my sense is that perhaps it isn’t only Papert that has been underemphasized but also Stager and Martinez.  The two have authored a super successful book Invent to Learn and have a long history of contributing to educational circles.  They are riding a wave of enthusiasm for maker culture, hands on learning, and STEM/STEAM education.  If the maker movement is a passing fad, Gary and Sylvia will be championing constructivism and constructionism and the hard fun of invention with and through programming long after the last LED stops blinking.  After all, they and their merry folk have been around before Make was spelled with an uppercase M and followed by the familiar TM.

Constructivism Constructionism Double Take

The event is called Constructing Modern Knowledge and I am wondering why I was at all surprised by the heavy constructivist approach.  The theoretical underpinnings are from the constructivist tradition and the play and materials people.  Piaget, Patri, Montessori and Reggio Emilia are big influencers.  This is apparent from the talk and the library collection.  Michael Hyde, my friend and fellow attendee points out to me that constructivism starts to look, feel and sound a lot like constructionism. Indeed it was Papert who hand-crafted his own educational theory with the notion of constructionism. When touring the projects there was a lot of building and making and crafting and construction.  Edith Ackerman, one of the guest speakers, even suggested in her talk that perhaps “the maker movement takes hands-on too literally.”  Is a constructionist approach too literal? Is it possible that taking constructivism too literally leads to constructionism?

I love the giant robot hands.

I love the giant robot hands that one team built. IMG_1359 They were huge, glorious, well crafted.  They even worked like real hands with stringy tendons and fingers.  They were marvelous.  They are proof that making is marvelous.  But is construction enough to achieve the objectives of constructivism and play?  Would adding an arduino and some programming make it even better or would it simply be animating an inanimate object? It’s so marvelous, the picture doesn’t even begin to show the magic. But, is this constructivism or constructionism? Is one better than another? Does it matter which?

Mind your Ps and Cs (Hot words of the 21st century)

I think if we are moving our pedagogy and our curriculum towards incorporating all the illustrious C words of 21st century learning as well as the P words, than both constructivism and constructionism will have a place.  Where play, passion, peers, projects and process (The 4Ps behind Scratch) are the mega goals and values of the classroom or school then bring on the cardboard, 3D printers, scanners, arduinos and whatever-else-you’ve-got.  Edith Ackerman supports the notion of making, but also encourages us to consider making-do as in reclaiming an age of domestic arts where fixing, repairing, improving and repurposing are as valued as inventing something out of nothing. I feel in my heart that there is value here, but I also feel a trap.  Edith Ackerman is interested in the relationship between the mind, the hand and the tool.  She says that it is not about success or failure but rather the ability to determine the next step.  She also calls on us to stay with these innovations long enough to see if we were seduced by a quick thrill or whether something greater and more important emerges from the intersection of the tools and the way they are appropriated by people and communities.  CMK is an epic win because it is this kind of intersection.  One with a pulse and a heart.  Like Michael, Greg and their team’s creation (pictured below).  It can be beautiful and meaningful all at once.  But, it is confusing.  It’s closer to art than to the school I know, but I am pretty sure that’s a good thing.

Heartbeat Wall from CMK 2014 on Vimeo.

 I feel it.

IMG_1298

“I do not remember the school ever staying with a beautiful idea long enough to have it become part of children’s lives.”

-Angelo Patri

 

Inspired by a blog post by Brandon Grasley, here are my current thoughts on whether or not to teach programming.  This is a comment I left on Brandon’s blog, but I had so much fun writing it, I wanted to have my own archive of my thinking.  Thoughts?  Be sure to check out his post too.

Yes! No! Yes, and . . .

I flip flop between 1 and 0 on whether programming should be taught.

Yes! Program or be programmed.

No! It’s akin to learning Latin a generation ago.

Yes! The Internet of things is increasingly present. Your oven will soon be connected to the web. Anything that is networked can be hacked both in good ways and not so good ways. (Restate: program or be programmed).

No! Increasingly you can do powerful things in the bit world without C+ to Ruby to Python and whatever program language you want to teach. Which raises the next issue: which programming language does one teach?

Yes, and . . {.where I think I really stand on this issue} . . .yes, we should be teaching/learning programming, *and* there should be an interplay between the bits and the atoms. In a word, MAKE. I think programming that is contextualized in making and the maker movement stands a better chance at democratizing the tools of creation, production, invention and general goodness. I think programming that blends on screen and face2face-in-my-hand creations satisfies our love for 1 and 0 and the reality of our flesh and bone atomic life.

So, why stop at programming? What people really need is a Fablab.

Yes! There are 10 kinds of people in this world. Those that understand binary and those who do not.