Programming as Basic as Basic Can Be
A while ago I sent a draft manuscript of a book I have been writing on Basic BBC:Microbit programming using a Blocks Editor to my good friend Wendy who has spent a lifetime teaching children of all abilities and all backgrounds, ranging from gifted children, to special needs children to children from deprive backgrounds. This was meant to be a relatively straightforward book that would introduce teachers to the BBC:Microbit in particular and to basic programming in general. It seems that I had considerably underestimated problems that many people face when confronted with computer programming. This was Wendy's reply.
“My initial impression being that there is quite a mismatch between what you think teachers know about computers, and the reality! I can only inform you about this professional body as it is the one I have always worked within. However, I would suspect that many parents are also at this level of expertise.
In schools there is one person who is head of IT. It is their job to keep all the networked computers (desktop, laptops, and tablets) in working order and updated with programs that are relevant to specific children, classes and groups. That in itself is a big job as there are now hundreds of computers within each school, and the head of IT will almost certainly have their own class to teach on a daily basis. Any problem that they are not able to cope with is 'farmed out' to the borough IT consultant. As most courses for teachers have been severely cut back, there is hardly any IT training for teachers.
At work I used a computer to store all the children's work records, planning sheets and work reviews. I used the Internet to discover suitable resources for countless children, and of course for my endless emails to the multitude of professionals with whom I was in constant contact. There was no time to learn more about computers, even though I had a secretary that covered my many meetings and did some of the more basic work for me. ( I started my daily work in London at 7.45 and left at 8pm each day). Teachers mainly treat a computer as a tool that enables some of their work. They have little idea about the way they work, and few know about programming. There simply is not the time to acquire these skills, especially when you are expected to teach,and be inspected, in a minimum of ten subjects. Then of course you have to cope with very severe behaviour, emotional, social and mental health problems. This is all in an ordinary day's work for many teachers.
Now I use a computer extensively for research purposes, and of course for emailing . However, what goes on beneath a computer casing remains a complete mystery to me! I am probably the most 'unscientific' person you will ever meet - but a lover of the Arts, a dreamy writer with an almost overwhelming fondness for poetry and all its emotional aspects. I also love to read as much as I can, although that gets curtailed by my busy lifestyle. “
Yet, teachers are expected to produce the next generation of highly computer and technology literate students to drive the future economic growth into the rest of the 21st Century.
What the “politicians and dreamers” seem to assume is that all of this knowledge can be acquired almost effortlessly, which is far from the actual reality.
This kickstarted a project to develop a sound, yet gentle and accessible book that would give non-specialist teachers, parents and children confidence in approaching problem solving via programming, and that at the same time would inspire, de-mystify and stimulate. As Wendy has so well explained most people treat computers as tools. They expect them to be intuitively easy to use and to always behave as expected. However this makes most people passive consumers and users of this technology. They have to fit in with how the various applications they use expect them to interact with these applications. I have tried to pull in feedback and suggestions from friends and parents and grandparents (including some that call in at the bookshop to discuss the problems their children are having at school, or that they are having with software on their computers). I thought that I would follow on by pasting in various snippets concerning computing and also computing at school. In their raw, as opposed to polished form.
I suppose I had better introduce operating systems ... This is a typical sample of an introduction to operating systems ... https://www.gcflearnfree.org/computerbasics/understanding-operating-systems/1/ How could I improve on the approach presented here ... (in book form ...). I do get people coming in asking for help with various aspects of configuring Microsoft Windows applications, and some also struggle with their Macintosh laptops. I feel that I should also introduce cloud computing and virtualisation ... but how to do it well ... ?
Thanks for this Andrew. I think the link you provided is about the right level for many people to get started with. Clearly and simply explained, so I do not think you necessarily have to improve on this type of starting point for your book. Most people are visual learners, so simple illustrations as you progress from point to point are helpful. Humorous illustrations are the most helpful because they are the type that people retain in their memory. For your book you could perhaps have a character (cartoon type animals are often used) to guide people through the different stages. It would be good for your character to 'make mistakes' - and then show how you can retrieve yourself from what might seem like a devastating mistake to the learner. Colour coding can also be helpful where there is a complex illustration with many connected parts.
Anyway, just a few thoughts off the top of my head!
Warm unscientific wishes, Wendy
From Margaret, a retired systems analyst and programmer:
“Attitude is all.”
“Ideology is no substitute for results.”
“Nothing ever changes if nobody ever says or does anything about it. All that happens is that someone else who does gets their way.”
“The fact that you haven’t doesn’t prove you can’t: the fact that you have does prove you can.”
From Craig - a tinkerer and anesthetist who pops in from time to time to chat about "Arduino" and "RaspberryPi"'ish things.
I like the simplicity and the 'bare bones' with enough info to 'get by'. In a book format I also like there to be some segregated text allowing for extra information for those areas of interest.
.. Margaret took the view that I should start at the beginning .. i.e. what should happen when a computer is switched on ... Answer it executes the first instruction ... which, typically, tells it where to start running the following instructions ... So ... I looked into a copy, that happened to be lying around in the bookshop called Kids Get Coding ... Algorithms and Bugs ... It is along the lines you suggested ... and does use simple cartoons and diagrams ... It is not too long and can, I think be adapted and improved upon.
The hardest part, apart from getting started was to find a suitable programming environment. Scratch is quite widely used, but is being phased out as it depends on Adobe Flash for it to work and Adobe is ending support for Flash which will now become obsolete. The various environments for programming the BBC Microbit , Arduino and various robots graphically are based on Blockly which is very nice but more oriented to programming those devices. By dint of digging around I came across Snap which seems to be a natural successor to Scratch, is web based and is open source.
I've decided to base this book on Snap ... and I hope that Wendy, who instigated this project will "pluck up the confidence" to get "Hello World" running ... and then, having primed her "creative spirit" come up with all kinds of interesting suggestions, projects and ideas, ... as will you all - I hope.
Positive feedback from a student an ex bomb-disposal specialist who came on a specialised Python and GIS course
I like it! Nice and simple, with a hint of your massive breadth and depth of knowledge! t
Who's it for? Are you going to publish it?
the book ... first steps
The books begins with an overview of computers and a bit of history ... which includes mention of Alan Turing's "Teddy Bear", and Collosus .. and then starts off with a very simple program about an elephant called Beatrice who utters those immortal words "Hello World" .. and the pauses to think (Beatrice with a thought bubble "What shall I say next") and then says "My name is Beatrice". A day or so later ... interesting things are happening to Beatrice (you'll have to buy or support this book project to learn more ... ) and the following email
I've added to the "story of Beatrice" ... Especially for Wendy who I know has the makings of a fine programmer ... Did you manage to write the program that changed Beatrice into a duck ?any ideas of what we might do next ?
Story: One of the truly great Computer Scientists, a person called Edgar Dijkstra was once asked how he could tell if someone had the potential to be a good programmer. His answer was that he would have a conversation with them and listen to how they constructed sentences and answers and arguments. If they did it with imagination and flair, and what they said was good then that was all that he needed to know. So when looking for potential programmers look for writers and storytellers and debaters.
Wendy: Many thanks for all the emails. Due to time constraints I have only been able to have a very quick look through the programme you attached. It looks most attractive and something that my non-scientific brain could cope with! I note, with muted horror, that you appear to believe that I might one day become a programmer. Great expectations- so now I feel obliged to make a real effort! That was a very canny move on your part Mr E!
I shall try and read it through 'properly' tomorrow night and then report back in more detail.
So thank you for all the hard work and sensitive thought you have put into this. Just hoping I am not a lost cause and that I do not die from hypothermia before I have given it my best shot!
Andrew: You most certainly are not a lost cause ... At the risk of sounding a "bit old testament prophetish" ... I really do worry about the way that the high end technology is developing so rapidly and that it is difficult to see all the possible ramifications ... The most frightening threat is the "consolidation of knowledge" in the hands of a small elite ... or rather the use of "capital" to exploit that knowledge to consolidate the benefits enjoyed by let us call them the "upper middle classes". In connection with your skills and experience the area of programming that is of most pressing concern is that of "knowledge engineering". In connection with this I have been working away at something called the "semantic web" and Ontologies (in the knowledge capture and knowledge engineering sense) ... I do not think that you need to worry about the low level details of programming ... it is sufficient to understand the general principles ... These days much of the development work depends on being able to wield complex "software frameworks" and the tools associated with them. In the book, inspired by your observations, regarding developing understanding and programming skills for parents, teachers and those they care about I am beginning to touch upon some of these things ... e.g. in the simple algorithm regarding "brushing teeth" I try to suggest that writing a computer program " to get a robot to brush its teeth " will involve adding a lot of procedural things that an average two or three year old will take for granted. I'll try and fish out a paper that could published in a conference on robotics called "teaching through computing rather than teaching about computing" where I tried to explore some of these issues. However, in "the bowels of high tech capitalism" work to capture the knowledge and cognitive abilities of a two year old has been developing since the original work (the project was called CYC) . Much of this work is being developed (and monetised by both Google and IBM ... who are the lead players ... ) However, the Chinese, so I hear are investing vast amounts of both money and brainpower into AI research ... the cynic in me suspects not entirely in an altruistic manner.
Wendy: I was interested to read what you had to say about scientific development. My own scientific knowledge is very scant, but for some time I have been thinking along the lines you indicated. My fears about future developments would echo yours. The manipulation of knowledge by a small very wealthy elite, to provide a continuing benefit for those already enjoying a lifestyle similar to theirs, is deeply concerning. Of course this has been happening in some countries for many years, but the concern now must surely be for the rapidly escalating advances in technology which must be almost unpredictable.
Andrew: Progress continues ... Beatrice can now play a tune ... Enjoy .. I would love to hear about suggestions and ideas ... for related projects and examples, and to see some of the programs that you have managed to create. Remember you can save them as .xml files and send these to me together with any sound files and costume files that may have taken your fancy. (only if you feel that way inclined .. which I hope you might). You may have noticed that I am trying to "sneak in" some science as well. [Hopefully not too advanced]
Wendy: Thanks for this Andrew. I have just finished reading it all through. The computer 'language' is completely new to me, so there is quite a lot to absorb - even though I am aware that this is at a very basic level. No doubt what you would call kindergarten computing!
Hopefully I can bring up your instructions on my old MacBook Pro - while carrying them out on my more up to date iPad. As soon as I can get the time to try this out I shall let you know how it goes.
Yes, I did notice the sneaky invasion of 'bits of science' - but good -naturedly managed to keep my finger off the reject button! Science vs Arts - ίσως.
Andrew:Thanks for your forbearance ...
Andrew: Dear Wendy,
Your suggestion that led to this work has really stimulated my imagination ...
I am now about to embark on the next section which is Logo oriented ... i.e. drawing, art, geometry and such. So much to say ... but I must needs restrain my enthusiasm. Modern Logo is
actually a very powerful tool and has been used in the study of things such as the spread or not of epidemics and of social networking.
I'm just sending the next update to this work in progress .. because simply looking at those pictures of Seymour Papert has brought a big smile to my face. Interestingly in one of his books on "powerful ideas" Seymour devises and algorithm that can be used to "teach yourself to juggle".It just about worked for a clumsy dyspraxic like me so I'm pretty sure he knew what he was doing. Best wishes
Wendy: I forgot to say that I was really fascinated by the fact that the code instructions are strings of 1s and 0s. Spent time trying to work out the finite possibilities. Warning: I often get distracted by what, in the general scheme of things, could be labelled minutiae!
I like your enthusiasm - it is beginning to make me feel that science might be worth a second look after all!
Andrew: Thanks for the email ...
Talking of minutiae ... I wrote a book that covers some of these issues
Little Man Computer Programming: For The Perplexed From The Ground Up
Its a self-published book ... using CreateSpace and hence available on the Amazon web site. I wrote it because the subject it covers has, made its way into the UK Computer Science syllabus, and , as is the case with education there was not really much practical support for those that would be teaching that particular topic. It was part of a first year undergraduate computing course I taught for UMUC (University of Maryland University College). If you do get around to reading it your comments and critique would be most appreciated. I must say that when teaching this part of the course there were "rumblings and mumblings" from my students, though not nearly as severe as when I tried to teach low level aspects of doing floating point arithmetic in binary,
Wendy: As I continue to clear the house my mind keeps going back to the recent pages you emailed over. The idea of making a character 'do things' really appeals to the infantile side of my character - which constitutes about 90% of it! I am already creating things in my mind. This comes as a great surprise to me as I honestly did not believe that it would arrest my attention in such a way. You must have laced the pages with some type of mind-altering enticement drug! Seemingly there is hope, even for those who almost exclusively inhale the Arts!
Andrew: The drawing and doodling section is going to be quite a lengthy one ... There is so much to cover, and that's before I start getting on to the writing computer games part. For those of you who are "following along" ... then I hope you will have some time to try out some of the examples, or, if you have youngsters ... get them to have a go, or, at least show them what you've "gone and done". best wishes
I wondered if you had seen this?
Andrew: I had not seen it ... but it does not altogether surprise me ...
The setup and security needed is quite onerous (even more so for the A level)
and most schools are simply not geared up for this.
The Cambridge international examination board - for A Level Computer Science (I will
need to check the case for the GCSE) has taken the view that
- the students will be expected to work on set projects
- the exam will then ask questions related to those projects that they will only
really be able to answer if they have done the project work and understood it ...
In this model everybody knows what the projects are ... and what you are being
examined on is your understanding of the problem and how to go about solving it.
That's why at CarshaltonTutorialCollege I am going with the Cambridge International examination
board. I could probably provide the kind of security needed for the papers set by the
other boards ... but it is such a lot of effort ...
When I was teaching computer courses for UMUC (and I had to set the exams) they were all open book exams. I told my students ... its not a memory test, but if you have not made the effort to understand what you have been taught no amount of textbooks will help you ... in a 3 hr. exam there is simply not the time ... and multiple choice questions (thought harder to set) were not of the "factual recall" type.
Thanks for the information ... Our great Chancellor has allocated around 80 million pounds for school computing ... Divided by several hundred thousand students that barely buys a decent workstation or tablet per student ... The real costs are teacher salaries and teacher training ... Ah well ...
I'm about to start on adding the shapes and colour section and then what I am going to call a "twirly whirly" section where you get a chance to draw all sorts of interesting looking curves and spirals. Then ... I am thinking of a computer games section ... and here I need to be sympathetic as well as creative because writing computer games is one of the most difficult programming tasks I know. Best wishes.
Thanks Andrew. I had not realised that the security for the examination process in this subject would be quite so complex.
As you say, the allocation of 80 million for school computing is a mere drop in the ocean. Also, there is a big differential between provision in the independent and the state sector. I have taught in both and there are very few state schools that have equivalent resources to those provided in most independent schools. I used to work with Christ's Hospital to obtain places for my poorest, most gifted students. Then I went to the London livery companies to ask for help with any required funding for uniforms etc. I worked near the City of London, so the Livery Companies came to know me well! I knew the Head of CH at the time and he was always very indulgent about my requests for places, and the livery companies never refused to help my students. The resources that CH had were second to none, mainly funded by the very wealthy Drapers Company. I knew children would be given an opportunity there that sadly would not be available to them in the local comprehensives.
Back to Parent - child computing ...
These things take time ... and, as numbers would probably be small initially I was thinking of having the initial workshops in the small classrooms I have above the Internet Technical Bookshop ... where I have students on various courses when numbers are small ...
... a bit chaotic ... but lots of kit and toys and things to get going with ...
I had a long discussion with a wonderful dad before Christmas ... who suggested that for very young children it was more the construction and playing around that was important ... and so I have been putting my mind to more "experiential" and less "programming" themes for younger children ...
For older children I am a bit spoilt for choice ... but, essentially the options are
- graphical programming - usisng scratch or blockly or some such ...
- python programming
- arduino like programming (really a simplified subset of C++) ...
So ... here it is ... the most basic of basic introductions to computer programming is taking shape ..
I must admit that writing it is proving to be such fun. Maybe it is bringing out the child in me, a child
that likes to explore and experiment and try out ideas. In fact the work associated with Snap at Berkeley and
elsewhere in the US is evolving in many interesting directions ... but they are a bit technical so I'll
leave "Scribending" about them to another Scribend. If you are interested in getting involved whether parent,
teacher or child (if child to get permission first) then just send an email to me (andrew dot eliasz at gmail dot com).
If you are interested in the more technical BBC:Microbit programming books, the Block programming and Python programming volumes
are well advanced now. The C (actually more C++) volume is proving technically a bit demanding as the folks at Lancaster University have done such a good job in putting together the framework for programming the BBC Microbit that it looks as if this book
will end up also being a case study of a most interesting approach to implementing embedded systems for small
microcontrollers in C++. In addition it will explore some interesting tools such as Yotta, Ninja and CMake. This C++ framework
is a "real little gem" .. and if one is talking "Patterns" in the Object Oriented sense it is truly outstanding.
Oops ... I've gotten very technical ... what will Wendy say ...
Little does she know that "I'll make a C++ programmer out of her yet".