Everyone can program

Everyone can program. Maybe not right at this instant. But everyone has the ability to learn to program. It’s really true. Some people disagree – mostly people who believe that they can’t program, it’s too hard.

But everyone really can program. Bear with me for a moment. I think I can convince you.

See this door?


It’s the door to the female toilet in a cafe in Parkville. I spent some time hanging out at this cafe once, when my kids were at a thing at the Zoo. They went in at 8:30 and I had to hang out until the zoo opened at 9:30, so naturally I sought out the nearest coffee. When I tried to go to the loo, I found this door.

How do you get in? The silver plate on the right suggests that you push, so I pushed. Nothing happened. I thought maybe somebody was in there, so I waited a bit, feeling a little foolish. No noises happened behind the door, so I tried pushing again. It didn’t give. I tried sliding the door. Nothing. I waited some more, smiling sheepishly at people walking by. Feeling increasingly foolish. The door was stuck just a teensy bit open, so I pushed at it harder. Really quite hard. Nothing.

Eventually I gave up, went back into the cafe, and asked them how the heck you get in. Turns out that little panel on the left is for a proximity sensor. There’s a key. Armed with the key, I waved it at the magic panel, and the door opened easily. I didn’t even know there was a key – there was no sign or any other indication – so I just felt stupid for not being able to operate a simple door.

Why am I telling you stories about toilet doors? (My students will tell you it’s something I do surprisingly often – it may just be that I have an unhealthy fascination with them…)

Because programming is the same. Without the key, it’s really hard to know how to open the door. But once you know the tricks, it’s suddenly simple.

Tell me, can you direct someone to your house? “Turn left here, turn right there, go straight until you reach that.”

That’s programming.

It’s simply giving a clear set of instructions in terms your target audience can understand. The precise language of the instructions is important. You wouldn’t tell most people to head North North West in suburban streets. You’d tell them to go left or right. With someone who doesn’t know left and right, you might use “my side” and “your side”. Anyone can program. It’s simply a matter of having the keys. Of knowing the right instructions.

If you want to test the theory, check out the courses on code.org. Or check out Grok Learning, where you can learn to program as part of one of their competitions, or just by working through their beginner courses. They have tutors who can answer your questions online, to help you when you get stuck. Because everyone gets stuck sometimes, even experienced programmers. It’s important to be brave enough to ask for help.

Feel like you can’t program? You’re just like me, standing and staring at the toilet door, not knowing there’s a key. Once you know about the key, the rest is easy. So trust me. There are keys.


Posted in Uncategorized | Tagged , , , , | 1 Comment

The geek gene is dead. Long live the geek gene.

“No-one I know seriously believes in a geek gene,” is a line I hear a lot.

Perhaps this means that he (it’s usually a he) thinks that no-one truly attributes programming ability to genetics. But when we talk about a geek gene, we’re talking about the pervasive and horribly persistent belief that some people just can’t be taught to program. More than that, the belief that we’re wasting our time even trying.

There are so many problems with this theory that I hardly know where to start. One way or another I’ve been teaching people to program since 1993. In that time I’ve never dealt with anyone who was incapable of learning to program. Note that I’m not claiming that every one of them was destined to be a software engineer. I’m not saying every one of them could write 10,000 lines of bug free code (mind you I’m not sure I’ve ever encountered 10,000 lines of bug free code, but that’s another blog).

But anyone who can think logically can learn the basics of programming. Ok, we’ve probably just ruled out One Nation senators, and Donald Trump. But other than that, I am perfectly serious: Anyone who can tell someone how to do something – give directions to their house, or explain a recipe, for example – can learn to program. Because programming is simply telling the computer how to do something, in terms it can understand.

Why do I care? Why does it matter? People who are interested in coding will learn to code, and surely those are the people we want to go into technical fields anyway? The people who are interested?

The problem with that is that the world is full of talented people who have no idea what programming is. Who have no interest in technical fields because they have no real idea what goes on in there. It’s a closed book.

