Tag Archives: computing

Jigsaw programming

Blockly program to compute a factorial

A program to compute the factorial of a number using Blockly

I’m sure many of my readers will know what I mean, but just in case, I am talking about the visual programming languages for programming computers which use blocks that plug together like a jigsaw to express algorithms. Examples include StarLogo, App Inventor, Scratch and Blockly.

These are widely used to introduce programming for the following reasons:

  1. such languages tap in to a pre-literate capacity to help learners make sense of things without depending on technical reading and writing literacies;
  2. learners appreciate the tactile and kinaesthetic sensibilities involved in producing a visually pleasing artefact, the program, regardless of what it does;
  3. such languages clarify the logic of the program through the display of visual, diagrammatic shapes that make it easy to determine the relationship and scope of program elements;
  4. it is impossible to make syntax errors such as incorrect spelling, conjunction or punctuation;
  5. they provide a visual menu of programming elements so that opportunities for expression are clear and the learner’s memory is not overtaxed.

All this I can understand and I am very much a fan, but I am unclear why there is considered to be a desirable progression from these languages to the traditional text-based languages?

In some cases features are missing from the visual programming languages. For example Scratch doesn’t do functions and local variables.

It may be thought that a complex program would be visually unwieldy, but I find that true of any reasonably sized textual program.

Then there is the historical/cultural/custom-and-practice concerns of experienced programmers – I can hear them saying “surely there is something important, expressive and pure about traditional programming languages?”.

I maintain an open mind about this and can even imagine jigsaw programming becoming the method of choice for serious programming in the workplace. If I am right, there are some interesting challenges:

  1. What are the criteria for judging the effectiveness / efficiency / legibility of a program made using jigsaw programming?
  2. What are the examples of programming problems that cannot be solved using jigsaw programming?
  3. How do we benefit from the version control and sharing that matter for collaborative development?
  4. How do they effectively encapsulate and hide libraries of service functions and procedures?
  5. Can we add styling control so that we can tailor the visual appearance to suit the person and the task, or simply provide an alternative view?
  6. How can they reveal and make editable the variables and data they manipulate? (Scratch does this well with lists).
  7. How can they animate the program’s diagram to illustrate its execution, single step, interrupt and thus help us debug?

Some of these challenges may already be tackled – I’d be pleased to hear about where to find developments!

Collabor8 4 Change – Conceptual framework for Computing

Following up my presentations in 2007 at Naace in Feltham  ‘The Importance of Computing as a Specialist Subject in Schools‘ and in 2010 at Computing@School in Birmingham ‘Computing at School‘, I am hosting a table at Collabor8 4 Change at BETT 2012 this year .

Titled ‘Conceptual framework for computing‘ it is planned to be a discussion of how we can be clearer about the nature of the computing subject at primary and secondary level and in particular how we can know better the continuity and progression for learners.

My challenge, in the context of computing and ICT  is:

  1. I believe we need to find out what knowledge children can attain at which age
  2. I suggest we could do mass practitioner research to answer that question
  3. What’s wrong with this proposition?

Here are the few slides to kick off the discussion – I shall add an update to this post when we have had it!

UPDATE 13/1/2012 after attending:

The two sessions went well, with interesting feedback. For most participants, there were more important issues at the level of teacher competence, school organisation and the government’s upheaval of ICT and Computing, which deserved more debate time. On the other hand few felt that I was wrong!

I enjoyed Kathryn Day’s session, ‘ ICT vs Computer Programming curriculum ‘ which usefully contrasted the many documents that inform (or confuse) the practitioner when planning.

I also attended Chris Ratcliffe’s session ‘ How much should pupils be, or feel, in charge of their work? ‘ which clarified some of the barriers to further responsibility being transferred to pupils, whilst agreeing it as a good thing.

Finally I joined Steve Philip for his session ‘Curating the past is more important than creating the future’ in which he proposed the term ‘curativity’ – the act of curating the avalanche of creative work made possible in schools with digital tools through selection, deletion, categorisation and preservation/presentation for an audience. Highly relevant to the National Archive of Educational Computing!

Well done to all the presenters & participants and to  the organisers: Penny Patterson, Dave Smith and Terry Freedman and to compère Russel Prue – the round tables format has a lot to recommend it, with more time for exchange in contrast to the more theatrical Teachmeet.

Computing at School

I presented at the third annual Computing at School conference, reporting Nili Naveh’s research in a seminar I proposed to discuss the research into childrens’ conceptions in computing. The central issue is the contrast in the attention paid to children’s conceptual development in maths and science compared to computing. In maths and science, research has established a Piagetian analysis based on data of what percentage of children can achieve which conceptual understanding at a range of ages, and this is the basis for the National Curriculum levels. Clearly this should not be used as a straitjacket – there is a diversity in attainment and children are often underestimated. Teachers have excellent tacit knowledge of this, but I argued it may be helpful to articulate this more clearly and to construct a data-gathering exercise from schools across the country. We had a good discussion, thanks to some really good presentations earlier in the day which gave good fuel for our debate. Here are my slides:  Algorithms + Data Structures = Programs.

The Importance of Computing as a Specialist Subject in Schools

Naace All-Members Autumn Conference 2007

Shared a platform with Gillian Lovegrove on this topic at the Naace All-Members Conference at Cisco in Feltham. I enjoyed the relatively easy task of listing some of the arguments for computing’s contribution to the wealth of human knowledge:

  1. computing > arithmetic – it is also the engine room of the social network / Web 2.0
  2. ubiquity of knowledge management – all disciplines’ approach to knowledge is infected with computing
  3. creativity and problem solving – it provides extraordinary potential for creative and problem solving activity by making the abstract concrete
  4. concept of the human mind – ideas of the mind have interchanged with concepts of the computer throughout history
  5. historical contribution – the interrelationship with war, economy, culture and democracy
  6. tool culture drives evolution (genetic and social) – tools have been symbiotic with humanity’s evolution since the stone age and the computer is the most sophisticated and diverse tool invented

After Gillian’s points about the problems facing the subject of computing, it was most challenging to hear one member of the audience ask the question: “Could it be our fault?”. It will be interesting to see how this discussion develops in the future.