michael stewart - paving the way for computational thinking · paving the way for ct “when we can...

26
Computational Thinking What are The Fundamentals? 1 Michael Stewart http://people.cs.vt.edu/tgm

Upload: others

Post on 13-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Computational Thinking

What are The Fundamentals?

!1Michael Stewart http://people.cs.vt.edu/tgm

Page 2: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

• Charlotte, NC • • •

• Teaching Fellow • Media Comp

Instructor • Engr Ed Cert • • Master’s •

Michael Stewart

!2

Page 3: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Full Disclosure• Participant-Investigator for NSF Award: 1132227 -

CE21 Planning Grant: Integrating Computational Thinking into Middle School Curriculum

• Astronomical Proportions

• CritiSearch

• Sound of Fractions

!3

Page 4: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Computational Thinking

Computational Thinking is to be able to think explicitly about process, abstraction, and representation, and to understand the manifestations of these concepts in our everyday l i fe. A crit ical notion to this understanding requires we reflect on how we are affected by the computational artifacts with which we do/must interact.

!4

Page 5: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Outline

1. Guzdial and Media Computation

2. Please don’t all go out and learn to program

3. Dev. Comp. Think in Middle Schools… politicized

!5

Page 6: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Mark Guzdial

• Georgia Tech

• ACM Education Council

• Computer Science Education

• University

• High Schools (CS AP)

• Media Computation

!6

http://photo.joshdweiss.com/2011/11/10/portrait-mark-guzdial-wsj/

Page 7: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Media Computation• Learn programming by doing

interesting things

• Manipulate images easily

• Manipulate sounds

• Manipulate text

!7

https://github.com/thegreatm

ichael/Media-C

omputation-Exam

ples/tree/master/m

aroonEffect

Page 8: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Paving the Way for CT• Developing approaches that

will work for all students

• “‘Computational Thinking’ a 21st century literacy that we can share across campus”

• “Commonsense Computing”

• Writing vs. Reading/Fixing

• Teach everyone Programming

!8

V viewpoints

AUGUST 2008 | VOL. 51 | NO. 8 | COMMUNICATIONS OF THE ACM 25

DOI:10.1145/1378704.1378713 Mark Guzdial

Education Paving the Way for Computational ThinkingDrawing on methods from diverse disciplines—including computer science, education, sociology, and psychology—to improve computing education.

T EACHING EVERYONE ON cam-pus to program is a noble goal, put forth by Alan Per-lis in 1962. Perlis, who was awarded the first ACM A.M.

Turing Award, said that everyone should learn to program as part of a liberal education. He argued that pro-gramming was an exploration of pro-cess, a topic that concerned everyone, and that the automated execution of process by machine was going to change everything. He saw program-ming as a step toward understand-ing a “theory of computation,” which would lead to students recasting their understanding of a wide variety of top-ics (such as calculus and economics) in terms of computation.4

Today, we know that Perlis was pre-scient—the automated execution of process is changing how profession-als of all disciplines think about their work. As Jeanette Wing has pointed out, the metaphors and structures of computing are influencing all areas of science and engineering.6 Computing professionals and educators have the responsibility to make computation available to thinkers of all disciplines.

Part of that responsibility will be met through formal education. While a professional in another field may be able to use an application with little training, the metaphors and ways of thinking about computing must be explicitly taught. To teach computa-tional thinking to everyone on campus

may require different approaches than those we use when we can assume our students want to become computing professionals. Developing approaches that will work for all students will re-quire us to answer difficult questions like what do non-computing students understand about computing, what

will they find challenging, what kinds of tools can make computational think-ing most easily accessible to them, and how should we organize and structure our classes to make computing acces-sible to the broad range of students.

Through a few brief examples, I will show in this column how these

IL

LU

ST

RA

TI

ON

BY

CH

RI

ST

OP

HE

R S

IL

AS

NE

AL

1_CACM_V51.8.indb 25 7/21/08 10:12:49 AM

Page 9: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Paving the Way for CT

“When we can teach every student programming and the theory of computation in a way that makes sense to them for their discipline, we will see how ubiquitous understanding of computing will advance the entire academy, just as Perlis predicted over 45 years ago.”

