Computing education is in enormous demand. Many students (both children and adult) are realizing that they will need programming in the future. I argue that they are not all going to use programming in the same way and for the same purposes. What do we mean when we talk about teaching *everyone* to program? Should we have the same goals as computer science education for professional software developers? How do we design computing education that works for everyone? I propose the use of a learner-centered design approach to create computing education for a broad audience. I review the history of the idea that programming isn’t just for the professional software developer, and present case studies to explore the idea that computer science for everyone requires us to re-think how we teach and what we teach.
3. • A software engineer who
builds applications for end-
users.
• A mathematician who works in
Mathematica her whole life.
• A graphic designer who
programs in JavaScript to
automate Photoshop
processes.
• The data scientist who scrubs
data with Perl and analyzes in
R.
• A chemical engineer who
writes 20 new lines of
MATLAB code each day, then
throws them away.
• The office worker who builds
Excel macros weekly for co-
workers.
• The homeowner who writes
home automation scripts.
• The musician who codes live
in front of an audience.
Do all of these use the same
CS practices and knowledge?
4. Story
I. Our Job: The first computer scientists set a goal to achieve
a Computing-Literate Society.
II. Challenges to Achieving a Computing-Literate Society
• Access and the Inverse Lake Wobegon Effect
• Learner-Centered Design
III. Inventing New Kinds of Computing Education for
Different Communities of Practice
• Story #1: Providing Computing Education for Graphics Designers’
Community of Practice.
• Story #2: Understanding the Needs of High School CS Teachers.
7. Learn Programming
to Re-Think Process Everywhere
• Alan Perlis argued that
computer science should be
part of a liberal education.
• Explicitly, he argued that
all students should learn to
program.
• Why?
• Because Computer
Science is the study of
process.
• Automated execution of
process changes
everything
• Including how we think about
things we already know
8. Elias: Does it have to be programming?
• Licklider: Peter, I think the first apes who tried to talk with
one another decided that learning language was a
dreadful bore…But some people write poetry in the
language we speak.
• Perlis: The purpose of a course in programming is to
teach people how to construct and analyze processes…A
course in programming is concerned with abstraction: the
abstraction of constructing, analyzing, and describing
processes…The point is to make the students
construct complex processes out of simpler ones….A
properly designed programming course will develop
these abilities better than any other course.
8
9. “A handful of people, having
no relation to the will of
society, having no
communication with the rest
of society, will be taking
decisions in secret which
are going to affect our lives
in the deepest sense.”
The Power and Fear of Algorithms
• The Economist (Sept.,
2007) spoke to the
algorithms that control us,
yet we don’t understand.
• Credit Ratings, Adjustable
Rate Mortgages, Search
Rankings
• C.P. Snow foresaw this in
1961.
• Those who don’t understand
algorithms, can’t understand
how the decisions are made.
10. II. Challenges
• Access and Diversity: We aren’t reaching
everyone.
• Inverse Lake Wobegon Effect: We see
little of the problem.
• Learner-Centered Design: A strategy for
creating computing for everyone
13. Inverse Lake Wobegon Effect
• We only know the
top half.
• People who take
CS in
undergraduate are
above average.
• People who get
access to CS
education are
among the most
privileged in
14. Learner-Centered Design
• Learners are
different than experts
(Soloway, Guzdial, &
Hay 1994)
• Designing for
learners starts with
understanding
learners, their
learning needs, and
how they want to
learn.
15. III. Inventing New Kinds of
Computing Education
• Different Communities of Practice =>
Different Learning Objectives
• Story #1: Providing Computing Education
for Graphics Designers’ Community of
Practice
• Story #2: Understanding the Needs of
Secondary School Computing Teachers
16. CS for Everyone/All
• Efforts in many countries to
make computing education
available to all students.
• Do all students need or
want the same CS
education?
• Do they all need or want
the same expertise? To be
the same kind of
practitioner?
17. Sociocognitive Theories of
Learning
• Situated
Learning (Lave
& Wenger) says
that students
seek to join a
community of
practice.
• Students’ Goal:
To adopt the practices
and learn the values
of those at the center
of the community of
practice.
18. Beyond a Software
Development CoP
Most people
who program
are not part
of a software
developer
community of
practice
(CoP).
http://changetheequation.org/blog/hidden-
half
19. Student values based on
perceived CoP
Students who value
media development
want different kinds of
programming
languages than those
who want to be
programmers.
(DiSalvo, 2015)
Authenticity
matters. (Shaffer &
Resnick, 1999)
20. Story #1: Computing Education
for Graphics Designers’ Community of Practice
Significant
amount of
programming
from designers
who reject the
identity of
“programmer.”
21. Fitting into existing practice:
Graphics designers who program
• Brian Dorn conducted a
series of interviews and
assessment activities.
• Found that these subjects
want more computer
science, but don’t find
courses (and most other
resources) adequate (Dorn
& Guzdial, ICER 2010)
• P10: So, that was a
really long way of
saying yes, I think
that an academic
study would make
me a better
programmer, but not
by a whole lot.
22. Where are they getting their
CS knowledge?
• Mostly on-line:
• FAQs and other
documentation
• Books (when
applicable)
• Lots of examples and
networking.
• Not so much classes
22
Dorn & Guzdial, CHI
2010
23. Rejection of programming CoP
• They reject, and feel rejected in return, by
programmers:
• P9: “I met a guy who programs ATM machines, and he
busted me for calling myself a coder. He says, well no,
you’re a scripter. And the coders you know, they’re down
there in the dirty behind the scenes playing with the
rendering buffers and you know, moving bits of memory
back and forth.”
• P2: “I went to a meeting for some kind of programmers,
something or other. And they were old, and they were
nerdy, and they were boring! And I’m like, this is not my
personality. Like I can’t work with people like that.”
24. What do software engineers do?
Answer: The Boring Stuff.
• P2: I was able to take different samples from different
places and instead of just being let's say an MIS major, or
computer science major, you know it's—you're not going
to be front-end anything with computer science.
You're going to be back-end everything.
• P4: I think as a front-end developer, you focus more on
the design and the usability, and you're focusing more on
the audience. And then on the back-end I think you're
focused on more, these are like the software developers.
And they're programming something, and they don't
really see what it's gonna look like; they're just making
it work.
25. They are not afraid of coding
• “What interests you about web design?”
• P12: The coding! I don't like to code. But the
things that the code can do is amazing, like you
can come up with this and voila, you know, it's
there. Javascript for one. The plugins and stuff. I
think that's very interesting, intriguing and stuff.
Because I mean like the code is just, there's
so much you can do with code and stuff. It's
just like wow.
26. They’re Inefficient without
Initial Knowledge
• Learning less than they might because of a lack of
deep knowledge.
• For example: Exploring code by searching Google for
function and variable names.
• Learning about Java when programming in JavaScript
• Brian’s experiment: Given a case library with
conceptual information vs. a code repository
alone, what gets learned, used, and liked? (ICER
2011)
28. Bottomline: Cases work
• They like the cases.
• They coded the problems the same.
• Case-users learn the concepts, while
repository users do not.
• Graphic designers won’t take classes “for
programmers.”
• So, we provide learning opportunities where
they are looking for them.
28
29. Story #2: Understanding
CS Teacher’s Needs
To be successful, CS teachers need:
1. A sense of identity
• Where does that sense of identity come from?
• Confidence in their ability to teach
• For US CS teachers, from community and role models. (Lijun
Ni, 2011)
2. More professional learning: CK and PCK
30. Teachers need their Communities
“I’m a better Math teacher, just because I’ve
had so much support. Whenever I have
problems, I can talk with the people that I work
with, most of who have taught for many years
in Math.…Every day, I’m eating lunch with
Math teachers.
With Computer Science, I’ve got nobody to
talk to.”
From Lijun Ni’s 2011 thesis
on CS teacher identity
31. Disciplinary Commons
Group of educators from diverse
institutions who teach within the same
subject area meeting monthly over an
academic year.
In monthly increments, the
participants prepare a course portfolio.
Goals
1. To document and share knowledge about student
learning in Computer Science classrooms.
2. To establish practices for the scholarship of
teaching by making it public, peer-reviewed, and
amenable for future use and development by
other educators. [1]
[1] Tenenberg, J. and Fincher, S. Opening the door of the computer science classroom: the
Disciplinary Commons. SIGCSE Bull., 39, 1 2007, 514-518.
32. DCCE in Georgia
Disciplinary Commons for Computing Educators
Adaptation – High School teachers AND
University
Goals
1. Creating community
2. Sharing resources and knowledge of how
things are taught in other contexts
AND…
3. Supporting student recruitment within the
high school environment
Work by Briana
Morrison, Lijun Ni, Ria
Galanos, & Allison Elliott
Tew
34. Improving Recruiting
• 302% increase in number of AP CS students in the year
following their participation in the DCCE
• Year of participation – 122 students enrolled
• Next year – 491 students pre-registered
• One teacher 700% increase (3 to 24 students)
• Reasons:
1. Venue to share recruitment ideas
2. Sense of community (keep up morale during
recruiting)
35. Teacher Confidence
“I think DCCE definitely did help [me feel
more confident]. I think it was just being a part
of a community of teachers that you can
actually talk with about teaching. That gives
you confidence when you don’t teach it in a
vacuum.”
36. How do you prepare your students
for the AP CS exam?
36
• “Everything in that class is more or less an
assessment. They’re supposed to read certain
sections in the book, and then they have quizzes
over the reading. After they do the reading
assignments, they have Gridworld case study
quizzes and also Gridworld case study segments
of code that they will go in and manipulate to
change to get the things in the Gridworld case
study to react different ways. Those are pretty
much graded as labs or programs or quizzes.”
37. How do you prepare your students
for the AP CS exam?
37
• “Everything in that class is more or less an
assessment. They’re supposed to read certain
sections in the book, and then they have quizzes
over the reading. After they do the reading
assignments, they have Gridworld case study
quizzes and also Gridworld case study segments
of code that they will go in and manipulate to
change to get the things in the Gridworld case
study to react different ways. Those are pretty
much graded as labs or programs or quizzes.”
38. How do you prepare your students
for the AP CS exam?
38
• And then if I read these [student quizzes], I can see any
misconceptions or gaps in what I’ve done. I get a picture
in my mind of where the current class is. Making them do
the explaining is new this year. I’m seeing them do a lot
better there. I‘ll do like little code (assignments) that
they’ll write once a week. They have to write it by hand
away from the computer, and I’ll read that and write them
comments on what they’re doing and help them grade it
with a rubric, and also pass them back after I’ve read
them for them to grade, too, and have them look at what
was catching it or where it didn’t quite get to it.
39. How do you prepare your students
for the AP CS exam?
39
• And then if I read these [student quizzes], I can see any
misconceptions or gaps in what I’ve done. I get a picture
in my mind of where the current class is. Making them do
the explaining is new this year. I’m seeing them do a lot
better there. I‘ll do like little code (assignments) that
they’ll write once a week. They have to write it by hand
away from the computer, and I’ll read that and write them
comments on what they’re doing and help them grade it
with a rubric, and also pass them back after I’ve read
them for them to grade, too, and have them look at what
was catching it or where it didn’t quite get to it.
40. A successful CS teacher…
40
• Writes assignments and comments, not code.
• Guides students through rubrics.
• Focus on learning activities (coding away from
the computer, explaining).
• Minimal focus on assessment.
…is not a Software Developer.
41. Teaching CS Teachers online
41
• Can we reach more potential CS teachers online?
• Emphasizing the skills and knowledge of successful CS
teachers.
• Providing more efficient learning than apprenticeship.
• Providing support for a sense of community
44. Findings on Ebook
Ericson, Guzdial, &
Morrison, ICER 2015
Teachers who
engaged in the
ebook increased
their confidence in
teaching CS Ericson, Moore,
Morrison, & Guzdial,
WiPSCE 2015
45. Conclusions
• It’s a foundational CS problem to develop a
computing-literate society.
• The challenges are enormous, including providing
for different communities of practice.
• A solution may be a learner-centered design process.
• Two lessons from our work:
1. Provide learning opportunities where the learners are, without the
identity of “programmer.”
2. Teachers don’t need to be software developers. They need
community, confidence, and more learning options beyond
apprenticeship.
46. Thanks to colleagues and supporters
• Colleagues: Barbara Ericson, Tom McKlin, Rick
Adrion, Renee Fall, Brad Miller, Ria Galanos, Allison
Elliott Tew, Lijun Ni, & Briana Morrison
• Our Funders:
US National Science Foundation
• Statewide BPC Alliance: Project “Georgia Computes!”
http://www.gacomputes.org
• Expanding Computing Education Pathways Alliance,
http://expandingcomputing.org
• CCLI and CPATH Grants, and now CE21 and IUSE to produce ebooks
• Georgia’s Department of Education
• GVU Center, and Institute for People and Technology
(iPaT) at Georgia Tech
47. Thank you!
• http://www.cc.gatech.edu/~mark.guzdial
• Group pages: http://home.cc.gatech.edu/csl
• Ebook Access:
http://ebooks.cc.gatech.edu/TeachCSP-Python
• Media Computation:
http://mediacomputation.org
• Institute for Computing Education at Georgia Tech:
• http://coweb.cc.gatech.edu/ice-gt
• Expanding Computing Education Pathways (ECEP):
• http://ecepalliance.org
49. They want to know more
• P1: So I mean technology changes. So what I am ideally
looking to focus on are like the foundation. The things that
change less, you know what I'm saying? Like computer
science um, theory, you know I'm saying I mean? That
kind of like, it's applicable to what I do, and it's not so
constantly shifting.
• P10: I was the kind of programmer that could make stuff
work. But I didn't really have solid understandings. At one
point I picked up a book on design patterns and I looked
at it, and I was like that's really, that's really
interesting…So I was like well I wanna keep doing that
because it made me a better programmer. And it was
more fun to program, and it was more thought 49
50. Does it have to be programming?
• Elias: If the computers, together with sufficiently
ingenious languages and programming systems, are
capable of doing everything that Professor Perlis
describes—and I believe they are (and more)—then
they should be ingenious enough to do it without
the human symbiote being obliged to perform the
mechanical chores which are a huge part of current
programming effort, and which are a large part of
what must now be taught in the introductory course
that he proposes.
50
51. Richard Dawkins on
Biology as Computer Science
• On US National Public Radio in April 2007:
• GROSS: You close your book saying, "I am thrilled to be
alive at a time when humanity is pushing against the limits
of understanding." How do you think that's happening in
your field of evolutionary biology?
• Mr. DAWKINS: Well, it's the most exciting time to be a
biologist… Since Watson and Crick in 1953, biology
has become a sort of branch of computer science.
I mean, genes are just long computer tapes, and they use a
code which is just another kind of computer code. It's
quaternary rather than binary, but it's read in a sequential
way just like a computer tape. It's transcribed. It's copied
and pasted. All the familiar metaphors from
computer science fit.
52. Creating DCCE
Mtg Month Original DC Topic DCCE Schedule
1 Oct
Institutional Context &
personal trajectory into
teaching
Personal trajectory into
teaching
2 Nov Curricular Context
Institutional Context,
Recruiting
3 Dec Course Content
Curricular Context,
Course Content
4 Jan Instructional Design Instructional Design
5 Feb Student Assessment
Teaching Philosophy,
Reflection Log
6 Mar Evaluation
Student Assessment,
Grading Rubrics
7 Apr
Delivery (including
debrief of peer
observation)
Peer Observation Debrief
8 May
Complete “first draft”
overview
Student Feedback
9 June Portfolio Presentations Portfolio Presentations
GA specific:
GA university
computing
curricula, HS
competitions,
field trip
possibilities
53. Year 3
• HS teachers only
• Outside GAMtg Month Portfolio Section
1 Sept Personal trajectory into teaching, Selection Structures
2 Oct Institutional & Curricular Context, Repetition Structures
3 Nov Instructional Design, Recruiting, Teaching Classes
4 Jan Teaching Philosophy, Reflection Log, Arrays and Sorting
5 Feb Student Assessment, Grading Rubrics, Recursion
6 Mar Student Feedback, Inheritance / Polymorphism
7 Apr Peer Observation Debrief
8 May Portfolio Presentations
• Discipline specific content area
• Mini-conference to bring in
University teachers
54. Histogram of who took
AP CS 2012 in US States
% female
exam-takers
# Black
exam-takers
# Hispanic
exam-takers
Ericson, Guzdial, SIGCSE