NEWS$show=/search/label/news

Here's where you'll find all the latest news about technology for children. We love to follow cool new inventions on Kickstarter and we hunt out all the latest announcements about tech toys and gadgets for the coming Christmas holidays. You'll also get our take on children's technology stories in the media.

REVIEWS$show=/search/label/review

Our kids technology product reviews are intended to help you work out whether a toy, gadget or kit is a good fit for your child or family. There's lots of cool stuff available, but is it the right choice for the child or teenager that you are buying for? We'll help you make the right choices and get the best value for money.

GIFT GUIDES$show=/search/label/gift%20guide

Parents, grandparents, aunts, uncles, and friends assemble. We create gift lists to help you make good choices for kids technology which helps them develop the right skills for the future. We research the best in Coding Toys and Games, Making / Craft Tools and Kits, STEM/STEAM related gifts, Programmable Robots, Electronics Kits and Gadgets for Tech Age Kids and Teens.

PROJECTS$show=/search/label/project

Get crafty with technology. Here we'll post all our ideas and projects using technology to get creative and making with kids. You'll find anything from making a lemon battery to a glow-in-the-dark Minecraft sword. Our projects are tried and tested on our own kids or at events we run, so we are sure you can have a go at home with your kids. Some of our projects use specific tech gadgets which we provide links for you to purchase.

Graphical vs Text-Based Coding for Kids


It's often assumed that children need to progress from graphical programming languages such as Scratch to text-based programming languages such as Python or JavaScript. I find this ironic as I spent much of my career working on developing graphical languages to make software development more accessible to adults with subject knowledge rather than coding expertise. I also spent a lot of time developing software using graphical languages (often with some text mixed in.)

This article is going to get into some detail. For parents wondering whether their child needs to move on to a text-based language, the summary is:
  • Graphical vs textual isn't really that important an issue. 
  • It's whether a particular language allows your child to do what they want to do in a way that's efficient and enjoyable for them. 
  • Start with what they want to make and find a good language for that which is suited to their expertise level and the way they think. 
  • It's a myth that adults don't use graphical languages. They do. 


For more information see Pixel Art Advent Calendar - A Chocolate Alternative

Why are we Teaching Kids to Code?

