the bbc micro:bit and microsoft touch develop tom ball, peli de halleux, michał moskal, jonathan...

31
The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research http://www.microbit.co.uk/ http://www.touchdevelop.com/

Upload: shonda-smith

Post on 20-Jan-2016

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

The BBC micro:bitand

Microsoft Touch DevelopTom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko

Microsoft Research

http://www.microbit.co.uk/

http://www.touchdevelop.com/

Page 2: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

GloballyEmerging recognition that K-12 Computer Science is• Educationally

foundational,like science, mathematics

• Economically crucial,and not just for geeks

USA, Malaysia, Korea, Japan, Sweden, Canada, Germany, Hungary, Israel, Holland, Denmark, Estonia, New Zealand... it's going to happen!

England

• Every child will learn computer science from primary (age 6) onwards

• A crucial laboratory

Page 3: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

The UK journey

Vision

Positioning

• Educational not instrumental:Not just a vocational/economic imperative

• Ideas, not technologyNot even primarily about computers!

• Discipline, not skillIn particular, not just coding!

Computer science is a foundational

subject discipline,like maths and natural

sciencethat every child should

learnfrom primary school

onwards

Page 4: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

The UK journey

Depth engagement

• Vibrant grass roots movement: teachers, professionals, academics.

• Community of practice, to support, encourage, equip, give vision to innovative computing teachers

• Independent: speaks for the subject, not for teachers, or academics, or companies, or govt.

• The Big Society: works with dozens of other groups of enthusiasts: Raspberry Pi, Code Club, Codecademy, code.org, cs4fn, Apps for Good, Sonic Pi, etc

MSR launchesComputing at

School(2007)

Page 5: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

20,000 members

Growing at 500/month

About 3/4 teachers

Both primary and secondary

A community A gift economy

UK-centric,but open to international members

Page 6: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

163 CAS Hubs In-person meetings of classroom teachers, university academics, software professionals

Small, informal, welcoming, supportive

Page 7: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

Started Sept 2014

in England

Page 8: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

The UK journey

Engagement at scale

• An entirely new subject at school• 3,500 secondary schools

17,000 primary schools200,000+ teachers

• Virtually no qualified teachers

• Teachers hungry for support

• Government explicitly standing back, inviting others to lead

Challenge

Page 9: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

• Vision: repeat the "BBC Micro" impact. From the classroom to the kitchen table

• A year-long campaign across all of BBC broadcasting

• A million devices, one for each 12-year old

Page 10: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

What is the BBC micro:bit?

• a small personal coding device

• an exciting intro to coding and making for students

• an IoT “starter” kit

Page 11: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research
Page 12: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

What makes the BBC micro:bit unique?• Small and attractive

• low geek factor• appeals across ages, genders

• Inexpensive and simple to produce/embed• wiring micro:bit to sensors, other micro:bits, …• an affordable embedded controller

• Connectivity via I/O pins and Bluetooth LE• BLE to smartphones, tablets, PCs• and through these hubs, the cloud

Page 13: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

Goals for the BBC micro:bit

• a browser-based programming experience

• a choice of languages and programming experiences

• an layered architecture that supports progression

• content to support teachers in the classroom

Page 14: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

Demowww.microbit.co.uk

Page 15: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

Goals for the BBC micro:bit

• a browser-based no-install experience

• a choice of languages, programming experiences, platforms

• an layered architecture that supports progression

• content to support teachers in the classroom

Page 16: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

The technology stack

• www.touchdevelop.com• edit/run/simulate/compile

• C++ micro:bit runtime

• mbed platform, SDK

OS

HDW

PL

Page 17: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

a cloud of scripts, users

a browser-based IDE, for mobile devices

a statically-typed language and libraries

www.github.com/Microsoft/TouchDevelop

Touch Develop is…

1 2

3 4

Page 18: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

Choice

Page 19: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

Choice

Block Editor Touch Develop• Drag and drop• No syntax errors• All variables are global• No types

• Cursor-based editing• Few syntax errors• Global and local variables• Static types

Page 20: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

Some of the micro:bit APIs

• Basic• show number• show string• show animation

• LED• direct manipulation of display

(plot, unplot, point)

• Image• creation of “sprites” and “sprite

sheets”