Yet we have a world full of problems – serious, threatening problems. Climate change. Disease. Poverty. And more. Solving them will be crucial to our survival, and technology is going to be integral to those solutions. So we undoubtedly need talented people to go into technology – as many of them as possible.

We need to open that book.

The other problem with that (or one of the other problems, for there are many!) is that a shallow understanding of technology is becoming increasingly debilitating. If we fail to equip our students with decent technological skills, we are increasingly failing to equip them for life.

Because while many of the kids we teach to code will not go on to become programmers, they will have a better understanding of the way computers work – and their limitations. They’ll be much more able to understand and manipulate the technology that runs our lives, and they’ll be much less afraid of it. Anyone who says technology is a closed book to them is going to find that a lot of doors are closed too.

The world is not divided into people who are capable of programming and people who aren’t. It’s divided into people who have access to programming education that works for them, and people who don’t.

We can fix that! And we must.

Posted in Uncategorized | Tagged , , , | Leave a comment

Demystifying the Dig Tech Curriculum – Part 3

It has taken me rather a while to get around to the final part of my Demystifying the Digital Technologies Curriculum posts, but yesterday I received an email from someone who is actually using the posts in her work, eagerly hoping to see part 3. So thanks for the prompt, Kris! Here it is. 🙂

It is definitely best to read Part 1 and Part 2 first.

   F-2 3-4 5-6
