Month: February 2016

Your children want to code

Don’t panic!!

I know what some of you are thinking. I don’t know what to do with this so how am I going to help my daughter/son in coding and what is this coding? Coding is just another term for computer programming.

Great so now I have to go out and buy hundreds of dollars on equipment?

No, simply ,  the device you have at home, that you use in the family situation, 9 out of 10 times is the perfect starting position. I recommend everyone starts at part 1, however by the end of all the courses you may have to look at getting something else.

 

Part 1

 

The very first thing you have to think about before wading into the coding is what level of literacy or reading is your daughter/son? What year are they at in school? Can they read their sight words and extend themselves further.  If your child is in year 3 or above in Australia, normally their reading level is high enough for them to understand the words/syntax/programming language. Lower than this, many students aren’t able to read these words just yet, but that is OK, because they are building up their vocabulary with knowing the programming language to use.

The best place to start is Code.org .  They are a non profit organisation interested in just teaching children to learn how to code. Many students are introduced to the concept of “The Hour of Code” which is held in December annually. The best introduction to coding and gauge their interests would be to start at the Hour of Code option. Most children, well at least the ones I know, LOVE one of the three following concepts. Star Wars, Minecraft, and Frozen.

Hour of Code

There is a reason to why I have started here and not with one of the many other places that offer coding. In the classroom I encourage teachers to teach the students scratch from MIT. These options from the hour of code are based off scratch. Although a little simplified it allows students to really get involved in playing the game which is actually learning to code. This is an example of the Minecraft code.

hc2

The navigation around the page and performing instructions are relatively easy. Drag and drop with a mouse, or tap, drag and drop on a tablet. As you can see, the instructions for moving the Minecraft “Steve” around are simple for you and I, but for students that are learning to read, they might not be.

Part 2

Once your child, you feel is ready to move on from this hour of code. I would recommend moving over to SCRATCH by MIT. This offers the next step, in starting to develop a higher vocabulary of the students with more options to create you own games. This is a very simple example of a character I created in a game I made.

Diver1

 

When your child is developing quality games/animations etc. and they are ready to move on the next move is really a decision in what language do they want to learn, and what do they want to make. As far as I see it, students should take 1 of 2 pathways. The pathways more rest with what the children are trying to achieve and build with their programming. Here are the options.

Code Academy – Text based, quick easy lessons

Khan Academy – Video based, quick easy lessons

Path 1 – Visual – JavaScript

JavaScript is a programming language that is behind almost every functional webpage out there. JavaScript is one of the core ways that we process information on a webpage. However this is a double edged sword. Children who study JavaScript, eventually will have to study HTML and CSS to have their webpages looking pretty.

Path 2 – Python – A real language

Python is undoubtedly one of the most robust, but easy to use programming languages out there. Learning Python is a fantastic basis to become an extremely skilled programmer/coder. An ever growing list of companies hiring employees that use Python as their main basis. Python is extremely useful in all different types of situations from building web server, web apps, desktop apps and pretty much you name it, it can almost do it (With a few exceptions).

What do I need to do this? Equipment

This is probably the easiest and hardest questions to answer at the same time. The best way to explain my answer is what I would do with my own child.

Existing Hardware

Using your existing equipment is fantastic and the way forward for the parts 1 and part 2 of learning to code. However, when children then start to go off into the wild world of coding (not wild) on their own, then some consideration is required of what you need to be successful at it. If you have a laptop, whether it be running Windows or OSX (Macbook) there is no need to change.However if you only own an iPad or tablet of some kind, then the move to a more traditional computer would be wise. However I have another alternative.

Raspberry Pi

The Raspberry Pi sold here is available and is basically the cheapest computer you can buy. It is literally a box, that when connected to a tv or a monitor is a mini computer. The link that I provided is for the whole starter kit (about $100 worth) and would be a great way for children to learn to code. I have a few and will provide a step by step tutorial on how to set this up best for students to learn how to code.

Summary

