sense - an alternative visualisation

36
Sense - An alternative visualisation Tim Mackinnon http://morethan.technology

Upload: esug

Post on 01-Dec-2014

84 views

Category:

Software


0 download

DESCRIPTION

Title: Sense - An alternative visualisation Speaker: Tim Mackinnon Mon, August 18, 2:30pm – 3:00pm Video part1: https://www.youtube.com/watch?v=NZP75L1w6To Video part2: https://www.youtube.com/watch?v=RXca6ilLZgU Description Abstract: For several years, a prominent UK educational institution has been using a Scratch derivative to successfully teach adults how to program. Using a unique blend of interesting exercises based around a physical hardware board, they have inspired many adults to learn more about programming. Keen to allow more students to participate in the course, they commissioned a software simulator for their board which also emphasised improving the accessibility of the programming experience with keyboard input and sound output for the various UI elements. Due to the perceived age of the Squeak environment, bids for this work were considered in any language (using sockets and the remote sensor protocol), however I was able to show that the original Squeak Smalltalk environment was more than capable of delivering a sophisticated and elegant solution. Furthermore, while completing this work, I was very impressed with the possibilities that the accessibility features provided even to sighted students, and experimented using them to discover programming issues as well as program optimisations. In this session I will show some the coding challenges I faced, how I built an automated build environment, and demonstrate the potential of the accessibility features even in sighted programming. I will also show how trial usage using these techniques led to a surprising observation that resulted in a complementary and more efficient event mechanism. Bio: Tim Mackinnon pioneered the use of eXtreme Programming (XP) in the UK in early 1999, and created one of the longest running XP teams at Connextra. Drawing from his prior experience of using Smalltalk, he co-invented Mock Objects, Gold Cards, and many retrospective practices. He is also the co-founder of XTC – a group that continues to inspire developers to share experiences with XP, Agile and software development, and which also organises the successful XPDay conferences. Tim now works with morethan.technology and provides targeted agile consulting at the management/board level, as well as advising software teams on the successful use of leadership, agile, and software development techniques.

TRANSCRIPT

Page 1: Sense - An alternative visualisation

Sense - An alternative visualisation

Tim Mackinnon http://morethan.technology

Page 2: Sense - An alternative visualisation

More Than Technology Ltd.

!  I am a small company focused on: "  Solving problems using extreme Agility "  Delivering business value in partnership with clients "  Working in an honest, iterative and collaborative manner "  Helping teams communicate without killing each other

!  Tim Mackinnon "  Learned Smalltalk at Carleton University late 80’s "  Originally didn’t like it, cute but mehh… "  Now it’s the language I keep coming back to for its elegance and

simplicity & community

Page 3: Sense - An alternative visualisation

Thank You Smalltalk!

!  Vibrant Helpful Community

!  So much beautiful code

!  Amazing, Inspiring ideas

!  FUN!

Page 4: Sense - An alternative visualisation

The OU TU100 Course

Page 5: Sense - An alternative visualisation

Open University’s “Sense”

!  www.sense.open.ac.uk

!  SenseBoard (usb) "  Freeduino based "  Input sensors –

button, slider, mic, ir, accelerometer, themometer

"  Outputs – led’s, ir, servo & stepper motors

!  Sense IDE – modified Scratch environment

Page 6: Sense - An alternative visualisation

The Sense IDE

Page 7: Sense - An alternative visualisation

TU100 Course is Well Received

!  “I already had some knowledge of programming but was amazed by sense. THIS IS BRILLIANT!

Whoever thought of this way to teach programming needs promoting.”

http://www.youtube.com/watch?v=g-m3O5vhMss

Page 8: Sense - An alternative visualisation

V1.0

!  Original work completed by: "  Open Univeristy + " John Daniels " Dave Cleal

!  USB interface to SenseBoard

!  Additional blocks "  Internet "  Inputs " Outputs

Page 9: Sense - An alternative visualisation

V2.0 - Specification

!  Deliverables "  To provide the Simulator and maintenance documentation. The

simulator should be delivered either as part of a revised version of the Sense programming environment, or as a plugin module that can be installed alongside Sense.