Evaluating Explore how people safely use common information systems to meet information, communication and recreation needs (ACTDIP005) Explain how student solutions and existing information systems meet common personal, school or community needs (ACTDIP012) Explain how student solutions and existing information systems are sustainable and meet current and future local community needs (ACTDIP021)
F-2: Explore how people safely use common information systems to meet information, communication and recreation needs (ACTDIP005)
This one gives you carte blanche to talk about the impact of computer systems in our lives – from communicating with friends and relatives far away, to playing games, learning, and finding out practical information like when the next train to the city leaves. It also covers cyber safety – again, something you’re almost certainly already covering in class. Things like not giving out your home address or phone number online, or telling people which school you go to. It also covers ergonomic issues like sitting sensibly while using computers, and taking regular breaks to avoid eye strain and RSI type issues. The kind of messages that kids pay so much attention to. 🙂
This section also includes talking about accessibility features – like text-to-speech – and how they impact on people with vision problems. You can explore all kinds of ways computers can increase the independence and quality of life of people with disabilities, and consider how computers and the internet have changed over the last 20 years.
3-4: Explain how student solutions and existing information systems meet common personal, school or community needs (ACTDIP012)
This is an opportunity to consider how information systems meet the needs of people in different demographics – for example how much is online bill paying used by people over 70? You could have students design an online survey, using google forms or survey monkey, to ask the school community about who pays bills online. This can lead to a class discussion about whether the people who are likely to fill out a form might be a biased sample – ie those not using online bill paying might also be unlikely to fill out an online form.
You can talk about how people’s needs are met – for example being able to find out which branch of the local library has the book you want to borrow – and how they are not, for example local council websites that have a lot of text-based information might be harder for people with dyslexia to access.
This is also a place to imagine bigger possibilities – for example asking your class what they would like to see online that they can’t see in person. They might come up with the surface or Mars or the Moon, or distant galaxies, or maybe their friend who moved to China last year, and what her house in Beijing looks like. You could prompt them to think about the opportunities in relation to STEM – like being able to explore the inside of the heart through a recording of a heart operation, or being able to plan trips to Mars using simulations of the conditions there.
You can talk about the different ways particular people use computer systems to support their everyday life – like using google maps to find a cafe nearby, or using google translate to help you understand the school newsletter if English isn’t your first language.
In discussing these things it’s important to look at the ways they could improve, as well as the ways they are great now. For example, if you have any kids who speak another language fluently, ask them if they can find any phrases or words that google translate gets a little bit wrong.
In this context, students can also review each other’s sketched designs and provide feedback on whether the design is easy to understand, and whether the different interface elements (like buttons and menus) are well placed.
5-6: Explain how student solutions and existing information systems are sustainable and meet current and future local community needs (ACTDIP021)
I have to admit I am struggling with this one. Student solutions are incredibly unlikely to have a sustainability aspect. I can’t think of a credible example.
Acara’s description says “for example personal data are secured (social) and the solution can only be viewed on screen to avoid printing (environmental).”
Now, students don’t have the skills to secure personal data – it’s difficult even for skilled programmers to create a secure system. Grade 5-6s just aren’t even going to be using systems that give them the option, except in very rare cases. It makes no sense at this level.
However, it’s perfectly possible to talk about the sustainability of the systems they use – for example whether the computers they use are set to go to sleep after a certain amount of time, and whether computers that are asleep overnight rather than off use significant amounts of energy. (The answer to that one is worth researching, as it is changing all the time. The first google hit I got when I searched for “laptop sleep energy use” was written in 2010 and is almost certainly now wildly out of date, so there are some interesting conversations to be had there.)
You can also talk about sustainability in terms of printing rather than emailing resources, and even in the context of whether the information in a system will still be accurate in a couple of years’ time. For example, as I write this, Mem Fox’s wikipedia page is missing her latest book, because no-one has got around to updating it. So you can’t simply put up a list of all of a living author’s books without needing to update it from time to time.
There’s also scope here to talk about different types of interaction and how they work for different sections of the community – for example touch interfaces in the form of tablets, ipads, and smartphones, and icons vs text labels on buttons.
Who uses which systems, and why are icons considered easier for people to understand than text? (and is that always true?!)
The key point in this section is about meeting user and community needs, so it’s great to look at how different systems, like WhatsApp groups, or Facebook communities, can grow communities and help them communicate, and also to talk about how that might evolve in the future.
Although the ACARA notes mention Aboriginal and Torres Strait Islander peoples in terms of how information technology meets their needs, it doesn’t give any hints as to how you might explore that, and to be honest I have very little idea myself. I know more examples of ICT use in remote parts of Africa than I do for Indigenous Australian communities, which I suspect is an indictment of me, but also of our cultural focus.
Given the emphasis here on sustainability, I’d take the opportunity to talk about the rapid churn of mobile phones and laptops – most adults expect to get a new phone every two years – and the subsequent impact on the environment of both the resulting ewaste and the mining of the necessary precious metals. You can look into the recycling of ewaste and explore the percentage of people who take advantage of recycling opportunities (at my council waste transfer station you can drop off ewaste for recycling for free) – perhaps another opportunity for students to survey the population and raise awareness of the issue.
   F-2 3-4 5-6
Collaborating and managing Create and organise ideas and information using information systems independently and with others, and share these with known people in safe online environments (ACTDIP006) Plan, create and communicate ideas and information independently and with others, applying agreed ethical and social protocols (ACTDIP013) Plan, create and communicate ideas and information, including collaboratively online, applying agreed ethical, social and technical protocols (ACTDIP022)

Ok. Finally we’re onto the last row. This section has been much wordier than the others, despite being fewer dot points, because it is largely based around complex social, environmental, and ethical considerations, rather than the relatively straightforward teaching of algorithmic thinking and coding.

F-2: Create and organise ideas and information using information systems independently and with others, and share these with known people in safe online environments (ACTDIP006)

Ironically the ACARA materials for this section repeatedly use examples of creating ICT artifacts “to share online”. Only the last line discusses privacy and cyber safety around sharing information online. When they say “share online” at this level, it’s safe to assume they mean on an intranet, or via email to individuals, but a lot of schools don’t have or use an intranet, or don’t have clear ideas around what is shared publicly and what is private.