• Input• event-based and polling• buttons, accelerometer, compass

• Pins• analog/digital read/write• pitch

• Game• simple game

• Events• for BLE

Page 21: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

Touch Develop script

C++ micro:bit runtime

ARM binary

Compile

ARM

mbed C++ SDK

C++

1

User copies ARM binary

to micro:bit drive

3

User edits script and compiles

Drive

Web browser

2

USB

User accepts “download” of ARM binary

CompileTouch Develop

ARM

ARM runtime (precompiled)

ARM machine code

CompileTouchDevelop

Block Editor

Block Editor script1

Page 22: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

KoduAGE PROGRESSION

Tile-Based Programmi

ng

Block-Based

Programming

Simplified

Language

Simplified Lang. &

IDE

Full Language

& IDE

Kodu / Spark Touch Develop Small Basic Visual Studio

Programming progression

micro:bit

Page 23: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

The technology stack

• www.touchdevelop.com• edit/run/simulate/compile

• C++ micro:bit runtime

• mbed platform, SDK

OS

HDW

PL

Page 24: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

ARM’s mbed platform

• mbed-compatible board appears as mounted drive when connected via USB• Copy hex file to drive to flash it

• choice of Windows, MacOs, ChromeBooks, Linux

• no installation needed

• http://developer.mbed.org/• Free, web-based development environment• Compile C++ to hex file using armcc or gcc

• mbed SDK is open source under Apache 2.0• https://developer.mbed.org/users/mbed_official/code/mbed-src/ • https://developer.mbed.org/handbook/mbed-library-internals

Page 25: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

TouchDevelop script

C++ program

ARM binary program

Compiler1

TouchDevelop

C++

ARM binary

Compiler2

mbed compile service

ARM

mbed C++ SDK

C++

1

User copies ARM binaryto micro:bit drive

3

User codes TouchDevelopscript and presses “compile” button

Drive

Web browser

2

USB

User accepts download of ARM binary

Page 26: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

BB micro:bit – the C++ runtime

• Provides a Device Abstraction Layer (OS) for micro:bit• hardware components• simple message bus and events • co-routines (fibers) and non-preemptive scheduler• display driver• high-level helper functions (scroll string)• a few managed types (reference counted)

• To be open sourced (currently private) at • https://github.com/lancaster-university/microbit-dal

Page 27: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

The technology stack

• www.touchdevelop.com• edit/run/simulate/compile

• C++ micro:bit runtime

• mbed platform, SDK

OS

HDW

PL

Page 28: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

Control and Coordination

• MicroBit• represents the micro:bit device as a whole and its

various components

• MicroBitComponent• abstract representation of a hardware component• the functions needed to drive/poll that hardware

• MicroBitEvent• an event generated by some

MicroBitComponent

• MicroBitMessageBus• delivers asynchronous MicroBitEvents via a

send/listen pattern

• Fiber• a lightweight representation of a cooperative

thread of execution (i.e., a co-routine)

MicroBitDisplayrepresents the LED matrix array of the device

MicroBitButtonrepresents a single, generic button

MicroBitMultiButtonrepresents a virtual button

MicroBitCompassrepresents an implementation of the Freescale MAG3110 I2C Magnetometer

Page 29: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

More Classes

• MicroBitSerial• a subclass of mbed’s Serial that accepts micro:bit specific data types

• MicroBitIO• a representation of all given I/O pins on the edge connector

• MicroBitI2C• indirect access to mbed I2C

• MicroBitEventService• provides a BLE gateway for sending MicroBitEvents to the MicroBitMessageBus

• MicroBitDFUService represents a Device Firmware Update (DFU) loader that • provides a simple mechanism to identify an individual micro:bit amongst a classroom of others• allows BLE devices to discover and cache a passcode that can be used to flash the device over

BLE • provides a BLE escape route for programs that 'brick' the micro:bit

Page 30: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

BBC micro:bit content

• Quick Start Guide for Teachers• Distributed to 20,000+ teachers

• 40+ online lessons• Lesson = Activity + Quiz + Challenges• Mapped to UK CS curriculum• Printable

Page 31: The BBC micro:bit and Microsoft Touch Develop Tom Ball, Peli de Halleux, Michał Moskal, Jonathan Protzenko Microsoft Research

Questions?