‘Hidden’ at the bottom of the Variables category is the Make a block button, allowing you to create a command (does something), reporter (tells you something), or predicate(tests something)
New blocks added to the language have, for that project, exactly the same status as the built-in,original, blocks.We can use existing blocks, and new blocks, inside more new blocksWe can even use the block we’ve just started to define inside the block we’ve just started to define (recursion)Or we can define a block that adds to the way in which we program, e.g., in a simulation program we might want to do somethings with a certain probability (see next slide)
An example of functional thinking. Younger children don’t see why they should handle things in the same way, whether they are numbers, strings, or actions. For example, why can’t I just tell every item in a list to multiply itself by 2?
This functional programming was how BYOB came into being. Brian Harvey at University of Berkeley wanted to use the interface of Scratch to give non-computer science students an introduction to the higher level concepts of computer science. Jens Mönig adapted the open source Scratch to do this. So we have a programming system being used to teach students from primary (even nursery) up to university. I use it to demonstrate concepts such as recursion and functional programming to my A-level Computing students.
Creative Problem Solving Projects At Key Stage 3 Thomas Ng Miles Berry John Stout Roger Davies Peter Marshman Peter Dickman
Setting the scene students expect lessons to be fun management expects lessons to be engaging parents expect lessons to be demanding universities expect lessons to be motivating society expect lessons to be about problem solving
The Panel the building block of knowledge Miles Berry Scratch and BOYB John Stout Star Logo TNG Roger Davies Googe Apps Inventor Peter Marshman Google's view of problem solving Peter Dickman
Microworlds More is needed than an intuitive, seat of the pants experience. The student needs to … conceptualize and ‘capture’ this world.Papert, 1980 With scientific method, we took things apart to see how they work. Now with computers we can put things back together to see how they work, by modelling complex, interrelated processes, even life itself. This is a new age of discovery, and ICT is the gateway. Adams, 1999
Problem Solving The key skill of problem solving involves pupils developing the skills and strategies that will help them to solve the problems they face in learning and in life. Problem solving includes the skills of identifying and understanding a problem, planning ways to solve a problem, monitoring progress in tackling a problem and reviewing solutions to problems. All subjects provide pupils with opportunities to respond to the challenge of problems and to plan, test, modify and review the progress needed to achieve particular outcomes. DfES/QCA 1999
Case based instruction “Teaching begins not with a theoretical exegesis of domain concepts but with a real problem… rather than learning (and forgetting) all about a field before being allowed to solve a meaningful problem, case-based instruction is based on the belief that what you learn while trying to solve a complex problem you will better comprehend and retain much longer… The most important rationale for case-based instruction is that it at least simulates the kind of activity that students are preparing for.” Jonassen 2004, pp 52-53
Troubleshooting Troubleshooting is among the most commonly experienced kinds of problem solving in the professional world… the problems that are most completely and accurately recalled are those that are most difficult to solve, because the problems solver was more conceptually engaged in the process. Jonassen 2004, p13
Clicking this lets the student create this new block
Then drag and drop existing blocks into the new definition But generalising the idea of drawing a square[draw a square [ ] ] now adds to the language
something[ and somethingElse[ are blocks, or actions, that can be treated in just the same way as numbers, or strings Continuing in this way the language can be extended to fit the problem, e.g., in a project to model infection (see Roger’s presentation later), we could provide students with fallIll, recover, andbecomeImmuneblocks.
The map block (its definition can be seen and edited) simply applies the action specified (in this case [2 * ] to the list of numbers [1 19 13] to give the expected result
Finally a bit of fun with a serious side to it BYOB has a Mesh facility which allows two (or more) BYOB projects to share data using the [broadcast message] and [sensor value] blocks. We have implemented a networked PONG game, so that two students can play each other at PONG across the network. Details in the latest CAS newsletter
Roger Davies Queen Elizabeth School, Kirkby Lonsdale
App Inventor: Features Design canvas with a continually updated range of object controls; Object controls for custom procedure implementation and for dynamic interaction with Android features; Drag and drop block editor to program solution; Download direct to phone, package for phone or direct to an emulator.
App Inventor: Student Experience Converts everyday experience of Apps into an intrigue and appreciation of programming at a basic level; Development of algorithmic thinking through trial and error and planning of block construction; Engagement through the personalisation and ownership of developed Apps that can be further developed and exhibited away from the classroom.