Hopefully I have been able to provide a clear and concise pathway for children/students to learn how to code. This is just my personal opinion and not of any of my employers. The pathway I have provided hopefully will help parents/teachers view the learning steps I see as important to develop future coders. This is only the beginning on this adventure. I hope to turn this site into a gateway to introduce and engage students into the STEM fields with both teacher theory information as well as practical insights, steps, tutorials into world of coding, robots, and technology.

If you are interested in seeing what skills and different thinking skills are used in coding/programming have a look at my entry on Computational Thinking.

If you are a teacher please refer to my primary and infants coding section.

Please feel free to leave questions and comments and I will try and return to you as soon as I can.

Disclaimer: First, a little about me. I am a teacher, however I am also a programmer/coder who likes to immerse them self in as much technology as humanly possible.  So I come at this brave new world from a different perspective, what is best for both the child as an educator, and as a coder (The term coder is the cooler word for computer programmer). These views are my own and not of any of my employers.

 

 

How they come up with video game characters

This article is interesting because it shows the connections that game makers need to make between real life and fantasy. When we develop games and develop the storyline and structure around them, it is very similar to students when they are setting up and developing their narratives. There are obviously other external factors to having a good character in a game, i.e. What is known by others i.e. TV, movie and book characters.  However these factors can sometime pigeon hole the characters into certain traits.

Should you use your own name when signing up to a website?

My journey to answer this simple question was not an easy one it was provoked from a twitter discussion with @oweniken82 about whether we should have a traceable online digital footprint. I have tried to take this on from all different sides of the argument. It is a complex issue, whether it is about safety for an individual or accountability against bullying there are many facets to this argument.

Against
I personally am against having personal information available out in the wild’s of the internet where anyone can find out anything about me. Not that i’m trying to hide anything, I have nothing to hide and am open and honest to anyone I meet. However I’ve personally been bitten by having someone gain access to my personal information or my views before and I have lost a job over it.They accessed the information illegally and there were personal consequences because of that.

For
As a teacher who will be letting students roam around the wilds of the internet. If they are going to access it anyways be it at home and their parents don’t supervise their time on the internet responsibily or they get access another way why not just educate them for the reasons of responsible digital citizenship. It’s like saying well we shouldn’t let the student choose their own food yet as they don’t have enough information about healthy eating habits.

Result

Everytime you put something on the internet be it, an email, post on facebook or twitter, post a photo online you are giving out personal details and that you are publishing this information for all to see. You alone are accountable for what you post, and many times deleting something you have published and getting it completely removed from the internet is not easy.

Looking at the advice given by most of the government agencies on this matter and from my own personal experience the best advice is this.

  • You should only use your real name online when you know it is a safe secure environment
  • If it asks for a username or gives you an option for a username do so. Your username should not reveal any personal information about you as this is normally publicily displayable on a website.
  • You are old enough to be responsible for everything that you post
  • When you are shopping, banking online usually they need a proper name to address it to. This is usually a safe secure venue to do so. You do need to make sure the site is secure (look for the lock in the address bar)
  • Some competitions also ask for a real name, although you do have to excercise caution.

Relevant links
Cybersmart personal information advise
Tips from the Department of Broadband Australia

What Is Digital Citizenship?

As soon as we go online you are a digital citizen. Just like in real life your safety and security should be maintained whilst using the technology responsibly, ethically and appropriately. By participating in a digital citizenship course students are given information to educate them of their rights, and responsibilitity online especially as online interaction especially social online interaction is ever increasing these days. These skills will become more and more vital in the ever increasing ease, access and reliance on the internet. The following are some key points that should be considered when talking about digital citizenship and what it means to partake in the community. There are a few core values for digital citizenship, these include:

Digital Literacy is basically the process of teaching and learning through the use of technology, by reading this blog, commenting below, tweeting, facebook-ing or even talking to someone else about this post you are taking part in being in a digitally literate society. You are publishing this information, just like you would be if you were to put an advertisement on television or in the paper. Taking down something you have do not mean to be public knowledge is difficult and rarely acheived in this day and age as computers store everything.  

