Computational Thinking with the Wolfram Language

Daavid Väänänen
Ambassador for The Computational Thinking Initiatives
daavid@computationinitiative.org

Outline
  💡   What is Computational Thinking?
    💡   Why Would You Do Computational Thinking?
       💡   How Would You Do Computational Thinking?
         💡   Computational Thinking Initiatives
            💡   How You Can Advance Computational Thinking

Join the Conversation #WolframTechConf

Computational Thinking with the Wolfram Language

ABSTRACT

An overview of Computational Thinking and 
related Wolfram Language based resources for 
Educators, Researchers and Organizational Development

During this talk, we will walk together through the following three questions: What is computational thinking? Why would you do computational thinking? How would you do computational thinking? In particular, you will learn about the Wolfram Foundation’s Computational Thinking Initiatives (CTI) approach of applying the Wolfram Language to rethink teaching and learning in K–12 education. During the talk, you will be able to join in on an example of a CTI AI Adventure. An update on the current activities and future prospects of CTI will be given, together with information on how the wider Wolfram community can contribute to advancing computational thinking.

What is Computational Thinking?

Prior to this conference, 
	how many of you have heard about Computational Thinking?

What is Computational Thinking?

Google

“CT is a problem solving process that includes a number of characteristics, such as logically ordering and analyzing data and creating solutions using a series of ordered steps (or algorithms), and dispositions, such as the ability to confidently deal with complexity and open-ended problems.” (Google for Education)

Wikipedia

“CT is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer — human or machine — can effectively carry out.” (Jeannette Wing, VP @ Microsoft Research)

Cargnegie Mellon’s Center for Computational Thinking

“CT is a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science.”

Wolfram|Alpha

Wolfram Foundation’s Computational Thinking Initiatives

“CT trains the mind to see the ways in which the special skills of ubiquitous modern computational devices can be harnessed to better understand the physical, social, intellectual and cultural worlds we inhabit.”

Why Would You Do Computational Thinking?

Increasing role of Automation and Information & Communication Technologies

Why Would You Do Computational Thinking?

Increasing role of Automation and Information & Communication Technologies

“We have to be looking at how we train our young people and reskill workers, so they are ready to move into new roles that technology like AI will create ... emphasising the importance of increased investment in lifelong learning and retraining.”

(PwC Analysis 2018, Will Robots Really Steal Our Jobs?, pwc.co.nz/automation)

How Would You Do Computational Thinking?

({{Computational Adventure Example:
How Secure Is My Bike Lock?, }})

Your friend has forgotten the word she used for her bike lock. 
However, she remembers it is an English word.
Would you be able to help unlock her bike?

E.g. Middle School Classroom:
	1) Pairs or in small groups (depending on how many locks you have available)
	2) Give a wordlock to each group
	3) One will choose an English word and others will take turns to try to unlock it 
	4) Give a few minutes and see how many will be able to unlock it (if any)
	5) How could you do it more efficiently?

How Would You Do Computational Thinking?

({{Computational Adventure Example:
How Secure Is My Bike Lock?, }})

WordList[]

"a"|"b"|"c"|"d"|"e"~~"a"|"b"|"c"|"d"|"e"~~"a"|"b"|"c"|"d"|"e"~~"a"|"b"|"c"|"d"|"e"