So this is a great opportunity to talk about the safety of sharing things online, and who can see what, depending on where you share it. One of the key issues in cyber-safety is that once you have emailed someone a photo, or document, you have no control over what they do with it (whether deliberately or accidentally), so it’s crucial to talk about only putting things online that you don’t mind going public. I would argue that there really isn’t any such thing as a safe online environment. Even emailing pictures to your grandparents can lead to them being made available publicly online, if your grandparents don’t clearly understand the sharing settings on systems like Google Drive or Dropbox.

That also leads to conversations around what you can or should ethically do with things other people send to you. When is it ok to share them, and with whom? If someone chats with you online and says things about someone else, should you pass those comments on?

The technical content in this section is all around creation of things like presentations, documents, and movies – the kinds of activities you are probably already covering in class.

3-4: Plan, create and communicate ideas and information independently and with others, applying agreed ethical and social protocols (ACTDIP013)

The Acara explanations of this point are quite long, but they boil down to behaving in a polite and civilized fashion online – for example, by not writing all in caps, and reading all emails in a thread before replying, and treating other people the way you would want to be treated yourself – and exploring different ways of collaborating online.

Some examples of online collaboration might be using online document editing like Google Docs or MS Onedrive, or simply emailing versions of a document back and forth.

This section also includes an exploration of privacy settings, which is challenging to do in real online environments as most of them have an age restriction of 13+, meaning kids in grade 3/4 should not have these accounts. Social media platforms for younger kids typically have very restricted privacy by default.

5-6: Plan, create and communicate ideas and information, including collaboratively online, applying agreed ethical, social and technical protocols (ACTDIP022)

This is so close to the 3-4 version, only including the word “technical”. For the most part it is simply a deeper exploration of the same issues – online collaboration, and how you can make it work by setting up meeting times (in some cases considering timezones) and planning out the project so that different people contribute different parts.

Many classes these days derive their own set of Classroom behaviour rules, or Classroom Norms as my daughter’s school calls them. They are pretty much “how I want to be treated and how I think others should treat me” lists, and this is a perfect context for the class to create a list of “online norms” to match their classroom ones. How do they think people should behave online? What kind of behaviour makes online collaboration work and what makes it hard? How should they talk to people online, and is it any different to the way they should talk face to face?

There’s also a section in here about using web based systems – such as WordPress, Tumblr, or Blogger – to create and share information. I’m not sure how this is supposed to work, though, because once again the minimum age on these sites is 13. I did find one blogging site specifically for kids, kidblog.org, but it’s not clear how much you can do without paying for access to the site.

So there you have it. That’s the F-6 Dig Tech curriculum in an overlarge, but hopefully comprehensible nutshell. I hope you find it useful.

Feel free to share! And don’t forget, if you are looking for experts to help your teachers come to grips with the curriculum and how to incorporate it into your classroom work, head on over to Code Breaker Education and book an after-school or planning day workshop with former John Monash Science School Computer Science students. Hand picked for their teaching skills and empathy, Code Breakers make teaching programming easy.


Posted in Uncategorized | Tagged , , , | 2 Comments

So angry about girls in STEM right now

Yesterday I wrote about girls in STEM on my other blog. I was angry. I still am.

If you think girls are under represented in STEM…

If you think girls aren’t good at techy stuff or “hard” sciences like Physics…

If you think girls are just naturally more into biology…

GO read it!

Posted in Uncategorized | Leave a comment

Introducing my Code Breakers

Teachers! Want to learn about the Digital Technologies Curriculum? Need someone to teach you all about code? Code Breaker Education is ready to teach you, and support you along the way.

I have been worried for a long time about how Victorian schools can possibly skill themselves up to deal with the new Digital Technologies Curriculum. I know the idea of code is daunting for many people, but the new curriculum means teachers need to be able to program, but also to teach programming.

The most important thing in teaching programming, especially at Primary School level is not to know everything (who does??), it’s to be enthusiastic, and willing to experiment. So the key thing is to show teachers that it can be fun, and that it’s not scary.