!9

For All

[emphasis added]

Page 10: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm !10memegenerator.netMichael Stewart http://people.cs.vt.edu/tgm

Page 11: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

What other hats do you wear?

• CS as Mathematician

• CS as Humanist

• CS as Performing Artist

• CS as Musician

• CS as Natural Scientist

• CS as …

!11

What CT (CS) helps you, that might distinguish you from

other colleagues? http://upload.wikim

edia.org/wikipedia/en/c/c1/The_500_hats_of_bartholom

ew_cubbins.jpg

Page 12: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

What can CT offer our undergrads?

• Engineers

• Business

• Architecture and Design

• Agricultural

!12

Page 13: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

FUTURE TENSE WHAT'S TO COME?

AUG. 19 2013 7:45 AM

Maybe Not Everybody Should Learn to CodeA software engineer’s take on the new education call to arms.By Chase Felker

(Continued from Page 1)

But if you aren’t dreaming of becoming a programmer—and therefore planning to embark on

a lengthy course of study, whether self-directed or formal—I can’t endorse learning to code.

Yes, it is a creative endeavor. At its base, it’s problem-solving, and the rewards for exposing

holes in your thinking and discovering elegant solutions are awesome. I really think that some

programs are beautiful. But I don’t think that most who “learn to code” will end up learning

anything that sticks.

One common argument for promoting programming to novices is that technology’s

unprecedented pervasiveness in our lives demands that we understand the nitty-gritty details.

But the fact is that no matter how pervasive a technology is, we don’t need to understand how

it works—our society divides its labor so that everyone can use things without going to the

trouble of making them. To justify everyone learning about programming, you would need to

show that most jobs will actually require this. But instead all I see are vague predictions that

the growth in “IT jobs” means that we must either “program or be programmed” and that a

few rich companies want more programmers—which is not terribly persuasive.

You could argue that people have an obligation to be responsible consumers, so they should

have an idea of what their proprietary software is doing. People would definitely interact with

software differently if they knew something about whether their personal data is “secure.” But

there are several other things that everyone should—and does not—know, such as civic

knowledge or even more basic understandings of other educational topics like logic, science,

etc. For most, software is just another black box that they will happily coexist with, and that’s

OK.

11/12/13 Coding Horror: Please Don't Learn to Code

www.codinghorror.com/blog/2012/05/please-dont-learn-to-code.html 1/36

programming  and  human  factorsby  Jeff  Atwood

Please  Don't  Learn  to  Code

May  15,  2012

The  whole  "everyone  should  learn  programming"  meme  has  gotten  so  out  of  control  that  the  mayor  of  NewYork  City  actually  vowed  to  learn  to  code  in  2012.

A  noble  gesture  to  garner  the  NYC  tech  community  vote,  for  sure,  but  if  the  mayor  of  New  York  City  actuallyneeds  to  sling  JavaScript  code  to  do  his  job,  something  is  deeply,  horribly,  terribly  wrong  with  politics  in  thestate  of  New  York.  Even  if  Mr.  Bloomberg  did  "learn  to  code",  with  apologies  to  Adam  Vandenberg,  I  expectwe'd  end  up  with  this:

10 PRINT "I AM MAYOR"

20 GOTO 10

Fortunately,  the  odds  of  this  technological  flight  of  fancy  happening  –  even  in  jest  –  are  zero,  and  for  goodreason:  the  mayor  of  New  York  City  will  hopefully  spend  his  time  doing  the  job  taxpayers  paid  him  to  doinstead.  According  to  the  Office  of  the  Mayor  home  page,  that  means  working  on  absenteeism  programs  forschools,  public  transit  improvements,  the  2013  city  budget,  and  …  do  I  really  need  to  go  on?

To  those  who  argue  programming  is  an  essential  skill  we  should  be  teaching  our  children,  right  up  there  withreading,  writing,  and  arithmetic:  can  you  explain  to  me  how  Michael  Bloomberg  would  be  better  at  his