Select[WordList[], StringMatchQ[#,%] &]

Computational Vocabulary

WordList[]

Select[]

StringMatchQ[]

Length[]

Symbols

""

~

,

|

#

&

%

How Would You Do Computational Thinking?

({{Computational Adventure Example:
How Secure Is My Bike Lock?, }})

Alphabet[]

Nest[#~~#&,Alphabet[], 3]

Select[WordList[], StringMatchQ[#,%] &]

Length@%

Alphabet["Finnish"]

WordList["KnownWords", Language->"Finnish"]

Nest[#~~#&, Alphabet["Finnish"], 3]

Select[WordList["KnownWords", Language->"Finnish"], StringMatchQ[#,%] &]

Length@%

words = WordList["KnownWords",Language->"Arabic"]

dials = Nest[#~~#&,Alphabet["Arabic"], 3];

Select[words, StringMatchQ[#, dials] &]

Length@%

How Would You Do Computational Thinking?

Computational Lesson Plans
	www.computationinitiative.org/resources/teaching

Computational Essays
	blog.stephenwolfram.com/2017/11/what - is - a - computational - essay

Tool for Self-reflection and Evaluation

		Computational Essay Example:

How Secure is my Bike Lock?

In this Essay we are investigating security of a word-lock type bike lock. Our initial problem was to help unlock a bike of a friend who has forgotten the combination for the bike lock, but we knew that the combination is an English word.

First we played with real locks like this:

We tried to unlock them and each time we measured how much time it took.

Then we used a computer to help find out what are all the possibilities. In Wolfram Language we can use  the function WordList to find all known words:

WordList[]

Using the symbols “” |  and ~ , we made a computational bike lock with all the possible letters:

"a"|"b"|"c"|"d"|"e"~~"a"|"b"|"c"|"d"|"e"~~"a"|"b"|"c"|"d"|"e"~~"a"|"b"|"c"|"d"|"e"

We used functions Select and StringMatchQ to select all the possible words from the WordList that could be made with our computational bike lock:

Select[WordList[],StringMatchQ[#,"a"|"b"|"c"|"d"|"e"~~"a"|"b"|"c"|"d"|"e"~~"a"|"b"|"c"|"d"|"e"~~"a"|"b"|"c"|"d"|"e"]&]

With a function Length (and symbols @ and %) we can quickly calculate the number of all possible words:

Length@%

Computational Thinking  -  The Wolfram Way

({{, Wolfram Foundation
www.wolframfoundation.org}})

Objective is to support education, research and entrepreneurism. 
	On our own and with our partners we organize and manage programs and 
	create long-term resources to realize the promise of science and computation in 
	building the future.

({{, Computational Thinking Initiatives
www.computationinitiative.org}})

Computational Thinking Initiatives

Computer-Based Math

conradwolfram.com/home/anchoring-computational-thinking-in-todays-curriculum

({{
  ,  
AI Adventures
AI Leagues
AI Camps
AI Arts& Science Fair}})

ComputationalThinking.org

“... delivers learning programmes for everyone. 
Our pioneering approach is not only about coding, 
maths you may have missed and critical thinking, 
but also the underlying core computational thinking 
that drives all of them — for example, 
applied to data science, modelling and life skills.”

Computational Thinking Initiatives: Updates

www.computationinitiative.org/programs

AI Adventures

www.computationinitiative.org/resources/teaching

14 publicly available, 40+ under development/review

Training material available to help develop your own

AI Camps

Wolfram High School Summer Camp (held annually in Waltham, USA, since 2012)

Wolfram STEM Stars School in Australia (first time April 2018)

AI Leagues

2017: 3 active AI Leagues

2018: 13 active AI Leagues

2019: objective ~40 active AI Leagues

Computational Thinking Initiatives: Prospects

Focus on Teacher Training and Professional Development

Train educators to build CT comprehension and ability to initiate programs in their own schools

Identify and test metrics to measure CT comprehension

First PD round on May 14th with a full class of enthusiastic educators (4 time zones)! (next round Spring 2019)

6 Educator Roundtables

375 students and 64 educators participated in CTI activities, 5840 hours in total

2019 objective: 12,000 hours, offering multiple opportunities throughout the year

How YOU Can Advance Computational Thinking

As an EDUCATOR

blog.stephenwolfram.com/2016/09/how-to-teach-computational-thinking

Create Computable Educational Content

[K12] Computational Thinking Initiatives; AI Adventures, AI Camps, AI Leagues, AI Arts & Science Fairs and Teacher Training / Professional Development

CODE SEAL - Computational Curriculum Development Platform: 			www.codeseal.org

Wolfram Challenges: challenges.wolfram.com

Share Opportunities for Students

Wolfram Student Certification Program

Wolfram Student Mentorships Program

Wolfram Student Ambassador Program

As a RESEARCHER

Create Computable Data-Backed Publications

blog.stephenwolfram.com/2017/04/launching-the-wolfram-data-repository-data-publishing-that-really-works

Create Computable Citizen Science Projects with Deeper Learning

Within Your Organization

People with CT skills are more effective at

handling complexities

identifying relevant concepts

crafting useful, interesting questions

devising novel solutions

communicating

Wolfram Demonstrations Project: demonstrations.wolfram.com

How YOU Can Advance Computational Thinking

Make Content Accessible:  notebookarchive.org

Become Certified Computational Educator

MAIT Certification by CTI: Contact me or other CTI representatives

Become Certified Wolfram Instructor

www.wolfram.com/training/certinstructorapp.cgi

Become Certified Data Curator

PART 1: www.twitch.tv/videos/153602347
	PART 2: www.twitch.tv/videos/155323516
		PART 3: www.twitch.tv/videos/158655086

Become Community Ambassador

Contact program coordinator Denzel McCauley: denzelm@wolfram.com

How YOU Can Learn More

Elementary Introduction to Wolfram Language (free online)

www.wolfram.com/language/elementary-introduction/2nd-ed

Wolfram University

wolfram.com/wolfram-u

Wolfram Summer School

education.wolfram.com/summer/school

Wolfram Community

community.wolfram.com

Hands-on Start to Mathematica

wolfr.am/ohAYI54M2

Computational Thinking

“THE MAGIC IS IN OPTIMISING HOW 
PROCESS, COMPUTER AND HUMAN
CAN BE PUT TOGETHER TO SOLVE 
INCREASINGLY TOUGH PROBLEMS.”
- Conrad Wolfram

“IT’LL BE A DEFINING FEATURE OF THE FUTURE
AND CHILDREN NEED TO LEARN IT NOW 
TO ENSURE SUCCESS LATER ON.” 
- Stephen Wolfram