I would like to introduce you to Code Breaker Education – a joint enterprise between me and alumni of the John Monash Science School Computer Science Programme. I have collected a group of my former students who know all about code, but more importantly are passionate about Digital Technologies Education. They know that programming is challenging to start with. They know where you’ll get stuck and how to help you get over that learning curve.

They are educators, communicators, and programmers, and they can help get you ready, and confident, to teach the Digital Technologies Curriculum.

I’ve watched them teach and I am so proud of their teaching skills, their passion, and their professionalism. This is the Professional Development you need.

Check out Code Breakers Education on Facebook, or on our website, and give us a call today to schedule your workshop.


Posted in Uncategorized | Tagged , , , | Leave a comment

Hidden Figures, Rewritten History

I’ve just come back from seeing Hidden Figures. My brain is on fire.

The film tells the story of the first Computers – black women! – who performed the calculations that enabled the US to send men into space. Who not only performed those calculations, but invented them. Who solved fiendishly difficult problems that had never been solved before. It is a masterpiece of story telling, of film making, and of setting history right. Because these are stories we cannot tell often enough.

Despite the realities of history, we have allowed that story to be rewritten. We continue to believe a story that says that the colour of your skin, and the number of your X chromosomes, dictates what you can and can’t do. What you are, and aren’t, good at.

We have allowed the history of computing to become overwhelmingly white, overwhelmingly male, and overwhelmingly false. We have allowed the history of space to become the history of a few white men.

Hidden Figures shocked me in its all-too-accurate depiction of overt racism and sexism – and it didn’t even deal much with the violence, or the hatred. It made me realise how far we have come. But it also made me realise how far we still have to go.

We still have politicians telling us that your worth is dictated by your race. Or your religion. Or your clothes.

We still have teachers telling girls that computing isn’t really for them. That maths isn’t for them. That science is for boys. Most of them don’t say it outright now. But in a hundred tiny ways, girls are steered away from the “hard stuff”. In the questions directed to the boys, because the girls might not know the answer. In the career suggestions. In the level of support and encouragement.

But we know that women were central in the start of computing. From Ada Lovelace to Grace Hopper. From Mary Johnson to Anita Borg. Women have figured in computing every step of the way – and they have frequently had to overcome extreme obstacles to do so, while all white men had to do was pick up the opportunities strewn at their feet.

I still get shocked looks when I tell people I am a Computer Scientist. A PhD in Computer Science is still something women aren’t expected to have. And the numbers of women going into technical fields remain horrifically low, because we are constantly told it’s not really our kind of thing. And too many of us believe it.

So go see Hidden Figures. Take your kids. Take your students. Take your friends. And tell your students, your children, and everyone you meet, that the colour of their skin and the arrangement of their chromosomes tells them ABSOLUTELY NOTHING about who they are and what they can become.

The sky isn’t the limit anymore. We’re aiming for the stars.


Posted in Uncategorized | Tagged , , | 3 Comments

Demystifying the Digital Technologies Curriculum, F-6 (Part 2)

Now that it’s school holidays I finally have time to think. Part 1 of my “Demystifying the dig tech curriculum” post went a little viral – as much as a post on a niche Computer Science Education blog can – and there were a lot of requests for Part 2, so here it is. Once again, all constructive feedback gratefully received!

It’s probably best to read Part 1 first, as I’m starting where I left off. This is the beginning of the next strand: Processes and production skills.

F-2 3-4 5-6
Collecting, managing and analysing data Collect, explore and sort data, and use digital systems to present the data creatively (ACTDIP003) Collect, access and present different types of data using simple software to create information and solve problems (ACTDIP009) Acquire, store and validate different types of data, and use a range of software to interpret and visualise data to create information (ACTDIP016)

“F-2 Collect, explore and sort data, and use digital systems to present the data creatively”