Digital Etiquette- There are basic rules of etiquette and codes of conduct on the internet that most people follow. Whilst it is possible to access inappropriate conduct or materials a certain level of self regulation is required when using the internet.

Digital Law- Yes there is a physical law about your actions online. What you can and can’t do, how you can access information, whether you can access certain information, and whether it is appropriate to do so.

Digital Rights and Responsibilities- As a digital citizen do I have a right to free speech, do I have a right to oppose a point of view? Users help to shape technology so that it is used responsibily and that basic human rights are not ignored.

Health and Well being- Apart from physical issues such as Repetetive Strain injury (RSI) and other physical aillments, there are mental conditions such as addiction, depression etc that are all involved in being digital citizens

Self protection- Keeping personal information personal. You have a right to privacy and should do so. No person should be able to exploit anothers personal information for their own benefit.

It is your responsibility not anyone else for the information you publish on the internet. The information that you post, that dodgy silly picture that should never be shown in public may one day come back to haunt you. You are responsible for your own privacy online, it is not the responsibility of the people providing the service it is yours so if you post something you should definitely not be ashamed about seeing it in lights. The reason for this is that one day, possibly many years down the track, the information that is found on the internet about you may stop you from getting a job, it may stop you from getting into university, it may stop you from leading the life that you want to live.

what are the key steps to being a good digital citizen?

 

Teaching Questions/Statements

Be aware of what Information you share

What can you learn on the internet?

What are the bad things on the internet?

Be wary on the internet – learning and playing safely online

How do you like to feel online? How should you treat others online?

What can you do if you are being bullied online?

What is your digital footprint?

What are your responsibility when you work online?

What can you use on the internet?

What can you do with friend online? How can you stay safe whilst doing so?

Choosing The Right Language – Primary

Primary

Choosing the right language and engaging students in something that works out of the box is probably the biggest challenge in coding. There are many, many different languages to choose from, and many different paths to engage in, and hopefully this will give you a nudge in the right direction. There are also different parts of programming or coding as it is now known (the cool term for it). I will try to break it down into hopefully an easy to read and follow guide on providing Programming or Coding classes within the 21st Century classroom.

Computational thinking

Computational thinking is a completely different way of thinking, it is a more logical, procedural type of thinking that what we normally encourage in the classroom. In the primary classroom especially in literacy we tell students to infer, and interpret the meaning of a text etc. This couldn’t be further from the way computers work. Computers are stupid, there I said it, they only do exactly what they are told. How many times do you think about something you have said to a student and mean another? Computers and coding aren’t like that at all.

Funnily enough, sometimes though in mathematics, we give students an open ended question asking them to give their answer and also their thinking behind it. It is very similar to this, the best way I can describe it is this.

  1. Break down the problem
  2. Is there a clue in the design of the problem
  3. Analyse for a pattern in results
  4. Provide a step by step guide on how you get the answer.

The only thing is, that you are doing these 4 steps whilst solving the problem.

You can read more about computational thinking here. 

Key Ingredients

When thinking about many of the programming languages there are lots of different options. Leaving aside HTML and SQL for the moment, and the plethora of choices of Javascript, Python, Ruby on rails, C, C++,C#, F#, PHP, Scratch et al. There are a few commonalities involved with them which I will cover.

All use variables – This is a value that can be used, and changed or not changed as it may be, to influence a program. Often known as X.

Procedural – There are two types of procedural options for when coding. The IF statement, and the FOR statement.

The IF statement is pretty simple, its known as a condition :- If X condition occurs, tell it what to do in a block of code, then exit and continue running the program. There is also an IF ELSE statement in most types of programming just in case you want it to be something else.

The For statement is a bit more complex, again its a condition but… Here is an example

For (x=0;x<10; x++) { Do something in here every time I count 1 }

