• Ideas and Skills to Cover

  • General Notes

  • Introduction to Computing

  • Introduction to Sonic Pi

  • Commands, Parameters, Iterations

  • Conditionals and Randomisation

  • Data structures and Concurrency

  • Minecraft, Variables, Objects

  • Scratch, Events

  • More Scratch, Variables

  • Additional Scratch, Threads

  • History of Computing

  • History research

  • BBC Micro:Bit, Electronics

  • Internet

  • Notes on 2015-16 version

  • Lesson structure

  • Old lessons

  • Fragments

    • History of Computers
    • What is a computer?
    • Basic electronics - logic gates, sensors, maybe just a little bit on V=IR etc.
    • Binary & file formats
    • The Micro:Bit
    • Variables
    • Control structures
    • Objects
    • Vectors & co-ordinates
    • Functions
    • Events
    • Computers in Society & Employment
    • Security and Privacy
    • Databases
    • The internet
  • This block consisted of a total of 13 lessons, most of them around an hour and a half long (maybe more like 75 minutes, depending on how long choir went on for). On Thursdays I only had an hour, since I teach chemistry from 10:05, and on Wednesdays and Fridays I had to be out of the computer room by 10:05 so that another teacher could use it; that meant we had 25 minutes on those days to write in Main Lesson books.

    A note on the Main Lesson in Steiner education: each class starts its day with a Main Lesson, of between about an hour to two hours (longer for younger classes). These are generally structured to start with some kind of rhythmic activity (in the upper school, this means choir); then there’s some time given over to recall of the previous day’s teaching. Most of the rest of the lesson follows along similar lines to lessons in most schools, but then the last part of the lesson is spent on ‘book work’ - the pupils work on putting together a book for every Main Lesson block they’re taught, usually adding about a page a day. Often these are illustrated, though I found it a little tricky incorporating strong visuals into this unit.

  • What follows below are some notes I asked myself before beginning.

  • What’s the most logical flow of this thing, pedagogically?

  • How should they write up their Main Lesson notes? Would it be sensible to do it online, or is that impossible in pairs?

    If offline, need to allow time every lesson probably back in Class 9.

    If online, we have a problem with other classes wanting to use the computer room.

    What if they type up and print some pages?

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • I went for the slightly eccentric approach of starting with a textual programming language. There were a couple of reasons for this:

  • I’m personally more interested in graphics than sound, and suspect they teach more transferrable skills. So I’m looking at using Processing next time round.

  • [
    {
    “content”: “## Learning Objectives”
    },
    {
    “content”: “## Starter Questions”
    },
    {
    “content”: “## Notes”
    },
    {
    “content”: “## Activities”
    },
    {
    “content”: “## Book Work”
    },
    {
    “content”: “## Evaluation”
    }
    ]

  • Learning Objectives

  • Starter Questions

  • Notes

  • Activities

  • Book Work

  • Evaluation

  • Introducing Functions

  • Getting started with the Pi

  • Introducing variables

  • Wrap up lesson

  • Introduce Scratch

  • Objects

    An object is a kind of complex variable

  • about what you made with the Microbit, and any ideas you might have for other things you could try making in future.

  • Two lessons towards the end

  • First lesson

  • Barely touched on, in the end - ran out of time to play with electronics

  • Did a little bit on binary in section on history of computers, and a little on file formats in the final lesson (on the internet)

  • Covered in the penultimate lesson

  • Covered initially in lesson on Minecraft, in greater depth in Scratch

  • Covered over three lessons in Sonic Pi (conditionality; iteration; concurrency)

  • e.g. Sprites

  • How to place things on a screen.

    Co-ordinates covered in Minecraft lesson, largely taken for granted in Scratch.

  • and commands

  • Covered in Sonic Pi and Scratch. Not encountered yet in the context of methods of objects.

  • Interactivity covered in Scratch lesson 2

  • Discussed in first lesson

  • Barely touched on.

  • Nothing.

  • Subject of final lesson.

    • What a computer is, fundamentally
  • Establish background knowledge and experience

    • Start with all the parts of the Raspberry Pi on a table: keyboard, mouse, speaker, memory card, power supply, monitor, monitor cable, and the Raspberry Pi itself. Ask the class to name and describe each component as you connect it to the Raspberry Pi in front of the class. Finally, plug in the power and watch it boot up.
    • Plugging in and turning on the Raspberry Pi.
  • Not yet.

  • Pretty good discussions. Maybe a bit too much input from me. Everyone in the class engaged, though, and interesting observations from many participants.

    Left quite a bit of time for introducing the Pi.

    • What a computer program is
    • How to write a simple program
    • What are the essential components of a computer?
    • Can you name some examples of
      1. Input
      2. Output
      3. Storage
    • What is this thing?
      [It’s a Raspberri Pi, a small computer]
  • Every computer includes some form of storage, and a processor capable of acting on the information stored there. For a computer to communicate with the outside world, it also needs some kind of input and output.

    • Introduce the Raspberry Pi. Demonstrate Sonic Pi running; explain that this week we’re going to be learning how to program to create music and other sounds.
    • Ask everyone in the class to plug in their Raspberry Pis and boot them up. They should all be booted and sitting on the login prompt waiting for authentication.
    • Split the class into groups again and give each group a deck of the computer program cards. Ask each group to take out the statement cards and the control card from the deck. Then ask each group to form a line and to give each member of the group a statement card after shuffling them. The person at the start of the line should be given the control card. Explain that the person holding the control card should carry out the instructions on the statement card, and then pass the control card to the next person in the line like a relay baton. When the control card has reached the end of the line, they should stop. This should be repeated for a number of random orderings, after which the groups could be invited to create their own orderings. A helpful analogy might be cooking, where collections of statements are recipes and the control flow is which stage of the recipe you’re at.
    • Start the Sonic Pi software. First, invite the students to log into their Raspberry Pi and start the graphical environment. It might help to display instructions on how to achieve this on a projector for all to see.
    • Explain to them that they can use the same statements on the cards in the computer program: play and sleep. Invite them to spend the next 20 minutes or so writing their own programs and listening to the results.
  • See Notes: A summary of the nature of a computer, with an annotated diagram of a computer of their choice.

  • Partial success. Activity with cards did not go over; maybe they were embarrassed? Maybe it was unclear? Maybe I should have made them actually stand in a line?

    Also felt like I hadn’t really explained enough about what they were looking at for them to spend the time available to play with code. Some pupils were altogether baffled; some made great progress; several got somewhere, but slowly.

    • Understand and use iteration
    • Understand and use parameters
  • Commands

    A computer program consists of a series of commands for the computer to follow, one after the other. They often take parameters, for example with the play method in Sonic Pi you need to specify which note you want it to play, like `play :c’.

    Iterators

    An iterator is a special kind of command that tells the computer to run a block of commands repeatedly.

  • Plug in RPis. Load Sonic Pi. Check that they are working by entering the command

    play :c to play middle C (the weirdly placed colon tells Ruby the ‘c’ is a symbol). Note that play 60 should produce the same note, as should :c4 (:c5 would be one octave higher).

    To change the sound of the note, use the synth command.

    You can also play samples using sample :bd_haus and so on.

    Use sleep to pause between notes.

    Put together a bassline or riff using this knowledge.

  • Now, try looping this riff using 5.times do ... end

  • Overview of what programming languages do

  • Definitely a better lesson. Everyone engaged, probably learning. Half hour of book work at the end, since we had to vacate the computer room for another class.

    • Learn how to use an if statement
    • Use random numbers
    • Use comments in code
  • How do you write a loop?
    What’s a parameter?

  • Starter: can we listen to what people made last lesson?

  • Pupils should be should be shown how to add some randomisation to their code. This can be achieved by using the statement rand(10), which returns a random value between 0 and 10 (from 0 up to but not including the number you specify). You can specify other numbers for larger ranges; for instance, rand(20) will return values from 0 to 20. Let’s use this in our program by adding our random number to a note with the + operator:

    3.times do
    play 60 + rand(10)
    sleep 0.5
    end

    Invite the pupils to observe the actual number of the note played in the output window.

  • Pupils should then be shown how to write an if statement in the Sonic Pi application. Ask them to copy the following code on their machines:

    if rand < 0.5
    play 60
    sleep 0.5
    play 62
    else
    play 72
    sleep 0.25
    play 71
    sleep 0.25
    play 70
    end

  • After they’ve had a chance to experiment, see who’s willing to share their work.

  • Finally, teach the class that the hash symbol # is used to make a comment. Invite them to place comments in their code to explain what is happening. This is not just for other programmers who might read their code; it is also for themselves in the future, when they look back at old code they may have written a long time ago and have forgotten what it does. For example:

  • None this lesson - leaving at 10:05, and it makes sense to lump today’s and yesterdays lessons together in their books, so they can do that tomorrow.

    • Know that numbers can be aggregated into data structures such as lists
    • Understand that algorithms are a series of steps or instructions for solving a problem such as sorting and shuffling a list of numbers
    • Understand that a simple program has one flow of control; in other words, it has one thread of execution. Programs can, however, have multiple such threads.
    • Be able to program multiple threads that work at the same time (concurrently).
    • We’ve looked at two ways of controlling the flow of a program so far. What are they?
    • How do you implement a loop in Sonic Pi?
    • What did you do in yesterday’s lesson?
  • Introduce a third way of controlling the flow of a program: doing two things at once (concurrency). Obviously this is very important in music. Try this:
    in_thread do
    10.times do
    play 60
    sleep 0.25
    end
    end

    play 60
    sleep 0.5
    play 62
    sleep 0.5
    play 64
    sleep 0.5
    play 65
    sleep 0.5
    play 67
    sleep 0.5
    play 69
    sleep 0.25
    play 72

  • So far, almost all of the data you’ve been using has consisted of individual numbers. However, it’s often useful to store several numbers in one data structure. For example, we used this in play_chord yesterday. What other kinds of data might consist of a list of numbers?

  • Play several notes in a row like this:
    play_pattern [40, 25, 45, 25, 25, 50, 50]

    Try some sequences of your own.

  • Once they’ve had a short play with this, invite them to form a line and hand out cards (in no particular order), so each pupil in the line holds just one card. Explain that they have formed a list of numbers and that there are useful things that you can do with this. One example is sorting the numbers numerically, so that the smallest numbers are first and the largest last. Introduce the word ‘algorithm’ as a method for solving such problems.

  • Next, explain that we will explore a simple sorting algorithm: bubble sort. Start at the left hand side of the line and ask the first two pupils to compare their numbers. If they are in the right order do nothing, otherwise ask the pupils to swap. Then continue to the second and third pupils, and compare and swap again if necessary. Continue down the line. If at least one pair has swapped, start at the beginning of the line and repeat. If no pairs have swapped, the list is sorted.

  • Explain that most programming languages provide many such algorithms to make programming easier, and to reduce the amount of work you have to do as a programmer. Ask the pupils to type the following code:

    `play_pattern [40, 25, 45, 25, 25, 50, 50].sort

    play_pattern [40, 25, 45, 25, 25, 50, 50].shuffle`

    Pupils are invited to play around with the constructs of this lesson, in addition to everything they’ve learned so far, to design a simple musical program.

  • Flow of Control

    The simplest computer programs are like recipes where a series of instructions are completed one after the other, but it’s useful to be able to include instructions for which instruction to run next.

    Conditionality

    if will run a block of code only if some condition is met; this can be followed by else.

    Iteration

    Different kinds of loop will keep running a block of code - either a set number of times (a ‘for loop’), or as long as some condition is met (a ‘while loop’), or just until something happens to stop it (an infinite loop).

    Concurrency

    Sometimes we want to run more than one bit of code at a time, which means using threads that run concurrently.

    [Illustrate these with flowcharts]

  • Pretty solid lesson. With coaxing, got them to execute the bubble sort algorithm. Quite a lot of experimentation; most at least tried one or two things with threads.

    • Introduction to working in 3D
    • Introduction to Python
    • How to use variables
    • How to call methods of objects (and roughly what a method is)
    • What do you call a series of steps taken to solve a problem?
    • What algorithm did we implement using people on Friday, to sort a series of numbers?
  • Start Minecraft. Familiarise yourself with it, if you’re not already. Work through the worksheet!

  • With Minecraft running, and the world created, bring your focus away from the game by pressing the Tab key, which will free your mouse. Open Python 3 from the application menu and move the windows so they’re side-by-side.

    You can either type commands directly into the Python window or create a file so you can save your code and run it again another time.

    If you want create a file, go to File > New window and File > Save. You’ll probably want to save this in your home folder or a new project folder.

    Start by importing the Minecraft library, creating a connection to the game and testing it by posting the message “Hello world” to the screen:

    from mcpi.minecraft import Minecraft

    mc = Minecraft.create()

    mc.postToChat("Hello world")

    If you’re entering commands directly into the Python window, just hit Enter after each line. If it’s a file, save with Ctrl + S and run with F5. When your code runs, you should see your message on screen in the game.

  • Find your location

    To find your location, type:

    pos = mc.player.getPos()

    pos now contains your location; access each part of the set of coordinates with pos.x, pos.y and pos.z.

    Alternatively, a nice way to get the coordinates into separate variables is to use Python’s unpacking technique:

    x, y, z = mc.player.getPos()

    Now x, y, and z contain each part of your position coordinates. x and z are the walking directions (forward/back and left/right) and y is up/down.

    Note that getPos() returns the location of the player at the time, and if you move position you have to call the function again or use the stored location.
    Teleport

    As well as finding out your current location you can specify a particular location to teleport to.

    x, y, z = mc.player.getPos()
    mc.player.setPos(x, y+100, z)

    This will transport your player to 100 spaces in the air. This will mean you’ll teleport to the middle of the sky and fall straight back down to where you started.

    Try teleporting to somewhere else!
    Set block

    You can place a single block at a given set of coordinates with mc.setBlock():

    x, y, z = mc.player.getPos()
    mc.setBlock(x+1, y, z, 1)

    Now a stone block should appear beside where you’re standing. If it’s not immediately in front of you it may be beside or behind you. Return to the Minecraft window and use the mouse to spin around on the spot until you see a grey block directly in front of you.

  • Algorithms

    An algorithm is a series of steps for solving a problem, or achieving some other goal. They often form part of a computer program, but we also use algorithms when performing mental arithmetic and so on.

    Alorithms are named after the great Persian mathematician, astronomer and geographer, al-Khwārizmī.

    https://en.wikipedia.org/wiki/File:1983_CPA_5426_%281%29.png

  • Pretty weak lesson. The big disadvantage of Minecraft is that it invites kids to just muck around building/destroying stuff in a way that it’s not obvious they’re learning anything at all.

    Format of resource from Raspberry Pi Foundation was a problem: didn’t want to print 8 sets of 13 pages, so distributed files on USB sticks, which was a faff already (especially since I only had 3 sticks handy) - then the HTML worksheet file bizarrely opened in Geany by default, rather than in the browser.

    Out of 7 groups, we had:

    • 1 group (visitors) whose Pi didn’t work for ages, and they never really got going with the work once it finally did;
    • 1 group (Emma’s) who pretty much refused to attempt anything from the worksheet;
    • 1 group (Keelin’s) who eventually did try some of the stuff, and got it to work, but didn’t go far with it;
    • 1 group (Adam’s) who really tried, but stumbled because they made slight transcription errors copying the code from the worksheet to their Python window - but eventually got stuff working
    • 1 group (Alastair’s) who did the first couple of things, got it working I think, then generally messed around with Minecraft;
    • 1 group (Yusuf’s) who actually worked through something close to the entire worksheet.
    • How to use Scratch
    • Event-driven programs, for interactivity
    • Make a sprite
    • Set the stage
    • Make a drum (interactive)
    • Make a singer
    • Change costumes
  • This was a fun lesson. The Code Club resource worked well; the only people who didn’t work through at least most of it were those who were already working at a somewhat higher level than the rest of the class.

    So the next step is to build on their understanding of the Scratch environment to familiarise themselves with more of its possibilities…

    • How to use variables in a game context
    • How to make sense of, and modify, an existing programme
    • The basic loop-based model of simulation & game programming
    • What’s similar about the Scratch and Sonic Pi interfaces? What’s different?
  • Here I’m using my own resources exclusively.

  • Adapt Space Chase using a variable to change the speed and control it using the keyboard. Add another one to keep track of collisions and things.

    Customise in any other way you feel like.

  • Share your work.

  • Variables

    A variable is a symbol referring to a value which might vary. For example, the velocity of an object is often assigned to a variable v.

    In maths, a variable is usually a letter representing a quantity. In programming, the idea is broader: it can be any name representing anything the computer can store (which could be a number, text, an object, etc.)

    A constant is like a variable, only it doesn’t vary.

  • Decent lesson. Angelina didn’t engage much. Everyone else did a good portion of the work, at least. Keelin, Paul and Kira got distracted mucking about with the Scratch web site’s social networking features.

    • Understand the role of events in interaction and inter-thread communication
    • Be able to use ‘broadcast’ events to handle things which affect more than one sprite
    • Start to use clones in a program
    • Programs often need to respond to events, either from user interactions or something inside the computer. What events did the Space Chase game yesterday make use of?
  • Events

    An event triggers a program to take action. For example, the user might click a button to make something happen.

    Events can also be triggered by a program, for example when one thread needs to send a message to another. This is useful when something affects more than one sprite in a game at a time (like Game Over, or Next Level).

  • Modify Space Chase so that a collision results in an Event being broadcast, positions reset and 1 life being lost.

  • Use a new sprite with create clone of to make it possible to fire at the pursuing spaceship.

  • Detect what your spaceship reaches the edge and loop it around?

  • This is a Thursday, so I’m teaching chemistry and leaving them to get on with it.

    • Be aware of the history of computing, including the exponential growth in processor speed
    • Have some insight into the implications of that growth for the future of technology in society
    • The first known calculating machine, the abacus, was invented in Babylonia around 5000 years ago
    • The Antikythera Mechanism, thought to be the world’s first human-made computer, was recovered in a shipwreck around 1900. It was already at least 2000 years old, originating in ancient Greece (Corinth). It took more than 100 more years before anyone figured out exactly what it was: an analogue computer capable of calculating the positions of heavenly bodies and the timing of the Olympic Games, and predicting solar eclipses.
    • Several engineers in the 1600s produced mechanical calculating machines of increasing sophistication.
    • In 1801, the Jacquard loom was created. Cards with holes punched in them provided the instructions the machines needed to weave complex patterns with little human input; each card would produce a different pattern.
    • About ten years later, as automation in the textile industry led to many workers losing their skilled and reasonably well-paid jobs, while their bosses got tremendously rich, the Luddites started destroying machines. Although ‘Luddite’ is used now as a term of abuse for people who object to the rise of technology, the original Luddites were really fighting for meaningful work in decent conditions. Its not clear that the two are necessarily incompatible.
    • In 1837, the mathematical Charles Babbage laid out plans for his Analytical Engine, which would have been the first true computer if it had ever been built. Ada Lovelace, daughter of the poet Lord Byron, is credited as the first ever computer programmer; her notes on the Analytical Engine included an algorithm for calculating Bernoulli Numbers, speculations on the future of human-computer relations, and the use of computer programs outside of maths.
    • In 1936, Alan Turing gave a thorough theoretical description of the general-purpose computer, or Turing Machine. He showed that with enough storage, one of these machines would be able to solve any mathematical problem expressible as an algorithm. Six years later, his work led to the creation of the first programmable electronic computer, and the cracking of Nazi Germany’s Enigma code.
    • In the 50s transistors started to replace vacuum tubes in computers, with integrated circuits coming into play in 1960. In 1965, Gordon Moore observed that the density of transistors in each integrated circuit had been doubling every year, and predicted this would continue for a few years to come; in 1975 he saw it slowing down to a doubling every two years, and that rate of exponential growth has more or less continued ever since. With each transistor also getting faster, the overall speed of a computer has been doubling approximately every 18 months - increasing by a factor of 100 every decade.
    • In 1980, the first home computers started coming on to the market. The internet was also born around this time, although it wasn’t until the mid-1990s that it became a mass-cultural phenomenon (I first got on the internet in 1994, I think).
    • 1998: Google formed. 2001: Wikipedia. 2005: YouTube.
  • Can anyone identify all of these things?

    (a ZX81, a BBC Micro, a computer tape, two kinds of floppy discs and a CD-ROM)

  • Behold, the ZX81 and the BBC Micro!

  • This seemed to work pretty well; they listened with apparent interest and occasional laughter to me talking about the history of the internet, and only a little less interest in the history of the computer leading up to that time (I ended up starting in about 1981 and then looping back round, since I had artifacts dating from that time which made quite a nice starter activity).

    It probably would have been better to split the history of computing over two lessons, in retrospect.

    • How to use a word processor (for those not already familiar), print and save to a network drive
    • Learn more about a particular aspect of the history of computing
    • Can anyone name any notable events from the history of computing before the birth of the internet?
  • Depending on what they name:

    • What was the Antikythera mechanism, found in an ancient Greek shipwreck, capable of computing?
    • Who rose up against the impoverishment brought on by automation in the early 19th century?
    • Who invented the first true computer, and who programmed it?
    • Whose work on the foundations of computing led to the cracking of the Enigma code in World War II?
    • Can anyone explain Moore’s Law?
  • Online research: working in pairs for about half an hour, pick an episode from the history of computing, research it on the internet (make sure to look at more than one source). Write about 200 words on it (use your own words) and include a picture you found on the internet (or a space for a picture). Credit the picture, cite your sources.

    Print out the results of your research for your Main Lesson book.

  • Timeline of the history of computing.

  • A worthwhile exercise. Almost everyone in the class had a good idea about what they wanted to research, the exception being Celia & Fiona who were working together.

    Most of the class were obviously comfortable using Word, but three or four of them struggled. Hopefully this was an opportunity for them to gain a little confidence.

    I’d originally planned on introducing the Microbit in the same lesson as the internet history research, but we had a shorter time than usual in the computing room, and both the research and the Q&A session at the start were a little more time-consuming than I foresaw.

    • Basic familiarity with the Micro:Bit and how to program it
    • How to control or get input from external outputs and sensors? May not have time.
  • What did you learn yesterday? Report back in pairs or similar.

  • The Microbit is 1/70th the size of the original BBC Micro, and 16 times the speed.

    Another fun fact: When Star Trek (TNG) was filmed in 1989, Data was described as being able to perform 60 trillion operations per second (teraflops). At the time, that was 60,000x faster than any computer that had been invented. 26 years on, our most powerful computers are 500x as fast as Data.

  • Finish and print research from yesterday.

  • Pick a tutorial from the Microbit site, and work through it.

  • Write about things you’ve made.

  • Not a bad lesson. Spent a little while with the class sharing their research from the previous lesson. Some kids had fun with the Microbits. Not sure any of them were especially inspired.

    Left them to do their own book work, on things they’d made in (or their general impression of) Scratch and/or Sonic Pi. Results were variable - a few seemed to have no idea what to put, but others evidently had plenty to say. I look forward to seeing this page in their books, more than the others.

    • Familiarity with blogging software (WordPress)
    • The structure and interpretation of basic HTML
    • The role of CSS
    • The function of JS
  • Did anyone make anything interesting with the Microbit? Does anyone have any ideas for fun things to make with a Microbit or a Raspberry Pi?

  • Last lesson. Will need to spend some time on rounding up.

  • There are three main languages of the web: HTML, CSS and JavaScript.

    HTML is the HyperText Markup Language. Without HTML, there is no web. ‘Hypertext’ here means that it is based on text with links to other bits of text. ‘Markup language’ means that it includes something besides text to give instructions about the text, in this case tags enclosed by <angle brackets>

  • Make an account on http://springtale.co.uk/school and write a blog post about the technology or idea described on the card I have given you (15 minutes).

  • Read submissions from the rest of the class. You may like to add respectful comments. Then add links to your post going to other posts on the site made by members of your class. (20 minutes)

  • Look at the blog post you made. Switch to Text viewing using the tab at the top right of the post editing window. That, there, is HTML. Switch back to the Visual mode, change some formatting, and then go back to HTML to see what’s different.

  • Now go to a web site of your choice and choose Inspect Element from the right-click menu to see how a web page is put together. You might like to change some of the text.

  • If there’s plenty of time, have a stab at a couple of things on http://jsdares.com

  • Write up about the internet.

    • The resources for Sonic Pi looked pretty good. Which they are, I have to say.
    • Having introduced a class to Scratch the year before, I know that it’s very easy for kids to get sucked into just messing around with that indefinitely.
  • But:

    • It’s obviously easier to get started with a graphical language
    • Sonic Pi requires headphones all round, which is difficult for collaboration
    • It might be better to start with more about computers and the internet, to help motivate later work
  • Starter:

    Introduction to functions.

  • Experiment with different mathematical functions and see what you find.

    Record your results.

  • Look at http://bit.do/pfunction and try to make sense of what you see.

  • Main:

  • How to set up your Pi! Get it all plugged in, then log in. Introduce the command line - ls, cd, maybe mkdir, then startx.

  • Issue a Pi per pair and ask them to repeat what they just saw.

  • Once they’ve booted in, name the bits of the screen that they’re familiar with. What do they notice is different from Windows?

  • Load up Scratch, and load the Steerable Rocket example again. Let’s go through some of the different bits - draw an analogy between commands on the command line, and commands (or functions) in Scratch. Draw attention to the things from the Event block, and go through how to add more controls to this ‘game’.

  • Note the various other kinds of Event - collisions, interactions of different sorts…

  • Now that we’ve introduced the idea of a Speed variable, let’s introduce Acceleration. This could control how fast the rocket can change velocity; we could also introduce gravity.

  • Homework:

    Each pupil needs to research a term and explain them to the rest of the class next week, without notes:

    • Ethernet cable
    • Bluetooth
    • HTML - Maricell
    • CSS - Sam
    • USB - Elliott
    • Android - Lucy
    • Wireless - Anna
  • Starter:

  • Main activity:

  • Plenary

  • What did you discover?

  • This week’s homework (?)

  • Scratch is a visual programming language. It’s structured in blocks, which you can fit together a bit like Lego blocks.

  • Here’s a program that makes the Scratch cat draw a square. Play about with the numbers - see if you can make a bigger square, a triangle, a pentagon.

  • How many of you live in a place with a computer?

  • How many of you have your own dedicated computer?

  • How many of you have a smartphone?

  • What is a computer?

  • Have any of you ever done any programming?

  • Conditionals (if/else) and iteration (for/while)

  • HTML

  • HTML tag

  • CSS

  • JavaScript

  • WWW

  • URL

  • Jpeg

  • GIF

  • Content Management System

  • ftp

  • Functions (in maths) are things that take one number and turn it into another.

    Draw a box on the whiteboard, with numbers going in and numbers coming out. Hands up if you think you know what the box is doing. Ask person with hands up to predict the next number.

    Try another one.

    Ask if anyone has ideas for another one. Get them to write it on the board and get people to guess.

    • Last week we made the Scratch Cat draw squares and triangles. What if we want it to be able to draw a shape with any number of sides we choose?

    • Have you come across the idea of variables in maths?

    • So a variable is a name given to a quantity, or thing, that can vary. It could represent the speed of an object, for example, or the amount of liquid in a container.

    • Here’s a program where you get to control a rocket-pen. How could you change the speed of the rocket using a variable? How could you allow the user to control that variable? Work in pairs or threes, and think if there’s anything else you might want to change. In twenty minutes we’ll all look at what the other pairs have made.

    • Mini-plenary:

      Sharing work.

    • Introducing the Raspberry Pi:

      This tiny computer is called a Raspberry Pi. We have one for each person in the class, and we’re going to start playing with them for real next week.

    • This thing is just slightly smaller than the 16k RAM pack we used to hold in the back of my ZX81 with Blu-tack to keep it from wobbling too much. It has 32,000 times as much RAM, and this tiny micro-SD card that goes in it has 16 times as much again, so altogether it has eight and a half million times as much memory as the original ZX81. It runs faster than any computer that existed anywhere in the world before about 1992, when I was your age.

      It’s pretty slow by modern computing standards, but it’s powerful.

    • It’s also versatile - half of the fun of this thing is that you can plug all kinds of things into it - if I attach an LED to these two pins, you can see it light up. We could use it to build robots or light shows, take pictures from a high-altitude balloon, all kinds of things.

    • I also like the Raspberry Pi because you can see what makes up a computer right there - a power supply, a main processor (with the RAM right there), and various connectors to the outside world - 4 USB sockets, one for a monitor, a socket to output sound, one to connect it to a network, a slot for a camera, and so on.

    • Plenary:

    • What did you learn? Discuss in pairs.

    • Homework:

      Make an account on the Scratch web site, and upload a project that involves at least one variable, and something moving around. Upload it to the class studio on the Scratch site

      • I wonder if I gave insufficient guidance on this last year?

          • First we need to define a variable for the number of sides.

            Then it needs to turn that fraction of an angle between each line.

            Is there anything else we might want to change?

          {"cards":[{"_id":"643370b6c8ad606075000168","treeId":"53fdedbf500b17af1e405934","seq":6293160,"position":6.5,"parentId":null,"content":"## Ideas and Skills to Cover"},{"_id":"64337235c8ad60607500016a","treeId":"53fdedbf500b17af1e405934","seq":6291869,"position":1,"parentId":"643370b6c8ad606075000168","content":"* History of Computers"},{"_id":"657c5674b2f4961d72000190","treeId":"53fdedbf500b17af1e405934","seq":6558469,"position":1,"parentId":"64337235c8ad60607500016a","content":"Two lessons towards the end"},{"_id":"64337499c8ad60607500016b","treeId":"53fdedbf500b17af1e405934","seq":6291934,"position":2,"parentId":"643370b6c8ad606075000168","content":"* What *is* a computer?"},{"_id":"657c56d4b2f4961d72000191","treeId":"53fdedbf500b17af1e405934","seq":6558470,"position":1,"parentId":"64337499c8ad60607500016b","content":"First lesson"},{"_id":"64337561c8ad60607500016c","treeId":"53fdedbf500b17af1e405934","seq":6292389,"position":3,"parentId":"643370b6c8ad606075000168","content":"* Basic electronics - logic gates, sensors, maybe just a little bit on V=IR etc."},{"_id":"657c5796b2f4961d72000192","treeId":"53fdedbf500b17af1e405934","seq":6558476,"position":1,"parentId":"64337561c8ad60607500016c","content":"Barely touched on, in the end - ran out of time to play with electronics"},{"_id":"6442b2ecd5fb815d2c000620","treeId":"53fdedbf500b17af1e405934","seq":6300784,"position":3.5,"parentId":"643370b6c8ad606075000168","content":"* Binary & file formats"},{"_id":"657c6fc1b2f4961d7200019c","treeId":"53fdedbf500b17af1e405934","seq":6558548,"position":1,"parentId":"6442b2ecd5fb815d2c000620","content":"Did a little bit on binary in section on history of computers, and a little on file formats in the final lesson (on the internet)"},{"_id":"6442e394d5fb815d2c000622","treeId":"53fdedbf500b17af1e405934","seq":6320026,"position":3.75,"parentId":"643370b6c8ad606075000168","content":"* The Micro:Bit"},{"_id":"657c6ceeb2f4961d72000197","treeId":"53fdedbf500b17af1e405934","seq":6558538,"position":1,"parentId":"6442e394d5fb815d2c000622","content":"Covered in the penultimate lesson"},{"_id":"6433788dc8ad60607500016d","treeId":"53fdedbf500b17af1e405934","seq":6292510,"position":4,"parentId":"643370b6c8ad606075000168","content":"* Variables"},{"_id":"65211e86758ec426af00046f","treeId":"53fdedbf500b17af1e405934","seq":6479518,"position":1,"parentId":"6433788dc8ad60607500016d","content":"Covered initially in lesson on Minecraft, in greater depth in Scratch"},{"_id":"64337910c8ad60607500016e","treeId":"53fdedbf500b17af1e405934","seq":6292512,"position":5,"parentId":"643370b6c8ad606075000168","content":"* Control structures"},{"_id":"65211f2f758ec426af000470","treeId":"53fdedbf500b17af1e405934","seq":6479521,"position":1,"parentId":"64337910c8ad60607500016e","content":"Covered over three lessons in Sonic Pi (conditionality; iteration; concurrency)"},{"_id":"6442612dd5fb815d2c00039b","treeId":"53fdedbf500b17af1e405934","seq":6320027,"position":5.5,"parentId":"643370b6c8ad606075000168","content":"* Objects"},{"_id":"64426158d5fb815d2c00039c","treeId":"53fdedbf500b17af1e405934","seq":6300590,"position":1,"parentId":"6442612dd5fb815d2c00039b","content":"e.g. Sprites"},{"_id":"6433799ac8ad60607500016f","treeId":"53fdedbf500b17af1e405934","seq":6300593,"position":6,"parentId":"643370b6c8ad606075000168","content":"* Vectors & co-ordinates"},{"_id":"644262d9d5fb815d2c0003a0","treeId":"53fdedbf500b17af1e405934","seq":6479523,"position":1,"parentId":"6433799ac8ad60607500016f","content":"How to place things on a screen.\n\nCo-ordinates covered in Minecraft lesson, largely taken for granted in Scratch. "},{"_id":"643379e7c8ad606075000170","treeId":"53fdedbf500b17af1e405934","seq":6292515,"position":7,"parentId":"643370b6c8ad606075000168","content":"* Functions"},{"_id":"644261bfd5fb815d2c00039d","treeId":"53fdedbf500b17af1e405934","seq":6300591,"position":1,"parentId":"643379e7c8ad606075000170","content":"and commands"},{"_id":"65212212758ec426af000471","treeId":"53fdedbf500b17af1e405934","seq":6479525,"position":2,"parentId":"643379e7c8ad606075000170","content":"Covered in Sonic Pi and Scratch. Not encountered yet in the context of methods of objects."},{"_id":"64337a7ac8ad606075000171","treeId":"53fdedbf500b17af1e405934","seq":6292517,"position":8,"parentId":"643370b6c8ad606075000168","content":"* Events"},{"_id":"65212363758ec426af000472","treeId":"53fdedbf500b17af1e405934","seq":6479746,"position":1,"parentId":"64337a7ac8ad606075000171","content":"Interactivity covered in Scratch lesson 2"},{"_id":"64337b64c8ad606075000172","treeId":"53fdedbf500b17af1e405934","seq":6320019,"position":9,"parentId":"643370b6c8ad606075000168","content":"* Computers in Society & Employment"},{"_id":"652124ef758ec426af000473","treeId":"53fdedbf500b17af1e405934","seq":6479748,"position":1,"parentId":"64337b64c8ad606075000172","content":"Discussed in first lesson"},{"_id":"645acb5846feed8df80000a0","treeId":"53fdedbf500b17af1e405934","seq":6320020,"position":9.25,"parentId":"643370b6c8ad606075000168","content":"* Security and Privacy"},{"_id":"657c6df1b2f4961d72000198","treeId":"53fdedbf500b17af1e405934","seq":6558539,"position":1,"parentId":"645acb5846feed8df80000a0","content":"Barely touched on."},{"_id":"644260c2d5fb815d2c000399","treeId":"53fdedbf500b17af1e405934","seq":6300586,"position":9.5,"parentId":"643370b6c8ad606075000168","content":"* Databases"},{"_id":"657c6e68b2f4961d72000199","treeId":"53fdedbf500b17af1e405934","seq":6558540,"position":1,"parentId":"644260c2d5fb815d2c000399","content":"Nothing."},{"_id":"6433c68bd5fb815d2c000393","treeId":"53fdedbf500b17af1e405934","seq":6293172,"position":10,"parentId":"643370b6c8ad606075000168","content":"* The internet"},{"_id":"657c6f0fb2f4961d7200019b","treeId":"53fdedbf500b17af1e405934","seq":6558546,"position":4,"parentId":"6433c68bd5fb815d2c000393","content":"Subject of final lesson."},{"_id":"6433c330d5fb815d2c000390","treeId":"53fdedbf500b17af1e405934","seq":6293161,"position":6.75,"parentId":null,"content":"## General Notes"},{"_id":"6433c38fd5fb815d2c000391","treeId":"53fdedbf500b17af1e405934","seq":6558601,"position":1,"parentId":"6433c330d5fb815d2c000390","content":"This block consisted of a total of 13 lessons, most of them around an hour and a half long (maybe more like 75 minutes, depending on how long choir went on for). On Thursdays I only had an hour, since I teach chemistry from 10:05, and on Wednesdays and Fridays I had to be out of the computer room by 10:05 so that another teacher could use it; that meant we had 25 minutes on those days to write in Main Lesson books.\n\nA note on the Main Lesson in Steiner education: each class starts its day with a Main Lesson, of between about an hour to two hours (longer for younger classes). These are generally structured to start with some kind of rhythmic activity (in the upper school, this means choir); then there's some time given over to recall of the previous day's teaching. Most of the rest of the lesson follows along similar lines to lessons in most schools, but then the last part of the lesson is spent on 'book work' - the pupils work on putting together a book for every Main Lesson block they're taught, usually adding about a page a day. Often these are illustrated, though I found it a little tricky incorporating strong visuals into this unit."},{"_id":"657c85bdb2f4961d7200019d","treeId":"53fdedbf500b17af1e405934","seq":6558611,"position":1.5,"parentId":"6433c330d5fb815d2c000390","content":"What follows below are some notes I asked myself before beginning."},{"_id":"6433c5c5d5fb815d2c000392","treeId":"53fdedbf500b17af1e405934","seq":6293171,"position":2,"parentId":"6433c330d5fb815d2c000390","content":"What's the most logical flow of this thing, pedagogically?"},{"_id":"6433c824d5fb815d2c000398","treeId":"53fdedbf500b17af1e405934","seq":6293189,"position":3,"parentId":"6433c330d5fb815d2c000390","content":"How should they write up their Main Lesson notes? Would it be sensible to do it online, or is that impossible in pairs?\n\nIf offline, need to allow time every lesson probably back in Class 9.\n\nIf online, we have a problem with other classes wanting to use the computer room.\n\nWhat if they type up *and print* some pages?"},{"_id":"53fdedbf500b17af1e405964","treeId":"53fdedbf500b17af1e405934","seq":6384225,"position":7,"parentId":null,"content":"# Introduction to Computing"},{"_id":"56d374776b1f1cee1a5ac7f7","treeId":"53fdedbf500b17af1e405934","seq":6300679,"position":1.5,"parentId":"53fdedbf500b17af1e405964","content":"## Learning Objectives"},{"_id":"645ac8c846feed8df800009f","treeId":"53fdedbf500b17af1e405934","seq":6330626,"position":1,"parentId":"56d374776b1f1cee1a5ac7f7","content":"* What a computer is, fundamentally"},{"_id":"56d374776b1f1cee1a5ac7f8","treeId":"53fdedbf500b17af1e405934","seq":6300676,"position":2.5,"parentId":"53fdedbf500b17af1e405964","content":"## Starter Questions"},{"_id":"4821992964e11c2aa0000037","treeId":"53fdedbf500b17af1e405934","seq":6300683,"position":1,"parentId":"56d374776b1f1cee1a5ac7f8","content":"Establish background knowledge and experience"},{"_id":"48219a6964e11c2aa0000038","treeId":"53fdedbf500b17af1e405934","seq":549748,"position":1,"parentId":"4821992964e11c2aa0000037","content":"How many of you live in a place with a computer?"},{"_id":"48219d0464e11c2aa000003a","treeId":"53fdedbf500b17af1e405934","seq":6293022,"position":1.5,"parentId":"4821992964e11c2aa0000037","content":"How many of you have *your own* dedicated computer?"},{"_id":"48219d5d64e11c2aa000003b","treeId":"53fdedbf500b17af1e405934","seq":549751,"position":1.75,"parentId":"4821992964e11c2aa0000037","content":"How many of you have a smartphone?"},{"_id":"48219b8364e11c2aa0000039","treeId":"53fdedbf500b17af1e405934","seq":549759,"position":2,"parentId":"4821992964e11c2aa0000037","content":"What *is* a computer?"},{"_id":"48219fc664e11c2aa000003e","treeId":"53fdedbf500b17af1e405934","seq":549762,"position":3,"parentId":"4821992964e11c2aa0000037","content":"Have any of you ever done any programming?"},{"_id":"56d374776b1f1cee1a5ac7f9","treeId":"53fdedbf500b17af1e405934","seq":6300673,"position":3.5,"parentId":"53fdedbf500b17af1e405964","content":"## Notes"},{"_id":"649b454262c411328300017b","treeId":"53fdedbf500b17af1e405934","seq":6369310,"position":1,"parentId":"56d374776b1f1cee1a5ac7f9","content":"Drawing heavily on https://www.raspberrypi.org/learning/sonic-pi-lessons/lesson-1/plan/"},{"_id":"56dde2d6a6aeb1c51b3c8d30","treeId":"53fdedbf500b17af1e405934","seq":6384389,"position":4.25,"parentId":"53fdedbf500b17af1e405964","content":"## Activities"},{"_id":"64aaf8bd667623a9ef00014f","treeId":"53fdedbf500b17af1e405934","seq":6384397,"position":1,"parentId":"56dde2d6a6aeb1c51b3c8d30","content":"* Discussing questions from http://community.computingatschool.org.uk/resources/2047"},{"_id":"64ab09ec667623a9ef000153","treeId":"53fdedbf500b17af1e405934","seq":6384423,"position":1.5,"parentId":"56dde2d6a6aeb1c51b3c8d30","content":"* Start with all the parts of the Raspberry Pi on a table: keyboard, mouse, speaker, memory card, power supply, monitor, monitor cable, and the Raspberry Pi itself. Ask the class to name and describe each component as you connect it to the Raspberry Pi in front of the class. Finally, plug in the power and watch it boot up."},{"_id":"64ab03e0667623a9ef000152","treeId":"53fdedbf500b17af1e405934","seq":6384409,"position":2,"parentId":"56dde2d6a6aeb1c51b3c8d30","content":"* Plugging in and turning on the Raspberry Pi. "},{"_id":"56d374776b1f1cee1a5ac7fb","treeId":"53fdedbf500b17af1e405934","seq":6300669,"position":5,"parentId":"53fdedbf500b17af1e405964","content":"## Book Work"},{"_id":"64428e22d5fb815d2c00061f","treeId":"53fdedbf500b17af1e405934","seq":6300688,"position":1,"parentId":"56d374776b1f1cee1a5ac7fb","content":"Not yet."},{"_id":"56d374776b1f1cee1a5ac7fc","treeId":"53fdedbf500b17af1e405934","seq":6300670,"position":6,"parentId":"53fdedbf500b17af1e405964","content":"## Evaluation"},{"_id":"64ab0377667623a9ef000151","treeId":"53fdedbf500b17af1e405934","seq":6384416,"position":1,"parentId":"56d374776b1f1cee1a5ac7fc","content":"Pretty good discussions. Maybe a bit too much input from me. Everyone in the class engaged, though, and interesting observations from many participants.\n\nLeft quite a bit of time for introducing the Pi."},{"_id":"64aadbc9667623a9ef0000a9","treeId":"53fdedbf500b17af1e405934","seq":6384224,"position":7.25,"parentId":null,"content":"# Introduction to Sonic Pi"},{"_id":"56dde2d6a6aeb1c51b3c8d2d","treeId":"53fdedbf500b17af1e405934","seq":6384226,"position":1,"parentId":"64aadbc9667623a9ef0000a9","content":"## Learning Objectives"},{"_id":"64aae467667623a9ef000148","treeId":"53fdedbf500b17af1e405934","seq":6384316,"position":0.5,"parentId":"56dde2d6a6aeb1c51b3c8d2d","content":"* What a computer program is"},{"_id":"649b3c4962c4113283000178","treeId":"53fdedbf500b17af1e405934","seq":6384259,"position":1,"parentId":"56dde2d6a6aeb1c51b3c8d2d","content":"* How to write a simple program"},{"_id":"56dde2d6a6aeb1c51b3c8d2e","treeId":"53fdedbf500b17af1e405934","seq":6384227,"position":2,"parentId":"64aadbc9667623a9ef0000a9","content":"## Starter Questions"},{"_id":"64aae6dc667623a9ef00014a","treeId":"53fdedbf500b17af1e405934","seq":6384329,"position":1,"parentId":"56dde2d6a6aeb1c51b3c8d2e","content":"* What are the essential components of a computer?"},{"_id":"64aae950667623a9ef00014c","treeId":"53fdedbf500b17af1e405934","seq":6384351,"position":1.5,"parentId":"56dde2d6a6aeb1c51b3c8d2e","content":"* Can you name some examples of\n 1. Input\n 2. Output\n 3. Storage"},{"_id":"64aae7f1667623a9ef00014b","treeId":"53fdedbf500b17af1e405934","seq":6384336,"position":2,"parentId":"56dde2d6a6aeb1c51b3c8d2e","content":"* What is this thing? \n[It's a Raspberri Pi, a small computer]"},{"_id":"56dde2d6a6aeb1c51b3c8d2f","treeId":"53fdedbf500b17af1e405934","seq":6384228,"position":3,"parentId":"64aadbc9667623a9ef0000a9","content":"## Notes"},{"_id":"64aaed6f667623a9ef00014d","treeId":"53fdedbf500b17af1e405934","seq":6384379,"position":1,"parentId":"56dde2d6a6aeb1c51b3c8d2f","content":"Every computer includes some form of storage, and a processor capable of acting on the information stored there. For a computer to communicate with the outside world, it also needs some kind of input and output."},{"_id":"56d374776b1f1cee1a5ac7fa","treeId":"53fdedbf500b17af1e405934","seq":6384380,"position":3.5,"parentId":"64aadbc9667623a9ef0000a9","content":"## Activities"},{"_id":"649b441f62c411328300017a","treeId":"53fdedbf500b17af1e405934","seq":6369324,"position":1,"parentId":"56d374776b1f1cee1a5ac7fa","content":"* Introduce the Raspberry Pi. Demonstrate Sonic Pi running; explain that this week we're going to be learning how to program to create music and other sounds."},{"_id":"649b482e62c411328300017d","treeId":"53fdedbf500b17af1e405934","seq":6384419,"position":2,"parentId":"56d374776b1f1cee1a5ac7fa","content":"* Ask everyone in the class to plug in their Raspberry Pis and boot them up. They should all be booted and sitting on the login prompt waiting for authentication.\n"},{"_id":"649b4aee62c411328300017f","treeId":"53fdedbf500b17af1e405934","seq":6369334,"position":3,"parentId":"56d374776b1f1cee1a5ac7fa","content":"* Split the class into groups again and give each group a deck of the [computer program cards](https://www.raspberrypi.org/learning/sonic-pi-lessons/lesson-1/files/Lesson-1-computer-program-cards.pdf). Ask each group to take out the statement cards and the control card from the deck. Then ask each group to form a line and to give each member of the group a statement card after shuffling them. The person at the start of the line should be given the control card. Explain that the person holding the control card should carry out the instructions on the statement card, and then pass the control card to the next person in the line like a relay baton. When the control card has reached the end of the line, they should stop. This should be repeated for a number of random orderings, after which the groups could be invited to create their own orderings. A helpful analogy might be cooking, where collections of statements are recipes and the control flow is which stage of the recipe you're at."},{"_id":"649b553262c4113283000180","treeId":"53fdedbf500b17af1e405934","seq":6369458,"position":4,"parentId":"56d374776b1f1cee1a5ac7fa","content":"* Start the Sonic Pi software. First, invite the students to log into their Raspberry Pi and start the graphical environment. It might help to display instructions on how to achieve this on a projector for all to see."},{"_id":"649b5a1c62c4113283000181","treeId":"53fdedbf500b17af1e405934","seq":6387126,"position":5,"parentId":"56d374776b1f1cee1a5ac7fa","content":"* Explain to them that they can use the same statements on the cards in the computer program: play and sleep. Invite them to spend the next 20 minutes or so writing their own programs and listening to the results."},{"_id":"56dde2d6a6aeb1c51b3c8d31","treeId":"53fdedbf500b17af1e405934","seq":6384230,"position":5,"parentId":"64aadbc9667623a9ef0000a9","content":"## Book Work"},{"_id":"64aaf66b667623a9ef00014e","treeId":"53fdedbf500b17af1e405934","seq":6384386,"position":1,"parentId":"56dde2d6a6aeb1c51b3c8d31","content":"See Notes: A summary of the nature of a computer, with an annotated diagram of a computer of their choice."},{"_id":"56dde2d6a6aeb1c51b3c8d32","treeId":"53fdedbf500b17af1e405934","seq":6384231,"position":6,"parentId":"64aadbc9667623a9ef0000a9","content":"## Evaluation"},{"_id":"64b919393cdaf0d53a0000ba","treeId":"53fdedbf500b17af1e405934","seq":6400476,"position":1,"parentId":"56dde2d6a6aeb1c51b3c8d32","content":"Partial success. Activity with cards did not go over; maybe they were embarrassed? Maybe it was unclear? Maybe I should have made them actually stand in a line?\n\nAlso felt like I hadn't really explained enough about what they were looking at for them to spend the time available to play with code. Some pupils were altogether baffled; some made great progress; several got somewhere, but slowly."},{"_id":"64b9230b3cdaf0d53a0000bc","treeId":"53fdedbf500b17af1e405934","seq":6424681,"position":7.375,"parentId":null,"content":"# Commands, Parameters, Iterations"},{"_id":"56df5543a6aeb1c51b3d4950","treeId":"53fdedbf500b17af1e405934","seq":6400611,"position":1,"parentId":"64b9230b3cdaf0d53a0000bc","content":"## Learning Objectives"},{"_id":"64b954c43cdaf0d53a00016c","treeId":"53fdedbf500b17af1e405934","seq":6400628,"position":1,"parentId":"56df5543a6aeb1c51b3d4950","content":"* Understand and use iteration"},{"_id":"64b9555b3cdaf0d53a00016d","treeId":"53fdedbf500b17af1e405934","seq":6400629,"position":2,"parentId":"56df5543a6aeb1c51b3d4950","content":"* Understand and use parameters"},{"_id":"56df5543a6aeb1c51b3d4951","treeId":"53fdedbf500b17af1e405934","seq":6400612,"position":2,"parentId":"64b9230b3cdaf0d53a0000bc","content":"## Starter Questions"},{"_id":"56df5543a6aeb1c51b3d4952","treeId":"53fdedbf500b17af1e405934","seq":6400613,"position":3,"parentId":"64b9230b3cdaf0d53a0000bc","content":"## Notes"},{"_id":"64b957ae3cdaf0d53a000170","treeId":"53fdedbf500b17af1e405934","seq":6400698,"position":1,"parentId":"56df5543a6aeb1c51b3d4952","content":"### Commands\n\nA computer program consists of a series of *commands* for the computer to follow, one after the other. They often take *parameters*, for example with the `play` method in Sonic Pi you need to specify which note you want it to play, like `play :c'.\n\n### Iterators\n\nAn *iterator* is a special kind of command that tells the computer to run a block of commands repeatedly."},{"_id":"56df5543a6aeb1c51b3d4953","treeId":"53fdedbf500b17af1e405934","seq":6400614,"position":4,"parentId":"64b9230b3cdaf0d53a0000bc","content":"## Activities"},{"_id":"64b956d43cdaf0d53a00016f","treeId":"53fdedbf500b17af1e405934","seq":6400773,"position":1,"parentId":"56df5543a6aeb1c51b3d4953","content":"Plug in RPis. Load Sonic Pi. Check that they are working by entering the command\n\n`play :c` to play middle C (the weirdly placed colon tells Ruby the 'c' is a symbol). Note that `play 60` should produce the same note, as should `:c4` (`:c5` would be one octave higher).\n\nTo change the sound of the note, use the `synth` command.\n\nYou can also play samples using `sample :bd_haus` and so on.\n\nUse `sleep` to pause between notes.\n\nPut together a bassline or riff using this knowledge."},{"_id":"64b9a24a3cdaf0d53a000172","treeId":"53fdedbf500b17af1e405934","seq":6400778,"position":2,"parentId":"56df5543a6aeb1c51b3d4953","content":"Now, try looping this riff using `5.times do ... end`"},{"_id":"56df5543a6aeb1c51b3d4954","treeId":"53fdedbf500b17af1e405934","seq":6400615,"position":5,"parentId":"64b9230b3cdaf0d53a0000bc","content":"## Book Work"},{"_id":"64b9cb2f3cdaf0d53a000174","treeId":"53fdedbf500b17af1e405934","seq":6400811,"position":1,"parentId":"56df5543a6aeb1c51b3d4954","content":"Overview of what programming languages do"},{"_id":"56df5543a6aeb1c51b3d4955","treeId":"53fdedbf500b17af1e405934","seq":6400616,"position":6,"parentId":"64b9230b3cdaf0d53a0000bc","content":"## Evaluation"},{"_id":"64c5f82d3cdaf0d53a000175","treeId":"53fdedbf500b17af1e405934","seq":6415297,"position":1,"parentId":"56df5543a6aeb1c51b3d4955","content":"Definitely a better lesson. Everyone engaged, probably learning. Half hour of book work at the end, since we had to vacate the computer room for another class."},{"_id":"64c602d33cdaf0d53a000177","treeId":"53fdedbf500b17af1e405934","seq":6424664,"position":7.6875,"parentId":null,"content":"# Conditionals and Randomisation"},{"_id":"56e09f4da6aeb1c51b3df11c","treeId":"53fdedbf500b17af1e405934","seq":6415431,"position":1,"parentId":"64c602d33cdaf0d53a000177","content":"## Learning Objectives"},{"_id":"64c655ac3cdaf0d53a000237","treeId":"53fdedbf500b17af1e405934","seq":6415563,"position":1,"parentId":"56e09f4da6aeb1c51b3df11c","content":"* Learn how to use an `if` statement"},{"_id":"64c656ad3cdaf0d53a000238","treeId":"53fdedbf500b17af1e405934","seq":6415565,"position":2,"parentId":"56e09f4da6aeb1c51b3df11c","content":"* Use random numbers"},{"_id":"64c6571f3cdaf0d53a000239","treeId":"53fdedbf500b17af1e405934","seq":6415566,"position":3,"parentId":"56e09f4da6aeb1c51b3df11c","content":"* Use comments in code"},{"_id":"56e09f4da6aeb1c51b3df11d","treeId":"53fdedbf500b17af1e405934","seq":6415432,"position":2,"parentId":"64c602d33cdaf0d53a000177","content":"## Starter Questions"},{"_id":"64c69bb13cdaf0d53a00023e","treeId":"53fdedbf500b17af1e405934","seq":6415776,"position":1,"parentId":"56e09f4da6aeb1c51b3df11d","content":"How do you write a loop?\nWhat's a parameter?"},{"_id":"56e09f4da6aeb1c51b3df11f","treeId":"53fdedbf500b17af1e405934","seq":6415434,"position":4,"parentId":"64c602d33cdaf0d53a000177","content":"## Activities"},{"_id":"64c69aa63cdaf0d53a00023d","treeId":"53fdedbf500b17af1e405934","seq":6415768,"position":0.5,"parentId":"56e09f4da6aeb1c51b3df11f","content":"Starter: can we listen to what people made last lesson?"},{"_id":"64c693b93cdaf0d53a00023b","treeId":"53fdedbf500b17af1e405934","seq":6415760,"position":1,"parentId":"56e09f4da6aeb1c51b3df11f","content":"Pupils should be should be shown how to add some randomisation to their code. This can be achieved by using the statement rand(10), which returns a random value between 0 and 10 (from 0 up to but not including the number you specify). You can specify other numbers for larger ranges; for instance, rand(20) will return values from 0 to 20. Let’s use this in our program by adding our random number to a note with the + operator:\n\n3.times do\n play 60 + rand(10)\n sleep 0.5\nend\n\nInvite the pupils to observe the actual number of the note played in the output window.\n"},{"_id":"64c698223cdaf0d53a00023c","treeId":"53fdedbf500b17af1e405934","seq":6415796,"position":2,"parentId":"56e09f4da6aeb1c51b3df11f","content":"\n\nPupils should then be shown how to write an if statement in the Sonic Pi application. Ask them to copy the following code on their machines:\n\nif rand < 0.5\n play 60\n sleep 0.5\n play 62\nelse\n play 72\n sleep 0.25\n play 71\n sleep 0.25\n play 70\nend\n\n"},{"_id":"64c6ad3f3cdaf0d53a000241","treeId":"53fdedbf500b17af1e405934","seq":6415819,"position":2.5,"parentId":"56e09f4da6aeb1c51b3df11f","content":"After they've had a chance to experiment, see who's willing to share their work."},{"_id":"64c6ac4d3cdaf0d53a000240","treeId":"53fdedbf500b17af1e405934","seq":6415812,"position":3,"parentId":"56e09f4da6aeb1c51b3df11f","content":"Finally, teach the class that the hash symbol # is used to make a comment. Invite them to place comments in their code to explain what is happening. This is not just for other programmers who might read their code; it is also for themselves in the future, when they look back at old code they may have written a long time ago and have forgotten what it does. For example:"},{"_id":"56e09f4da6aeb1c51b3df120","treeId":"53fdedbf500b17af1e405934","seq":6415435,"position":5,"parentId":"64c602d33cdaf0d53a000177","content":"## Book Work"},{"_id":"64d2faa43cdaf0d53a000313","treeId":"53fdedbf500b17af1e405934","seq":6424691,"position":1,"parentId":"56e09f4da6aeb1c51b3df120","content":"None this lesson - leaving at 10:05, and it makes sense to lump today's and yesterdays lessons together in their books, so they can do that tomorrow."},{"_id":"56e09f4da6aeb1c51b3df121","treeId":"53fdedbf500b17af1e405934","seq":6415436,"position":6,"parentId":"64c602d33cdaf0d53a000177","content":"## Evaluation"},{"_id":"64d2ecb73cdaf0d53a000243","treeId":"53fdedbf500b17af1e405934","seq":6424680,"position":8.09375,"parentId":null,"content":"# Data structures and Concurrency"},{"_id":"56e1e5cba6aeb1c51b3e872b","treeId":"53fdedbf500b17af1e405934","seq":6424682,"position":1,"parentId":"64d2ecb73cdaf0d53a000243","content":"## Learning Objectives"},{"_id":"64d305813cdaf0d53a000314","treeId":"53fdedbf500b17af1e405934","seq":6424700,"position":1,"parentId":"56e1e5cba6aeb1c51b3e872b","content":"* Know that numbers can be aggregated into data structures such as lists"},{"_id":"56e1e718a6aeb1c51b3e878e","treeId":"53fdedbf500b17af1e405934","seq":6424704,"position":2,"parentId":"56e1e5cba6aeb1c51b3e872b","content":"* Understand that algorithms are a series of steps or instructions for solving a problem such as sorting and shuffling a list of numbers"},{"_id":"64d3219f3cdaf0d53a0003ea","treeId":"53fdedbf500b17af1e405934","seq":6424754,"position":3,"parentId":"56e1e5cba6aeb1c51b3e872b","content":"* Understand that a simple program has one flow of control; in other words, it has one thread of execution. Programs can, however, have multiple such threads."},{"_id":"64d321db3cdaf0d53a0003eb","treeId":"53fdedbf500b17af1e405934","seq":6424755,"position":4,"parentId":"56e1e5cba6aeb1c51b3e872b","content":"* Be able to program multiple threads that work at the same time (concurrently)."},{"_id":"56e1e5cba6aeb1c51b3e872c","treeId":"53fdedbf500b17af1e405934","seq":6424683,"position":2,"parentId":"64d2ecb73cdaf0d53a000243","content":"## Starter Questions"},{"_id":"64d313533cdaf0d53a0003e8","treeId":"53fdedbf500b17af1e405934","seq":6424735,"position":1,"parentId":"56e1e5cba6aeb1c51b3e872c","content":"* We've looked at two ways of controlling the flow of a program so far. What are they?"},{"_id":"64d3153b3cdaf0d53a0003e9","treeId":"53fdedbf500b17af1e405934","seq":6424737,"position":1,"parentId":"64d313533cdaf0d53a0003e8","content":"Conditionals (if/else) and iteration (for/while)"},{"_id":"64d323253cdaf0d53a0003ec","treeId":"53fdedbf500b17af1e405934","seq":6424759,"position":2,"parentId":"56e1e5cba6aeb1c51b3e872c","content":"* How do you implement a loop in Sonic Pi?"},{"_id":"64d324a33cdaf0d53a0003ee","treeId":"53fdedbf500b17af1e405934","seq":6424766,"position":4,"parentId":"56e1e5cba6aeb1c51b3e872c","content":"* What did you do in yesterday's lesson?"},{"_id":"56e1e5cba6aeb1c51b3e872d","treeId":"53fdedbf500b17af1e405934","seq":6424684,"position":3,"parentId":"64d2ecb73cdaf0d53a000243","content":"## Notes"},{"_id":"56e1e5cba6aeb1c51b3e872e","treeId":"53fdedbf500b17af1e405934","seq":6424685,"position":4,"parentId":"64d2ecb73cdaf0d53a000243","content":"## Activities"},{"_id":"64d377c23cdaf0d53a0004d6","treeId":"53fdedbf500b17af1e405934","seq":6425062,"position":1.25,"parentId":"56e1e5cba6aeb1c51b3e872e","content":"Introduce a third way of controlling the flow of a program: doing two things at once (concurrency). Obviously this is very important in music. Try this: \nin_thread do\n 10.times do\n play 60\n sleep 0.25\n end\nend\n\nplay 60\nsleep 0.5\nplay 62\nsleep 0.5\nplay 64\nsleep 0.5\nplay 65\nsleep 0.5\nplay 67\nsleep 0.5\nplay 69\nsleep 0.25\nplay 72"},{"_id":"64d30fd73cdaf0d53a0003e7","treeId":"53fdedbf500b17af1e405934","seq":6425016,"position":1.5,"parentId":"56e1e5cba6aeb1c51b3e872e","content":"So far, almost all of the data you've been using has consisted of individual numbers. However, it's often useful to store several numbers in one data structure. For example, we used this in `play_chord` yesterday. What other kinds of data might consist of a list of numbers?"},{"_id":"64d33a4d3cdaf0d53a0003ef","treeId":"53fdedbf500b17af1e405934","seq":6424879,"position":2,"parentId":"56e1e5cba6aeb1c51b3e872e","content":"Play several notes in a row like this: \n`play_pattern [40, 25, 45, 25, 25, 50, 50]`\n\nTry some sequences of your own."},{"_id":"64d34bcd3cdaf0d53a0003f1","treeId":"53fdedbf500b17af1e405934","seq":6424896,"position":3,"parentId":"56e1e5cba6aeb1c51b3e872e","content":"Once they’ve had a short play with this, invite them to form a line and hand out cards (in no particular order), so each pupil in the line holds just one card. Explain that they have formed a list of numbers and that there are useful things that you can do with this. One example is sorting the numbers numerically, so that the smallest numbers are first and the largest last. Introduce the word 'algorithm' as a method for solving such problems."},{"_id":"64d356cd3cdaf0d53a0003f2","treeId":"53fdedbf500b17af1e405934","seq":6424909,"position":4,"parentId":"56e1e5cba6aeb1c51b3e872e","content":"Next, explain that we will explore a simple sorting algorithm: bubble sort. Start at the left hand side of the line and ask the first two pupils to compare their numbers. If they are in the right order do nothing, otherwise ask the pupils to swap. Then continue to the second and third pupils, and compare and swap again if necessary. Continue down the line. If at least one pair has swapped, start at the beginning of the line and repeat. If no pairs have swapped, the list is sorted."},{"_id":"64d370753cdaf0d53a0004d4","treeId":"53fdedbf500b17af1e405934","seq":6425003,"position":5,"parentId":"56e1e5cba6aeb1c51b3e872e","content":"\n\nExplain that most programming languages provide many such algorithms to make programming easier, and to reduce the amount of work you have to do as a programmer. Ask the pupils to type the following code:\n\n`play_pattern [40, 25, 45, 25, 25, 50, 50].sort\n\nplay_pattern [40, 25, 45, 25, 25, 50, 50].shuffle`\n\nPupils are invited to play around with the constructs of this lesson, in addition to everything they’ve learned so far, to design a simple musical program."},{"_id":"56e1e5cba6aeb1c51b3e872f","treeId":"53fdedbf500b17af1e405934","seq":6424686,"position":5,"parentId":"64d2ecb73cdaf0d53a000243","content":"## Book Work"},{"_id":"64c665313cdaf0d53a00023a","treeId":"53fdedbf500b17af1e405934","seq":6424746,"position":1,"parentId":"56e1e5cba6aeb1c51b3e872f","content":"## Flow of Control\n\nThe simplest computer programs are like recipes where a series of instructions are completed one after the other, but it's useful to be able to include instructions for *which instruction to run next*.\n\n### Conditionality\n\n`if` will run a block of code only if some condition is met; this can be followed by `else`.\n\n### Iteration\n\nDifferent kinds of `loop` will *keep* running a block of code - either a set number of times (a '`for` loop'), or as long as some condition is met (a '`while` loop'), or just until something happens to stop it (an infinite loop).\n\n### Concurrency\n\nSometimes we want to run more than one bit of code at a time, which means using `thread`s that run concurrently.\n\n[Illustrate these with flowcharts]"},{"_id":"56e1e5cba6aeb1c51b3e8730","treeId":"53fdedbf500b17af1e405934","seq":6424687,"position":6,"parentId":"64d2ecb73cdaf0d53a000243","content":"## Evaluation"},{"_id":"64fa23433cfaabb5960000f7","treeId":"53fdedbf500b17af1e405934","seq":6450504,"position":1,"parentId":"56e1e5cba6aeb1c51b3e8730","content":"Pretty solid lesson. With coaxing, got them to execute the bubble sort algorithm. Quite a lot of experimentation; most at least tried one or two things with threads."},{"_id":"64fa21723cfaabb5960000f6","treeId":"53fdedbf500b17af1e405934","seq":6450500,"position":8.296875,"parentId":null,"content":"# Minecraft, Variables, Objects"},{"_id":"56e5d099d57ade3476f91d63","treeId":"53fdedbf500b17af1e405934","seq":6450509,"position":1,"parentId":"64fa21723cfaabb5960000f6","content":"## Learning Objectives"},{"_id":"64fa26953cfaabb5960001e4","treeId":"53fdedbf500b17af1e405934","seq":6450517,"position":1,"parentId":"56e5d099d57ade3476f91d63","content":"* Introduction to working in 3D"},{"_id":"64fa3fe43cfaabb5960001ea","treeId":"53fdedbf500b17af1e405934","seq":6450537,"position":1.5,"parentId":"56e5d099d57ade3476f91d63","content":"* Introduction to Python"},{"_id":"64fa29e23cfaabb5960001e5","treeId":"53fdedbf500b17af1e405934","seq":6450519,"position":2,"parentId":"56e5d099d57ade3476f91d63","content":"* How to use variables"},{"_id":"64fa2a5e3cfaabb5960001e6","treeId":"53fdedbf500b17af1e405934","seq":6450521,"position":3,"parentId":"56e5d099d57ade3476f91d63","content":"* How to call methods of objects (and roughly what a method is)"},{"_id":"56e5d099d57ade3476f91d64","treeId":"53fdedbf500b17af1e405934","seq":6450510,"position":2,"parentId":"64fa21723cfaabb5960000f6","content":"## Starter Questions"},{"_id":"64fa2bb43cfaabb5960001e7","treeId":"53fdedbf500b17af1e405934","seq":6450524,"position":1,"parentId":"56e5d099d57ade3476f91d64","content":"* What do you call a series of steps taken to solve a problem?"},{"_id":"64fa2e443cfaabb5960001e8","treeId":"53fdedbf500b17af1e405934","seq":6450528,"position":2,"parentId":"56e5d099d57ade3476f91d64","content":"* What algorithm did we implement using people on Friday, to sort a series of numbers? "},{"_id":"56e5d099d57ade3476f91d65","treeId":"53fdedbf500b17af1e405934","seq":6450511,"position":3,"parentId":"64fa21723cfaabb5960000f6","content":"## Notes"},{"_id":"64fa35573cfaabb5960001e9","treeId":"53fdedbf500b17af1e405934","seq":6450530,"position":1,"parentId":"56e5d099d57ade3476f91d65","content":"This lesson draws heavily on https://www.raspberrypi.org/learning/getting-started-with-minecraft-pi/worksheet/"},{"_id":"64fab9e13cfaabb5960001ed","treeId":"53fdedbf500b17af1e405934","seq":6451175,"position":2,"parentId":"56e5d099d57ade3476f91d65","content":"Things to know before you start:\n\n* What coordinates are\n* What variables are\n* What objects are"},{"_id":"56e5d099d57ade3476f91d66","treeId":"53fdedbf500b17af1e405934","seq":6450512,"position":4,"parentId":"64fa21723cfaabb5960000f6","content":"## Activities"},{"_id":"64fa743d3cfaabb5960001eb","treeId":"53fdedbf500b17af1e405934","seq":6450700,"position":1,"parentId":"56e5d099d57ade3476f91d66","content":"Start Minecraft. Familiarise yourself with it, if you're not already. Work through the worksheet!"},{"_id":"64fab6d03cfaabb5960001ec","treeId":"53fdedbf500b17af1e405934","seq":6450967,"position":2,"parentId":"56e5d099d57ade3476f91d66","content":"With Minecraft running, and the world created, bring your focus away from the game by pressing the Tab key, which will free your mouse. Open Python 3 from the application menu and move the windows so they're side-by-side.\n\nYou can either type commands directly into the Python window or create a file so you can save your code and run it again another time.\n\nIf you want create a file, go to File > New window and File > Save. You'll probably want to save this in your home folder or a new project folder.\n\nStart by importing the Minecraft library, creating a connection to the game and testing it by posting the message \"Hello world\" to the screen:\n\n`from mcpi.minecraft import Minecraft`\n\n`mc = Minecraft.create()`\n\n`mc.postToChat(\"Hello world\")`\n\nIf you're entering commands directly into the Python window, just hit Enter after each line. If it's a file, save with Ctrl + S and run with F5. When your code runs, you should see your message on screen in the game."},{"_id":"64fb0a943cfaabb5960001ef","treeId":"53fdedbf500b17af1e405934","seq":6451171,"position":3,"parentId":"56e5d099d57ade3476f91d66","content":"Find your location\n\nTo find your location, type:\n\n`pos = mc.player.getPos()`\n\npos now contains your location; access each part of the set of coordinates with pos.x, pos.y and pos.z.\n\nAlternatively, a nice way to get the coordinates into separate variables is to use Python's unpacking technique:\n\n`x, y, z = mc.player.getPos()`\n\nNow x, y, and z contain each part of your position coordinates. x and z are the walking directions (forward/back and left/right) and y is up/down.\n\nNote that getPos() returns the location of the player at the time, and if you move position you have to call the function again or use the stored location.\nTeleport\n\nAs well as finding out your current location you can specify a particular location to teleport to.\n\n`x, y, z = mc.player.getPos()`\n`mc.player.setPos(x, y+100, z)`\n\nThis will transport your player to 100 spaces in the air. This will mean you'll teleport to the middle of the sky and fall straight back down to where you started.\n\nTry teleporting to somewhere else!\nSet block\n\nYou can place a single block at a given set of coordinates with `mc.setBlock()`:\n\n`x, y, z = mc.player.getPos()`\n`mc.setBlock(x+1, y, z, 1)`\n\nNow a stone block should appear beside where you're standing. If it's not immediately in front of you it may be beside or behind you. Return to the Minecraft window and use the mouse to spin around on the spot until you see a grey block directly in front of you."},{"_id":"56e5d099d57ade3476f91d67","treeId":"53fdedbf500b17af1e405934","seq":6450513,"position":5,"parentId":"64fa21723cfaabb5960000f6","content":"## Book Work"},{"_id":"64fabbbe3cfaabb5960001ee","treeId":"53fdedbf500b17af1e405934","seq":6451170,"position":1,"parentId":"56e5d099d57ade3476f91d67","content":"### Algorithms\n\nAn algorithm is a series of steps for solving a problem, or achieving some other goal. They often form part of a computer program, but we also use algorithms when performing mental arithmetic and so on.\n\nAlorithms are named after the great Persian mathematician, astronomer and geographer, al-Khwārizmī. ![](https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/1983_CPA_5426_%281%29.png/358px-1983_CPA_5426_%281%29.png)\n\nhttps://en.wikipedia.org/wiki/File:1983_CPA_5426_%281%29.png"},{"_id":"56e5d099d57ade3476f91d68","treeId":"53fdedbf500b17af1e405934","seq":6450514,"position":6,"parentId":"64fa21723cfaabb5960000f6","content":"## Evaluation"},{"_id":"65065e61758ec426af00021f","treeId":"53fdedbf500b17af1e405934","seq":6456990,"position":1,"parentId":"56e5d099d57ade3476f91d68","content":"Pretty weak lesson. The big disadvantage of Minecraft is that it invites kids to just muck around building/destroying stuff in a way that it's not obvious they're learning anything at all.\n\nFormat of resource from Raspberry Pi Foundation was a problem: didn't want to print 8 sets of 13 pages, so distributed files on USB sticks, which was a faff already (especially since I only had 3 sticks handy) - then the HTML worksheet file bizarrely opened in Geany by default, rather than in the browser.\n\nOut of 7 groups, we had:\n* 1 group (visitors) whose Pi didn't work for ages, and they never really got going with the work once it finally did;\n* 1 group (Emma's) who pretty much refused to attempt anything from the worksheet;\n* 1 group (Keelin's) who eventually did try some of the stuff, and got it to work, but didn't go far with it;\n* 1 group (Adam's) who really tried, but stumbled because they made slight transcription errors copying the code from the worksheet to their Python window - but eventually got stuff working\n* 1 group (Alastair's) who did the first couple of things, got it working I think, then generally messed around with Minecraft;\n* 1 group (Yusuf's) who actually worked through something close to the entire worksheet."},{"_id":"650657bf758ec426af000115","treeId":"53fdedbf500b17af1e405934","seq":6456948,"position":8.34765625,"parentId":null,"content":"# Scratch, Events"},{"_id":"56e70964d57ade3476f9949a","treeId":"53fdedbf500b17af1e405934","seq":6456956,"position":1,"parentId":"650657bf758ec426af000115","content":"## Learning Objectives"},{"_id":"65067316758ec426af000220","treeId":"53fdedbf500b17af1e405934","seq":6457005,"position":1,"parentId":"56e70964d57ade3476f9949a","content":"* How to use Scratch"},{"_id":"65067343758ec426af000221","treeId":"53fdedbf500b17af1e405934","seq":6457013,"position":2,"parentId":"56e70964d57ade3476f9949a","content":"* Event-driven programs, for interactivity"},{"_id":"56e70964d57ade3476f9949b","treeId":"53fdedbf500b17af1e405934","seq":6456957,"position":2,"parentId":"650657bf758ec426af000115","content":"## Starter Questions"},{"_id":"56e70964d57ade3476f9949c","treeId":"53fdedbf500b17af1e405934","seq":6456958,"position":3,"parentId":"650657bf758ec426af000115","content":"## Notes"},{"_id":"65067876758ec426af000222","treeId":"53fdedbf500b17af1e405934","seq":6457023,"position":1,"parentId":"56e70964d57ade3476f9949c","content":"This lesson is mainly following https://www.codeclubprojects.org/en-GB/scratch/rock-band/ (short URL: http://bit.do/scratcha )"},{"_id":"56e70964d57ade3476f9949d","treeId":"53fdedbf500b17af1e405934","seq":6456959,"position":4,"parentId":"650657bf758ec426af000115","content":"## Activities"},{"_id":"65067918758ec426af000223","treeId":"53fdedbf500b17af1e405934","seq":6457257,"position":1,"parentId":"56e70964d57ade3476f9949d","content":"* Make a sprite\n* Set the stage\n* Make a drum (interactive)\n* Make a singer\n* Change costumes"},{"_id":"56e70964d57ade3476f9949e","treeId":"53fdedbf500b17af1e405934","seq":6456960,"position":5,"parentId":"650657bf758ec426af000115","content":"## Book Work"},{"_id":"56e70964d57ade3476f9949f","treeId":"53fdedbf500b17af1e405934","seq":6456961,"position":6,"parentId":"650657bf758ec426af000115","content":"## Evaluation"},{"_id":"65148bea758ec426af000224","treeId":"53fdedbf500b17af1e405934","seq":6469716,"position":1,"parentId":"56e70964d57ade3476f9949f","content":"This was a fun lesson. The Code Club resource worked well; the only people who didn't work through at least most of it were those who were already working at a somewhat higher level than the rest of the class.\n\nSo the next step is to build on their understanding of the Scratch environment to familiarise themselves with more of its possibilities..."},{"_id":"65149097758ec426af000225","treeId":"53fdedbf500b17af1e405934","seq":7649815,"position":8.373046875,"parentId":null,"content":"# More Scratch, Variables"},{"_id":"56e874f3d57ade3476fa2d65","treeId":"53fdedbf500b17af1e405934","seq":6469721,"position":1,"parentId":"65149097758ec426af000225","content":"## Learning Objectives"},{"_id":"65149b47758ec426af00033c","treeId":"53fdedbf500b17af1e405934","seq":6470620,"position":1,"parentId":"56e874f3d57ade3476fa2d65","content":"* How to use variables in a game context"},{"_id":"65155297758ec426af000340","treeId":"53fdedbf500b17af1e405934","seq":6470705,"position":2,"parentId":"56e874f3d57ade3476fa2d65","content":"* How to make sense of, and modify, an existing programme"},{"_id":"65157835758ec426af000342","treeId":"53fdedbf500b17af1e405934","seq":6470708,"position":3,"parentId":"56e874f3d57ade3476fa2d65","content":"* The basic loop-based model of simulation & game programming"},{"_id":"56e874f3d57ade3476fa2d66","treeId":"53fdedbf500b17af1e405934","seq":6469722,"position":2,"parentId":"65149097758ec426af000225","content":"## Starter Questions"},{"_id":"65149c52758ec426af00033d","treeId":"53fdedbf500b17af1e405934","seq":6470979,"position":1,"parentId":"56e874f3d57ade3476fa2d66","content":"* What's similar about the Scratch and Sonic Pi interfaces? What's different?"},{"_id":"56e874f3d57ade3476fa2d67","treeId":"53fdedbf500b17af1e405934","seq":6469723,"position":3,"parentId":"65149097758ec426af000225","content":"## Notes"},{"_id":"651575c0758ec426af000341","treeId":"53fdedbf500b17af1e405934","seq":6470702,"position":1,"parentId":"56e874f3d57ade3476fa2d67","content":"Here I'm using my own resources exclusively."},{"_id":"56e874f3d57ade3476fa2d68","treeId":"53fdedbf500b17af1e405934","seq":6469724,"position":4,"parentId":"65149097758ec426af000225","content":"## Activities"},{"_id":"651528ca758ec426af00033f","treeId":"53fdedbf500b17af1e405934","seq":6470730,"position":1,"parentId":"56e874f3d57ade3476fa2d68","content":"Adapt [Space Chase](https://scratch.mit.edu/projects/26316141/#player) using a variable to change the speed and control it using the keyboard. Add another one to keep track of collisions and things.\n\nCustomise in any other way you feel like."},{"_id":"651581cb758ec426af000343","treeId":"53fdedbf500b17af1e405934","seq":6470736,"position":2,"parentId":"56e874f3d57ade3476fa2d68","content":"Share your work."},{"_id":"56e874f3d57ade3476fa2d69","treeId":"53fdedbf500b17af1e405934","seq":6469725,"position":5,"parentId":"65149097758ec426af000225","content":"## Book Work"},{"_id":"6515a8e9758ec426af000344","treeId":"53fdedbf500b17af1e405934","seq":6470848,"position":0.5,"parentId":"56e874f3d57ade3476fa2d69","content":"### Variables\n\nA *variable* is a *symbol* referring to a *value* which might vary. For example, the velocity of an object is often assigned to a variable `v`.\n\nIn maths, a variable is usually a letter representing a quantity. In programming, the idea is broader: it can be any name representing anything the computer can store (which could be a number, text, an object, etc.)\n\nA *constant* is like a variable, only it doesn't vary."},{"_id":"56e874f3d57ade3476fa2d6a","treeId":"53fdedbf500b17af1e405934","seq":6469726,"position":6,"parentId":"65149097758ec426af000225","content":"## Evaluation"},{"_id":"65232d826beba7214d000148","treeId":"53fdedbf500b17af1e405934","seq":6482257,"position":1,"parentId":"56e874f3d57ade3476fa2d6a","content":"Decent lesson. Angelina didn't engage much. Everyone else did a good portion of the work, at least. Keelin, Paul and Kira got distracted mucking about with the Scratch web site's social networking features."},{"_id":"652113dd758ec426af000347","treeId":"53fdedbf500b17af1e405934","seq":6489534,"position":8.3857421875,"parentId":null,"content":"# Additional Scratch, Threads"},{"_id":"56e9b53ed57ade3476fabf47","treeId":"53fdedbf500b17af1e405934","seq":6479434,"position":1,"parentId":"652113dd758ec426af000347","content":"## Learning Objectives"},{"_id":"65225cfb758ec426af000474","treeId":"53fdedbf500b17af1e405934","seq":6482013,"position":1,"parentId":"56e9b53ed57ade3476fabf47","content":"* Understand the role of events in interaction and inter-thread communication"},{"_id":"6522be986beba7214d000140","treeId":"53fdedbf500b17af1e405934","seq":6482018,"position":2,"parentId":"56e9b53ed57ade3476fabf47","content":"* Be able to use 'broadcast' events to handle things which affect more than one sprite"},{"_id":"652334b96beba7214d000149","treeId":"53fdedbf500b17af1e405934","seq":6482285,"position":3,"parentId":"56e9b53ed57ade3476fabf47","content":"* Start to use `clone`s in a program"},{"_id":"56e9b53ed57ade3476fabf48","treeId":"53fdedbf500b17af1e405934","seq":6479435,"position":2,"parentId":"652113dd758ec426af000347","content":"## Starter Questions"},{"_id":"6522c1046beba7214d000141","treeId":"53fdedbf500b17af1e405934","seq":6482238,"position":1,"parentId":"56e9b53ed57ade3476fabf48","content":"* Programs often need to respond to events, either from user interactions or something inside the computer. What events did the Space Chase game yesterday make use of?"},{"_id":"56e9b53ed57ade3476fabf49","treeId":"53fdedbf500b17af1e405934","seq":6479436,"position":3,"parentId":"652113dd758ec426af000347","content":"## Notes"},{"_id":"6522c5e66beba7214d000142","treeId":"53fdedbf500b17af1e405934","seq":6482226,"position":1,"parentId":"56e9b53ed57ade3476fabf49","content":"### Events\n\nAn event triggers a program to take action. For example, the user might click a button to make something happen.\n\nEvents can also be triggered by a program, for example when one `thread` needs to send a message to another. This is useful when something affects more than one sprite in a game at a time (like Game Over, or Next Level)."},{"_id":"56e9b53ed57ade3476fabf4a","treeId":"53fdedbf500b17af1e405934","seq":6479437,"position":4,"parentId":"652113dd758ec426af000347","content":"## Activities"},{"_id":"652316b16beba7214d000144","treeId":"53fdedbf500b17af1e405934","seq":6482234,"position":1,"parentId":"56e9b53ed57ade3476fabf4a","content":"Modify Space Chase so that a collision results in an Event being broadcast, positions reset and 1 life being lost."},{"_id":"652327706beba7214d000146","treeId":"53fdedbf500b17af1e405934","seq":6482243,"position":2,"parentId":"56e9b53ed57ade3476fabf4a","content":"Use a new sprite with `create clone of` to make it possible to fire at the pursuing spaceship."},{"_id":"65232c2f6beba7214d000147","treeId":"53fdedbf500b17af1e405934","seq":6482247,"position":3,"parentId":"56e9b53ed57ade3476fabf4a","content":"Detect what your spaceship reaches the edge and loop it around?"},{"_id":"56e9b53ed57ade3476fabf4b","treeId":"53fdedbf500b17af1e405934","seq":6479438,"position":5,"parentId":"652113dd758ec426af000347","content":"## Book Work"},{"_id":"6522d70e6beba7214d000143","treeId":"53fdedbf500b17af1e405934","seq":6482101,"position":1,"parentId":"56e9b53ed57ade3476fabf4b","content":"This is a Thursday, so I'm teaching chemistry and leaving them to get on with it."},{"_id":"56e9b53ed57ade3476fabf4c","treeId":"53fdedbf500b17af1e405934","seq":6479439,"position":6,"parentId":"652113dd758ec426af000347","content":"## Evaluation"},{"_id":"64fb106f3cfaabb5960001f0","treeId":"53fdedbf500b17af1e405934","seq":6528724,"position":8.3984375,"parentId":null,"content":"# History of Computing"},{"_id":"56e5e814d57ade3476f923e4","treeId":"53fdedbf500b17af1e405934","seq":6528748,"position":1,"parentId":"64fb106f3cfaabb5960001f0","content":"## Learning Objectives"},{"_id":"64fb168f3cfaabb5960002ef","treeId":"53fdedbf500b17af1e405934","seq":6451242,"position":1,"parentId":"56e5e814d57ade3476f923e4","content":"* Be aware of the history of computing, including the exponential growth in processor speed"},{"_id":"64fb17903cfaabb5960002f0","treeId":"53fdedbf500b17af1e405934","seq":6451243,"position":2,"parentId":"56e5e814d57ade3476f923e4","content":"* Have some insight into the implications of that growth for the future of technology in society"},{"_id":"56e5e814d57ade3476f923e5","treeId":"53fdedbf500b17af1e405934","seq":6451179,"position":2,"parentId":"64fb106f3cfaabb5960001f0","content":"## Starter Questions"},{"_id":"56e5e814d57ade3476f923e6","treeId":"53fdedbf500b17af1e405934","seq":6451180,"position":3,"parentId":"64fb106f3cfaabb5960001f0","content":"## Notes"},{"_id":"652e7e778a8bee975200014a","treeId":"53fdedbf500b17af1e405934","seq":6490253,"position":1,"parentId":"56e5e814d57ade3476f923e6","content":"* The first known calculating machine, the abacus, was invented in Babylonia around 5000 years ago"},{"_id":"652e879c8a8bee975200014b","treeId":"53fdedbf500b17af1e405934","seq":6490281,"position":2,"parentId":"56e5e814d57ade3476f923e6","content":"* The Antikythera Mechanism, thought to be the world's first human-made computer, was recovered in a shipwreck around 1900. It was already at least 2000 years old, originating in ancient Greece (Corinth). It took more than 100 more years before anyone figured out exactly what it was: an analogue computer capable of calculating the positions of heavenly bodies and the timing of the Olympic Games, and predicting solar eclipses."},{"_id":"652ead6b8a8bee975200014c","treeId":"53fdedbf500b17af1e405934","seq":6490285,"position":3,"parentId":"56e5e814d57ade3476f923e6","content":"* Several engineers in the 1600s produced mechanical calculating machines of increasing sophistication."},{"_id":"652eae518a8bee975200014d","treeId":"53fdedbf500b17af1e405934","seq":6490342,"position":4,"parentId":"56e5e814d57ade3476f923e6","content":"* In 1801, the Jacquard loom was created. Cards with holes punched in them provided the instructions the machines needed to weave complex patterns with little human input; each card would produce a different pattern."},{"_id":"652ecc6b8a8bee975200014e","treeId":"53fdedbf500b17af1e405934","seq":6490345,"position":5,"parentId":"56e5e814d57ade3476f923e6","content":"* About ten years later, as automation in the textile industry led to many workers losing their skilled and reasonably well-paid jobs, while their bosses got tremendously rich, the Luddites started destroying machines. Although 'Luddite' is used now as a term of abuse for people who object to the rise of technology, the original Luddites were really fighting for meaningful work in decent conditions. Its not clear that the two are necessarily incompatible."},{"_id":"652f47b38a8bee975200014f","treeId":"53fdedbf500b17af1e405934","seq":6492005,"position":6,"parentId":"56e5e814d57ade3476f923e6","content":"* In 1837, the mathematical Charles Babbage laid out plans for his Analytical Engine, which would have been the first true computer if it had ever been built. Ada Lovelace, daughter of the poet Lord Byron, is credited as the first ever computer programmer; her notes on the Analytical Engine included an algorithm for calculating Bernoulli Numbers, speculations on the future of human-computer relations, and the use of computer programs outside of maths."},{"_id":"652f99998a8bee9752000150","treeId":"53fdedbf500b17af1e405934","seq":6492101,"position":7,"parentId":"56e5e814d57ade3476f923e6","content":"* In 1936, Alan Turing gave a thorough theoretical description of the general-purpose computer, or Turing Machine. He showed that with enough storage, one of these machines would be able to solve any mathematical problem expressible as an algorithm. Six years later, his work led to the creation of the first programmable electronic computer, and the cracking of Nazi Germany's Enigma code."},{"_id":"652fc3b98a8bee9752000152","treeId":"53fdedbf500b17af1e405934","seq":6492144,"position":7.5,"parentId":"56e5e814d57ade3476f923e6","content":"* In the 50s transistors started to replace vacuum tubes in computers, with integrated circuits coming into play in 1960. In 1965, Gordon Moore observed that the density of transistors in each integrated circuit had been doubling every year, and predicted this would continue for a few years to come; in 1975 he saw it slowing down to a doubling every two years, and that rate of exponential growth has more or less continued ever since. With each transistor also getting faster, the overall speed of a computer has been doubling approximately every 18 months - increasing by a factor of *100* every decade."},{"_id":"652fae728a8bee9752000151","treeId":"53fdedbf500b17af1e405934","seq":6492235,"position":8,"parentId":"56e5e814d57ade3476f923e6","content":"* In 1980, the first home computers started coming on to the market. The internet was also born around this time, although it wasn't until the mid-1990s that it became a mass-cultural phenomenon (I first got on the internet in 1994, I think)."},{"_id":"652fee708a8bee9752000153","treeId":"53fdedbf500b17af1e405934","seq":6492251,"position":9,"parentId":"56e5e814d57ade3476f923e6","content":"* 1998: Google formed. 2001: Wikipedia. 2005: YouTube."},{"_id":"56e5e814d57ade3476f923e7","treeId":"53fdedbf500b17af1e405934","seq":6451181,"position":4,"parentId":"64fb106f3cfaabb5960001f0","content":"## Activities"},{"_id":"652e22b66beba7214d00014a","treeId":"53fdedbf500b17af1e405934","seq":6489547,"position":0.5,"parentId":"56e5e814d57ade3476f923e7","content":"Can anyone identify all of these things?\n\n(a ZX81, a BBC Micro, a computer tape, two kinds of floppy discs and a CD-ROM)"},{"_id":"64fb1be33cfaabb5960002f1","treeId":"53fdedbf500b17af1e405934","seq":6528731,"position":1,"parentId":"56e5e814d57ade3476f923e7","content":"Behold, the ZX81 and the BBC Micro!"},{"_id":"64fb27243cfaabb5960002f2","treeId":"53fdedbf500b17af1e405934","seq":6490027,"position":2,"parentId":"56e5e814d57ade3476f923e7","content":"![](https://imgs.xkcd.com/comics/game_ais.png)\n"},{"_id":"56e5e814d57ade3476f923e8","treeId":"53fdedbf500b17af1e405934","seq":6451182,"position":5,"parentId":"64fb106f3cfaabb5960001f0","content":"## Book Work"},{"_id":"56e5e814d57ade3476f923e9","treeId":"53fdedbf500b17af1e405934","seq":6451183,"position":6,"parentId":"64fb106f3cfaabb5960001f0","content":"## Evaluation"},{"_id":"6556ee7f5fd13b2e38000163","treeId":"53fdedbf500b17af1e405934","seq":6545344,"position":1,"parentId":"56e5e814d57ade3476f923e9","content":"This seemed to work pretty well; they listened with apparent interest and occasional laughter to me talking about the history of the internet, and only a little less interest in the history of the computer leading up to that time (I ended up starting in about 1981 and then looping back round, since I had artifacts dating from that time which made quite a nice starter activity).\n\nIt probably would have been better to split the history of computing over two lessons, in retrospect."},{"_id":"6553309c8a8bee9752000154","treeId":"53fdedbf500b17af1e405934","seq":6550842,"position":8.44921875,"parentId":null,"content":"# History research"},{"_id":"56eebe2ad57ade3476fcec99","treeId":"53fdedbf500b17af1e405934","seq":6528639,"position":1.5,"parentId":"6553309c8a8bee9752000154","content":"## Learning Objectives"},{"_id":"6553815bb5e28f15800002a0","treeId":"53fdedbf500b17af1e405934","seq":6550863,"position":2,"parentId":"56eebe2ad57ade3476fcec99","content":"* How to use a word processor (for those not already familiar), print and save to a network drive"},{"_id":"6556a6a15fd13b2e3800015e","treeId":"53fdedbf500b17af1e405934","seq":6530779,"position":3,"parentId":"56eebe2ad57ade3476fcec99","content":"* Learn more about a particular aspect of the history of computing"},{"_id":"56eebe2ad57ade3476fcec9a","treeId":"53fdedbf500b17af1e405934","seq":6528620,"position":2,"parentId":"6553309c8a8bee9752000154","content":"## Starter Questions"},{"_id":"6556a9995fd13b2e38000160","treeId":"53fdedbf500b17af1e405934","seq":6530784,"position":0.5,"parentId":"56eebe2ad57ade3476fcec9a","content":"* Can anyone name any notable events from the history of computing before the birth of the internet?"},{"_id":"6556a79a5fd13b2e3800015f","treeId":"53fdedbf500b17af1e405934","seq":6530804,"position":1,"parentId":"56eebe2ad57ade3476fcec9a","content":"Depending on what they name: \n* What was the Antikythera mechanism, found in an ancient Greek shipwreck, capable of computing?\n* Who rose up against the impoverishment brought on by automation in the early 19th century?\n* Who invented the first true computer, and who programmed it?\n* Whose work on the foundations of computing led to the cracking of the Enigma code in World War II?\n* Can anyone explain Moore's Law?"},{"_id":"56eebe2ad57ade3476fcec9b","treeId":"53fdedbf500b17af1e405934","seq":6528621,"position":3,"parentId":"6553309c8a8bee9752000154","content":"## Notes"},{"_id":"56eebe2ad57ade3476fcec9c","treeId":"53fdedbf500b17af1e405934","seq":6528622,"position":4,"parentId":"6553309c8a8bee9752000154","content":"## Activities"},{"_id":"6556b5935fd13b2e38000162","treeId":"53fdedbf500b17af1e405934","seq":6540135,"position":1,"parentId":"56eebe2ad57ade3476fcec9c","content":"Online research: working in pairs for about half an hour, pick an episode from the history of computing, research it on the internet (make sure to look at more than one source). Write about 200 words on it (use your own words) and include a picture you found on the internet (or a space for a picture). Credit the picture, cite your sources.\n\nPrint out the results of your research for your Main Lesson book."},{"_id":"56eebe2ad57ade3476fcec9d","treeId":"53fdedbf500b17af1e405934","seq":6528623,"position":5,"parentId":"6553309c8a8bee9752000154","content":"## Book Work"},{"_id":"656369205fd13b2e38000d7d","treeId":"53fdedbf500b17af1e405934","seq":6540590,"position":1,"parentId":"56eebe2ad57ade3476fcec9d","content":"Timeline of the history of computing."},{"_id":"56eebe2ad57ade3476fcec9e","treeId":"53fdedbf500b17af1e405934","seq":6528624,"position":6,"parentId":"6553309c8a8bee9752000154","content":"## Evaluation"},{"_id":"657186695fd13b2e38000d85","treeId":"53fdedbf500b17af1e405934","seq":6551245,"position":1,"parentId":"56eebe2ad57ade3476fcec9e","content":"A worthwhile exercise. Almost everyone in the class had a good idea about what they wanted to research, the exception being Celia & Fiona who were working together.\n\nMost of the class were obviously comfortable using Word, but three or four of them struggled. Hopefully this was an opportunity for them to gain a *little* confidence.\n\nI'd originally planned on introducing the Microbit in the same lesson as the internet history research, but we had a shorter time than usual in the computing room, and both the research and the Q&A session at the start were a little more time-consuming than I foresaw."},{"_id":"655730e65fd13b2e38000164","treeId":"53fdedbf500b17af1e405934","seq":6550844,"position":8.474609375,"parentId":null,"content":"# BBC Micro:Bit, Electronics"},{"_id":"56ef1ecad57ade3476fd11ec","treeId":"53fdedbf500b17af1e405934","seq":6531086,"position":1,"parentId":"655730e65fd13b2e38000164","content":"## Learning Objectives"},{"_id":"652112b6758ec426af000346","treeId":"53fdedbf500b17af1e405934","seq":6551247,"position":0.5,"parentId":"56ef1ecad57ade3476fd11ec","content":"* Basic familiarity with the Micro:Bit and how to program it"},{"_id":"6563dddf5fd13b2e38000d7e","treeId":"53fdedbf500b17af1e405934","seq":6551251,"position":2,"parentId":"56ef1ecad57ade3476fd11ec","content":"* How to control or get input from external outputs and sensors? May not have time."},{"_id":"56ef1ecad57ade3476fd11ed","treeId":"53fdedbf500b17af1e405934","seq":6531087,"position":2,"parentId":"655730e65fd13b2e38000164","content":"## Starter Questions"},{"_id":"65711dc35fd13b2e38000d7f","treeId":"53fdedbf500b17af1e405934","seq":6550864,"position":1,"parentId":"56ef1ecad57ade3476fd11ed","content":"What did you learn yesterday? Report back in pairs or similar."},{"_id":"56ef1ecad57ade3476fd11ee","treeId":"53fdedbf500b17af1e405934","seq":6531088,"position":3,"parentId":"655730e65fd13b2e38000164","content":"## Notes"},{"_id":"65719a3a5fd13b2e38000d86","treeId":"53fdedbf500b17af1e405934","seq":6551096,"position":1,"parentId":"56ef1ecad57ade3476fd11ee","content":"The Microbit is 1/70th the size of the original BBC Micro, and 16 times the speed.\n\nAnother fun fact: When Star Trek (TNG) was filmed in 1989, Data was described as being able to perform 60 trillion operations per second (teraflops). At the time, that was 60,000x faster than any computer that had been invented. 26 years on, our most powerful computers are 500x as fast as Data."},{"_id":"56ef1ecad57ade3476fd11ef","treeId":"53fdedbf500b17af1e405934","seq":6531089,"position":4,"parentId":"655730e65fd13b2e38000164","content":"## Activities"},{"_id":"65711eac5fd13b2e38000d80","treeId":"53fdedbf500b17af1e405934","seq":6550938,"position":1,"parentId":"56ef1ecad57ade3476fd11ef","content":"Finish and print research from yesterday."},{"_id":"656368515fd13b2e38000d7c","treeId":"53fdedbf500b17af1e405934","seq":6550940,"position":2,"parentId":"56ef1ecad57ade3476fd11ef","content":"Pick a tutorial from the Microbit site, and work through it."},{"_id":"56ef1ecad57ade3476fd11f0","treeId":"53fdedbf500b17af1e405934","seq":6531090,"position":5,"parentId":"655730e65fd13b2e38000164","content":"## Book Work"},{"_id":"657215685fd13b2e38000d88","treeId":"53fdedbf500b17af1e405934","seq":6557636,"position":1,"parentId":"56ef1ecad57ade3476fd11f0","content":"Write about things you've made."},{"_id":"56ef1ecad57ade3476fd11f1","treeId":"53fdedbf500b17af1e405934","seq":6531091,"position":6,"parentId":"655730e65fd13b2e38000164","content":"## Evaluation"},{"_id":"657c2011b2f4961d72000183","treeId":"53fdedbf500b17af1e405934","seq":6557712,"position":1,"parentId":"56ef1ecad57ade3476fd11f1","content":"Not a bad lesson. Spent a little while with the class sharing their research from the previous lesson. Some kids had fun with the Microbits. Not sure any of them were especially inspired.\n\nLeft them to do their own book work, on things they'd made in (or their general impression of) Scratch and/or Sonic Pi. Results were variable - a few seemed to have no idea what to put, but others evidently had plenty to say. I look forward to seeing this page in their books, more than the others."},{"_id":"6557326e5fd13b2e38000165","treeId":"53fdedbf500b17af1e405934","seq":6551011,"position":8.4873046875,"parentId":null,"content":"# Internet"},{"_id":"56ef1ec2d57ade3476fd11e3","treeId":"53fdedbf500b17af1e405934","seq":6531080,"position":1,"parentId":"6557326e5fd13b2e38000165","content":"## Learning Objectives"},{"_id":"6571f0265fd13b2e38000d87","treeId":"53fdedbf500b17af1e405934","seq":6557630,"position":0.5,"parentId":"56ef1ec2d57ade3476fd11e3","content":"* Familiarity with blogging software (WordPress)"},{"_id":"655737f15fd13b2e3800041d","treeId":"53fdedbf500b17af1e405934","seq":6531189,"position":1,"parentId":"56ef1ec2d57ade3476fd11e3","content":"* The structure and interpretation of basic HTML"},{"_id":"6557391b5fd13b2e3800041e","treeId":"53fdedbf500b17af1e405934","seq":6531639,"position":2,"parentId":"56ef1ec2d57ade3476fd11e3","content":"* The role of CSS"},{"_id":"6557395e5fd13b2e3800041f","treeId":"53fdedbf500b17af1e405934","seq":6531640,"position":3,"parentId":"56ef1ec2d57ade3476fd11e3","content":"* The function of JS"},{"_id":"56ef1ec2d57ade3476fd11e4","treeId":"53fdedbf500b17af1e405934","seq":6531081,"position":2,"parentId":"6557326e5fd13b2e38000165","content":"## Starter Questions"},{"_id":"657c5aa1b2f4961d72000195","treeId":"53fdedbf500b17af1e405934","seq":6558496,"position":1,"parentId":"56ef1ec2d57ade3476fd11e4","content":"Did anyone make anything interesting with the Microbit? Does anyone have any ideas for fun things to make with a Microbit or a Raspberry Pi?"},{"_id":"56ef1ec2d57ade3476fd11e5","treeId":"53fdedbf500b17af1e405934","seq":6531082,"position":3,"parentId":"6557326e5fd13b2e38000165","content":"## Notes"},{"_id":"6563474a5fd13b2e38000d7a","treeId":"53fdedbf500b17af1e405934","seq":6540031,"position":1,"parentId":"56ef1ec2d57ade3476fd11e5","content":"Last lesson. Will need to spend some time on rounding up."},{"_id":"657c367db2f4961d72000184","treeId":"53fdedbf500b17af1e405934","seq":6557916,"position":2,"parentId":"56ef1ec2d57ade3476fd11e5","content":"There are three main languages of the web: HTML, CSS and JavaScript.\n\nHTML is the HyperText Markup Language. Without HTML, there is no web. 'Hypertext' here means that it is based on text with links to other bits of text. 'Markup language' means that it includes something besides text to give instructions about the text, in this case *tags* enclosed by &lt;angle brackets&gt;"},{"_id":"56ef1ec2d57ade3476fd11e6","treeId":"53fdedbf500b17af1e405934","seq":6531083,"position":4,"parentId":"6557326e5fd13b2e38000165","content":"## Activities"},{"_id":"657c4d5cb2f4961d72000185","treeId":"53fdedbf500b17af1e405934","seq":6558504,"position":0.75,"parentId":"56ef1ec2d57ade3476fd11e6","content":"Make an account on http://springtale.co.uk/school and write a blog post about the technology or idea described on the card I have given you (15 minutes)."},{"_id":"657c4e88b2f4961d72000187","treeId":"53fdedbf500b17af1e405934","seq":6558431,"position":0.5,"parentId":"657c4d5cb2f4961d72000185","content":"HTML"},{"_id":"657c4ffab2f4961d7200018c","treeId":"53fdedbf500b17af1e405934","seq":6558524,"position":0.75,"parentId":"657c4d5cb2f4961d72000185","content":"HTML tag"},{"_id":"657c4e6cb2f4961d72000186","treeId":"53fdedbf500b17af1e405934","seq":6558433,"position":1,"parentId":"657c4d5cb2f4961d72000185","content":"CSS"},{"_id":"657c4ec1b2f4961d72000188","treeId":"53fdedbf500b17af1e405934","seq":6558434,"position":2,"parentId":"657c4d5cb2f4961d72000185","content":"JavaScript"},{"_id":"657c4eeeb2f4961d72000189","treeId":"53fdedbf500b17af1e405934","seq":6558438,"position":3,"parentId":"657c4d5cb2f4961d72000185","content":"WWW"},{"_id":"657c4f33b2f4961d7200018a","treeId":"53fdedbf500b17af1e405934","seq":6558522,"position":4,"parentId":"657c4d5cb2f4961d72000185","content":"URL"},{"_id":"657c5938b2f4961d72000193","treeId":"53fdedbf500b17af1e405934","seq":6558485,"position":6.5,"parentId":"657c4d5cb2f4961d72000185","content":"Jpeg"},{"_id":"657c596eb2f4961d72000194","treeId":"53fdedbf500b17af1e405934","seq":6558486,"position":6.75,"parentId":"657c4d5cb2f4961d72000185","content":"GIF"},{"_id":"657c50ccb2f4961d7200018d","treeId":"53fdedbf500b17af1e405934","seq":6558452,"position":7,"parentId":"657c4d5cb2f4961d72000185","content":"Content Management System"},{"_id":"657c4f5ab2f4961d7200018b","treeId":"53fdedbf500b17af1e405934","seq":6558528,"position":8,"parentId":"657c4d5cb2f4961d72000185","content":"ftp"},{"_id":"657c52dfb2f4961d7200018e","treeId":"53fdedbf500b17af1e405934","seq":6558532,"position":0.875,"parentId":"56ef1ec2d57ade3476fd11e6","content":"Read submissions from the rest of the class. You may like to add respectful comments. Then add links to your post going to other posts on the site made by members of your class. (20 minutes)"},{"_id":"657174e75fd13b2e38000d82","treeId":"53fdedbf500b17af1e405934","seq":6558536,"position":1,"parentId":"56ef1ec2d57ade3476fd11e6","content":"Look at the blog post you made. Switch to Text viewing using the tab at the top right of the post editing window. That, there, is HTML. Switch back to the Visual mode, change some formatting, and then go back to HTML to see what's different."},{"_id":"65717e4d5fd13b2e38000d83","treeId":"53fdedbf500b17af1e405934","seq":6551026,"position":2,"parentId":"56ef1ec2d57ade3476fd11e6","content":"Now go to a web site of your choice and choose Inspect Element from the right-click menu to see how a web page is put together. You might like to change some of the text."},{"_id":"657c5f4bb2f4961d72000196","treeId":"53fdedbf500b17af1e405934","seq":6558511,"position":3,"parentId":"56ef1ec2d57ade3476fd11e6","content":"If there's plenty of time, have a stab at a couple of things on http://jsdares.com"},{"_id":"56ef1ec2d57ade3476fd11e7","treeId":"53fdedbf500b17af1e405934","seq":6531084,"position":5,"parentId":"6557326e5fd13b2e38000165","content":"## Book Work"},{"_id":"6571810e5fd13b2e38000d84","treeId":"53fdedbf500b17af1e405934","seq":6551028,"position":1,"parentId":"56ef1ec2d57ade3476fd11e7","content":"Write up about the internet."},{"_id":"56ef1ec2d57ade3476fd11e8","treeId":"53fdedbf500b17af1e405934","seq":6531085,"position":6,"parentId":"6557326e5fd13b2e38000165","content":"## Evaluation"},{"_id":"6bec9eb58886aebbfe0002bc","treeId":"53fdedbf500b17af1e405934","seq":7995680,"position":8.49365234375,"parentId":null,"content":"### Notes on 2015-16 version"},{"_id":"6bec9f2c8886aebbfe0002bd","treeId":"53fdedbf500b17af1e405934","seq":7995762,"position":1,"parentId":"6bec9eb58886aebbfe0002bc","content":"I went for the slightly eccentric approach of *starting* with a textual programming language. There were a couple of reasons for this:"},{"_id":"6becb1868886aebbfe0002c0","treeId":"53fdedbf500b17af1e405934","seq":7995763,"position":1,"parentId":"6bec9f2c8886aebbfe0002bd","content":"* The resources for Sonic Pi looked pretty good. Which they are, I have to say.\n* Having introduced a class to Scratch the year before, I know that it's very easy for kids to get sucked into just messing around with that indefinitely."},{"_id":"6becb11d8886aebbfe0002bf","treeId":"53fdedbf500b17af1e405934","seq":7995766,"position":2,"parentId":"6bec9f2c8886aebbfe0002bd","content":"But:\n* It's obviously easier to get started with a graphical language\n* Sonic Pi requires headphones all round, which is difficult for collaboration\n* It might be better to start with more about computers and the internet, to help motivate later work"},{"_id":"6beca6688886aebbfe0002be","treeId":"53fdedbf500b17af1e405934","seq":7995708,"position":2,"parentId":"6bec9eb58886aebbfe0002bc","content":"I'm personally more interested in graphics than sound, and suspect they teach more transferrable skills. So I'm looking at using Processing next time round."},{"_id":"64428995d5fb815d2c00050f","treeId":"53fdedbf500b17af1e405934","seq":6450508,"position":9.75,"parentId":null,"content":"### Lesson structure"},{"_id":"644289d8d5fb815d2c000510","treeId":"53fdedbf500b17af1e405934","seq":6727994,"position":0.5,"parentId":"64428995d5fb815d2c00050f","content":"[ \n {\n \"content\": \"## Learning Objectives\"\n },\n {\n \"content\": \"## Starter Questions\"\n },\n {\n \"content\": \"## Notes\"\n },\n {\n \"content\": \"## Activities\"\n },\n {\n \"content\": \"## Book Work\"\n },\n {\n \"content\": \"## Evaluation\"\n }\n]"},{"_id":"56d374636b1f1cee1a5ac7ed","treeId":"53fdedbf500b17af1e405934","seq":6300657,"position":1,"parentId":"64428995d5fb815d2c00050f","content":"## Learning Objectives"},{"_id":"56d374636b1f1cee1a5ac7ee","treeId":"53fdedbf500b17af1e405934","seq":6300658,"position":2,"parentId":"64428995d5fb815d2c00050f","content":"## Starter Questions"},{"_id":"56d374636b1f1cee1a5ac7ef","treeId":"53fdedbf500b17af1e405934","seq":6300659,"position":3,"parentId":"64428995d5fb815d2c00050f","content":"## Notes"},{"_id":"56d374636b1f1cee1a5ac7f0","treeId":"53fdedbf500b17af1e405934","seq":6300660,"position":4,"parentId":"64428995d5fb815d2c00050f","content":"## Activities"},{"_id":"56d374636b1f1cee1a5ac7f1","treeId":"53fdedbf500b17af1e405934","seq":6300661,"position":5,"parentId":"64428995d5fb815d2c00050f","content":"## Book Work"},{"_id":"56d374636b1f1cee1a5ac7f2","treeId":"53fdedbf500b17af1e405934","seq":6300662,"position":6,"parentId":"64428995d5fb815d2c00050f","content":"## Evaluation"},{"_id":"64c600dd3cdaf0d53a000176","treeId":"53fdedbf500b17af1e405934","seq":6415304,"position":11,"parentId":null,"content":"### Old lessons"},{"_id":"49fde073f88c72c86700010a","treeId":"53fdedbf500b17af1e405934","seq":6415306,"position":1,"parentId":"64c600dd3cdaf0d53a000176","content":"# Introducing Functions"},{"_id":"48e6e4476d5739e92e00014a","treeId":"53fdedbf500b17af1e405934","seq":890863,"position":0.25,"parentId":"49fde073f88c72c86700010a","content":"##Starter:\nIntroduction to functions.\n"},{"_id":"4b0316c4fb5a4a98960001e9","treeId":"53fdedbf500b17af1e405934","seq":890898,"position":1,"parentId":"48e6e4476d5739e92e00014a","content":"Functions (in maths) are things that take one number and turn it into another. \n\nDraw a box on the whiteboard, with numbers going in and numbers coming out. Hands up if you think you know what the box is doing. Ask person with hands up to predict the next number.\n\nTry another one.\n\nAsk if anyone has ideas for another one. Get them to write it on the board and get people to guess."},{"_id":"49fde10ef88c72c86700010b","treeId":"53fdedbf500b17af1e405934","seq":782567,"position":1,"parentId":"49fde073f88c72c86700010a","content":"Go to http://bit.do/function"},{"_id":"49feb219f88c72c8670002a9","treeId":"53fdedbf500b17af1e405934","seq":782413,"position":2,"parentId":"49fde073f88c72c86700010a","content":"Experiment with different mathematical functions and see what you find.\n\nRecord your results."},{"_id":"4b03152ffb5a4a98960001e8","treeId":"53fdedbf500b17af1e405934","seq":890861,"position":3,"parentId":"49fde073f88c72c86700010a","content":"Look at http://bit.do/pfunction and try to make sense of what you see."},{"_id":"48e6e30f6d5739e92e000149","treeId":"53fdedbf500b17af1e405934","seq":6415307,"position":2,"parentId":"64c600dd3cdaf0d53a000176","content":"# Getting started with the Pi"},{"_id":"48e6e5a06d5739e92e00014c","treeId":"53fdedbf500b17af1e405934","seq":648179,"position":3,"parentId":"48e6e30f6d5739e92e000149","content":"##Main:"},{"_id":"48e6e6586d5739e92e00014d","treeId":"53fdedbf500b17af1e405934","seq":649326,"position":4,"parentId":"48e6e30f6d5739e92e000149","content":"How to set up your Pi! Get it all plugged in, then log in. Introduce the command line - ls, cd, maybe mkdir, then startx."},{"_id":"48e79b8f6d5739e92e00014f","treeId":"53fdedbf500b17af1e405934","seq":649330,"position":4.5,"parentId":"48e6e30f6d5739e92e000149","content":"\nIssue a Pi per pair and ask them to repeat what they just saw."},{"_id":"48e8f2d5e367859c4d000062","treeId":"53fdedbf500b17af1e405934","seq":649593,"position":4.75,"parentId":"48e6e30f6d5739e92e000149","content":"Once they've booted in, name the bits of the screen that they're familiar with. What do they notice is different from Windows? "},{"_id":"48e8f5b9e367859c4d000063","treeId":"53fdedbf500b17af1e405934","seq":649618,"position":4.875,"parentId":"48e6e30f6d5739e92e000149","content":"Load up Scratch, and load the Steerable Rocket example again. Let's go through some of the different bits - draw an analogy between commands on the command line, and commands (or functions) in Scratch. Draw attention to the things from the Event block, and go through how to add more controls to this 'game'."},{"_id":"48e90472e367859c4d000065","treeId":"53fdedbf500b17af1e405934","seq":6330637,"position":4.90625,"parentId":"48e6e30f6d5739e92e000149","content":"Note the various other kinds of Event - collisions, interactions of different sorts..."},{"_id":"48e901afe367859c4d000064","treeId":"53fdedbf500b17af1e405934","seq":649623,"position":4.9375,"parentId":"48e6e30f6d5739e92e000149","content":"Now that we've introduced the idea of a Speed variable, let's introduce Acceleration. This could control how fast the rocket can change velocity; we could also introduce gravity."},{"_id":"494514e4d06a8f21fb0000dd","treeId":"53fdedbf500b17af1e405934","seq":697674,"position":4.96875,"parentId":"48e6e30f6d5739e92e000149","content":"###Homework:\nEach pupil needs to research a term and explain them to the rest of the class next week, without notes:\n* <del>Ethernet cable</del>\n* <del>Bluetooth</del>\n* HTML - Maricell\n* CSS - Sam\n* USB - Elliott\n* Android - Lucy\n* Wireless - Anna"},{"_id":"4821ad9b64e11c2aa0000046","treeId":"53fdedbf500b17af1e405934","seq":6424661,"position":3,"parentId":"64c600dd3cdaf0d53a000176","content":"# Introducing variables"},{"_id":"4821ae6564e11c2aa0000047","treeId":"53fdedbf500b17af1e405934","seq":606582,"position":1,"parentId":"4821ad9b64e11c2aa0000046","content":"###Starter:"},{"_id":"4821cf3a64e11c2aa000004a","treeId":"53fdedbf500b17af1e405934","seq":588955,"position":2,"parentId":"4821ad9b64e11c2aa0000046","content":"###Main activity:\n"},{"_id":"4821d13b64e11c2aa000004b","treeId":"53fdedbf500b17af1e405934","seq":588978,"position":0.5,"parentId":"4821cf3a64e11c2aa000004a","content":"Last week we made the Scratch Cat draw squares and triangles. What if we want it to be able to draw a shape with any number of sides we choose?"},{"_id":"48651f8a6e25979b5d00006e","treeId":"53fdedbf500b17af1e405934","seq":588995,"position":1,"parentId":"4821d13b64e11c2aa000004b","content":"First we need to define a variable for the number of sides.\n\nThen it needs to turn that fraction of an angle between each line.\n\nIs there anything else we might want to change?"},{"_id":"4821d81664e11c2aa000004d","treeId":"53fdedbf500b17af1e405934","seq":549876,"position":1,"parentId":"4821cf3a64e11c2aa000004a","content":"Have you come across the idea of variables in maths?"},{"_id":"4821db4f64e11c2aa0000051","treeId":"53fdedbf500b17af1e405934","seq":589005,"position":1.5,"parentId":"4821cf3a64e11c2aa000004a","content":"So a variable is a name given to a quantity, or thing, that can vary. It could represent the speed of an object, for example, or the amount of liquid in a container."},{"_id":"4821d54864e11c2aa000004c","treeId":"53fdedbf500b17af1e405934","seq":589121,"position":3,"parentId":"4821cf3a64e11c2aa000004a","content":"[Here's a program where you get to control a rocket-pen](http://scratch.mit.edu/projects/26316141/). How could you change the speed of the rocket using a variable? How could you allow the user to control that variable? Work in pairs or threes, and think if there's anything else you might want to change. In twenty minutes we'll all look at what the other pairs have made."},{"_id":"48653c916e25979b5d000070","treeId":"53fdedbf500b17af1e405934","seq":589114,"position":4,"parentId":"4821cf3a64e11c2aa000004a","content":"####Mini-plenary:\nSharing work."},{"_id":"48653f0f6e25979b5d000071","treeId":"53fdedbf500b17af1e405934","seq":589155,"position":5,"parentId":"4821cf3a64e11c2aa000004a","content":"####Introducing the Raspberry Pi:\nThis tiny computer is called a Raspberry Pi. We have one for each person in the class, and we're going to start playing with them for real next week.\n"},{"_id":"486559f16e25979b5d000073","treeId":"53fdedbf500b17af1e405934","seq":589203,"position":5.5,"parentId":"4821cf3a64e11c2aa000004a","content":"This thing is just slightly smaller than the 16k RAM pack we used to hold in the back of my ZX81 with Blu-tack to keep it from wobbling too much. It has 32,000 times as much RAM, and this tiny micro-SD card that goes in it has 16 times as much again, so altogether it has eight and a half million times as much memory as the original ZX81. It runs faster than any computer that existed *anywhere in the world* before about 1992, when I was your age.\n\nIt's pretty slow by modern computing standards, but it's powerful."},{"_id":"486565236e25979b5d000074","treeId":"53fdedbf500b17af1e405934","seq":606588,"position":5.75,"parentId":"4821cf3a64e11c2aa000004a","content":"It's also versatile - half of the fun of this thing is that you can plug all kinds of things into it - if I attach an LED to these two pins, you can see it light up. We could use it to build robots or light shows, [take pictures from a high-altitude balloon](http://www.raspberrypi.org/pi-in-the-sky/), all kinds of things."},{"_id":"486559c96e25979b5d000072","treeId":"53fdedbf500b17af1e405934","seq":589217,"position":6,"parentId":"4821cf3a64e11c2aa000004a","content":"\nI also like the Raspberry Pi because you can see what makes up a computer right there - a power supply, a main processor (with the RAM right there), and various connectors to the outside world - 4 USB sockets, one for a monitor, a socket to output sound, one to connect it to a network, a slot for a camera, and so on."},{"_id":"4821d96364e11c2aa000004e","treeId":"53fdedbf500b17af1e405934","seq":549864,"position":3,"parentId":"4821ad9b64e11c2aa0000046","content":"Plenary"},{"_id":"4821d9aa64e11c2aa000004f","treeId":"53fdedbf500b17af1e405934","seq":606589,"position":1,"parentId":"4821d96364e11c2aa000004e","content":"###Plenary:"},{"_id":"4821da0564e11c2aa0000050","treeId":"53fdedbf500b17af1e405934","seq":549867,"position":2,"parentId":"4821d96364e11c2aa000004e","content":"What did you learn? Discuss in pairs."},{"_id":"48652c476e25979b5d00006f","treeId":"53fdedbf500b17af1e405934","seq":606609,"position":3,"parentId":"4821d96364e11c2aa000004e","content":"###Homework:\nMake an account on the Scratch web site, and upload a project that involves at least one variable, and something moving around. Upload it to the [class studio on the Scratch site](http://scratch.mit.edu/studios/522075/)"},{"_id":"649b3d5f62c4113283000179","treeId":"53fdedbf500b17af1e405934","seq":6558607,"position":12,"parentId":null,"content":"### Fragments"},{"_id":"4821a98764e11c2aa0000044","treeId":"53fdedbf500b17af1e405934","seq":6369304,"position":1,"parentId":"649b3d5f62c4113283000179","content":"Wrap up lesson"},{"_id":"4821abbf64e11c2aa0000045","treeId":"53fdedbf500b17af1e405934","seq":549786,"position":1,"parentId":"4821a98764e11c2aa0000044","content":"What did you discover?"},{"_id":"4821cd7264e11c2aa0000048","treeId":"53fdedbf500b17af1e405934","seq":549813,"position":2,"parentId":"4821a98764e11c2aa0000044","content":"This week's homework (?)"},{"_id":"4821a23a64e11c2aa000003f","treeId":"53fdedbf500b17af1e405934","seq":6369306,"position":2,"parentId":"649b3d5f62c4113283000179","content":"Introduce Scratch"},{"_id":"4821a31464e11c2aa0000040","treeId":"53fdedbf500b17af1e405934","seq":549771,"position":1,"parentId":"4821a23a64e11c2aa000003f","content":"Scratch is a visual programming language. It's structured in blocks, which you can fit together a bit like Lego blocks."},{"_id":"4821a55864e11c2aa0000043","treeId":"53fdedbf500b17af1e405934","seq":549777,"position":1.5,"parentId":"4821a23a64e11c2aa000003f","content":"Here's a program that makes the Scratch cat draw a square. Play about with the numbers - see if you can make a bigger square, a triangle, a pentagon."},{"_id":"64426eaad5fb815d2c0003a1","treeId":"53fdedbf500b17af1e405934","seq":6300610,"position":1,"parentId":"4821a55864e11c2aa0000043","content":"I wonder if I gave insufficient guidance on this last year?"},{"_id":"65149ea1758ec426af00033e","treeId":"53fdedbf500b17af1e405934","seq":6470849,"position":3,"parentId":"649b3d5f62c4113283000179","content":"### Objects\n\nAn *object* is a kind of complex variable"},{"_id":"657c5610b2f4961d7200018f","treeId":"53fdedbf500b17af1e405934","seq":6558466,"position":4,"parentId":"649b3d5f62c4113283000179","content":"about what you made with the Microbit, and any ideas you might have for other things you could try making in future. "}],"tree":{"_id":"53fdedbf500b17af1e405934","name":"Computing Main Lesson","publicUrl":"computing-main-lesson"}}