day  to  day  job  of  leading  the  largest  city  in  the  USA  if  he  woke  up  one  morning  as  a  crack  Java  coder?  Itis  obvious  to  me  how  being  a  skilled  reader,  a  skilled  writer,  and  at  least  high  school  level  math  arefundamental  to  performing  the  job  of  a  politician.  Or  at  any  job,  for  that  matter.  But  understanding  variablesand  functions,  pointers  and  recursion?  I  can't  see  it.

Look,  I  love  programming.  I  also  believe  programming  is  important  …  in  the  right  context,  for  some  people.But  so  are  a  lot  of  skills.  I  would  no  more  urge  everyone  to  learn  programming  than  I  would  urge  everyone  tolearn  plumbing.  That'd  be  ridiculous,  right?

(HTTP://WWW.FASTCOMPANY.COM)No--You Don’t Need ToLearn To CodeThe whole world seems to be telling you that you need

to learn programming. Here’s why you don’t--and

what you should learn instead.By Ciara Byrne(/user/ciara-byrne)

Imagine being harangued by a deluge of articles

with headlines like “Why everyone should learn

to knit.(http://venturebeat.com/2012/09/17/why-

everyone-should-code/)” With all due respect to

knitters, it would seem ridiculous. Yet the

rallying cry to learn to code has become so

pervasive that we’re barely surprised when a

software developer in New York engages in a

highly publicized attempt(http://gothamist.com/2013/10/14/code_homeless_arrested.php)

to teach a homeless man how to code. New York

Mayor Michael Bloomberg famously(http://www.bbc.co.uk/news/technology-

16440126) told the press last year that even he

planned to take a course on Codecademy, but of

course, you can also get programming tutorials

from Bill Gates or Mark Zuckerberg on Code.org

(http://www.theregister.co.uk/2013/10/15/gates_zuckerberg_to_offer_free_coding_lessons/).

Oddly, even non-technical people like VCs are

urging you to learn to code(http://www.avc.com/a_vc/2013/10/if-you-

arent-technical-get-technical.html).I’m a programmer. Do I think everyone should

learn how to code? No. Here’s why.

10 C0D3, or not to code

!13Michael Stewart http://people.cs.vt.edu/tgm

from the Academ

ic Decathlon in Billy M

adison

Page 14: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Contention over Coding

Growth in IT Jobs

Program or be programmed

Responsible consumers

!14

Programming at the cost of what?

Many things responsible adults should know (but don’t)

One bad programmer creates 2 jobs/yr

Misconceptions about coding and large salaries

Page 15: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Learn Something Else“‘Ars longa, vita brevis,’ meaning ‘The craft is long, Life is short.’ So choose your craft wisely. In the time that you saved by not learning to code, learn to do something you enjoy more.”

“Knowing how to evaluate the privacy bargain we make with tech companies, escape the filter bubble, analyze the values behind a piece of software, verify information you get on Twitter, understand how the Internet is structured or how search and recommendation algorithms work, is probably more valuable in everyday life than writing Python code.”

!15

Page 16: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm !16memegenerator.netMichael Stewart http://people.cs.vt.edu/tgm

Page 17: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

• Guidelines toward iterative development of CT

• not a definition of CT

• Activities that further core subject

• Participatory Design

*DRAFT* Please do not cite or copy without permission of first author *DRAFT*

1

A Preliminary Report on a Method for Creating Activities

that Integrate Computational Thinking into Middle School

Core-Content Instruction

Deborah Tatar, Steve Harrison, Michael Stewart, Dennis Kafura, Manuel Perez-Quinones,

Clifford A. Shaffer, Lauren Bradel, Stacy Branham, Sharon Chu, Jessica Self

Department of Computer Science

Virginia Tech

{tatar, srh, tgm, lbradel1, sharilyn, kafura, perez, shaffer, jzself}@cs.vt.edu

ABSTRACT

We can increase computational thinking (CT) in K-12 education

by integrating CT activities into core content instruction (e.g.

mathematics, social science, language arts and science). Activity

integration is promising but, by-and-large, English, Math, Sci-

ence and History teachers want to teach their topics, not CT.

Therefore, one challenge is that integrated CT activities must

also serve perceived core content goals. A second challenge is

the need to develop enough activities to have significant impact.

To investigate and bootstrap a process for activity generation,

we taught a combined graduate/undergraduate class at our uni-

versity that paired teams with 8th G teachers in a participatory

design context. This class (1) resulted in interesting projects and

(2) provides evidence for the promise of this approach to gener-

ating activities.

Categories and Subject Descriptors

K.3.2 [Computers and Education]: Computer and Information

Science Education

General Terms

Design, Experimentation

Keywords

Computational thinking, curriculum, pedagogy, middle school

1. INTRODUCTION

It stands to reason that most efforts to increase computational

thinking (CT) in K-12 education do so directly, by implementing

instruction that features computer science or at least the compu-

tational. We are attempting to complement (and compliment!)

those efforts with another approach: integrating CT activities

into instruction in core curricular areas.

On the face of it, this approach has several attractive qualities.

First, it does not require major restructuring of K-12 education

in the United States to accommodate computer science. A day

might come in which instruction in CT (or at least program-

ming) is explicit, widespread and sufficient, but that day is not

yet here. In theory, an integrated approach works with existing

teachers and existing students in the existing educational system.

Furthermore, if the integration of CT is into core curricular are-

as, the integrated approach makes equity central, because all

students, by definition, receive instruction in core curricular

areas. Second, even if or when direct instruction in CT becomes

widespread, further instruction will be required for students to

perceive the widespread applicability of the computational ideas.

The concept “far transfer” in the learning science describes phe-

nomena associated with the problem of how and when learning

in one context can be seen as relevant to problems in another

context [1,4]. Although limited examples of far transfer exist,

they are the exception rather than the rule. Generally speaking, it

is hard mental work to see the applicability of a method to a new

area. Third, arguably, appreciation for the beauty and power of

CT may grow from access to an intellectual substrate that cross-

cuts disciplines. That is, an appreciation for precision, reflection,

iterative processes of improvement, good use of tools, and suc-

cinct expression is important for CT, but also for significant

attainment in any intellectual field. While our main goal may to

teach CT per se, most K-12 students would benefit from any

intervention that increases their engagement with a wide swath

of intellectual practices that are similar to, overlap with, or have

a family resemblance to CT. Our world could use more high

school graduates with more clarity of thought.

Several challenges are intrinsic to an integrated approach to

computational thinking (ICT). These include the fact that the

approach risks asking teachers to teach content that is neither of

particular interest to them, nor central to their professional

charge; that teachers who are not trained in CT and possibly do

not care for it may lose the point; and that the material may ap-

pear in such distributed and opportunistic form that significant

impact on students is vitiated. Additional challenges include

detection of learning and omission of significant bits of CT

through this mechanism. However, these last two issues primari-

ly affect project scope, not actual efficacy.

An additional, more pragmatic, challenge is to create a sufficient

number of small, integrated CT activities for the approach to

have a chance of working. We would not want to commit the

error of trying to evaluate an approach before it is sufficiently

realized. To serve the dual goals of promoting classroom con-

tent area and CT needs, we have created and are refining a social

“engine” for activity generation.

Key features of this social engine are:

Permission to make digital or hard copies of all or part of this work for

personal or classroom use is granted without fee provided that copies are

not made or distributed for profit or commercial advantage and that

copies bear this notice and the full citation on the first page. To copy

otherwise, or republish, to post on servers or to redistribute to lists,

requires prior specific permission and/or a fee.

Conference’10, Month 1–2, 2010, City, State, Country.

Copyright 2010 ACM 1-58113-000-0/00/0010…$10.00.

Awards

Search AwardsRecent AwardsPresidential and HonoraryAwards

About Awards

How to Manage Your AwardGrant Policy ManualGrant General ConditionsCooperative AgreementConditions

Special ConditionsFederal DemonstrationPartnership

Policy Office Website

Award Abstract #1132227 Planning Grant: Integrating Computational Thinking Into Middle

School Curriculum

NSF Org: CNSDivision of Computer and Network Systems

Initial Amendment Date: September 16, 2011Latest Amendment Date: August 13, 2013Award Number: 1132227

Award Instrument: Standard GrantProgram Manager: Janice E. CunyCNS Division of Computer and Network Systems

CSE Directorate for Computer & Information Science &

Engineering

Start Date: October 1, 2011Expires: January 31, 2015 (Estimated)Awarded Amount to Date: $215,998.00

Investigator(s): Deborah Tatar [email protected] (Principal Investigator)

Dennis Kafura (Co-Principal Investigator)Steve Harrison (Co-Principal Investigator)Manuel Perez (Co-Principal Investigator)Chris Corallo (Co-Principal Investigator)Sponsor: Virginia Polytechnic Institute and State University

Sponsored Programs 0170BLACKSBURG, VA 24061-0001 (540)231-5281NSF Program(s): Computing Ed for 21st Century,SPECIAL PROJECTS - CISEProgram Reference Code(s): 9251

Program Element Code(s): 7382, 1714ABSTRACTVirginia Polytechnic Institute and State University (VT) is partnering with the Henrico

County Public School District (HCPS) on a planning grant to develop a CE21 project that

SEARCH

FUNDING AWARDS DISCOVERIES NEWS PUBLICATIONS STATISTICS ABOUT NSF FASTLANE

NSF Award Search: Award#1132227 - Planning Grant: Integrati... http://www.nsf.gov/awardsearch/showAward?AWD_ID=1132227

1 of 2

11/12/13, 13:33

Developing CT in Middle School Core Curricula

!17

Page 18: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Joint Initiative• 1:1 Laptop Program

• ITRT - Instructional Technology Resource Teacher

• Core Subject Teachers

• > 5 yrs xp

• “pro-active engagement as teacher-leaders and previous participation in the [HCPS] digital initiative”

• taught with … technological products in the classroom

• none had a stake in CT

!18

http://1.bp.blogspot.com/-nYt3HZI1tx8/UQAU1gbmJfI/AAAAAAAAAEA/g-V8seGFwvw/s1600/01+angel-halo-hi.png

Page 19: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

CT Guidelines

• “Thinking like a Computer Scientist”

• Representation, Structure, Communication

• Plans

!19

“These components do not attempt to articulate the full breadth or depth of CT. They are not a definition. What

they do is provide guidelines that prevent the project from overlooking important learning opportunities.”

Page 20: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Participatory Design to CT Integration

• Students wrestle with definition of CT.

• Students visit site for first-person observation.

• Students (researchers) directly communicate with participating teachers and students (subjects).

• Students work with teachers to identify challenging topics in core content.

!20

Page 21: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

CT in Language Arts

• Students get lost when researching

• Difficult to diagnose lost students

• Difficult to model successful strategies

!21

Page 22: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

CritiSearch• Student must answer questions of relevancy

• decouples query formation/modification from result digestion

• “seamful interaction” asks the student to decide which results are relevant

• demote search engines’ oracle status

• contrast promoted and demoted items

!22

Page 23: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

CT in Earth Science• “students do not

understand scale”

• Earth Science includes cells and galaxies

• “anytime we start tacking zeros on the ends of numbers, we lose them”

!23

Page 24: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Astronomical Proportions• “We use a lot of

data tables, and I don’t want them to think of them as magic”

• students enter data

• students flag data

• students change representation

!24

Page 25: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Computational Thinking for all?

• Many other fields can benefit from some sort of formally specified approach (programming)

• repeatable

• testable

• optimizable

• Technical/Computational Literacy is critical as more of our lives require using technology

• Seamful interactions with technology could help us teach/learn important lessons about information capabilities, provenance/ownership, politicization, …

!25

Page 26: Michael Stewart - Paving the Way for Computational Thinking · Paving the Way for CT “When we can teach every student programming and the theory of computation in a way that makes

Michael Stewart http://people.cs.vt.edu/tgm

Standing on the Shoulder of Giants

• Guzdial - Education: Paving the way for computational thinking

• Don’t Code

• Slate - Maybe Not Everybody Should Learn to Code

• Please Don't Learn to Code

• No--You Don’t Need To Learn To Code

• Tatar, Harrison, Stewart, Kafura, Pérez-Quiñones, Shaffer, Bradel, Branham, Chu, Self, Scerbo, Frisina (unpublished manuscript)

!26

http://en.wikipedia.org/wiki/File:Library_of_Congress,_Rosenwald_4,_Bl._5r.jpg