This is another simple one, that F-2 teachers are already doing: Collect some data, like the hair colour of everyone in the class, or everyone’s favourite fruit. Then you can either graph it (simple pi charts, bar graphs etc), or draw infographic style pictures to represent it, like this (although you would, of course, include better labelling than this lazy Computer Scientist has! :):


This one explicitly says use digital systems to do it, so you would probably use a spreadsheet package like Excel or Google sheets.

“3-4: Collect, access and present different types of data using simple software to create information and solve problems.”

Another thing you’re already doing: collect some data, graph it using a spreadsheet program or some online tool, and try to answer questions like: What is the most popular fruit in class JB? Or better yet, incorporate it with some environmental sustainability and graph which class collected the most rubbish on Clean Up Australia day. And that’s a good one because you can graph it by weight or by piece count, or by rubbish type: wrappers vs bottles vs cans, for example. And you can then try to graph which class has made the most improvement to the environment – which type of rubbish is worst, and who has collected the most of it? Ok, I might be getting carried away here, but you can see how this goes. These types of activities always work best when they’re tied in with other things the kids are already doing, so that they can see the point.

“5-6: Acquire, store and validate different types of data, and use a range of software to interpret and visualise data to create information”

This is really the same as the examples above, but ramped up a little. The data above was all discrete, simple values that you can aggregate: 5 blondes, 4 brunettes, 1 redhead. Or 6 prefer strawberries, 3 prefer apples, and 1 prefers oranges. For 5-6 you could start collecting continuous data like heights that is a bit more complicated. If you graphed the heights of everyone in the class as a bar chart you would likely wind up with 25 different entries on the graph, so you need to aggregate them somehow, like 100-110cm, 111-120, etc. This is a frequency graph or histogram. You can still use a spreadsheet to graph this, or you can make it an art and communication lesson by getting them to draw pictures in drawing software like Paint on a pc, or drawing or whiteboard apps on tablets, that are creative but accurate – for example using relative size, or number of items to represent the different values.

Creating Digital Solutions by:

F-2 3-4 5-6
Investigating and defining Follow, describe and represent a sequence of steps and decisions (algorithms)
needed to solve simple problems (ACTDIP004)
Define simple problems, and describe and follow a sequence of steps and decisions (algorithms) needed to solve them (ACTDIP010) Define problems in terms of data and functional requirements drawing on previously solved problems (ACTDIP017)


F-2: Follow, describe and represent a sequence of steps and decisions (algorithms)
needed to solve simple problems”

This is our first encounter with the dreaded A word: Algorithms. You’ve actually already met algorithms in the form of recipes, LEGO instructions (which are particularly interesting because they are largely visual, not text based), and any set of instructions you’ve ever followed. Kids will be familiar with these too, so you have a starting point. Next time you do a cooking activity, talk about the steps you follow, the decisions you have to make – like: is the chocolate melted yet? If so move on to the next step, if not, heat it some more. Introduce the word “algorithm” for the recipe, and boom! – This line in the curriculum is nailed.

3-4: Define simple problems, and describe and follow a sequence of steps and decisions (algorithms) needed to solve them”

Here the kids need to define a problem, like “how can someone find my desk from the door of the room?” and then specify the set of steps that someone would need to solve that problem. Then they can follow each other’s steps and see if they work. This is a fun one because you tell the kids to follow the instructions as dumbly as possible, to find problems with the algorithm. For example, if the instructions say “Walk towards the back of the room until you get to my desk” they will walk into any furniture that happens to be between them and the desk if they are really following the instructions blindly, the way a robot would. Similarly, if the instructions say “walk through the door” and the door is closed, there is a step missing that could result in a very sore nose!

“5-6: Define problems in terms of data and functional requirements drawing on previously solved problems”

To be honest, this one seems a bit strange in this context. To me it makes sense in terms of software design, but for Grade 5/6 kids it seems a bit of a reach. For kids programming in Scratch, Snap, or other visual programming languages, you can only really skim the surface of an instruction like this.

