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



More Content