However it is tricky. If a for loop is not given an exit or escape clause, it can run forever. That is why my above code is completely terrible and should never ever be run. The best way to stop a computer is to give it a continual for loop with no exit.  I will explain for loops more clearly at a later date.

Syntax – This is the way the language is structured and the language that is used. Some have specific nuiances that others don’t.

Functions – It is difficult to be general about functions though the many many different types of programming. However the best way to think of it that I can explain it is this. Most programs have a main function where the main workings of the program happens. However in this, there are different sub functions or sub programs/routines that do a specific role. If you were going to make a program on brushing your teeth, the main part of the program would be called brush teeth,  however getting your tooth brush (such a small step with many different sub steps) would be a function.

Brackets and the Semi-colon- Most languages have these and depending on the syntax and the way the language works it can be very specific.

The missing semi-colon – Will drive you nuts. One day when starting I spent an entire 8 hour day looking though 100 lines of code for ONE simple mistake.

This honestly is the briefest version of programming I could come up with. Realistically an explanation of programming takes a long time to explain properly.  This is just a taster.

Recommendations

It depends on the level on the age and level of the students. I find that getting students engaged by getting things visually moving and productive on the screen is paramount to getting success. Therefore I highly recommend a visual programming language such as Scratch from MIT. Below is an example of scratch, with a very simple animation to begin with.Both the Shark and diver have simple movements that took me all of 5 minutes to write, but you will see with the instructions below there is a level of complexity to each character.

screen
Link to the simple game

Diver1 Shark1

If students would like to move on from scratch and move to another programming language, I would then highly recommend either Javascript or Python.

Javascript, is basically the functionality behind most functional websites and apps, it is a core skill for anyone in web development, but also in development generally. Throughout most job descriptions for coders/programmers you will see some sort of knowledge of Javascript is necessary. Not only because its functional but it is also pretty straight forward.

Python is fantastic for playing with Data, building web apps, and really can be anything you want it to be these days. Its kind of the include all, hold all programming type. The University of Sydney runs a course every year for programming for years 9 and above, but with how much coding will be introduced into the Australian classrooms shortly, I think the age will come down. The course is named the NCSS or Grok Challenge Course.

Choosing the right language – Infants

Infants

Choosing the right language and engaging students in something that works out of the box is probably the biggest challenge in coding.  Now there are many, many different languages to choose from, and many different paths to engage in, and hopefully this will give you a nudge in the right direction. There are also different parts of programming or coding as it is now known (the cool term for it). I will try to break it down into hopefully an easy to read and follow guide on providing Programming or Coding classes within the 21st Century classroom.

Literacy considerations

Using words, text, and commands is not useful within the infants environment. Whilst using some of the syntax that are usually sight words could be advantageous, many students in the infant stage are learning to read, and are finding texts either frustrating or instructional and not really independent just yet. I propose that for students that find reading frustrating, this may in fact be a great way to get them involved and into the instructional or independent levels.

NB: Syntax is the language and requirements of the programming language. Just as English has its own nuances, so does programming/coding. 

Another factor is letter recognition. Students in this day and age, can see the letters on a page, on the screen etc. They may be able to differentiate the letters, they may be able to tell you what they are, what sound it is etc. However if they are on a computer or somewhere that has a keyboard that is a completely different prospect. If you ever want to have a frustrating session, I implore you to go to kindergarten on their first time ever on a laptop, and help them log in via a network. Keyboards are becoming less physical these days, with the advent of iPads etc. However students  may not be able to comprehend the layout of a keyboard vs their own knowledge. If you think about it this way, when you learn the alphabet, you learn it either in order a-z or with a specific method in mind. Now have a look at the QWERTY keyboard. It doesn’t make sense to someone that has barely ever looked at it before. Many of these students have just clicked buttons to get what they want. Typing is a completely foreign concept.

Computational thinking