!  The simulator is intended to act as a partial replacement for this physical item for those students who are unable to use the board because:

!  They have a physical disability which precludes them from handling the board or sensors

!  They are an inmate, or tutor visiting an inmate, in a prison where access to the SenseBoard and cables are not allowed.

Page 10: Sense - An alternative visualisation

V2.0 Mockups

!  Launch a simulator without a SenseBoard

Page 11: Sense - An alternative visualisation

Which technology?

!  Everyone seemed afraid to use Squeak ?

!  PRO’s "  It’s working well "  already multiplatform "  can already safely deploy

!  CON’s "  Could Squeak do cross platform

sound output, mic input, keyboard control?

"  Can anyone still figure this stuff out?

!  Worried about the additional Java footprint and installation complications

!  Help? (where’s Tim Rowledge)

Page 12: Sense - An alternative visualisation

The Shock of early Squeak…

Page 13: Sense - An alternative visualisation

Smalltalk Spike

!  Could I even understand how things worked?

!  Worried about the “accessibility requirements” of the project "  Keyboard only navigation "  Sound + Microphone (cross

platform)

!  Did an initial spike, and found that I could get something running quickly

Page 14: Sense - An alternative visualisation

Refactoring to a “handler” hierarchy

Page 15: Sense - An alternative visualisation

Smalltalk is so malleable…

!  Fixed some of the bugs/missing features "  Package saving problems "  “Create it” in the debugger

!  Re-incarnated Sunit 2.7, Modernized approach with CI

!  Fixed some of the bugs/missing features "  Package saving problems "  “Create it” in the debugger

!  Re-incarnated SUnit 2 !  Modernized approach with CI

Page 16: Sense - An alternative visualisation

The Hanging Image

Page 17: Sense - An alternative visualisation

Learning Morphic

Page 18: Sense - An alternative visualisation

Scratch is not a good example of Smalltalk...

Page 19: Sense - An alternative visualisation

Iterative Development: Initial working version

Page 20: Sense - An alternative visualisation

Iteration 2 – multiple motors

Page 21: Sense - An alternative visualisation

Iteration 3 – input ports

Page 22: Sense - An alternative visualisation

Iteration 4 – accessibility tab selection

Page 23: Sense - An alternative visualisation

Iteration 5 – dressed up

Page 24: Sense - An alternative visualisation

Iteration 6 – OU cognitive makeover

Page 25: Sense - An alternative visualisation

Coping with Accessibility

!  Squeak was not made with keyboard access in mind !  Teaching widgets how to tab, show focus !  Menu’s continue to be a problem

Page 26: Sense - An alternative visualisation

Inspiration from Accessibility

!  When I hooked up sound accessibility and tried it out - it sounded awful!

!  However I found it interesting that I could reason about code I knew nothing about…

Page 27: Sense - An alternative visualisation

The sound of computing

!  When I mentioned listening to your program at UKST…

!  It turns out old mainframe programmers could hear infinite loops from the hardware…

Page 28: Sense - An alternative visualisation

Demo of Sound in action…

!  Constant event loop !  What does this sound

like?

Page 29: Sense - An alternative visualisation

But polling is bad… Can we do better?

!  Scratch already has a broadcast mechanism

!  Couldn’t we hook into that somehow?

Page 30: Sense - An alternative visualisation

If you know the right lines of code…

!  Convince scratch there are some predefined events

!  Wire in some support for them

Page 31: Sense - An alternative visualisation

Now rewrite the LED Slider with events

!  But it still doesn’t quite sound right…

Page 32: Sense - An alternative visualisation

This sounds better… but …

!  There is still a slight sound overlap… we can be more efficient…

Page 33: Sense - An alternative visualisation

This sounds much better

!  Although it is a bit more complicated, there is less processing…

Page 34: Sense - An alternative visualisation

Related Work

!  Craig Latta – VM Sonification

Page 35: Sense - An alternative visualisation

Events & Remote Sensor Protocol

!  The simulator and remote protocol also provide possibilities to interface with devices

!  iPhone app sending remote data as if from the SenseBoard

!  Controlling a Robot like the YoBot!

Page 36: Sense - An alternative visualisation

Thankyou

!  Tim Mackinnon [email protected]