Teachers’ Views and Experiences on Teaching Second and Subsequent Programming Languages
In this episode I unpack Tshukudu et al.’s (2021) publication titled “Teachers’ views and experiences on teaching second and subsequent programming languages,” which “understand computing teachers’ views and practices on the use of transfer strategies in teaching second and subsequent programming languages” (p. 297).
-
Welcome back to another episode of the
csk8 podcast my name is jared o'leary
each week of this podcast is either an
interview with a guest or multiple
guests or a solo episode where i unpack
some scholarship in relation to computer
science education in this week's
particular episode i'm unpacking the
paper titled teachers views and
experiences on teaching second and
subsequent programming languages and
this paper was written by ethel shukudu
quentin cutts olivier goletti aladin
sweden and felina hermans apologies if i
mispronounce any names i do look up
names before i pronounce them but there
are often many different ways to
pronounce different names depending on
that different origin all right so
here's the abstract for this particular
paper and there are like little
subheaders in here for motivation
objectives method results and discussion
all right quote motivation more and more
high schools are teaching programming
and in many cases teachers teach
multiple programming languages to the
same group of students objectives the
goal of this paper is to explore the
views of high school teachers on second
and subsequent programming languages
including their motivation for teaching
multiple languages their struggles and
their use of transfer strategies when
they teach their second or third
programming language method the study
consists of semi-structured interviews
with 23 high school teachers in two
european countries results our findings
indicate that school pupils face the
same issues as university students when
moving from first to subsequent
languages furthermore the teacher's
attitudes towards second language
learning are highly variable both
positive and negative with some
supportive teaching strategies used but
many less helpful ones in evidence too
discussion our findings suggest that the
value of second language learning needs
to be highlighted in teacher
professional development materials more
strongly and that teachers might need
more support in implementing transfer
strategies end quote i'd have how to
summarize this paper into a single
sentence i'd actually pull a quote from
page 297 which says that this paper
seeks to quote understand computing
teachers views and practices on the use
of transfer strategies in teaching
second and subsequent programming
languages end quote i think the abstract
does a very nice job of kind of
summarizing it but that's my like one
sentence summary of this particular
paper which i do highly recommend
reading as always you can find a link to
this particular paper and some other
resources related to computer science
education at jared o'leary.com or by
simply clicking the link in the app that
you're listening to this on in the
description and when you do that you'll
notice that this podcast is powered by
boot up which is the nonprofit that i
work for which provides elementary
computer science professional
development to school districts as well
as free scratch junior and scratch
curricula that i create so make sure you
check it out if you haven't done so
already at boot up pd.org alright so in
the introduction of this paper they
mentioned that
university programs will teach many
different languages in a computer
science program so you might learn
object oriented you might learn some
system level stuff like c you might
learn something functional like scheme
as well as like domain specific
languages like sql which is sql and then
html which is hypertext markup language
etc so if we are going to be teaching
many different languages in a university
level okay we need to be able to figure
out how to transfer the understandings
from one language to another but the
same thing applies to the k12 context so
if you're going to be teaching multiple
different languages like let's say
scratch and then maybe eventually like
swift or ruby or javascript or whatever
then it's helpful to consider how to
transfer understandings like the
concepts and practices from one language
into another so in the introduction the
authors briefly cite some like positive
and negative transfers between languages
for university students in particular
and then they note that when educators
actually focus on the transfer then it
actually can help improve student
learning and i'm glossing over this
really quick because they actually do
talk about this in like the background
section in section two so talk about it
a little bit more in a second but they
close out the introduction with their
four research questions which are on
page 295 and they are why do teachers
teach a second programming language
second one is what kinds of benefits or
problems do teachers
notice when teaching second or
subsequent programming languages third
one is what are the views of computing
teachers on the use of transfer
strategies then the fourth one is what
types of transfer strategies do
computing teachers use all right so in
the background they provided a
discussion on some
prior scholarship related to learning
multiple programming languages again
most of these are in the university
setting so they point out in 2.1 that
there's different research on different
programming languages so if you're
interested in a specific one you can
check that out like sometimes they'll
compare two different languages in 2.2
the authors discussed some issues with
syntax in programming education which in
my experience
working with k-8 students in multiple
programming languages i agree that
syntax is tricky and in my own
programming experience i would
frequently like mix up like oh wait how
would i write this and then this
language or this other language and i
create like little syntax errors but i
mean honestly that's to be expected once
you get into a habit of typing something
in one way then all of a sudden you have
to type the same concept in a different
way it's going to take some getting used
to to be able to jump back and forth
between the two but interestingly the
authors actually cite a paper that
andrea steffek did who is the guest on
this particular show many episodes ago
highly recommend listening to his
interview but in that interview he
actually mentions this paper where he
did like a placebo language so it's like
random language in terms of just random
characters assigned to different
concepts and then compared it with
programming languages like java and
pearl and i actually found that common
programming languages ended up scoring
worse than just like randomly assigned
languages the placebo languages which is
fascinating so i highly recommend
listening to that particular interview
not only for that but also for like our
discussions on accessibility and
disability in cs education so i'll
include a link to that in the show notes
all right in 2.3 the authors mentioned
that there is research on transfer
between different programming languages
so for example transferring from like a
block based language to a text-based
language some will also look at
text-based detect space that have like
similar syntax and with any of these
transfers there are some benefits but
there are also some negative transfer
effects that occur so if you want to
check out the scholarship that is
summarized in that make sure you check
out 2.3 and then 2.4 is probably the
section that i think most educators
whether you're in k-12 or higher
education should take a look at so this
is on some of the known transfer
strategies and so some of the methods
might include like actually identifying
and activating prior knowledge so like
saying hey here are the concepts and
practices that you learned previously
and here's how they are similar to what
we are learning now in terms of syntax
like it's the same concept just
basically phrased a little bit
differently they also provide some
citations to studies that look at the
context of transfer as well as like
self-regulation strategies and then some
of the benefits of like teaching
concepts as an abstraction rather than
just a rote skill so for example one
approach known as bridging we try and
make connections between the initial
learning in like a programming language
and then the new domain in which you're
applying that learning in my own
practice that was something that i use
frequently like with kids who would get
stuck on something like if they went
from scratch and then all of a sudden
they're learning javascript it might be
like i don't know how to do this if else
statement and i'd be like okay think
about how you would have done this in
scratch and try and think of some of the
things that you've been learning in the
javascript content you've been going
through and try and imagine those
connections between one language and the
next and sometimes i honestly didn't
even have to say anything like students
would just make those connections and
i'd be like how did you learn how to do
that thing that you've got in your code
because like having gone through all the
courses that they're going through or
all the resources they're going through
i found it really interesting when
students like jumped outside of the box
and i saw that they did something that
wasn't explicitly taught or demonstrated
or modeled in the code that they were
working on or learning from and so i'd
get excited and be like hey how did you
learn how to do like that for loop or
something and be like oh well i thought
about how to i would do it in this other
language and then i just applied that
into this particular language which was
awesome it's just transfer based off of
reflecting on prior understandings in
relation to what they were trying to do
in the new language but you can
certainly be more explicit with it if
you're teaching the language and i would
do both in the classroom but again if
you're interested i highly recommend
checking out this background information
like each one of these are just very
quickly summarize the research but
there's many citations throughout so you
can check out those papers that are
associated with those sections all right
so section three is on the research
setup and so we have participants there
were 23 k12 educators these were in two
different european countries in the
netherlands and scotland they had a
range of experience from five years to
taught at the secondary levels or high
schools but some of them had some
responsibilities like in the last year
of primary school so they worked with
ages 11 through 18 year olds and then in
these two contexts in scotland there was
a national cs curriculum that was used
that the teachers would follow but then
in the netherlands it was much more
flexible than that so they were able to
kind of come up with their own
curriculum and content as well as how to
evaluate students so authors did
semi-structured interviews and then they
coded it using a thematic analysis which
just basically means they went through
they read like each line or each
paragraph and then would kind of assign
a code to it to say like hey this
particular thing talked about student
motivation and this other sentence or
paragraph talked about negative transfer
effects etc by the way i'm just like
making up codes on the fly they didn't
actually list out what each one of their
codes were so just trying to clarify in
case you don't have a background
research it doesn't mean they like went
and typed out like c plus kind of code
it was like coming up with basically an
abstraction of a selection of discourse
all right so let's get into the results
which is really interesting so research
question one is on the reasons for
having multiple languages so table two
on page 299 provides a really quick
summary of this so the first one is that
seven of the teachers indicated that it
was part of the curriculum so they
basically had to do it but then 13
teachers said they preferred to start
with a simple language so like something
block-based maybe and then move on to a
different language and dive deeper into
that now within this category they had
different subcategories of this so eight
of the teachers said the reason why they
went with the simple language first is
because it was more engaging for
students five of the teachers said that
it helps to like limit the number of
errors and like frustration and whatnot
so for example when using blocks you
don't have to worry about putting a
semicolon at the end of things or where
your brackets start and end etc so that
can make it a whole lot easier to avoid
different errors which can help with
building confidence which is what four
teachers indicated was a rationale for
doing a simple language and then three
of the teachers indicated that it helps
them to be able to focus on concepts so
rather than teaching the skill of
writing out lines of code whether it's
blocks or text in a simple language they
would teach the concepts so maybe
thinking of like teaching the pseudo
code or the ideas behind what you would
eventually write and focusing on that
and the end product is not as important
as understanding the concepts behind the
code that is eventually written now this
is important and i'll talk about this a
little bit more later in my rant at the
end of these solo episodes that i always
do when i talk about some lingering
questions and thoughts now the third
main category for this is that some
teachers chose to do this ten of them
because it had different benefits from
learning different languages so for
example for the teacher said that each
language has different applications such
as a language i don't know being better
for understanding hardware or language
being better for programming games or
like in my case a language like ruby
being better for programming music
through something like sonic pi etc and
then six teachers said that there is a
benefit for knowing different languages
because it just gives you a different
perspective on understanding the concept
or just coding in general so for example
understanding how to use if else
statements versus case switch statements
in different languages might help
understand the concept of conditionals
and go oh there are different types of
conditionals that i can use in different
contexts with different languages etc
alright so research question two
problems and benefits of teaching
multiple languages table three is an
excellent summary of this this is from
page 300. all right so let's start with
the benefits of teaching transfer so 15
teachers found a positive effect on
understanding programming concepts in
the second language some teachers noted
that there's transfer of understanding
from the first language to the second or
that students were able to make
connections to the previous language and
a small number noted that this only
happened under very specific conditions
so for example maybe they would make the
connection between conditionals but not
necessarily the connections between
different loops statements and other
control structures the next main
category of benefits was a positive
effect on cognitive abilities so seven
teachers indicated this so for example
transfer problem solving skills and
abstract thinking as well as just like
broadening student perspectives now i'm
going through this very quickly i do
highly recommend actually reading
through the paper and you can see more
of an explanation with more examples of
each one of these again you can find a
link to this in the show notes now let's
talk about some of the problems that
were found in this so there are four
different problems so eight teachers
noted a negative effect on syntax
transfer so if you're not very familiar
with syntax differences like for example
in scratch you can drag and drop things
you don't have to worry about adding in
a semicolon it's very easy to see where
your brackets basically open and close
in terms of like the if blocks you can
see what's housed inside of that by
simply saying what it's basically
hugging but if you go into a language
like i don't know javascript you have to
actually see where your curly brackets
start and end and you have to use
semicolons etc at least you did last
time i used it maybe there was an update
or something that i'm not aware of and
if you learned a language where
semicolons weren't a thing that you had
to worry about then yeah there's going
to be some transfer errors in terms of
syntax so you might forget to put a
semicolon when maybe you've gone weeks
months or even years not needing it
which i'll talk about more towards the
end alright so within this particular
category there are some subcategories so
some teachers noted that the context
switching is difficult and it takes time
and then other teachers mentioned that
well there are issues with like mixing
up the different syntaxes for different
languages so when i was teaching several
languages in the same space like
students were able to work on either
scratch on swift with xcode or on ruby
and sonic pi or on javascript with khan
academy like going from one computer to
the next i would sometimes make a
mistake where it'd be like helping out
one kid with javascript and then jump
over to the next computer and help out
another kid with ruby and i'd start
explaining something that they would
write out in javascript and then go wait
a minute that's that's not how you do it
with ruby so i would make these little
syntactic mistakes when jumping back and
forth between two different languages
within the same space and the same thing
when i was learning different
programming languages to be expected the
next main category of problems is that
there's a negative effect of semantic
transfer so the transfer of
understanding or meaning and 10 teachers
noted that so for example there were
misconceptions some students would make
assumptions based on the semantics or
just struggle with the semantics in
general which to me leads me to believe
that they actually don't understand the
concept itself behind the skills that
they were developing when programming in
the first language but that's just a
guess the third category for problems is
that students make no connection to or
with the previous language and so four
teachers mentioned this which is
interesting i'm curious what kind of
pedagogies they used and whether they
even asked for explicit connections
because like i mentioned earlier if a
student was stuck on something and be
like well how would you do this in the
other language that you were learning
previously and then often that would
just kind of lead to the end result that
they were hoping for and if not then we
just kind of like talk through oh well
here's where you can go to learn more
about that or let me connect you with
somebody who can help explain that
whether it's a peer or myself and the
last category that three teachers
mention is that students were
demotivated or less confident to learn
the new language so for example students
would make generalizations on just like
their lack of ability based on like
their previous bad experience or they
just want to stick with the first
language that they knew which is why for
myself i made the languages that kids
could pick completely optional so they
could stick with one all year or they
could or they could switch to multiple
languages throughout the semester or
year at the start of the year i'd have
them spend a day on each one of the
languages to see like the different
platforms and what they could do with it
like hey if you really want to make some
music check out sonic pi if you want to
make some art and animation check out
javascript and khan academy if you want
to make some app do some swift and then
if you want to make some games and
stories maybe check out scratch and so
is there interests that were guiding the
selection and the language in terms of
the things they wanted to be able to
create or do rather than me saying hey
you have to learn this thing and then
we're going to learn this other thing
whether you want to or not so that's a
very different approach and it'll have a
profound impact on whether or not
somebody wants to do that like for
myself i'd be happy to learn a language
that allows me to create video games or
music but i'm less interested in
languages like sql which i have spent
some time learning a little bit of and i
was like this doesn't really apply to
what i'm interested in same thing can
apply to students some students might
really want to learn sql and then they
might not like learning things i'm
interested in like gaming and music and
whatnot all right so the next section is
resource question three which is the
views on the use of transfer strategies
and then research question four which is
on types of transfer strategies so
there's actually two tables on page 302
table four and table five that kind of
discuss each of these and again the
actual paper subsection discusses each
one of these in more detail but i'm just
kind of giving you a broad overview of
some of the findings all right so for
views of transfer strategies 12 of the
teachers believe that they do not have
to actually implement transfer
strategies two of them specifically said
that transfer strategies can confuse
students four of them suggest there is
not enough time to implement transfer
strategies two of them suggest that
mapping prior language to a new language
is difficult two of them say that they
can assume that students will transfer
the understandings implicitly and then
two of them indicates that implementing
different transfer strategies can put
off students now those are some really
interesting findings so more than half
the teachers don't think you actually
need to implement different transfer
strategies we also have nine teachers
who believe that knowledge of more than
one language can help in the transfer
and then four teachers who believe that
students don't have a strong
understanding of the first language for
any benefits to really carry over into
the new language which is also an
interesting finding i would argue that
depends on how much time you spend on it
so if you spend a day on one language
just like a simple language and then go
into a new language yeah you're probably
right but if you spend a month a
semester a year or two i would disagree
so my guess is that has to do with how
you implement it how much time you spend
on it in the context and whatnot alright
so of the teachers who actually did use
some transfer strategies here are the
findings for that so some of the
teachers explicitly referred to the
first programming languages when
teaching the second one so like six of
them specifically did that five of them
compared code between the two different
programming languages and then four
teachers discussed the similarities
of the different languages the next
category for the types of strategies was
around favoring transition so eight
teachers would focus on the concepts and
emphasize those over anything else so
the syntax kind of became the
afterthought it was really thinking
about well what is the meaning of a
conditional when would you use a
conditional and why when would you use
different types of control structures
and why and then you can actually get
into okay well in this language you'd
write it this way in this other language
you write it this other way four
teachers prefer to use some kind of a
visual representation three teachers
would use some kind of a dedicated
activity specific to that transition
from one language to the next and then
one teacher mentioned actually avoiding
any language specific constructs so
again focusing mainly on the concepts
and not necessarily talking about what
was specific to that language or the
next language and my guess is that
teachers spent a limited amount of time
on the first language because that would
kind of be hard to do if you're spending
like a year or two learning a language
to not actually get into some of the
language specific constructs now the
last category within the section is on
preparing for transfer so three of the
teachers mentioned that they referred to
everyday life so my guess is that it has
to do with like focusing on the concepts
again and then one teacher actually
mentioned referencing the first
programming language in some way in
terms of preparing students to learn a
second language now all of these are
some excellent strategies that you can
use for transfer of understanding it's
great that they have them in here but
this leads into the discussion section
which starts on page 303 so i do
actually recommend reading through that
particular section the reflections on
the research questions were interesting
but then they also have some
implications for cs educators so for
example for teachers this is from page
teachers should consider their students
as prior programming language knowledge
and design classroom activities that
engage their initial understanding to
help them evolve their conceptual
knowledge as they learn new programming
languages furthermore teachers should
use explicit instruction to help their
students correct negative syntax and
semantic transfer from prior languages
lastly teachers should be strongly
encouraged to add to their reasons for
teaching multiple languages the benefit
of deepening conceptual understanding
about programming language concepts end
quote yeah i like all of those
suggestions i also like their
suggestions for researchers and for
curriculum designers so for example
as they suggest quote if transfer
strategies are to be used effectively by
computing teachers a carefully planned
pedagogy is required therefore this
presents an opportunity for researchers
to work with experienced teachers to
develop implement and evaluate a
pedagogy where transfer interventions
tackle specific student transfer
problems examples concepts syntax and
semantics presented in this study and
transfer research end quote that is a
really important quote there are some cs
education researchers out there who have
never taught a day in their life in k12
context so
it really makes sense to work with
teachers who have a background in
education and pedagogies etc so highly
recommend that research practitioner
partnerships are an excellent way to do
that if you're unfamiliar with it
there's a lot of rfps that encourage
that approach like through nsf and
whatnot and then finally the section on
curriculum designers i mentioned that it
might be helpful to guide this transfer
of understanding by creating some
resources that specifically transfer
from one language or platform to another
i'd argue it depends on how you design
your resources you might not need that
it might not need to be explicit but you
could do like a translation document
video or experience or series of
projects that kind of helps guide that
transfer from one project or platform to
another but it just kind of depends on
what you're doing and how complicated it
is all right so that's a summary of the
paper itself but at the end of these
unpacking scholarship episodes i like to
provide some lingering questions and
thoughts that i have while reading
through it this is not meant as a
critique of the authors or anything i
enjoyed this paper and i'm fascinated by
some of the findings but one of the
questions that i have is what's the
level of transfer when teaching
to concept versus label or skill so as
mentioned throughout multiple teachers
mentioned focusing on concepts over
practices in music education which is
what my background is in we'd often
refer to concept over label so for
example we might say amplitude or volume
or gain or dynamic to indicate how loud
or soft something is but those are all
labels for the concept that things can
be loud soft or anywhere in between as
another example we would often have
musicians transfer from one instrument
or device to another instrument or
device for making music and to be honest
the transfer wasn't a big concern among
music educators in terms of like the
negative effects of oh well if they
learn saxophone fingering and then they
transfer over to clarinet they're not
going to sound as good well yeah they're
learning a completely different
instrument it's assumed that you're
going to need to practice it so if you
go from a saxophone to a clarinet you're
going to have to relearn some things and
it's assumed yeah it's going to take
some time to retrain your muscle memory
and if you jump back and forth between
the different instruments your brain
might mix them up sometimes that
happened to me when i was teaching those
instruments that's to be expected it's
not like uh oh wow i'm so surprised you
went from playing marimba to playing
vibraphone and it doesn't sound as good
well yeah that's because it's different
techniques different setups different
contexts different styles or syntax if
you will etc for whatever reason
computer science educators seem to get
hung up on oh well when you transfer
from one language to another it's not
one to one and i don't know why that
would ever be expected in my opinion
like i went from using a video editing
software to a different one and the
concepts are all the same but they have
different features they have different
ways of doing things and they sometimes
use different labels for the same
concept like rendering versus exporting
versus bouncing etc all of those
basically mean hey i want to take this
project and turn it into a video that i
want to share but you have to learn the
different labels of basically the
different syntax and different ways of
engaging with that platform and it's the
same thing for a programming language
but to argue with myself it's not just
conceptual it's also skill based so
here's an example that's very specific
to my nerdiness if you go to my website
you'll notice that i have computer
science content but i also have drumming
content and then gaming content if
you've watched any of the videos of
gaming you'll know that i have gone from
years of playing controller on a game
like fortnite and then i switched over
to keyboard and mouse and even though i
understand all of the same concepts it's
the same game i know i'm supposed to aim
i know how to interact with things i
know i'm supposed to build it's a
completely different set of mechanics
different fingers different motions etc
and it really messed me up even though
conceptually i get it my brain's like
wait what's the button for this thing
same thing for syntax in a programming
language if you're not used to adding in
curly braces or semicolons and you're
instead used to indentation and not
needing semicolons you're going to have
to basically develop the skill or the
habit of putting in curly braces and
semicolons and other syntax variations
etc so yeah there's a conceptual thing
that we need to focus on but we also
need to focus on just the habits and
understand that mistakes will happen
like learning when you transfer from one
language to another and that's quite
frankly okay we don't want to just learn
the concepts we want to apply those
understandings through a program or a
project or something that we create and
can do with those concepts otherwise
what's the point of learning it you're
not going to use it in some way but i'm
also curious about like okay well how
does
the transfer from
in between higher or lower languages
impact understanding so my own guess is
that it is easier to transfer from a
lower level language to a higher level
language than the other way around so if
you're not familiar with the terminology
lower level language would be something
like c plus plus it's very syntax heavy
there's a lot of things you need to
worry about in terms of basically the
grammar of your code in order to make
sure that things work it's lower in that
it more resembles machine code if you
transfer them back to a higher level
language which is syntax lite it looks
more like writing out
sentences then it does like code my
guess is that would be easier because
you're going oh i don't need all that
extra stuff but if you go the other way
around and you go from something that's
light on syntax to something that is
heavier on syntax my guess is you would
forget things and it would be an
inconvenience and a frustration rather
than the other way around where it's
like oh this is so much easier however
it is a lot easier to start with a
higher level language that is syntax
light than something that is a lower
level language so it's kind of like a
catch there or it's like do i want to
make it easier for the transfer or
easier to begin and i don't really have
a good answer for that and that kind of
transfers into the next question that i
have so what's the line between
motivation to learn and effectiveness of
an approach used to transfer
understandings so for example
instructional designers often talk about
minimizing cognitive load to make it so
that it's the most efficient way to
learn something but often in
instructional design approaches it
assumes an inherent and equal motivation
among the participants and it doesn't
really talk about how some students are
there to learn and others don't care
especially if they're required to be
there so in my opinion it really matters
who is initiating this transfer of
language as it can have a profound
impact on whether or not somebody's
willing to make the transfer as some of
the teachers mentioned some students
just want to stick with their original
language like if i had a kid who is like
really into video gaming and i'm like
alright class we're going to start
learning sonic pi they're probably going
to put up some resistance and go i want
to stick with scratch and just make
video games i don't want to code music
which is the only thing you can do in
sonic pi so when transferring from one
language to another i left it up to
students to make that decision this was
much more difficult to teach because if
there are 30 students in the class
they'd be working on 30 different
projects in several different languages
simultaneously so again i had to quickly
shift from one language to the next when
i would be walking by and assessing
their code and look for potential
problems or bugs or when i'd be
providing some questions for them to
think through to try and help guide them
towards some kind of an understanding or
to solving a problem etc it also made it
harder in terms of not being able to
find as many peers if there are 30 kids
in the class all working on the same
language it's a whole lot easier to say
hey talk to the person next to you see
if they can help out but if the people
on either side of you are working on a
completely different language or
different platform that makes that
conversation a little bit harder so as
much as i love the motivation side of
things and really focusing on that to
determine whether you can transfer there
is this like fine line between when
should you and when should you not do
the transfer and really it's up to you
and the kids that you're working with in
my opinion can't give a blanket
statement of this is when you absolutely
should or should not do it but that's my
own epistemology all right so the next
question that i have is how might we
help students teachers and scholars
prepare for making the connections
between different languages so if
there's a point where students teachers
whatever are going to learn another
language how can we make that easier i
honestly don't understand when people
are surprised students have to relearn
something in a new context because i
made mistakes all the time when i was
learning a new language i would
frequently mix up my syntaxes when i'm
learning a new language or languages
that's just to be expected but this
leads to the next question that i have
is how and when might we teach multiple
languages within the same class rather
than assuming that everybody needs to be
doing the same thing at the same time
when might we have multiple ways of
engaging in computer science within the
same shared space the way i did it was
not all of a sudden jumping into several
languages going on at once i first of
all had to learn them so i made a goal
for myself to add in at least one
language each semester one new option
because kids were required to be in
these k-8 classes i wanted them to have
options for how they could express
themselves through code rather than just
having everybody doing the same thing
and assuming oh well everyone's going to
be interested in making video games
maybe probably not that made it a whole
lot easier for me but i also had a wife
who was going to school full-time did
not have kids had older dogs who
required low amounts of maintenance etc
so i had the time on weeknights on
weekends so-called vacations where i was
learning new languages that i could then
apply into the classroom that's a lot
harder to do when you have other things
to focus on outside of school so while i
think it was an ideal for the students
it was not necessarily ideal for my time
and what i was getting paid for but that
was a sacrifice i was willing to make
and is not a sacrifice that i expect
others to make all right i've got a lot
of questions for this particular one but
here's the very last one so what
transfer strategies might we learn from
other domains so as i mentioned it's
assumed that there's going to be some
negative impacts of transferring from
one instrument to another so music
educators have to figure out how to help
those students but that's just one
domain that does this regularly what
about like sports psychologists and
kinesiologists how do they help athletes
transfer from one movement or motion or
entire sport to another and what about
other domains that talk about transfer
of understandings and whatnot what can
we learn from them i really hope that
there are cs ed scholars out there that
hear this and go oh yeah my child's
involved in ex-activity or i was
previously involved in why activity and
there is transfer of understanding i
wonder if there's scholarship on that
transfer understanding i bet you there
is and i bet you the field of csi
education could learn a lot from
checking out research from other domains
for example check out k anders
erickson's work on developing skills and
expertise which i did a podcast on one
of his papers and i'll include a link to
that episode in the show notes but i've
rambled on for far too long i really
enjoyed this particular paper i hope you
check it out it's linked to in the show
notes and if you want to see myself
learn some new skills and understandings
related to gaming and drumming feel free
to check that out on my website but more
importantly check out all the cs
education resources at jerideliri.com
and the free computer science education
resources that i create at booduppd.org
stay tuned next week for another episode
until then i hope you're all staying
safe and are having a wonderful week
Abstract
“Motivation More and more high schools are teaching programming, and in many cases, teachers teach multiple programming languages to the same group of students. Objectives The goal of this paper is to explore the views of high-school teachers on second and subsequent programming languages, including their motivation for teaching multiple languages, their struggles, and their use of transfer strategies when they teach their second or third programming language. Method The study consists of semistructured interviews with 23 high-school teachers in two European countries. Results Our findings indicate that school pupils face the same issues as university students when moving from first to subsequent languages. Furthermore, the teachers’ attitudes towards second language learning are highly variable, both positive and negative, with some supportive teaching strategies used, but many less helpful ones in evidence too. Discussion Our findings suggest that the value of second language learning needs to be highlighted in teacher professional development materials more strongly and that teachers might need more support in implementing transfer strategies.”
Author Keywords
Programming languages, transfer, code comprehension, conceptual development, syntax, semantics, K12
My One Sentence Summary
This paper seeks to “understand computing teachers’ views and practices on the use of transfer strategies in teaching second and subsequent programming languages” (p. 297)
Some Of My Lingering Questions/Thoughts
What’s the level of transfer when teaching to concept versus label or skill?
How does transferring from and between higher or lower languages impact understanding?
What’s the line between motivation to learn and effectiveness of an approach used to transfer understandings?
How might we help people with making connections between languages?
How and when might we teach multiple languages within the same class?
What transfer strategies might we learn from other domains?
Resources/Links Relevant to This Episode
Other podcast episodes that were mentioned or are relevant to this episode
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.
Discussing Computer Science in K-12 with Shuchi Grover
In this interview with Shuchi Grover, we discuss the importance of having a variety of assessments in a CS class, why we need more research on computational thinking, why educators and scholars should read literature outside of the field, Shuchi’s new book titled “Computer Science in K-12: An A-To-Z Handbook on Teaching Programming,” 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.
The Role of Deliberate Practice in the Acquisition of Expert Performance
In this episode I unpack Ericsson, Krampe, and Tesch-Römer’s (1993) publication titled “The role of deliberate practice in the acquisition of expert performance,” which debunks the notion of innate abilities within a domain and describes the role of deliberate practice in achieving expert performance.
Transfer, Collaboration, Impact, Facilitation, and Much More with Sandra Ahlstrom
In this interview with Sandra Ahlstrom, we discuss transfer of understanding across programming languages, collaborating around computing, the impact we want to have as educators, and several more topics relevant to CSK8 educators.
Find other CS educators and resources by using the #CSK8 hashtag on Twitter