Computational thinking is a new theory (read buzzword) for the way computers and their thinking works. Look I’m not going to sugar coat it, it is different way of thinking. View my blog post about it here. However the TLDR (Too Long Didn’t Read) version is this: The way computers and the thinking works is that you break down every aspect of what you are doing. In Kindergarten, many classes start procedural texts with say brushing their teeth etc. Well this is similar in a way, but a lot more complicated. It is a different way of thinking, its completely logical, as in no middle ground for interpretation or inferring, its just completely procedural.  To give you an idea here is a joke programmers make often.

From 9Gag

Complexity

Coding or Programming can be extremely complex. Below is a very simple animation I made on Scratch, which will be one of my recommendations for infants.  I will also provide the code, or what I had to make so as the diver and the shark both move. For an adult, this is relatively easy once the syntax is understood. However as this is a different way of thinking some students may struggle with the concepts.

screen
Easy Game
Diver Instructions
Diver Instructions

 

Shark instructions
Shark instructions

 

 

 

 

 

 

 

Recommendations

By far the easiest programming language for infants and students to learn would be Scratch by MIT. However as i’ve raised earlier in this article there are a few hurdles to overcome.

There are some fantastic resources with scratch.  Here are a few of them.

These are just a few, I have lots more resources I will eventually add on here.

Computational Thinking

Computational thinking is a very different way of thinking than they way we as humans normally think. More often than not, we ask students to infer, interpret and look for hidden meanings in texts, in history and most of the arts subjects.

Computational thinking is really a branch of Science and Mathematics. The basic premise of all science and maths is looking at open ended questions and solving the problem.

The best way I can explain the steps involved in computational thinking is this.

  1. Break down the problem
  2. Is there a clue in the design of the problem
  3. Analyse for a pattern in results
  4. Provide a step by step guide on how you get the answer.

The only thing is, that you are doing these 4 steps whilst solving the problem.

To give you a real world example in Kindergarten, many classes start procedural texts with say brushing their teeth etc. Well this is similar in a way, but a lot more complicated. It is a different way of thinking, its completely logical, as in no middle ground for interpretation or inferring, its just completely procedural and literal.  To give you an idea of the how abstract this thinking can be, here is a joke programmers make often.

From 9Gag

One thing to keep in mind is that computers and essentially what learning to code is all about, is that computers are only as smart as the information they are being fed. That is to say that a computer will do nothing if it gets no input, i.e. Nothing to do.

The best definition i’ve found for computational thinking by someone other than myself is below from 2006.

Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child’s analytical ability. Just as the printing press facilitated the spread of the three Rs, what is appropriately incestuous about this vision is that computing and computers facilitate the spread of computational thinking.

Computational thinking involves solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science. Computational thinking includes a range of mental tools that reflect the breadth of the field of computer science. Having to solve a particular problem, we might ask: How difficult is it to solve? and What’s the best way to solve it? Computer science rests on solid theoretical underpinnings to answer such questions precisely. Stating the difficulty of a problem accounts for the underlying power of the machine—the computing device that will run the solution. We must consider the machine’s instruction set, its resource constraints, and its operating environment —

Jeannette M. Wing, Communications of ACM, Viewpoint, March 2006/Vol. 49, No. 3

As this subject is constantly evolving, so shall this page, so please come back regularly.

BYOD is nice, but don’t forget to teach your students

Recently a few schools in the local area have turned to BYOD (Bring your own device), which has allowed the use of iPads etc in the classroom as a learning tool withouth the need of the school to provide them. I personally find this fantastic, as it allows students to be more comfortable with their devices and can use them as learning tools. This can be done very very sucesfully, which I will point out later.

However something stumbled on me whilst I was in a class the other day. These wonderful students who had their iPads already to go, charged up with personal apps on there. We were in a large room, and there was a list of tasks for the students to complete within the block. So we suggested that students bring their iPad, take a photo and be able to look at it whilst they’re at their desks. Now to be fair it’s only week 3/4 of school, so there is a bit of excitement in using these devices. However the students really didn’t know how to take good enough photos that they could actually see what was on the board. Some students had apps that they could doodle over the picture so they can annotate what they’ve completed, but some didn’t have that app. A few students were off task, looking at photos, memories etc, and one student was even messaging and sending pictures to another via AirDrop.

