[Microbit-Python] What is the goal of micro:bit? ( Was Re: Flat API )

Tom Viner tom at viner.tv
Wed Sep 23 20:24:19 CEST 2015


+1 for what's been said so far. Can I propose that the repl auto executes:

>>> microbit import *
>>> dir()

and the editor pre-populates with:

from microbit import *
# you can use display, button_a, button_b, pin0 ... pin20 etc etc

if adult devs don't read the docs...

On 23 September 2015 at 14:56, Michael <sparks.m at gmail.com> wrote:

> By chance, and related - this came by my twitter feed today:
>
> http://edtechnology.co.uk/Article/girls-think-stem-subjects-are-too-hard
>
> Basically says 60% of girls aged 12 (ie in Year 7) think that STEM
> subjects are for boys, not for girls, because they perceive that the
> subjects are too which makes it a boys subject. That's just one example of
> the issues here. (They're wrong, for the statistics that I've seen that are
> comparable, girls do on average 5% better, but 5% never won hearts and
> minds! Flashing heart logo when your friends are nearby, that's a different
> matter :-)
>
> (There's many studies like this, but worth raising as a factor)
>
>
> Michael.
>
> On 23 September 2015 at 11:24, Nicholas H.Tollervey <ntoll at ntoll.org>
> wrote:
>
>> +1
>>
>> N.
>>
>> (at work so brevity required)
>>
>> On 23/09/15 10:44, Damien George wrote:
>> > Thanks Michael, that's a great read and good to have a "mission
>> > statement" to make decisions by.
>> >
>> > We do need to remember that Touch Develop and Code Kingdoms provide an
>> > alternative to (Micro)Python (and MP provides an alternative to them)
>> > and having alternatives already increases the adoption and use of the
>> > device.  Some students might find the blockly interface more
>> > inspiring, while others like Python.  So it's important that we
>> > provide something *different* (and I think Python is providing a
>> > little more computer-science rigour than the other offerings).
>> >
>> > We must also remember that we're bound by the Python language itself
>> > -- and the Python way of doing things -- so that places some
>> > restrictions on API design.
>> >
>> > I think though that we can slightly modify our API design to fit
>> > better with Michael's statement.  I propose:
>> >
>> > 1. We replace microbit.pins.p[0-20] with top level names microbit.pin0
>> > .. microbit.pin20.  This removes a "namespace" level but still keps
>> > things clean (pin0.write_digital(1) is pretty obvious).
>> >
>> > 2. We revert to microbit.button_a and microbit.button_b.
>> >
>> > 3. On entering the REPL we execute from microbit import * to make all
>> > names available.  Then it's very easy for a student to do
>> > display.print('hello!'), and other things.  We should ensure that
>> > there are no short names in the microbit namespace that could easily
>> > clash with other names.
>> >
>> > 4. We should have from microbit import * written automatically at the
>> > start of the script in the editor (currently we have import microbit).
>> > That way students have immediate access to the functions/objects, but
>> > they can change that line to import microbit if they want.
>> >
>> > I think other decisions, like whether we use read_digital,
>> > digital_read or set_digital_value, are neither here nor there and
>> > don't affect the "first impressions" of the device (but still we'll
>> > try to choose sensible and consistent names).  For the students that
>> > are hard to reach and engage, as long as the teacher can get them a
>> > REPL, they can type display.print('hahaha') and get something working,
>> > I think that's the best we can offer.
>> >
>> > Python's learning curve is shallow but long.  And we can make the same
>> > thing on the microbit: the first thing kids do (display.print) should
>> > be super easy to do.  And from there it should be a gradual learning
>> > curve towards more fun and advanced things.  And the learning curve
>> > should continue for a long time for those more advanced students.  I
>> > think we can do that.
>> >
>> >
>> >
>> >
>> >
>> >
>> > On Wed, Sep 23, 2015 at 10:02 AM, Michael <sparks.m at gmail.com> wrote:
>> >> [ This email has become a bit longer than I intended but I think it's
>> >> important to say, since this was a great question, and deserves a
>> proper
>> >> answer. It's passionately it seems, but certainly isn't critiquing
>> anyone or
>> >> any API! ]
>> >>
>> >>> What is the goal of micro:bit?
>> >>>
>> >>> Is it to teach 11 year-olds good programming skills?
>> >>>
>> >>> Or is it to inspire 11 year-olds with an interest in problem solving,
>> STEM
>> >>> etc.?
>> >>
>> >> While I don't think (and I doubt you do either) this is either/or,
>> you're
>> >> right, there is a trade off.
>> >>
>> >> The goal of micro:bit is very much the latter. To INSPIRE a generation.
>> >> Quite literally.
>> >>
>> >> Why?
>> >>
>> >> Over the past 10 years the numbers of children taking computing in the
>> UK
>> >> dropped dramatically. At A-Level - where they should be able to come
>> out of
>> >> school with useful skills (I know I did) - esp if they get an A or a B
>> - the
>> >> numbers dropped below 4000 children nationally taking A-Level. Out of
>> those,
>> >> less than 200 were young ladies, and out of those less than 50 got
>> grade A
>> >> or B at A-Level. (ie more women at the Django Girls track at pycon UK
>> gained
>> >> useful skills than young ladies as recently as 2013 - which is when I
>> last
>> >> crunched the stats. (I've got graphs that show this if people are
>> really
>> >> interested)
>> >>
>> >> There are improvements across the board since 2013, and the curriculum
>> is
>> >> there to teach those good skills.
>> >>
>> >> The micro:bit is NOT there to replace the curriculum, or teachers. It
>> is
>> >> designed very heavily with the start of Key Stage 3 in mind - both in
>> >> computing but in design technology, science and textiles as well. (Key
>> Stage
>> >> three is the first three years of seconday school for those like me who
>> >> never has KS3, Y7/9 in their vocabulary. It's the 3 years you learn
>> stuff
>> >> without the pressure of exams in secondary school, ages 11-14)
>> >>
>> >> It isn't designed to replace anything else on the market. It is
>> designed
>> >> however to help and ENTICE people get the first rung on the ladder
>> whereby
>> >> they they think the ladder might be worth climing.
>> >>
>> >> It's aim is to INSPIRE.
>> >>
>> >> Who is it intended to inspire?
>> >>
>> >> Geeks? No. They'll get interested anyway. None of us on this list is
>> now or
>> >> ever has been the target audience.
>> >>
>> >> Kids with inspired, inspiring, engaged teachers? No. They're awesome,
>> this
>> >> is intended to help them inspire their kids, but they're not the
>> audience.
>> >> They'd find *something* however, without this. (this also means any
>> teacher
>> >> who attended Pycon UK is also NOT the audience, since they're already
>> >> engaged.)
>> >>
>> >> The audience is the child who has yet to be turned off computing (but
>> will
>> >> be or perhaps has been) because they've had 6/7 years of homework in
>> primary
>> >> school and for the past 4 of them they've probably been using
>> computers to
>> >> write up and draw up their homework, and to open their eyes to the
>> idea that
>> >> they can create something cool.
>> >>
>> >> The idea is to simply make it as simple, as possible, as accessible as
>> >> possible for the child who who when exposed to this stuff becomes
>> >> interested. (After all, by the time they reach A-Level, that's 36,000
>> >> children who were turned off by the curriculum)
>> >>
>> >> It's the child who is not just pre-GCSE, but 2 years pre-GCSE. 2 years
>> >> pre-GCSE in a school where a teacher teaches the bare minimum of the
>> >> simplest curriculum, which they chose because they don't know very
>> much at
>> >> all.
>> >>
>> >> It's the child who's teacher thinks "I won't teach that that yet,
>> because
>> >> there'll be nothing for next year".
>> >>
>> >> It's the child who's teacher was until last year a Business Studies
>> teacher
>> >> and thinks that the move to teach coding is a stupid and annoying one,
>> and
>> >> that there's no point teaching year 7 or 8 anything now because by the
>> time
>> >> they reach year 9, the curriculum will change back again after a failed
>> >> experiment.
>> >>
>> >> It's for the child who can't get access to a library because they live
>> in
>> >> the highlands of scotland, or orkneys, or Falklands.
>> >>
>> >> It's for the child who thinks "I can't spell, I can't do anything" -
>> but
>> >> they CAN do this, and suddenly they have a world of opportunity before
>> them,
>> >> and it turns out 4 years later they're undiagnosed dyslexic.
>> >>
>> >> It's for the child who's teacher only goes over any idea once, and
>> generally
>> >> only covers what's on the BBC Bytesize website, because they know the
>> BBC
>> >> puts a lot of effort into making that cover the curriculum (whether it
>> >> achieves that is another matter), and they believe rightly or wrongly
>> that's
>> >> enough, and the child is ill that one day and it's never repeated.
>> >>
>> >> (I can think of specific representative teachers for each of these)
>> >>
>> >> In short, the target audience is for a child, just out of primary
>> school,
>> >> who's parents don't care, who's teaching support doesn't care, and
>> doesn't
>> >> think they can do things, and to inspire THEM that they can.
>> >>
>> >> It's for children who have never touched code, and are only doing so
>> because
>> >> their teacher is telling them to, and think they're the wrong sort of
>> person
>> >> (a common view amongst girls), and given half a chance they'd be doing
>> >> something else.
>> >>
>> >> It's a device aimed at supporting EVERY child, including the "weakest"
>> >> child, they child who believes they *can't* either because they really
>> can't
>> >> (there is a bell curve for everything), or simply because they've
>> never been
>> >> told they can (and needs to hear it). It's a device aimed not at you,
>> or me,
>> >> or our younger selves, but at everyone. It's aimed at the person you
>> see in
>> >> the shop who now is a checkout person, and was once 11. It's aimed the
>> >> street cleaner you see, but when they were 11. It's aimed at the office
>> >> worker who is bored with their work, and solves problems every day,
>> but was
>> >> once 11.
>> >>
>> >> This was the reason that the prototype had a flat API, since you only
>> look
>> >> in one place. It was based on watching real users and seeing the
>> problems
>> >> they have (the events prototype that came earlier). It's based on
>> experience
>> >> of working with children of all abilities - the ones with dyslexia,
>> >> dyspraxia, ADD, or just plain average, or below average intelligence.
>> >>
>> >> Every other possible audience involved benefits from those decisions.
>> >>
>> >> Now, I'm not going to bikeshed the API - until I get to review what's
>> been
>> >> proposed - since that's really unfair and disrespectful to those who
>> >> graciously gave up their time on monday, for which I'm very thankful.
>> >>
>> >> Given the choice, in this project I choose inspiration, not
>> correctness,
>> >> every time. You could say people often say "Make it work, make it work
>> >> right, make it fast", but before that there has to be the decision "to
>> >> make".
>> >>
>> >> On that basis, I didn't even require this line:
>> >>
>> >>     from microbit import *
>> >>
>> >> Or this:
>> >>
>> >>     import microbit
>> >>
>> >> The functions were just considerded builtins to the device. I can see
>> why
>> >> every other python programmer balks at this, but this is precisely the
>> >> approach that pygame zero takes (I'd not seen that before pycon uk, so
>> my
>> >> impression could be wrong there).
>> >>
>> >> That said, to put this into perspective, if we inspire just 3% of
>> children
>> >> to change their minds and start climbing the ladder, then we haven't
>> just
>> >> done good, but we will actually have reversed 15-17 years of decline
>> in this
>> >> field, and that will hit in 2020. (rather than 2028 - which is when the
>> >> first set of primary kids starting the new curriculum will leave
>> school)
>> >>
>> >> Hmm. That was longer than I expected. Sorry about that.
>> >>
>> >>
>> >> But I do know the answer to this question - the goal of the micro:bit
>> is
>> >> very simply INSPIRATION, and that should be the trade off here. (But
>> yes,
>> >> correctness matters)
>> >>
>> >> As I said though, this isn't posted to critique or support any
>> particular
>> >> API. It's just intended to explain the thinking behind the device, and
>> the
>> >> impact on my thinking when building the prototype and designing its
>> API. I
>> >> also think that the decision won't be mine and shouldn't be mine
>> either, and
>> >> I'll support whatever decision IS made, proudly and loudly.
>> >>
>> >> While getting resources and materials done ASAP does matter,
>> sacrificing
>> >> that for spending a day or two discussing whether an API is the right
>> one -
>> >> especially with regard to the tensions between ease of use and
>> "correctness"
>> >> is good.
>> >>
>> >> Pythonic-ness good. Micro-bitty-ness, better :-)
>> >>
>> >> Regards,
>> >>
>> >> Michael.
>> >>
>> >> (and once again, sorry about the length of this, but I feel pretty
>> >> passionately about this :-)
>> >>
>> >>
>> >> On 23 September 2015 at 00:25, Alan <alainjackson at hotmail.com> wrote:
>> >>>
>> >>> Sometimes when agreement doesn't come easily it can be because the
>> goal
>> >>> isn't clear to everyone.... which made think that perhaps the goal
>> isn't
>> >>> clear to me.
>> >>>
>> >>>
>> >>>
>> >>> If it's the first, then there's a strong case to make our designs
>> >>> "proper", even at the expense of making things a bit more difficult
>> for the
>> >>> novice initially.
>> >>>
>> >>> If it's the second then the emphasis changes and it's more weighted
>> >>> towards accessibility, I think.
>> >>>
>> >>> I realise I've been assuming the goal is the second and I'm happy to
>> be
>> >>> corrected if it's not.
>> >>>
>> >>>
>> >>> In my mind the micro:bit is it's own fun little problem solving
>> universe.
>> >>> It doesn't have a web browser or built in games (yay!) - it's only
>> going to
>> >>> do what you make it do. It's amazing that you can program it in
>> python. Even
>> >>> if it happened to use some non-standard variant of python or its API
>> wasn't
>> >>> completely "proper" it wouldn't really bother me... iff we're aiming
>> for the
>> >>> second goal. If we're aiming for the first, it would bother me.
>> >>>
>> >>>
>> >>> When I suggested a flat version of the API I wasn't just thinking
>> about 11
>> >>> year-olds and their typing or spelling ski11z, I was thinking about
>> teachers
>> >>> and myself. I'm wondering if, in the classroom (which is only one
>> situation
>> >>> of its use), it's going to feel more like "live coding". It really
>> did for
>> >>> me when we were all round the table at pycon and Nick was saying
>> "You've got
>> >>> 20 minutes to make something interesting", and I was coding on the
>> REPL,
>> >>> continuously recreating my program with the up arrow and finding out
>> the
>> >>> command history is only 10 lines.
>> >>>
>> >>> If these thoughts aren't useful or are bike-shedding, please ignore
>> them.
>> >>> I don't want to waste your valuable time and distract you from the
>> cool
>> >>> stuff you're doing.
>> >>>
>> >>> Cheers,
>> >>>
>> >>> Alan
>> >>>
>> >>> ________________________________
>> >>> Date: Tue, 22 Sep 2015 23:13:17 +0100
>> >>> From: david at thinkingbinaries.com
>> >>> To: microbit at python.org
>> >>> Subject: Re: [Microbit-Python] Flat API
>> >>>
>> >>> I'm sure both GCSE and AQA specifications talk about abstraction and
>> >>> decomposition - how can you do that without functions??
>> >>>
>> >>> All our 11 year olds use functions in the schools I work with. We
>> >>> introduce functions in Adventures in Minecraft (aimed at 11-15 year
>> olds and
>> >>> mostly syncronised to the GCSE curriculum) in chapter 3 and use them
>> >>> extensively through to chapter 10 as a way to build up and test
>> programs in
>> >>> small incremental steps.
>> >>>
>> >>> I personally think OCR are wrong on this.
>> >>>
>> >>> D
>> >>>
>> >>> ___________________________________________________________
>> >>> David Whale, B.Sc (Hons), MIET
>> >>> Software Engineer and IET Schools Liaison Officer, Essex
>> >>>
>> >>> email:  dwhale at theiet.org
>> >>> twitter: @whaleygeek
>> >>> blog:  blog.whaleygeek.co.uk
>> >>>
>> >>> Co-author of the new book "Adventures in Minecraft" - lets get kids
>> >>> coding!
>> >>>
>> >>>
>> >>> On 22 September 2015 at 16:09, Michael <sparks.m at gmail.com> wrote:
>> >>>
>> >>> Cool. I was more worried I'd offended you. Glad I haven't :-)
>> >>>
>> >>> (it's very difficult to tell over email, so try to err on the side of
>> >>> caution!)
>> >>>
>> >>> To explain where I'm coming from perhaps better,  I've been hanging
>> out on
>> >>> the computing at school forum now for 2-3 years (or more), and
>> randomly
>> >>> reply to python queries on there, and been rather surprised to see
>> this
>> >>> response sort of response from time to time - either to my replies or
>> to
>> >>> other people's:
>> >>>
>> >>>  ...  thanks for taking the time to write it. Although the fact that
>> you
>> >>> recommend using functions also reminded me that we are not in the
>> right
>> >>> territory: Functions are outside the scope of OCR GCSE programming,
>> believe
>> >>> it or not (they are present in the AQA specifications though, so
>> maybe I
>> >>> should switch…)
>> >>>
>> >>>
>> >>> (this was in a response to a simple question about validating input
>> data,
>> >>> and simply suggested simple "isint" and "isfloat" functions to avoid
>> >>> repeating the same logic over and over...)
>> >>>
>> >>> That's a little scary to me, and it's always at the back of my mind -
>> >>> because it's a far more common perspective. That comment incidentally
>> is
>> >>> from a teacher who is teaching 14-16 year olds rather than 11-12 year
>> olds.
>> >>> (and yes, there were plenty of other replies from other teachers
>> saying that
>> >>> was the wrong approach)
>> >>>
>> >>> It's interesting actually, if this was an API for CodeClubs (even for
>> the
>> >>> same age range), I wouldn't even have worried at all.
>> >>>
>> >>> Anyway, I'll wait to see the bike now before I start suggesting
>> training
>> >>> wheels or a different colour shed :-)
>> >>>
>> >>> Regards,
>> >>>
>> >>>
>> >>> Michael.
>> >>>
>> >>> On 22 September 2015 at 15:49, Larry Hastings <larry at hastings.org>
>> wrote:
>> >>>
>> >>>
>> >>>
>> >>> On 09/22/2015 02:05 PM, Michael wrote:
>> >>>
>> >>> Hi,
>> >>>
>> >>>
>> >>> Sorry if I've offended you (it looks like I might've done).
>> >>>
>> >>>
>> >>>
>> >>> Naah, no worries.  And I didn't realize you weren't there yesterday--I
>> >>> didn't get everybody's names.
>> >>>
>> >>> This is private, but I can post this to the list if you like,
>> >>>
>> >>>
>> >>> /arry
>> >>>
>> >>> _______________________________________________
>> >>> Microbit mailing list
>> >>> Microbit at python.org
>> >>> https://mail.python.org/mailman/listinfo/microbit
>> >>>
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> Microbit mailing list
>> >>> Microbit at python.org
>> >>> https://mail.python.org/mailman/listinfo/microbit
>> >>>
>> >>>
>> >>>
>> >>> _______________________________________________ Microbit mailing list
>> >>> Microbit at python.org https://mail.python.org/mailman/listinfo/microbit
>> >>>
>> >>> _______________________________________________
>> >>> Microbit mailing list
>> >>> Microbit at python.org
>> >>> https://mail.python.org/mailman/listinfo/microbit
>> >>>
>> >>
>> >>
>> >> _______________________________________________
>> >> Microbit mailing list
>> >> Microbit at python.org
>> >> https://mail.python.org/mailman/listinfo/microbit
>> >>
>> > _______________________________________________
>> > Microbit mailing list
>> > Microbit at python.org
>> > https://mail.python.org/mailman/listinfo/microbit
>> >
>>
>>
>>
>> _______________________________________________
>> Microbit mailing list
>> Microbit at python.org
>> https://mail.python.org/mailman/listinfo/microbit
>>
>>
>
> _______________________________________________
> Microbit mailing list
> Microbit at python.org
> https://mail.python.org/mailman/listinfo/microbit
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.python.org/mailman/private/microbit/attachments/20150923/a48fea28/attachment-0001.html>


More information about the Microbit mailing list