So I take it to mean that you need to lay out the problem clearly before you start to write a program to solve it. Spell out what you are going to do, and what data you are going to do it with – for example if a student is writing a program to draw a spiral, they might ask for user input for the colour and size of the spiral. This is their data. And functional requirements simply mean defining exactly what the program is going to do – in the above example, the functional requirements might be “draw a spiral in a colour specified by the user, with as many layers as the user asks for.”

The other part of this one is to relate the new problem to previous problems. How is this problem similar to something you have solved before?  eg drawing a spiral is like drawing a circle, but your line has to move outwards each time rather than finishing where it started.

The next row in the table has to come as something of a relief to lower primary teachers. 🙂 The good news is that it’s actually not hard for 5-6 teachers either.

F-2 3-4 5-6
Generating and designing Design a user interface for a digital system (ACTDIP018)

Design, modify and follow simple algorithms involving sequences of steps, branching, and iteration (repetition) (ACTDIP019)

5-6: Design a user interface for a digital system

This step is not nearly as daunting as it sounds. In a Scratch program it simply means laying out how a user will use the program. So if it’s a game where you have to click on, say, balloons, in order to pop them, the user interface will be the start button, maybe a speed selector, and using the mouse to click on the balloons. Any interaction the program makes possible – any way the user can do something to change something in the program – is part of the user interface. So anything the user will be able to do – choose a pen colour, change the speed or size of an object, click on something to make it react – is part of the user interface and can be described before the program is actually written.

These goals are all aimed at teaching planning, as well as tech stuff. It’s really easy, even for experts, to just sit down and start doing stuff before they think about what it is they are trying to do. So here the curriculum is saying “let’s think about what we’re going to do, and even write it down, before we actually try to do it.”

5-6: Design, modify and follow simple algorithms involving sequences of steps, branching, and iteration (repetition) 

Here we’re talking about algorithms, or recipes, not code. So this one is about being able to lay out the steps involved in solving a problem, using repeated steps (iteration – for example “keep beating until the egg whites are stiff”, “keep walking until you reach the stairs”, or “while there’s still LEGO on the floor, pick up a piece and put it in the box”), branching (testing to see if something is true, for example “if it’s dark, turn on the light”, or “if the cake is  a chocolate cake, add cocoa, otherwise add vanilla essence.”)

 F-2  3-4  5-6
Producing and implementing Implement simple digital solutions as visual programs with algorithms involving branching (decisions) and user input (ACTDIP011) Implement digital solutions as simple visual programs involving branching, iteration (repetition), and user input (ACTDIP020)

3-4: Implement simple digital solutions as visual programs with algorithms involving branching (decisions) and user input 

Write a program in a visual programming language such as Scratch, Snap, or Blockly that has decision points (if statements, also referred to in the curriculum as “branching”), and user input. An example might be a program that asks the user if they want to draw a square. If they answer yes then it draws a square, otherwise it says “Bye Bye then!”


5-6: Implement digital solutions as simple visual programs involving branching, iteration (repetition), and user input 

This is the same as the 3-4 version except now we’re including iteration (loops, or repetition). So the simple square program above can be rewritten to make the repeated bits simpler and just say “do the line and the turn 4 times” instead of spelling out 4 sets of lines and turns:

Screen Shot 2017-01-18 at 7.55.29 am.png

Once again this has become a little long and I’m not finished yet! So in the best entertainment traditions I am going to end on a cliffhanger (ok, maybe it’s less of a cliff and more of a small step, but work with me here!) and leave you keen for part 3 (I hope!). The good news is that Part 3 will be much shorter. If you find this useful, please share it widely.

These posts are also going to form the basis of a series of Professional Development workshops run by former students of mine (only for Victoria at this stage, but there’s hope for online workshops in the future), so if you’re interested in those, and/or coding workshops that are directly tied to your existing curriculum, please fill out the poll below (purely to gauge interest levels, no names or contact details will be recorded) and watch this space!

Posted in Uncategorized | Tagged , , , | 2 Comments