First let's take a look at why we are teaching kids to code. Some kids are the programmers of the future. Other kids will have jobs that require some element of coding to support other skills. Others will just need to have been exposed to coding to have a better understanding of the world they live in and to be able to take control of it.


    What are we Trying to Teach Kids?

    When teaching young children, my goal is not to teach them vocational skills. I'm trying to teach two major things:


    1. the ability to make projects that are useful / interesting / entertaining to them now and,
    2. transferable knowledge about computational thinking that will enable them to make things that are useful / interesting / entertaining / profitable in the future.


    When you're teaching teenagers who are interested in programming, robotics, etc then learning relevant industry skills becomes a factor. You can also make this case for highly able younger children, especially when they have parents who are willing to help them use programming languages they are familiar with but are less motivated to help with children's programming languages.


    What is a Graphical Language / Text-based Language?

    It's easier to define text-based programming languages. These are languages that are typed using a keyboard and stored as text files. 

    A graphical or visual language typically uses drag and drop rather than typing. It may use icons or textual labels on blocks or elements. GUI elements such as dialogues and drop down selection menus are often used.

    Block languages such as Scratch and Blockly-based languages are very popular for children. 

    Typically when people talk about text-based languages they are referring to programming languages such as Python, Lua and JavaScript which are 'real' programming languages that are used by professional software developers. 

    Interestingly there are text-based programming languages for children such as Logo and Sniff (based on Scratch, but textual) which can be seen as a stepping stone between graphical languages and textual ones. 

    Ease of Learning / Remembering

    One of the important features of graphical languages is that children don't have to remember a list of commands or a complex syntax, it's just there in the environment. This is such a huge thing when kids are learning a programming language. 

    A lot of professional software developers spend tens of hours each week programming in the same language. This means they can remember lots of knowledge about syntax and APIs so it's instantly available when they need it.

    Kids tend to have other commitments. Many children will only write code once a week in a 45 minute lesson for a few weeks each year so they never reach mastery and are constantly needing to look things up.

    My younger son loves to use SAM Labs electronics components to make crazy contraptions. He can easily go a few weeks between using them and still be able to instantly remember how to connect them up in the graphical editor. If he was using a text-based language to achieve the same thing then I'm sure he would find it harder to pick up where he left off. In fact, SAM Labs does use text-based coding to go beyond the basics, and I forget how to use it in between sessions when I help my son (the sooner they can move more of that capability up into the graphical layer the better.)

    Of course, it's possible for a programming environment to help with the ease of learning and remembering for text-based languages. A good IDE (integrated development environment) helps with this a lot. But the breadth of a typical programming language makes it harder to present the whole language in such an accessible way as in Scratch or a Blockly-based language.

    Syntax Errors

    Syntax errors are a pain for adults and kids. Who wants to spend ages working out that they've missed out a colon that should obviously be there, counting brackets or spotting a spelling mistake?

    Yes, good editors can help you spot these errors, but even better editors mean that you can't make those mistakes in the first place. In Scratch you work directly with a coding concept rather than having to break it down into something you can type. (This can be frustrating if you want to swap a repeat for a forever loop for example, but that's not a hard thing to do, it's just work - the tricky thing is made easier.)

    Kids often don't have access to the best tools so end up in situations where they do struggle with syntax errors. I've found that Code Combat is a great way to introduce kids to text-based coding and IDEs, but it's not a generic programming environment.

    There are efforts to bring the benefits of graphical editing to text-based environments for children (such as Frame-Based Editing.)

    Icons vs Text

    Some graphical languages rely on pictorial symbols or icons, for example LEGO Mindstorms uses an icon-based notation in its software.

    Pictures are often used to enable children who can't yet read to code. Once children can read, an icon-based system need to be very well designed to compete with textual labels. If a child is having to map from a picture to a word in their mind to understand what they're seeing then you've just added additional complexity.

    Languages such as Scratch and Blockly use textual labels on graphical elements that can be dragged around. In my experience this works really well for children who can read.

    Graphical Doesn't Mean Dumbed Down

    Professional software developers often assume that languages such as Scratch are 'dumbed down' versions of programming.

    That's not the way it works. What Scratch does is remove the extraneous details that aren't actually necessary so that kids can quickly get from an idea to running code.

    Instead of spending ages discovering that they have missed a colon from the end of a line, kids are able to spend more time thinking about the logic of their project. They actually spend more time on computational thinking and less on keeping the computer happy.

    Scratch can be as difficult as you need it to be. You can draw fractal trees and hit complicated synchronisation problems.

    I looked at this topic in more detail in Scratch isn't proper computer programming is it?

    Linear vs Alternatives

    One of the features of text-based languages is that they are inherently linear. Text-based languages aren't good at showing connections between different bits of code (though of course those connections are there and must be worked out by a parser.) 

    Graphical languages typically support non-linear layout. Modern programming, especially games, hardware and internet-of-things based coding is often event-based and concurrent. Code isn't like a book, it doesn't progress sequentially from beginning to end.

    In Scratch I can lay out code to move a sprite like this:



    This maps directly to the actual movement of the sprite (and to the keyboard layout.) In a text-based language it would need to be placed in an arbitrary sequence and you would lose that additional information.

    I took a look at Sonic Pi, a text-based language for coding music and found it very disconcerting to have to place code that runs concurrently in a linear sequence.

    Scratch has the ability to layout code in 2D space so if you're writing music that runs concurrently you can organise it horizontally, or place it in different sprites that automatically run concurrently. Concurrency is a very natural concept in Scratch.

    Scratch is still mostly linear though. It can be difficult to understand behaviours that depend on one sprite broadcasting a message and others receiving it. 

    Wonder Workshop have taken a different approach with their Wonder language for the Dash & Dot robots. This uses a flow-based approach. Flows are often used in describing business processes in a precise (and sometime executable) manner. State machines are often used in control systems and are a useful way of capturing the behaviour of systems that behave differently depending on their current state.

    Coding in Minecraft is very interesting, it mixes textual commands and blocks in 3D space. The code is actually part of the world, and to a lot of kids Minecraft is just as real as the real world. (Think Internet of Things and then some!)


    (I haven't even touched on teaching children about artificial intelligence and machine learning which requires different styles of language, more on that in future.)

    Graphical isn't Necessarily Slower

    Adults who don't spend a lot of time with children who are learning to code often assume that coding in a graphical language is slow. It might feel slow to an adult who is comparing with the time it would take them to write code in a text-based editor.

    Very few children can touch type so actually watching them type textual code is a very painful experience. (Yes they should learn to touch type, but that's another topic!) They also introduce lots of errors like spelling mistakes and extra spaces.

    Also most of coding time is thinking time. It's working out what you want your app to do and which code to use that takes most of the time, not actually entering it into the computer. 

    What about Touch Screens?

    For many kids growing up now their first experience of a computer is a phone or tablet with a touch screen. Graphical languages translate very well to a touch interface. Lots of young kids can work much more quickly with a drag and drop interface on a tablet than they can with a keyboard and mouse/trackpad. And lots of teens have a phone with them at all times.

    There are lots of apps such as Scratch Junior and Pocket Code that use a touch interface effectively to allow the phone/tablet generation to write code.

    Microsoft have created the Touch Develop language with phones and tablets in mind. It's textual, but reduces the actual typing required by using a tap interface. This is definitely an idea worth exploring.

    Apple are launching the Swift Playground app which will teach children to write the textual Swift language but using the multi-touch capabilities of the iPad.

    Children are often Creating Graphical Apps

    Children are often creating graphical apps and games. Graphical languages often have a closer connection between the end result and the language used to create it.

    For example you can click on a sprite in Scratch to edit its code. This direct connection reduces the cognitive overload in developing a graphical app.

    In Minecraft the code is actually built into the environment. Control flow is achieved with redstone dust which is placed in the game.

    Kids like Graphical Environments

    Most kids prefer a graphical environment, it's more fun and feels less like hard work. A text-based environment can seem quite dry. Companies like Tech Rocket are trying to make text-based coding more fun - see their free Python Tutorial.

    Harder isn't Better

    It can be really frustrating for a child who is good at coding games in Scratch to move to an environment where it's actually harder to create similar games. It's not 'more grown up' to have to do more work than necessary.

    Sometimes it's necessary to make things harder as a trade-off to get more flexibility. But in other cases I think professional software development languages and environments could learn a lot from Scratch and similar languages.

    What about Graphical and Text-Based?

    There's a trend towards offering children tools that allow a block-based and text-based view of the same code with the text-based view being a 'real' programming language.

    For example this is offered in Code.org, Code Kingdoms and the Microsoft micro:bit block editor.

    My 9 year old is currently learning to code Minecraft mods using Java with the Code Kingdoms block-based editor.

    This is quite a good approach although it can drag some of the baggage from text-based languages into a graphical environment.

    What about Kids Versions of Languages?

    The Ready programming language allows children and teens to write games in an environment that runs on top of the Unity games engine.

    This is an interesting approach which addresses one of the main criticisms of languages like Scratch - you don't end up with an app that you can just run outside of Scratch or submit to an app store.

    Adults use Graphical Languages too

    Graphical languages can be more efficient when used only for occasional tasks, or by people who have subject knowledge rather than just being programmers.

    Programming is increasingly entering everyday life. IFTTT (if this then that) is a very popular service that allows people to automate their lives. It uses a visual editor to create rules. You don't have to learn a complicated syntax to use IFTTT you just use a custom editor. Is it really coding? Well it achieves something that you would have to write code to do otherwise, it's what's needed to enable more people to code their lives without needing to learn a complex language.

    Games engines often combine graphical editors with text-based code for lower level details.

    Software companies are always looking for ways to enable less-technically focussed 'business users' to program solutions. These users typically understand (and are defining) the 'business processes' for their organisation which determine things like how a bank account operates or how discounts are applied. They need to be able to accurately specify this behaviour so that a computer can execute it but they don't want to be worrying about things like syntax errors, importing libraries and casting an integer to a string so that you can include it in a message.

    There's also a trend towards enabling adult non-experts to use visual languages to allow them to get up and running quickly. For example, this article gives lots of examples for visual programming for the Internet of Things. For many people coding is a means to an end, not the end itself! If block-based environments make coding accessible to more people that's fantastic.

    Maybe a lot of the children learning to code today will end up using graphical languages in their jobs and hobbies rather than textual ones.

    Some Kids will Love Text-based Coding

    Some kids will absolutely love text-based coding from a young age. There's certainly no need to stop them and every reason to encourage them.

    Plenty of young children are capable of writing HTML & CSS and learning Python, JavaScript or Lua. And for some the lure of writing Minecraft mods will get them learning Java. At the moment those languages are the best tools for many tasks. And some kids will just love learning to program for its intrinsic academic value.

    This is all great stuff. I would have been one of those kids! (It was Spectrum Basic and C on the Amiga in my day though.)

    But it doesn't mean that all young kids need to learn a text-based language or that text-based languages are 'better'.

    Summary

    Text-based coding isn't the goal for young children. Coding in Scratch and other graphical languages isn't just a stepping stone for getting to Python and Java. It's useful in its own right and some children will go on to use graphical environments as adults.

    The goal is to give kids the skills to make digital projects and to give them transferable skills that apply whatever programming language they are using.

    Of course some children will go on to be software developers and they will need to learn the languages that are in use in industry. But they should learn a text-based language because it's the right tool for the projects they're trying to build, they are interested and/or it's a useful vocational skill and it should be when their typing is good enough to avoid frustration. Until then, there's plenty to learn from graphical programming languages.

    I'd rather teach a child to be able to use Scratch to create fantastic projects enthusiastically than have the same child struggling with syntax in a text-based editor. They will have learnt far more about computational thinking and have a better understanding of the world of technology around them.


    Next: Why Should Kids Learn About Robotics?


    Name

    2013,13,3d printing,5,3DTin,2,accessories,1,activities,1,adafruit,1,adventure games,1,amazon,12,amazon fire,2,amazon prime,1,android,6,angry birds,1,animation,6,anki,1,app,18,app toy,4,app toys,8,appcessories,1,apple,1,apps,25,arcbotics,1,architecture,4,arckit,9,arduino,33,art,1,artificial intelligence,5,astronauts,2,astronomy,1,augmented reality,11,automaton,1,awards,1,battle bots,2,battling robots,2,bedtime,1,big kids,99,big tablets,1,bigtrak,1,bike,1,binary,1,birthday,4,bitsbox,1,black friday,2,blockly,1,blogging,1,bloxels,1,bluetooth,2,board games,7,books,34,boolean box,1,breadboard,2,bricks,1,brixo,1,buying guide,5,camera,4,cameras,1,card game,1,careers,2,catroid,1,celebration,1,cellphone,1,ces,2,chemistry,2,chess,1,christmas,42,circuit cubes,1,circuit playground,8,circuit scribe,10,cleaning,1,climbing,1,code clubs,1,code-a-pillar,1,codebug,1,coder,2,coding,169,cognitive learning,1,communication,1,comparison,1,competition/challenges,9,computational thinking,3,computer,2,computer games,1,computer science,2,computer vision,2,computers,1,computing,1,conductive playdough,2,connected toys,7,construction,40,conversational ai,1,cozmo,1,craft,34,craft cutter,3,creative thinking,1,creativity,3,crochet,1,crowdfunding,119,css,1,cubs,1,curiosity,1,curious chip,1,cyber monday,1,dads,1,data,1,deals,4,dens,2,design,10,design process,1,design thinking,7,digital parenting,2,digital skills,13,disability,1,disney infinity,1,dog tech,1,dolls,2,drawing,2,drones,2,duinokit,1,earth day,1,Easter,4,ebooks,11,eco,1,edblocks,1,edison,5,edtech,1,education,79,egypt,1,electricity,1,electronic pets,2,electronic toys,2,electronics,141,electronics kit,3,electronics kits,1,electtronics,1,elementary,1,elenco,2,energy,1,engineering,17,entertainment,1,ereader,1,ereaders,6,esafety,1,escape the room,1,event,21,ewriter,1,exercise,4,family,12,family tech,2,fathers day,1,Festival of Code,1,fiction,1,fitness tracker,2,flotilla,3,flow charts,1,flutterbye fairy,1,flying,1,force awakens,2,force friday,2,future,2,gadgets,36,games,35,games console,2,games consoles,8,gaming,3,gift guide,53,gifts,12,girls,23,giveaway,4,glow in the dark,1,google,1,grace hopper,1,grove,1,hackaball,2,hacksoton,1,halloween,12,halloween costumes,1,hardware,2,headphones,1,health,1,hexbug,3,hexbug aquabots,1,hexbug project,1,high school,1,history,26,home,1,home education,2,homeschool,4,hot toys,7,hour of code,3,html,4,humanoid,4,ICT,1,in app purchasing,1,indiegogo,13,industry event,9,innotab,5,innotab 3,3,innotab 3s,1,internet access,1,interviews,1,invention,4,ios,3,IoT,4,ipad,7,ipad mini,1,iphone,2,jacquard,1,japan,1,java,1,javascript,5,k'nex,7,k'nex robotics,1,kano,8,keyboard,1,kickstarter,91,kids,3,kindle,5,kindle fire,8,kit,2,kits,5,kodu,1,kubo,1,label printer,1,languages,1,laptop,1,laptops,1,last minute,1,leap motion,1,leapfrog,2,leappad,7,leappad 2,3,leappad ultra,3,leappad2,1,leapreader,1,learning,5,learning resources,5,learning tablet,2,learning tablets,9,leds,2,lego,36,lego boost,1,lego chain reactions,1,lego mindstorms ev3,5,lego power functions,2,lego technic,5,lego wedo,2,let's start coding,1,lights,1,lightseekers,1,little kids,110,littlebits,16,logiblocs,1,logic,3,logical thinking,4,loom,1,machines,1,magnetic,1,make it,2,makeblock,16,makedo,1,maker,6,makey makey,6,making,54,mardles,1,mars,1,mars rover,1,marty,1,math,3,maths,1,mbot,6,mbot ranger,1,me arm,1,meccano,6,meccanoid,5,meccanoid 2.0,1,merge vr,1,mews,1,michael faraday,1,micro:bit,9,microbit,6,microcontroller,5,microscope,1,microsoft,2,middle school,6,miles kelly,1,mindstorms,3,minecraft,21,minecraft mods,1,mixed reality,1,mobile,1,modular electronics,2,monsters university,1,morse code,2,mothers day,4,motion capture,1,motors,2,mover kit,3,movie,1,movies,4,mu,1,mu toys,1,munzee,1,music,10,my first robot,2,national dog day,1,nature,1,new year,1,news,168,news coding,1,nikola tesla,1,nintendo,2,nintendo switch,2,ohbot,3,ollie,3,on the web,1,opinion,19,origami,1,osmo,4,outdoors,13,ouya,1,ozobot,10,papercraft,3,parental controls,2,parenting,34,parrot,1,pc,1,people,8,pet tech,2,pets,3,phone,1,photography,1,photon,1,physics,3,pi day,1,picks,2,pimoroni,1,pinoccio,1,pixel kit,1,pixelart,4,play,2,playstation 4,3,plezmo,1,pocket code,1,pocket money,1,pokemon,4,pokemon go,4,poll,1,pre order,1,pre-teens,1,prehistory,1,preschoolers,41,primary,41,printable,1,products,34,professor einstein,1,programming,15,project,102,projects,11,puzzles,4,python,10,racing,1,raspberry pi,29,reading,12,reivew,1,remote control,1,research,3,resource,34,resources,2,retro,2,review,219,rights,1,robot,10,robot dog,1,robot fish,1,robot wars,3,ROBOTERRA,1,roboticals,1,robotics,32,robots,140,role models,1,role play,1,romo,1,romotive,1,root,1,rover,1,safety,2,sam labs,6,samuel morse,1,sandbox,1,schools,3,science,16,scratch,44,scratchjr,2,screen time,2,screenless,15,screens,1,sensors,5,servos,1,simbrix,7,skills,1,skylanders,3,skylanders superchargers,1,skylanders swap force,1,smart pens,1,smartphone,1,smartwatch,1,snap circuits,2,social media,1,solar power,2,soldering,2,sonic pi,1,sony koov,1,sound,3,space,8,sparki,2,speaker,3,speech sythesis,1,sphero,12,sphero mini,1,spider,2,star wars,6,stars,1,STEAM,1,stem,10,stikbot,1,stop motion,2,stop motion studio,1,storage,1,story,2,strawbees,2,students,1,subscription,5,subscriptions,1,sugru,1,summer,7,swift,1,tablet,2,tablets,23,tangible coding,2,tech,3,tech age,1,tech craft,4,tech is bad,7,tech is good,4,tech toys,21,tech will save us,10,technology,2,technology will save us,3,teens,61,teknikio,3,tekno,1,teksta,1,tenka labs,1,tesla,1,textiles,1,thames & kosmos,2,the extraordinaires,1,tim berners lee,1,tinkercad,1,tinybop,3,toddlers,8,toot-toot,1,top pick,4,touch,1,toy,1,toys,5,travelling,1,TV,1,tween,1,tweens,118,tynker,2,typing,1,ux,1,vehicles,1,videos,3,view-master,1,views,10,virtual reality,8,voice assistants,1,voice recognition,2,vtech,8,web,2,websites,1,wifi,1,wii,2,wii u,2,windows 8,1,wonder workshop,9,wowwee,2,writing,7,writing. education,1,xbox one,2,xyzprinting,1,
    ltr
    item
    Tech Age Kids | Technology for Children: Graphical vs Text-Based Coding for Kids
    Graphical vs Text-Based Coding for Kids
    https://4.bp.blogspot.com/--91aoyweNF4/V4ZUHkQda4I/AAAAAAAACOI/7vnn39RZixUR3fKekdePLv4W_K0gyAQ2gCLcB/s640/graphical-vs-text-based-coding-for-kids-head.jpg
    https://4.bp.blogspot.com/--91aoyweNF4/V4ZUHkQda4I/AAAAAAAACOI/7vnn39RZixUR3fKekdePLv4W_K0gyAQ2gCLcB/s72-c/graphical-vs-text-based-coding-for-kids-head.jpg
    Tech Age Kids | Technology for Children
    https://www.techagekids.com/2016/07/graphical-vs-text-based-coding-for-kids.html
    https://www.techagekids.com/
    https://www.techagekids.com/
    https://www.techagekids.com/2016/07/graphical-vs-text-based-coding-for-kids.html
    true
    15639169850959392
    UTF-8
    Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy