Computing Education Research with Mark Guzdial
In this interview with Mark Guzdial, we discuss the similarities and differences between constructionism and constructivism, think through when to situate and apply learning, discuss contextualized learning, creating multiple pathways for exploring computer science, problematizing subservient relationships with integrated curricula or courses, task-specific and domain-specific languages, using multiple learning theories through a multiperspectivalist approach, changes to public policy that Mark would make to help out CS educators and the field, and much more.
-
Welcome back to another episode of the
CSK8 podcast my name is jared o'leary
each week of the podcast alternates
between an unpacking scholarship episode
where i talk about latest scholarship or
some seminal papers in relation to cs
education
and episodes where i interview a guest
or multiple guests
in this week's particular episode i'm
interviewing mark gosdale
and we discuss the similarities and
differences between constructionism and
constructivism we think through when to
situate and apply learning
we discuss contextualized learning we
also discuss creating multiple pathways
for exploring computer science
and problematize subservient
relationships with integrated curricula
or courses
we talk about marx task specific and
domain specific languages
and i discussed how i use multiple
learning theories through what i
described as a multi-perspective list
approach
we chat through changes to public policy
that mark would make to help out cs
educators in the field
and so much more in the show notes i
list a bunch
of links to people and papers and
resources that we mention
in this particular interview so make
sure you check them out by going to the
app that you're listening to this on and
clicking on the link or simply going to
jared o'leary.com
and clicking on the podcast tab now you
notice there's a bunch more resources
that are
relevant to cs educators in the
different tabs on the website
including a link to boot up pd.org which
is where i create a
junior and scratch
that elementary even middle school and
even some high school students are using
literally around the world which is
pretty awesome it's all free to use so
make sure you check it out if you
haven't done so yet
also if these topics interest you make
sure to reach out to mark at the end
mark shares his contact information
or you can reach out to me if you'd also
like to collaborate on a future research
project
or even to be a guest on this particular
podcast
but with all that being said we will now
begin with an introduction by mark i'm a
professor in computer science and
engineering at the university of
michigan
and i have a courtesy appointment as a
professor of information
in the university of michigan school of
information i think professor of
information is such a cool title
for 25 years i was a professor at the
college of computing at georgia tech and
that's probably where
i did most of the work that people know
me from i came here in 2018.
i am a computing education researcher so
i study how
people come to understand computing and
how we can make that process work better
i'm probably best known for curriculum
development i
developed a way of teaching introductory
computing called media computation where
students manipulate pixels of a picture
to create things like photoshop
effects or snapchat filters manipulate
frames of a video to implement digital
video special effects manipulate samples
of a sound to reverse sounds or
scale them or echo them or splice them
together
i also did work in public policy for
about 12
years from 2006 to 2012
we had a project an nsf broadening
participation in computing alliance
called
georgia computes where we tried to
improve computing education
across all levels in the entire state of
georgia barbara erickson and i
with renee fall and rick adrian from
massachusetts the commonwealth alliance
for i.t education
formed esap the expanding computing
education pathways alliance
where we worked with 16 states and
puerto rico to improve their computing
education policy
and then i came to the realization that
we're never going to reach cs for all
via cs classes
and so the work that i now do at the
university of michigan
is about trying to develop new kinds of
programming tools
to facilitate integrating computing into
lots of other subjects
so how did you get into cs education
so sort of a fun accident when i was in
high school in
the early 1980s i was in one of the few
high schools
in the country probably at the time that
had multiple computer science courses
i took basic when i was 16 years old and
i took fortran and cobalt
those sound really ancient but i guess
i'm pretty old now and
i started teaching computing in february
of 1980 i was 17 years old
the local adult education program you
know night school
where we can pick up fun classes local
community education reached out to
one of my computer science teachers in
my high school and said
we'd really love for you to teach adults
about these new personal computers that
are coming along like apple twos can you
teach them about it
and she said no i don't but if you think
it'd be kind of fun i've got this
geeky kid in my class so i think he
could do it so i got signed up
i taught a class called bits bytes in
basic
and we talked about what microprocessors
were
and how memory worked and i taught a
little bit of applesoft basic
and then i went to wayne state
university for
undergrad here in detroit and i taught
all throughout
undergrad i continued to teach adult ed
until i was teaching
four or five nights a week some
semesters i taught
middle grades after school programs i
even started teaching ged
classes i had enough hours built up by
my
junior and senior year that i could
qualify as vocational education teacher
so i was teaching high school ged
classes community college
and then when i went off for my master's
degree i taught
logo on saturdays in a workshop setting
to elementary school kids
in 1982 i had a summer internship at
bell labs
which was just fabulous it literally
changed my life i'd never
worked with other students from places
like purdue and
mit and stanford i was like wow this is
amazing
and that's when i discovered i took a
class
on unix shell and for some reason they
started talking about small talk
and i looked it up and discovered alan
kaye and dan
ingles and adele goldberg and i read the
paper personal dynamic media
and that's when i decided i want to go
to graduate school because this idea of
building computing
explicitly for the goal of facilitating
learning
that just changed things for me my first
publication
ever was at logo 84 the international
logo conference
i still have my acceptance letter from
hal abelson at mit
i had built an object-oriented logo in
university of michigan bob cosma reached
out to me and said
we want to do a joint phd in education
and computer science but the way it
works at michigan is you have to send a
few students through
doing that as an individualized degree
program before you can turn into a
regular program
and he asked me if i'd be willing to do
it so
i came here to michigan started my phd
and then elliot soloway get
came here it was amazing coincidence
luck for me because there's probably not
a better person for me to have been
working with
to do computing education research in
the 1980s and early 90s
and then i graduated in 93 and went to
georgia tech
so i had been teaching for eight years
almost every night before i started
graduate school
so i had a surprising amount of
experience for a new phd student
so i was past the point of i find
teaching cool
and to the point where i said there's
got to be i mean teaching is still cool
i still love to teach
but it wasn't just the activity of
teaching i want to figure out how to do
it better
what does it mean to teach computer
science well that was the research
question that i got it started with
so one of the things that i'm really
interested in is like
how people's understandings of teaching
or a subject are kind of like
shift and evolve over time so i'm
curious like
what's something when you first began
teaching that you believed that you
no longer believe so as you probably
know
i have been blogging for a very long
time i started
in 2009 and have just continued doing it
probably way too much
you can find both my blog posts where i
say things that are
i now know are wrong and the blog posts
where i correct myself
this has happened several times like in
blog posts
what i learned in the last 10 years what
are the great accomplishments i've had
in the 10 years
i wrote the 10 years worth of things
that i got wrong so there's a blog post
of all the things that i got wrong
during the 2010s one of them probably
the biggest one
is that when we started georgia computes
and even went
into doing esep the expanding computing
education pathways alliance
i was really convinced that access would
drive participation
that we would have broadening
participation in computing
once there was enough computer science
classes
that it was easy for diverse range of
students to get
access to computing education and i
think we've now shown that's just
completely wrong
that in several states we're up to 40 to
offer some computer science and in no
state in the union
are there more than 10 percent of the
kids taking computer science
high school age kids and it's much lower
in texas
it's less than three percent same as in
california my former student dr miranda
parker did a phd
on what influences high schools in
georgia to offer computer science or not
so she knows pretty exactly that it's
like 43 percent of georgia high schools
offer computer science
and only two and a half percent of the
high school students take computer
science
and i've always thought you know since i
was a young kid computing is so
cool and i'm increasingly realizing
that computing isn't so cool for lots of
people
for a lot of kids it's a negative thing
one of things that i've observed is that
if you offer an undergraduate degree in
computing and don't call it computer
science it will be much more diverse
than the ones named computer science
undergraduate programs in informatics
and computational media and even
computational forensics
computational medical informatics turns
out to be a really big one
they're much more diverse than computer
science
i think that we have created some pretty
negative stereotypes
about computer science and teachers have
some pretty
low self-efficacy about computing
so let's see another thing i am a fallen
constructionist
i used to believe in constructionism
with the big n the way that seymour
papper talked about it that
learning happens best when you're making
things
and then i realize that may be true but
you can't
make things for all the things that we
want kids to know
we want kids to learn a lot of different
things having them engage in
construction
on every single one of them they're not
that interested
we don't need that deep of an engagement
and it's expensive to try to get
that level of engagement in all subjects
with all kids
so i've been doing duolingo spanish
for i think i'm nearly at 1500 days
nice for a long time and don't ask me to
write
a letter or a poem or an essay in
spanish i can't do it yet
i can pick out words i can solve spanish
puzzles i can start to read some things
but i really can't i'm just not that
engaged i don't get to speak spanish on
a regular basis
so that is too high of a bar i will
likely disengage
at that level yeah that resonates a lot
i'm learning in japanese just like
on my own using dlingo other platforms
and whatnot it's very difficult and
i'm curious with the constructionism and
you had mentioned constructivism
on your blog like what do you see as
some of like the similarities and
differences between
those two different approaches because
constructivism was
like came before paper came up with
constructionism it was built off of that
so there's three different things and
only two different words which makes it
really confusing
so the original constructivism is
john piaget's theory about how we
learned
that all of learning is a conscious
process
of trying to make sense of the world
now there's a lot of people disagree
with piaget now i know that ken kadenger
at cmu has been talking about how
important the unconscious
aspects of learning are and there's this
whole
movement around implicit learning for
the way that we learn
second language as well but i think
constructivism
is a fair theory that still explains how
most
learning in classrooms occurs that
there's these processes called
assimilation and accommodation
and it's about trying to make sense of
your world constructivism
as a pedagogical approach says well
if constructivism is how people learn
and it's all about individuals making
sense of their world
we should give individuals the ability
to construct their own curriculum
and learn in what way makes sense for
them and that's taking
piaget a little bit too far piaget's
theory explains how you learn from
reading a book
it explains how you learn from listening
to a lecture those things do
occur it's not the case that the only
way learning happens
is by individuals constructing their own
opportunities to learn or constructing
their own curriculum
constructionism with the n is this
argument that seymour papert made
that learning happens and he uses this
fabulous phrase especially felicitously
he doesn't use a word like best it's not
clear what especially felicitously
means but that students learn especially
felicitously
when they are constructing a public
artifact whether a sand castle on the
beach or a theory of the universe
so it's a particular approach that says
you know when you're engaged in
designing and constructing and it's
something that other people are going to
look at
that's a terrific place to do learning
and i think that's absolutely true
but i don't think we can do that for all
kids so then how do you
situate or apply understandings within
an educational setting because i agree
with you
like it wouldn't make sense to have
everybody like let's say build a rocket
like an actual rocket to go to the moon
but you could engage in simulations and
what not to actually construct something
like that but then
something more abstract you might only
be able to engage in dialogue about
like more heavy topics like genocide
like you clearly wouldn't want people to
apply something related to that but you
want to engage in a discussion and learn
from it
sure of course not yeah i think that you
get to ideas like
backwards design and thinking about what
is it that you're trying to
achieve a lot of years ago cindy himelo
silver
which is a professor of learning
sciences at indiana university
when cindy was a postdoc at georgia tech
she and i wrote a paper
about glass box and black box
scaffolding that
sometimes you have scaffolding that
you're providing to students especially
when they're using
a computer-based system where you want
that scaffolding to fade
and you want them to understand how the
scaffolding works we call that glass box
scaffolding i'm going to give you some
supports but i'm going to show you
exactly what i'm doing so that when i
take it away
you know what i was doing and i'm
helping with it there's other times that
i'm teaching you with black
box scaffolding i don't want you to ever
have to deal with this part of it
because i want you to skip over that
part so that you can go do the part
that's really relevant to your learning
right in some sense all programming
languages are black box scaffolding
i don't really want you to see the
assembler code underneath i don't need
you to understand the interpreter or
compiler
i just want you to be able to do the
thing like using sonic pi for learning
about music composition
right i don't want you to know how sonic
pi works it's black box scaffolding
i think we have to figure out what it is
that we're trying to help students learn
building a rocket to the moon is such a
fabulous activity
for kids who are interested in stem but
not all kids are interested in stem
if i want to grow up to be a playwright
you making me
build a rocket to the moon is going to
be this painful activity
and what do i really want you to learn
you know i think it's probably important
for everybody to know
how much effort it takes to get a rocket
free of earth gravity
and that's why space travel is so
expensive
and so i want citizens to know that so
they realize okay if you really want
space travel
you're going to have to give big budgets
to places like nasa because that's what
it's going to take
and i think that is important for
everybody to know but everybody doesn't
have to know how to design a rocket to
achieve that kind of
technological citizenry kind of
understanding and literacy
so i'm curious what your perspectives
are you mentioned like the cs4
movements and whatnot like especially in
the younger grades where it is required
like the districts that we work with
that boot up like it's required that
everybody across the district is taking
the
computer science class by the time we
finish our implementation with them
how do you recommend keeping kids
engaged because
not everyone's gonna enjoy the same
thing like i love music and we'll
code music all day long if i could but i
would be less interested in doing
something else in another area even if
it's
through the same medium through the same
platform through the same language
the thing that i create i just might be
like i don't really care about that but
i love to do this other thing
i think this is where this idea of
contextualized computing education comes
in
that when we developed media computation
we explicitly developed it to solve a
problem our problem was
that georgia tech decided in 1999
to require all incoming undergraduates
to take a course in computer science
and the definition of what that course
had to achieve the learning objectives
were pretty stiff they said that after
the class you should be able to make
algorithmic and data structure choices
when writing a program
which means that i've got to show you
two different ways of coding the same
thing and two different data structures
for doing the same thing
and give you the facility to understand
the choices that you're making when
choosing between those so
this is already a pretty hefty intro
computer science class to achieve that
for the first four years of this
requirement there was only one course
that met the requirement the one that
was originally created for
cs majors and overall the course had
about
a about a 79 pass rate
which for an intro course in just about
anything is pretty good that's
aggregated by major
engineers and computer scientists and
scientists
were doing great at the class liberal
arts
architecture design and business
management students
were passing the course at about a fifty
percent rate so
every semester about half the students
got through from those majors
and students started talking about
repeating the class by the third time
almost everybody passes
and this becomes a real problem then so
we decided to create
three different intro computer science
classes one for computer scientists and
scientists
and that became a course in programming
robots in python
one for engineers and that became a
programming course in matlab
and then i got the liberal arts
architecture design business management
students
i formed an advisory committee a faculty
in those other disciplines because they
should be the ones telling me what their
students need to know
about computing in their discipline and
the big insight one of the students i
was working with andrea forte who's now
a professor
at drexel she came up with this really
pithy phrase that for these students
computing is less about calculation and
more about communication
what they're going to use the computer
the most for is digital media they're
going to produce videos and
presentations and
graphics and they're gonna care about
well how does photoshop
work anyway and what does it mean when i
drag a line
in a powerpoint and why is that
different than making a line in
photoshop
and how does digital sound editing work
anyway and how do you make people
disappear in a video those are all the
things that we built the class around
and so we were explicitly building on
what makes sense
for those students for their values
that's still part of the insight of what
i'm trying to do today
with task-specific programming languages
i'm trying to say
i want to make programming so easy that
you can learn the language and be useful
in it
in less than 10 minutes and if it's in
less than 10 minutes
it's got to be tuned to particular tasks
not just a whole domain to a particular
task
and if it's tuned to particular task i
can change the user interface
in hci we know something about how to
make programming work well for
particular tasks
and if it takes only 10 minutes to learn
use it for one hour lesson
and then you throw it away the return on
investment is already there
so it isn't going to be a big language
it's not likely going to be turing
complete
but now i can think about multiple
languages and if you don't like this
language you know if you're
the playwright who's being forced to do
something with the simulation of the
rocket ship
that's okay it's only one class period
you'll do something different the next
class period
so we can think about programming in
lots of different places in lots of
different
kinds of courses for lots of different
kinds of tasks so instead of a big
language like scratch or snap that you
can use for a lot of things
how about little languages that some
totaled
you know maybe if you see a half dozen
of these little languages
before you see your first computer
science class will that be
enough that it will help you i'm curious
i've got
like at least a dozen or so articles
that i can point to where in the
abstract it specifically states like the
purpose of doing these like
cross-curricular connections in higher
education was for
increasing enrollment numbers in
computer science and to me that puts it
in like the arts and other subject areas
in a subservient relationship
the way that you described this is not
that it is very symbiotic in that it is
complementing
both or all of the subject areas that
are in there
i'm curious like how do you design for
plan
for that kind of an approach as opposed
to the
subservient relationship oh i love this
question because
to me it's the heart of what i'm doing
now i do participatory design with
teachers
so for example i have a big project with
tami shriner who is a social studies
education researcher at grand valley
state
she's in the history department there
and as she puts it to me
most people who become a history teacher
don't choose that because they love
numbers data and computers but as her
research shows
most state standards now require social
studies teachers to teach about data
literacy
and explicitly to teach how to read
interpret
understand critique and argue with data
visualizations
so suddenly these history teachers are
being pushed into the position
of having to have kids make graphs
charts to be able to read
maps and timelines how do they do that
they have a need computing can really
serve that need
i work with teachers to figure out what
meets their needs
i think that we in computer science do
too little particularly those of us
looking at
integrating do too little to pay
attention to the teachers
we do a lot of things with well the kids
really like this the kids are enjoying
this activity
and that's great but you don't get into
the classroom
unless the teacher buys in the teachers
the gateway to the classroom
and while we can reach a lot of kids via
informal education
in the united states we have mandatory
schooling everybody
is in school and so if you can get
computing that a teacher says yes this
actually helps me teach something in
history
that i know i'm supposed to teach but
i'm a little bit afraid of it but this
tool helps me
that's a huge win that's what we're
trying to do
so i work closely with teachers to make
sure that i
am meeting their needs so we do
participatory design activities where i
put in front of teachers several
different tools
and have them compare each of them and
say i like this part of this one
i hate this part of this one i tell my
students as we're building
the prototype so when we do this with a
group of social studies teachers
we intermix our tools with other
people's tools and we don't tell them
which is which
so that we can get a fair understanding
about what the value is
and i tell my students we are building
things in order for teachers to say
oh i see what you're doing here yeah
that really sucks let me tell you what
would make it good
that's what we really live for right
right because that's when we know that
we're getting to something that could be
useful in a classroom
so we've been making data visualization
tools for
graphs and charts we've got another one
for timelines that we're building
and we're creating another one that
helps middle school students in order to
be able to
identify the elements of a graph be able
to say oh that's what the
legend is telling me that's what the
x-axis labels are telling me things like
that i want computing to be in service
computing is changing fields all over
the world from
computational science and engineering to
computational journalism
if i can't help a history teacher figure
out how to use computing well
then i'm not doing a good job with the
computing at what point does it go too
far though
where it puts like computer science into
like that subservient relationship where
it's
not necessarily helping somebody
understand computer science or does that
matter
i think that's a really great question
that i think we know too little about
so because of these task specific
languages we're literally building
languages
that teachers are able to learn and use
in less than 10 minutes
which does create this opportunity to
ask well what if you saw a whole bunch
of them
and they had different notional machines
they thought about programming in
different ways
does that help you in getting a broader
notion about what computing
is i hope so but i need to build a bunch
of these and have these in different
classes to be able to ask this kind of a
question
i mean it's a hard question to ask i
have this broad vision
i also think that we overestimate
what people are learning or can learn
about computing
if you consider this what i was telling
you about esep that there is no state in
the union
there are some northeastern states where
they're up to nine percent of their high
school students
are taking computer science but in no
state is it over 10 percent
that means that we have not introduced
computing to about 90 percent
of the high school students in the
united states we don't know what the
challenges are yet
we know what the challenges are with the
students who come into our classes
but they're a pretty biased
self-selected group and i think that
we're going to find that there are a
whole bunch of really hard
ideas that we haven't yet identified as
being hard
here's one that we're starting to
identify our teachers the history
teachers who come into our workshops
for the most part have never seen html
the whole idea
of here is one representation html or
code
that generates this other representation
a web page or an execution or a
visualization
they've never seen that before the idea
of a computer as a device that
transforms representations
is a novel concept i think that's the
sort of thing that we have to think
about we actually have to teach that
that's a hard idea but that comes before
anything that we could teach
about coding yeah i think it also
requires
a lot of shifts both in pedagogical
approaches but also
in the way things are designed so i
co-authored this paper that was
talking about like the neoliberal
culture in music technology and how
we are creating these artifacts that are
not meant to be
modified in any way and that is forcing
certain kinds of music engagement and
limiting others or preventing others and
so what we argue in that paper is just
basically
if we learn from like i don't know if
you're familiar with like chiptunes and
[ __ ] musicians
and like the whole mod culture scene
both with the hardware and software
modifications that people do around
video games if we took that kind of
way of being an approach to technology
and applied it to
other things like a physical thing or
even software
then we could start thinking of what are
the affordances constraints of this
hardware
or software and what can we do to
actually get rid of some of those
constraints and make it do something new
that we couldn't previously do and
thinking beyond
what is and rather thinking about what
could be
i think that's really cool i strongly
agree with the argument that you're
making
something that i've complained about in
my blog
is i would like to move media
computation to other platforms
but being able to access individual
samples
of a sound turns out to be something
which is not well supported
cross-platform
on very many languages i can do it in
java
because i can do it in java i can do it
in jython
which is what i taught at georgia tech
for a lot of years it's python
implemented in java so i can use my java
libraries
i can do it in squeak i can do it in
snap and i can do it in javascript
but for example i can't do it in c
python yet aim doesn't let me do
everything that i'd
want to do with sound samples and work
exactly the same on all platforms
i find that shocking i mean samples of a
sound
just give me a sound buffer any sound
buffer and i can do what i need to do
with it
right and i can't get that in a lot of
different languages and that's really
surprising to me so yes i agree with
that notion
the idea of being able to hack the
hardware and to make it do new things
i strongly agree with i want students to
understand the technology well
enough that they can build things that i
wouldn't have thought of
and we already see that happens the
things that we're building for math
teachers
i'm really blown away they say you know
i have a particular way that i designed
it i have it do this
and they start doing this other thing
it's like i didn't know it would do that
it does well that's cool
right i love that idea i really come to
this task of building task specific
programming languages
as an hci designer i think that it's
really cool to be able to you know stick
wires into the video game
and change the way the circuitry works
but i don't know how to make that
accessible for a teacher with low
self-efficacy about computing
so i am trying to do user-centered and
even learner-centered design
of technology and i want to do that in
such a way that the technology is
flexible
but i also want to make sure that i do
that with an understanding of not
everybody wants to geek out
but i do want to reach cs for all i want
things to be accessible yeah that's a
good point i know
going back to like the mod culture there
are some like video game
developers that will actually release
like tutorials of how to modify games
like so you want to change the sound in
this and make it so that it's all human
sounds instead of the sounds that we
created cool here's like a little
tutorial on how to do that
so that can definitely help with the
people who have like the low
self-efficacy and are unable to
like create something that they're
unable to do or think through it rather
i'm curious going back to like the
constructivism constructionism what are
some things that people misunderstand
about either
approach the big misunderstanding about
constructivism is that jean piaget
explicitly eschewed implications for
education
he saw himself as an epistemologist he
saw himself
at most maybe a developmental
psychologist he cared about how ideas
formed in children's minds and piaget
says that we ought to have kids work
with building blocks
it's too far that's not what piaget said
i think
that this radical constructionist
approach which says if i
tell you something then i have stolen
from you the opportunity to figure it
out from yourself
and i'm not a radical constructivist i
don't buy
that notion rather i tend to draw on
cognitive science
things like worked examples that telling
people things tends to increase student
self-efficacy they feel oh yeah i can
get this then
now there are things like expertise
reversal effects
that a lot of scaffolding a lot of
guidance
starts to become a hindrance as people
develop expertise
but for novices i think that we too soon
try to fade our scaffolding that we try
to
remove the supports i sometimes get into
fights with computer science teachers
who say
well i think that the unit tests should
just give you a green or red
you either got it or you didn't get it
and i point out well the unit tests
actually have a lot of error messages
and feedback you could give to the
students
yeah but if we give them that they won't
try to figure it out for themselves
and i think that's wrong so i am not a
radical constructivist i tend to believe
in providing scaffolding and providing
work examples and explaining things to
people
and my read of the cognitive psychology
suggests that that's a better
way of teaching than asking students to
figure it all out for themselves
my first advisor for my phd was pat
baggett who's an experimental cognitive
psychologist
pat had this saying not every kid is a
newton isaac newton looked at the world
and saw it in radically different ways
than
all the people that came before him you
can't expect kids to just
look at light and say oh well i think
this is the way light travels
it takes a lot of insight to recognize
that there's a difference between
dynamics and kinematics you can study
velocity and acceleration without
considering force and you can consider
force
separate from thinking about motion
those are really deep ideas and we're
better off
teaching kids the big principles the
organizing big ideas
rather than expect them to figure it out
for themselves if i were to describe my
own approach i'd say that i'm a
multi-perspectivalist
in that i'm taking many different
approaches or perspectives and trying to
apply it to fit the situation or the
individual that i'm working with in
particular
so like when i've worked with
undergraduate students in particular and
even some of the grad students that i
taught they
often view this as like this false
binary of
well i have to either go 100 on
constructivism or i'm doing it wrong
or 100 on constructionism and it's like
well no i mean like
there are moments where it makes sense
like if you
want to give somebody like a
high-powered electrical tool you
probably don't want them to figure out
whether or not it'll cut them or hurt
them or maim them
like you probably want to go through
some direct construction in the
beginning
that might make more sense than
constructionist or constructivism
practices that are typically talked
about like yes understand this theory
but also understand as limitations and
understand where other theories and ways
of learning
might be more beneficial for that
particular situation
so i'm curious for your own perspective
like either in your research or your own
pedagogical practices like are there
other theories or philosophies
or approaches that have informed yours
even if it's just like something that
you
have felt through your own experiences
not necessarily somebody that you can
cite
i draw a lot on situated learning jean
lave and etienne wenger yep
i think when i first started doing the
media computation is when i really
started realizing
there's this whole issue of motivation
and sociocognitive issues and learning
sociocultural issues and learning that i
really wasn't taking into account
when i came at it entirely from a
cognitive or educational psychology
perspective
so the idea that all of learning
is a development of an identity that
when students
are learning computer science they
might be learning in order to become a
computer scientist
or maybe they're learning in order to
become a computational journalist or
computational engineer or
computational artist or computational
musician that
understanding the community practice to
which they want to
join is critical to understand what's
going to motivate them
a lot of the work that we do in media
computation but also in work
like katie cunningham's new purpose
first programming
is drawing from expectancy value theory
if
you reject something because it's
counter to your identity
then you're simply not going to learn it
and so we need to think about how do we
present things that have a connection to
the identity that you're developing
and then expectancy value theory also
talks about
utility is this fun for you is it
something that you want to do
and cost how expensive is it so
by reducing the complexity of the
programming language
of improving the scaffolding that we
provide
we can reduce cognitive load we reduce
cost and if we also make it more fun
if we also connect it more to their
identity we increase benefit
so situated learning and expectancy
value theory are two of the
theories that i draw on a lot and how i
think about my research
i just had the opportunity this last
semester to teach my first engineering
education research class
which was great fun because the course
was on theoretical and conceptual
frameworks of engineering education
research
and we covered a whole bunch of
theoretical frameworks that i'd never
used before
and they were really pretty amazing so
i'm now a big fan of variation theory
which says i can teach you x there's a
whole lot about x that you're really not
going to understand until i show you x
prime
too and you realize there's differences
between x and x prime
and i really like that a lot in
understanding
how i have to give students more than
one way of viewing the world if i really
want them to understand
the nuance of a particular approach and
then i also had my first introduction to
critical feminist and critical race
theory
which i'd never really drawn on before
i just did my first blog post where i
tried to use critical feminist theory
because these are really important
perspectives if i want to draw on a
diverse student body
so i'm learning a lot about all of these
yeah i like that
i too am continuing to learn i'm curious
from the situated
learning have you read james paul g yeah
i just read
i've just did my first reading his piece
on identity and the four different types
of identities
that was pretty important in my class
yeah he was a professor of mine so i
took his discourse analysis course which
ended up
like i used corpus assisted discourse
analysis for my dissertation
and so like i took his class on
discourse analysis and i've read pretty
much all of his books
he's like very heavily influenced my own
thinking in terms of like the situated
understandings and whatnot
so a lot of what you were saying was
like wow this sounds a lot like g so
that makes sense that you've read him
well only a little bit i want to dive
more into it i haven't read much
of g on discord's analysis i know it
exists because i see it referenced when
i'm reading the stuff on identity
but more things that i have to learn
about yet yeah well he built his
understandings of like affinity spaces
and situated learning and whatnot
off of laven wenger so like that was
coming from there so
you're starting with like the roots and
whatnot of a lot of his discussions but
so you had mentioned that you've written
a lot of blog posts like one of them
it was a while ago you had crossover
like a thousand blog posts at that point
like
it was like blog post 999. i'm curious
what
has surprised you over all of those blog
posts
that you've written about i can never
predict
when a blog post is going to take off
i'll put
so much effort to this one block i mean
sometimes i will take weeks
to write a particular blog post i'll be
developing the ideas i'll get
feedback from other people and then i'll
put it out there and it just goes
you know people will read it and then
there'll be no discussion
and then other times i'll put out a blog
post they're just oh okay this is what
i'm thinking about right now and i'll
get all this twitter responses and all
kinds of comments and
i'll annoy somebody so that's sort of
been
the biggest surprise what are the social
trends and sometimes you hit a blog post
that are touching on
huge social trends and then other times
because
google you know will index my blogs
i'll find an old blog post that suddenly
explodes
and i don't really know why that's
fascinating
my two most read blog posts i think
still are
the one i wrote on cognitivism versus
cognitivism versus constructionism
and one on disaggregating asian american
attainment
we tend to talk about asian americans as
doing very well
in terms of traditional academic success
but it turns out that if you
disaggregate
the different asian countries you get
very different
success rates it makes sense there's
different cultures there's different
socioeconomic status
and it's totally obvious in hindsight
and this was just rick
adrian had shared with me a report and i
just shared this graph
and then one day it's like your blog
post has just had 10 000 hits today like
what
because i've blogged for a long time and
tried to blog on the things that i don't
see elsewhere
i don't blog as much anymore because now
there's a whole bunch of stuff on
computing education
csta and see us for all and there's a
lot of folks that are producing material
i can stay in my niche just computing
education research i don't have to draw
on all these different places
but i'm still i'm trying to post the
things that i'm not seeing elsewhere
that i think are important for people to
see for people to think about
recently i've been blogging on the
difference between
computing education and engineering
education because
in europe there are several centers for
computing and cs education research and
in the united states
most computing education research that
if there's an academic unit formed
around it
it's about engineering education
research or computing and engineering
education research the new
succeed center was just set up at
florida international university
which is the universal computing
construction
and engineering education i forget what
the d
stands for but that's where the succeed
comes in that's really interesting
buffalo has a engineering education
research program with several computing
education researchers there
so i'm struck by the distinctions
between computing and engineering
education
and the fact that europe tends to see
them as being more distinct in the us we
tend to clump them together
engineering education doesn't do a lot
with k-12
in fact there's a national academy
report on k-12 standards for engineering
education
and if you read the report you find that
it doesn't have standards in it
the report said we decided not to and it
gives their reasons why
much of engineering education and it's
going to sound like just
a totally obvious statement but it's
been a revelation for me
engineering education is about producing
engineers computing education
is not necessarily about producing
computer scientists
because there are so many other
disciplines that need to know about
computing
to further their goals and all of k-12
computing education
can't be just about being a silicon
valley jobs program
it can't be we're teaching everybody in
k-12 about computing in order for them
to become programmers
computing education tends to be broader
and serving different diverse identities
that it's not just about becoming an
engineer
yeah so one of the reasons why one of
the many reasons why i came up
with the idea of starting this podcast
and alternating between like the
interviews and then
talking about scholarship is i felt like
cs education in k12 settings in
particular weren't talking about some of
the topics that i really wish they were
discussing like
i mentioned before we started recording
like pedagogy the press like that should
be something that people understand and
know
and discuss and a problem that i've seen
in academic publishing
is it takes forever like i literally
just received a couple weeks ago
a handbook that i wrote a chapter for
and my first draft that i submitted was
in 2017
and i just received this in 2021 so it
takes that long sometimes for these
publications to come through
so you have an opportunity to reach a
large number of individuals just by
posting something on your blog and i'm
curious through that
you're able to kind of guide some of the
discussions but what do you wish more
people in the field were talking about
that you have tried to initiate
conversations on
wow that's great a big one is teachers
as i mentioned
i'm doing all participatory design work
now
and there's so little work on how do you
design
for teachers there's lots of work on how
to design
for children but and that's important
work it's important to be able to figure
out how to design for elementary school
kids versus middle school kids versus
high school kids
i saw a great talk by paul goldenberg
last summer
that made me realize how hard it is for
a third grader
to click and drag with the trackpad the
physical motion of clicking down here
and holding your finger down while you
drag it somewhere and release it that's
kind of hard for them and it never
occurred to me
designing in those ways is really
important but
in general kids find acceptable a wider
variety of technologies and interfaces
than teachers do kids like lots of
things that don't help them achieve
particular educational standards
teachers need to achieve educational
standards that's literally the job
so designing for teachers is a much
harder task
i worry that sometimes technology
developers and curriculum developers
sort of cheat by playing directly to the
kids ah
kids will like this well yeah but kids
don't necessarily know what's good for
them
getting teachers to like it means you've
got to argue with an adult
another adult who is at your same level
and
understands things that you don't and so
i think it's really important for us to
figure out how to talk to teachers
i'm also really interested in the
growing body of literature that says
cs faculty undergraduate faculty
are more resistant to change than other
stem teachers
really huh yeah so
there's this wonderful paper by charles
henderson this big survey of like 2
get the numbers wrong but it's something
like 70
of them knew two or more research-based
methods and 50 to 60 of them had tried
one of them in their classroom similar
surveys of cs teachers find the numbers
are more like 12
wow cs undergraduate faculty
i mean they're dealing with huge numbers
a lot of universities have just
overwhelming enrollment these days
there's not
a culture of we ought to get better at
our teaching
yet stem education chemistry biology
physics they've all been doing it long
enough that there are
really well developed discipline based
education research communities dbrs
computer science is really new ase the
american society for engineering
education
is like 120 627 years old something like
that
national council teachers of mathematics
was founded in 1920.
the american association of physics
teachers was founded in 1950
and the computer science teachers
association was founded in 2004.
we just know so little about cs teaching
and how to influence cs teaching and how
to disseminate
good practices out to computer science
teachers
there's a lot of assumptions that we
make
about teaching computer science that are
based on the fact
that so much of programming in computer
science has grown
out of industrial practice so our
languages weren't designed to be easy to
learn they were designed to serve the
needs of software engineers that's why
python and java and c plus
these were all why they were established
and somewhere along the line
people made the argument that the first
language didn't matter
the idea was any language you're just
going to learn the concepts
and i think all the data that we have
says that's wrong and i'm kind of
curious as to where we ever got that
idea in the first place my hypothesis
is because the early programmers were
all really good at math
and so they transferred their knowledge
of math into different languages
but if you learn a language for music
for example and now i'm going to teach
you web scraping
it's not at all obvious why you think
there would be any transfer from sonic
pie
to working with beautiful soup in python
i think the first language matters a lot
yeah i agree we mentioned before the
recording the conversation like talking
about how
i was unsure how kids would do going
from syntax like to syntax heavy
whereas the other way around they might
feel liberated finally i don't have to
worry about semicolons curly braces but
when they office then have to add that
in it's like well why do i need to add
in all that extra junk
there's this really interesting body of
research which
when i tell it to cs teachers they're
often very skeptical but it's actually
been replicated a couple times
if you're going to teach both iteration
and recursion
you should teach iteration first because
recursion is actually an easier concept
there's a bunch of evidence that says if
you teach recursion first
students will just want to do recursion
all the time and then when you try to
teach them a for loop in javascript
that's a pretty complicated thing
they're like why do i have to learn all
that why can't i just keep doing
recursion
and so it turns out that if you do
iteration recursion recursion
is hard then because well it doesn't
look like iteration and you don't
specify all the things the way that you
did an iteration
and so there's this negative transfer
from iteration to recursion
but if you have to do both iteration
before recursion turns out to be
a better sequence to do yeah that makes
sense
and then what you're talking about just
before that like talking about the the
different languages and which one to
pick it reminds me of the interview that
i did with andreas stefik and
his investigation of basically like a
normal programming language
versus a placebo language and how like
some of them underperformed against the
placebo and i was like whoa
that's not good language design yeah
pearl is worse than random oh and quorum
is amazing
your mention of computer science being a
relatively new field it comes with like
some benefits and then some constraints
to it
like i was mentioning with music
education a lot of it's anachronistic
we're building off of ideas from low
mason
who introduced music education in the
schools in the 1800s
and like yeah that means we have had a
lot of trial and error but it also means
we're kind of like set in stone in a lot
of ways
and it takes a lot of effort to like get
more up-to-date with
modern music-making practices and
whatnot but with computer science it's
like the other way where it's like well
we don't really know what works so we're
just going to try anything and
everything
yeah absolutely my teaching
changed dramatically when
i was introduced to peer instruction and
i was actually blogging
when beth simon convinced me to finally
try it in my class
and i remember the first time that i put
up clicker questions
using eric mazur's peer instruction
technique i talked about it in my blog
it's like
my students don't know this i can't
believe my students don't know this
and now i do peer instruction all the
time first of all because
i deeply believe in active learning and
that the idea of active learning
it's constructivist but it's also so
much about
motivation just get everybody to stop
sitting there and falling asleep
listening to me and make them do
something
that that's just about shifting helping
them to re-engage
getting them to talk to somebody else
making sure that all of their ideas get
tested
that's what it's about but i also do
peer instruction all the time to inform
my teaching
i always put up questions that i think
everybody's going to get
and they don't it's like holy cow i'm
not getting this across yet
so it's about computing there's been
these wonderful studies of peer
instruction with paper and pencil
where people have to hand in their votes
it does not work computing
is actually critical to making things
like peer instruction work
but the insight isn't about computing
the insight is about well this is how
teaching and learning really work
and this is about how hard it is to
learn some of these concepts
so at the start of a conversation you
had mentioned that you'd spent some time
working with policy in education and i'm
curious
if you were to be able to like wave a
magic wand and change some kind of a
policy
in education to have an impact what
would you change and why
i would build computing learning
outcomes
into the standards for math science
social science art and music
i think that separate computer science
standards
make it too easy to ignore or you create
computer science classes that nobody
take
i think by integrating it everywhere
there's so many things that happen once
you do that once you wave that magic
wand
indiana did this they built their
computer science outcomes
into their science standards
massachusetts did this they built
computer science standards into their
digital literacy standards
suddenly in massachusetts librarians
care about computer science in indiana
suddenly all science classes teach
something about computer science
it creates a reason for teaching
pre-service teachers about computer
science
there's a separate non-public policy
magic wand
that i would love to be able to waive
and that is to require
everybody at all universities to take a
course in computer science make it a
general education requirement
like the phys ed requirement which just
about every state has
at the undergraduate level i think if we
did this
everybody includes all the pre-service
teachers
and if all pre-service teachers had a
course in computer science
aimed at them it becomes so much easier
to do integration
across the board i tend to think about
computing education as being a form of
literacy education
that it's really about giving people a
tool for them to express themselves to
understand ideas
in whatever it is that they're going to
be doing in their lives and in their
career
the way you get to literacy is not just
by teaching it in schools
the way that we got textual literacy or
numeric
literacy numeracy is by making it
pervasive in the culture
and then kids learn it because well
that's what everybody's doing
so the only way you're going to get it
in the culture
is to make sure that everybody does it
if you build it into
university education then all
professionals
have some computing they won't all use
it in their lives in their career
but many more will use it than use it
now
and that's the best thing we could do
for k through 12 computing education
so one magic wand is change universities
wow is that hard let's
focus on public policy if we could
integrate computer science into all
these other standards
there's a reason for doing pre-service
computer science education
there's a way of putting computing in
front of
everybody i mean that's the part that
i'm so excited about with the history
stuff
three four percent of kids take a high
school computer science class
everybody takes history the difference
in diversity between
ap us history and apcs principles is
mind-blowing apcs principles is like
u.s history is 56
female there are six times as many black
students
will take ap us history as take apcs
principles
something like 14 times more hispanic
students
take us history than cs principles if
you can put
any computing into the history classes
you've made
such an advance on giving more students
the opportunity to say
hey this is kind of cool i think i'd
like to take more of this
or computing programming is not scary
look i did it before it's okay
that's the kind of changes in
self-efficacy that i'd like to get to
and we only get there if we put
computing into everything yeah that's a
brilliant solution that it reminds me a
lot of what they did with the technology
standards
so like back when i was going through my
k12 tenure like technology was his own
separate class its own separate thing
you didn't do it in your normal classes
but now they've integrated it so that
like you're mentioning the social
studies standards will have like
technology components and
talking about that and using technology
so it makes it so that you're
learning how to apply and use the
technologies
like laptops and whatnot inside of a
situation which you need it for a
specific subject area rather than
standalone and separate from
everything else so that totally makes
sense for you to do that with computer
science
and if we were to do this we'd have to
be more flexible about our definition
of computer science i'm a big fan of the
everyday computing work in diana
franklin's lab
at the university of chicago and katie
rich was lead author on several papers
they did
about learning trajectories this idea
that
there's a whole bunch of ideas you have
to know to be able to do computing well
and some of the ideas at the left most
edge the start of these trajectories
we're not explicitly teaching to many
kids like the idea that
programs are deterministic if you run
them and they accept no input nothing
from the outside world
they will run exactly the same every
time i got lots of data to show you
students don't always believe this they
run the program multiple times without
changes thinking well
maybe something different will happen
this time
and unless you believe that programs are
deterministic you can't debug
right it's a critical belief in order to
be able to figure out your programs
and this idea we talked earlier about
representations the computers transform
representations those are not
part of university definitions of
computer science
they're not part of the k-12 cs
standards but they're absolutely
critical ideas
which we could address in just about any
subject
but speaking of representations i'm
curious what your thoughts are
recommendations for improving equity and
inclusion
in cs education that's a really big one
how do we
get computer science to be more diverse
and
it's one that i've cared about for a lot
of years part of doing media computation
was by making computing
accessible in liberal arts subjects
where students
would succeed at it it was automatically
getting a more diverse
audience to have access to computing
education
and it brought more diversity into
computing
soon after we developed the media
computation course
and these aren't directly linked things
georgia tech decided to create
a joint undergraduate degree between
liberal arts and computer science
it was called computational media it
came about because
as all new majors do a bunch of
researchers
in that space said hey let's do this
this is fun i
think the course that i created enabled
that because more liberal arts students
were succeeding at computer science it
was possible to start thinking about
doing a joint degree
computational media became 40
female it was far more gender diverse
than our cs major at georgia tech i
think that that gets enabled when you
start thinking about
making computing fit into a lot of
different disciplines to a lot of
different needs
so i think that by making computing
integrate into lots of other subjects we
are going to be about expanding our
definition
of what is computing who should be doing
computing
what they're going to do with computing
and i think that opens the door
for more diverse participation in
computing
i'm cautious i write about this in my
blog post where i started using critical
feminist theory
i'm cautious of the goal that says we
need to get
more black engineers into google or more
women engineers into amazon
because i feel that that's this
perspective of
well if we can only get the black
students to act like the white students
if we can only get the women to take on
the same jobs as the men
it's not terrible but it's also
not as powerful as saying well what
would a female computer science
look like and how would we create a
computer science that speaks to
the values in communities of people from
marginalized populations
so i'm really interested in thinking
about computing becoming
more things having a pluralistic
computer science and a pluralistic
computing education
lots of languages lots of perspectives a
pet peeve of mine
is web pages and tweets and headlines
x language is dead here are all the
languages that have now
lost why didn't these languages succeed
i mean
we're judging success by what gets
picked up by the mainstream
of developers which are mostly white
nation males
i would rather say these languages
didn't die they're just used by
different populations they're being used
for different purposes
from a computer science perspective i
actually just saw one of these pieces i
mean they're pet peeves but i click on
them anyway
they're making the argument python and r
are dead
what does that mean that r is dead or
python is dead
stations really like these languages
they're used a lot and that's a positive
thing
yeah i like the way that you framed the
like challenging some of the assumptions
in just increasing numbers based on
demographic information like really
likes to talk about how
you need to make sure that when you're
trying to bring up
that you start from within and through
conversation through dialogue
rather than this like ontological or
epistemological colonization where
you're saying your way of knowing and
understanding
needs to conform to my ways of knowing
and being an understanding
and so like having that conversation
that challenges well what does it mean
to be a computer scientist i really like
the way that you frame that with it
do you know ron iglush i don't think so
he does
culturally situated design tools he's an
ethno
computationalist and ethio mathematician
and so he looks at things like he talks
about
heritage algorithms the algorithms that
certain aboriginal people may have used
in how they lay out their villages
or the algorithms that are used in how
he talks about
hand printed cloth in various
populations he works with
a variety of different groups neat paws
there's this notion in nsf about the
future
of work what do we do when ai and
technology puts lots of people out of
work
ron thinks about it exactly the opposite
direction he says
you know there are all of these
artisanal economies
people are always going to value things
that are made by hand
how could we use ai and robotics and
technology
to support artisans artisan economies i
mean artisans are happy people
people like doing things with their
hands they like to make individual
things
how do we support their economy and how
do we use technology
to make what they do more profitable so
that they're more successful
i'm not necessarily turning them into
computer scientists though we want to
make sure they know about their
technology so they can adapt it to new
purposes
like the modders that we were talking
about earlier but it's about making the
computing serve their needs as opposed
to saying
now let me train you all to become
amazon engineers
that's not the goal the goal is how do
we help artisans to continue doing what
they're doing because it's a good thing
that they're doing
it's good for the economy it's good for
happiness but we have to think about
the technology not taking away their
jobs i'm curious
how do you try and stave off
the burnout that can come with your
output so you're able to write
a lot both from a research side of
things and then from like your blog
you're teaching classes you are doing
research like there's a ton of things
that you're doing like you did the
keynote at 60 back when it was in person
before it shut down last year like
how do you prevent that burnout that can
come with this
high demand in a career in cs education
research
i can't tell you that i don't get burnt
out i will tell you
that it helps that i have a really good
family life you know we take off certain
time every night you know we have dinner
together and just talk we can make sure
that we take off hours and spend time
together
i run the things that one picks up
during the pandemic is i've become
a big fan of meditation i try to do
meditation a couple times a day and it
really helps to
be mindful and to ground myself and
that's helped a lot with stress and
sleep
so i actually have fun doing this
i do computing because i enjoy it
my wife and i barbara erickson who's
been my research collaborator
on lots of things we wrote the media
computation books together and did
georgia computes and egypt together
barbara sees computing as being a puzzle
she loves to figure out how the
algorithm works and how to make it
better and
what's going on here i've never had that
puzzle perspective i've never
gotten into computing as problem solving
for me programming is this cool set of
lego bricks
and i can put them together in all kinds
of different ways to make things
and if it gets hard i sort of like okay
i'm going to do the simplest
dumbest inefficientist way of making
this work
when barbara and i were writing the
books i would leave notes
in the source code okay barb i know this
is a sucky algorithm could you please
just fix it and not give me grief about
it because she's much better at that
than me
so i get to play with tinker toys and uh
erector sets
all day long it's great it definitely
resonates and makes me laugh
there are times where i look at the
things that i'm able to create
and explore through my job i'm like wow
this is fantastic
not many people can say that they are
able to have fun doing these things
and then have fun creating things that
actually have a large
impact like the boot up curriculum it's
free anyone can use it and it's used
around the world so like
that's awesome not many people can say
that yeah it's true
what do you wish there was more research
on that could inform your own practices
i'd like to know more about where non-cs
teachers
could use computing and this is a hard
area to do research in
it's not so hard to identify the
challenges
students have in learning something it
is harder
to figure out which subset of those
might be addressed by appropriate
computational tools but i think that
that's an area of research that would be
important to work on we do a lot in the
sense of
we work with social studies educators
and math educators
and say okay students have a hard time
understanding
this about counting processes um that's
good to know
anything about process is something that
computing can likely help at
but then trying to figure out what's the
right notation or representation that
students will understand
it's this recognition that it's a design
task too so just knowing the problem
isn't enough to solve the problem
a lot of what my students work on
creates questions about what comes next
so i just had a student graduate i was
actually be able to at her hooding on
friday morning
in atlanta at georgia tech amber solomon
dr amber solomon's dissertation was
on the role of embodiment in learning
computer science
we use gesture what does that gesture
mean
i mean we have these great videos amber
studied a whole bunch of videos
of people lecturing about things like
recursion and lists
and you have people doing this are they
pointing at
there's no there there you can't point
at elements of an
array right all right and if you do this
what if the student's impression of an
array is actually like this
they're pointing horizontally and they
think about it vertically
does that create a conflict for them and
then she studied their language
the language we use to teach computer
science
is so embodied but we don't think about
it and we don't design it when somebody
says
okay now we're here in the code what
does that really mean
we somehow jump down inside the code i
think what you're actually meaning
is we're imagining an execution of the
code and the program counter is on this
line right now but to jump from all of
that to
we're here in the code how many students
are getting confused
that they're not making that connection
of shifting metaphors and shifting
language
right and we don't know anything about
this we now know from her dissertation
that there's a lot of embodiment in the
way that people talk about computer
science
we don't yet know how the students
understand all of that embodiment
so that's a big area of research katie
cunningham
just finished her dissertation she's
presenting at kai
i think on thursday on purpose first
programming
where she's teaching people programming
in terms of pieces of code
that help them achieve their goals where
they can just assemble these
pieces of code if you're going to think
about it in a derogatory sense you're
saying oh they're just learning plug and
chug programming
but what she showed is the students
think about how they tailor the code how
they change the pieces of code for their
needs
and how they debug in terms of the
semantics of those chunks of code
not the individual lines it's so
important it really led to high
self-efficacy
students were successful like coding
with these programming plans that she
identified
but we don't know is what happens next
can they learn more plans do they
transfer that knowledge
can they start learning the details of
those individual lines of code
does the purpose first programming go on
to something else
we don't know any of that either and
there's a whole bunch of
sort of technical research that i'd like
to see done too
since i've gotten to michigan i'm
building things again which is great fun
but you know what web programming is
really hard
it's way hard it really needs to be made
way easier
i was using a tool called gp which is a
general purpose programming tool john
maloney the guy who originally
implemented scratch has been developing
gp
along with jens monnig who did snap also
worked on gp
and one of the things about that's cool
about gp is that it's the speed of
python so you can do things in gp like
real-time sound visualization i built
real-time sound visualizers with gp
which is like
super cool but there's very few things
like gp and john hasn't been able to
keep gp
supported i think there's a whole lot of
tool space
that needs to be filled with research to
make it easier for us to do things like
task specific programming languages for
teachers
and what's something that you're working
on that you could use help with
like a listener who might be able to
help you with blank what would that be
we've got a bunch of tools now some of
which like
our history tools we're pushing out now
that we've been building
task specific languages for
combinatorics and english language arts
i'd like to connect with teachers who
say that sounds cool
i'll actually put this in my classroom
if you make these changes
i actually would welcome that because
right now we've got tools that teachers
are saying
oh i like your tool way better than any
of these others
but they're still not adopting them
understanding what
gets a teacher a non-cs teacher to adopt
a cs-based tool is really hard
so we're trying to shift our research
into more of a co-design model
what we're doing now is we're building
tools i work closely with my
collaborators in social studies and math
education and then we do
teacher workshops and say here's the
tools the teachers say cool
silence rather we'd like to work with a
handful of teachers
who say okay i promise you i will use
this but i need x and y features
okay i'll give you x y features now
let's study what happens
because we haven't really been able to
study much classroom
implementation yet now part of this is
the pandemic right that makes everything
harder for everybody
yeah hopefully there's somebody who's
listening that's got some teachers in
mind that they could reach out to you
and
recommend them to actually assist with
that do you have questions for myself
or to the field i'm going to generalize
that last one
if you could have any kind of
programming language you'd like for your
classroom
what would you want a lot of the work
that i've been doing
was inspired by a conversation i had
with colby toefl growl
who is a science education researcher at
utah state
and she said to me you know what would
really change my world
is if i could type any scientific
equation a mathematical equation
directly into scratch
so rather than drag and drop blocks to
do a mathematical equation
let me just type the equation and better
yet if the equation could look like the
way it looks in the math book or the
science book
and that just blew my mind because i
mean we're not actually adding
anything computational to scratch what
we're changing is the user interface
right and that's what made me realize
that a lot of what teachers want
is not about adding anything new
computationally
it's just could you make the user
interface mesh better with my class
so i'd love to hear more of those things
i would love it if snap did x i could
use code app but i want to be able to
see
a textual coding language on top of code
app whatever it is those sorts of things
because it's just the interface now
i don't want to belittle doing user
interface i work with hci researchers i
see myself as an hci researcher that's
hard work
but that's not like inventing a new
programming language that's about taking
a little bit of programming and wrapping
a new interface around it
and that's doable and i think that's
really important
yeah i agree it'd make my life a lot
easier if i could just type it out into
scratch rather than having to drag in
all the different operators when
creating something
yeah are there questions that i haven't
asked that you'd like to discuss
you had this great comment about what is
holding back educators the field or what
we can do about it
and i think the thing which gets in the
way a lot
is cs arrogance that's not real
programming
i mean you're learning scratch maybe one
day you can go learn a real programming
language
right i think that we see computer
science
as being owned by a computing elite as
opposed to
being something we want everybody to
have access to that we want to push it
out
and it's about sharing this wealth as
opposed to just being
kept with the wealthy land owners i'm
part of this
task force i'm a co-chair with a
computational cosmologist gus ephrat
such a cool job
this task force is defining computing
education for
undergrads in the college of literature
science and the arts the largest college
at the university of michigan it's sort
of the liberal arts and sciences part
and we're trying to define computing
education for all of these folks
a couple weeks ago gus and i made our
preliminary report to the executive
committee of the college of lsa
and one of the members raise your hand
says you know
i got one of those requests for an
interview or a survey
but i didn't respond because you said
you wanted people who do computing
education
and i don't do computing education now
that i see what you mean
could you use the word digital instead
of computing please and then
another member of the committee yeah i
noticed that too
if you use the words computing or
computational
that's just a conversation stopper i
think you should change your language
and those two comments i've been
thinking about for
weeks now it makes me realize the
culture
and their perceptions that we have set
up around our field
and i think that if we really want to
reach cs for all
cs has to become a service field rather
than
an elite we have to think about serving
all these other fields
and building things that they want as
opposed to saying
oh but wait we have to teach them this
way because otherwise it's not real
computer science
yeah that'd be interesting to a way to
kind of
step around some of the baggage that
comes with what does it mean to be a
computer scientist
if it were defined as something
different but then we get into the
arguments that we get into with like
computational thinking with well what's
the definition
of this thing yeah when you list things
that i used to believe i used to believe
that we could define computational
thinking
i have now done it so often in my blog i
totally give up on that
[Laughter]
yeah i'm much more interested in putting
computing into classes that serve those
classes needs
data literacy is hard counting processes
are hard
thinking about language in english
language arts
is hard computing can help with those
and make them more fun
let's do that and let's not worry about
whether it's computer science or
computational thinking
i like that so i'll ask the last
question so where might people go to
connect with you and the organizations
that you work with
so probably best way is through my blog
computinged.wordpress.com from there i
link to
just about everything all the papers
that i work with i've mentioned some of
the groups that i work with like the
esep alliance
while i'm no longer involved it's still
going on i'm so glad that other
principal investigators have come along
to carry the torch so esepalliance.org
i think they're up to 23 states in
puerto rico that they're working with
which is
really tremendous you google mark
gosdale there's not that many of us you
might get confused with my son matthew
guzdal
who does machine learning and creativity
at the university of alberta but we're
pretty distinguishable
and with that that concludes this week's
episode of the csk8 podcast
i really hope you enjoyed this interview
with mark i know i certainly did
i hope you consider checking out the
show notes to learn more about the
different topics that we discussed
or to reach out to mark or myself to
collaborate on future research
or to simply go to my website and check
out all of the free resources that are
for computer science educators
including the podcast presentations
publications lesson plans etc that i
have created for the kids that i work
with and for the non-profit buddha pd
and all of which is 100 free to use
thank you so much for listening
i hope you're all staying safe and are
having a wonderful week and i hope you
stay tuned next week for another
unpacking scholarship episode in two
weeks from now for another interview
Guest Bio
Mark Guzdial is a Professor in Computer Science & Engineering and Engineering Education Research at the University of Michigan. He studies how people come to understand computing and how to make that more effective. He was one of the founders of the International Computing Education Research conference. He was one of the leads on the NSF alliance “Expanding Computing Education Pathways" which helped US states improve and broaden their computing education. He invented and has written several books on the “Media Computation” contextualized approach to computing education. With his wife and colleague, Barbara Ericson, he received the 2010 ACM Karl V. Karlstrom Outstanding Educator award. He is an ACM Distinguished Educator and a Fellow of the ACM. His most recent book is Learner-Centered Design of Computing Education: Research on Computing for Everyone (Morgan & Claypool, 2015). He received the 2019 ACM SIGCSE Outstanding Contributions to Education award.
Resources/Links Relevant to This Episode
Other podcast episodes that were mentioned or are relevant to this episode
Accessibility and Inclusion in CS Education with Maya Israel
In this interview with Maya Israel, we discuss Maya’s shift from special education into CS education, the importance of universal design for learning (UDL) in CS classes, understanding the spectrum of accessibility for students with a diverse set of needs, the current status of accessibility and inclusion within the field of CS education, problematize deficit framings of students with disabilities, and so much more.
Accessible CS Education through Evidence-based Programming Languages with Andreas Stefik
In this interview with Andreas Stefik, we discuss the importance of using evidence-based programming languages, problems with the lack of replication in CS education scholarship and academia in general, the importance of designing for accessibility and disabilities, lessons learned designing Quorum (an accessible programming language and platform), and much more.
Contemporary Venues of Curriculum Inquiry
In this episode I unpack an excerpt from Schubert’s (2008) publication titled “Curriculum inquiry,” which describes different venues or types of curriculum that educators and education researchers should consider.
Exploring (Dis)Ability and Connecting with the Arts with Jesse Rathgeber
In this interview with Jesse Rathgeber, we discuss what educators should know about (dis)ability culture and research, person-first language vs identity-first language, suggestions for combating ableism through anti-ableist practices, how the arts and CS can come together and learn from each other (great for sharing with arts educators who might be interested in CS), and much more.
How to Get Started with Computer Science Education
In this episode I provide a framework for how districts and educators can get started with computer science education for free.
In this episode I unpack an excerpt from Schubert’s (1986) book titled “Curriculum: Perspective, paradigm, and possibility,” which describes different examples, intents, and criticisms of “images” or “characterizations” of curriculum.
Pedagogy of the Oppressed
This episode is the start of a miniseries that unpacks Paulo Freire’s (1970) book “Pedagogy of the Oppressed.” This particular episode unpacks chapter 1, which discusses how oppressors maintain control over the oppressed. Following unpacking scholarship episodes discuss what this looks like in education and how educators can adopt a “pedagogy of the oppressed” to break cycles of oppression.
This episode is episode two of a miniseries that unpacks Paulo Freire’s (1970) book “Pedagogy of the Oppressed.” This particular episode unpacks chapter 2, which discusses the “banking” approach to education that assumes students are repositories of information, and then proposes a liberatory approach to education that focuses on posing problems that students and teachers collaboratively solve. If you haven’t listened to the discussion on the first chapter, click here.
This episode is episode three of a miniseries that unpacks Paulo Freire’s (1970) book “Pedagogy of the Oppressed.” This particular episode unpacks chapter 3, which discusses the importance of dialogue when engaging in liberatory practices. This episode builds off the previous unpacking scholarship episodes on chapter one and chapter two, so make sure you listen to those episodes before jumping in here.
This episode is the final episode of a miniseries that unpacks Paulo Freire’s (1970) book “Pedagogy of the Oppressed.” This particular episode unpacks chapter 4, which synthesizes the concepts introduced in the previous chapters and discusses the difference between anti-dialogical and dialogical practices in education (and at large). This episode builds off the previous unpacking scholarship episodes on chapter one, chapter two, and chapter three so make sure you listen to those episodes before jumping in here.
Planning K-8 Computer Science through the UDL Framework
In this episode I unpack Israel, Lash, Bergeron, and Ray’s publication titled “Planning K-8 computer science through the UDL framework,” which discusses the potential for using Universal Design for Learning (UDL) in CS classes.
Reconceptualizing “Music Making:” Music Technology and Freedom in the Age of Neoliberalism
In this episode I unpack Benedict and O’Leary’s (2019) publication titled “Reconceptualizing “music making:” Music technology and freedom in the age of Neoliberalism,” which explores the use of computer science practices to counter neoliberal influence on education.
Should I Say “Disabled People” or “People with Disabilities”?
In this episode I unpack Sharif, McCall, and Bolante’s (2022) publication titled “Should I say “disabled people” or “people with disabilities”? Language preferences of disabled people between identity- and person-first language,” which summarizes findings from a survey on participant preferences for language around disability and an analysis on language in conference abstracts.
Situated Language and Learning with Bryan Brown
In this interview Bryan Brown, we discuss the importance of language in education. In particular, we discuss the role of language in teaching and learning, discursive identity, situated language and learning, the importance of representation in education, the role of language on stress, how smartphones and virtual communication platforms (e.g., Zoom) could change learning, and many other topics relevant to CS education and learning.
In this episode I unpack Bresler’s (1995) publication titled “The subservient, co-equal, affective, and social integration styles and their implications for the arts,” which “examines the different manifestations of arts integration in the operational, day-to-day curriculum in ordinary schools, focusing on the how, the what, and the toward what” (p. 33).
Learn more about Expanding Computing Education Pathways (ECEP)
Learn more about Georgia Computes! by reading a paper Mark wrote with other authors
Constructionism vs constructivism
Learn more about situated learning
Learn more about Katie Cunningham’s purpose-first programming
Read some of the blog posts Mark mentioned
Connect with Mark
Find other CS educators and resources by using the #CSK8 hashtag on Twitter