I understand that this situation is new for the teachers and the students, however it does seem to me that the teachers have not invested the time into teaching their students how to actually use the iPad properly, and they just assume that because they own it, they know how to use it. This seems to be not just in one school but in many that i’ve been at, that it is assumed that students just know how to use the technology because hey! They are the “i” generation after all.

I have seen the use of iPads in the classroom through BYOD system really work though. Taking photos of the board so students can concentrate on what they are doing works well. The use of apps such as explain everything, has allowed me to see students thinking in the classroom (especially for mathematics). Students with special needs sometimes thrive with their own iPads. I’ve seen some students use it to record what they want to write down, and play it back slowly to themselves so they can.

Below is a list of apps that I’ve seen that have worked well in the classroom, in a very general sense. When I have time I will publish a more exhaustive list, but for now.

  • Explain Everything
  • Doodle Buddy
  • Kahoot
  • See Saw
  • Google classroom
  • Google drive.
Flickr User: Tom Hall

 

STEM Video Game Challenge | Australia | ACER

The Challenge is completely free to enter, and represents a great opportunity for upper primary and secondary students to engage in learning about science, technology, engineering and maths (STEM) in a fun and challenging way.

Students are encouraged to work collaboratively to design and build an original video game based on STEM concepts or themes. Entries can be from individuals or from teams of up to four.

Entrants have an opportunity to earn recognition and great prizes for themselves and their school. The games will be played by industry professionals as part of the judging and the winners will be recognised at a national level, and by international bodies within the global gaming industry.

If you’re an Australian student, in Years 5-12, and you’ve got a great idea for a game – join the Australian STEM Video Game Challenge and share it with the world!

This sounds like an excellent opportunity for all students in years 5-12.

Attention Grabbers

In my march towards becoming a teacher classroom management seems to be a challenge for any new players in the teaching game. Often its described as though you go to war against mini soldiers who rely on guerrilla tactics and other forms of warfare. Though I’m more of a strategic planner and thought I would share some of my tactics in getting the students attention. These are just some of what I use in my current job of after school care.

Parrot- I think I invented this one, well I’m claiming it! Firstly you say parrot (It doesn’t have to be loud either) and then make the sound of a dog “woof” and the students repeat it back to you. So whatever noise you make the students will copy it. Some noises include, dog, cats, monkeys, chickens, ducks, cows, elephants, and tigers, anything else you can think of. Variation on this is that students can recite lines from a school charter or motto after a teacher says something like “School motto”.

The Five L’s – Students talk back to you and say the following.

  1. Our eyes are looking.
  2. Our ears are listening.
  3. Our legs are crossed.
  4. Our hands are in our laps.
  5. Our lips are closed.

This technique is fantastic as it involves Kinesthetic and whole brain teaching  for the students to follow.

The Husher– The teacher says quietly so only first few people can hear “If you can hear me click your fingers” and you vary this by tapping on the desk etc. This is a fantastic attention grabber quite seriously I have never seen a group of loud teenagers quieting down quicker apart from shouting at them.

Do this do that – a variation of Simon says where students copy your actions such as putting your hands on your head, then your shoulder, then on your lap etc. “Do this” means the students should copy you, “Do that” means the students shouldn’t copy you.

Freeze– Where everyone freezes and the first person to move is out and has to sit back down.

Clapping patterns – Where the teacher claps a pattern and the students must clap the pattern back.  Variation on this is that the students say a chant back.

1,2,3, Eyes on me – Teacher says “1,2,3, eyes on me”.

Bell Ringing, Horn blowing – the use of a bell or a horn will get their attention very quickly.

Class Dojo Having used this in a particularly loud and mischievous class, it was particularly brilliant. I used this in conjunction with a prize box, winners were those with most points in the week. This turned the class around to become a fantastic little class.

Credit: Krissy Venosdale on flickr