Monday, 31 July 2017

HOW AND WHY TO TEACH YOUR CHILD TO CODE

Whether or not your child grows up to be the next Zuckerberg, programming is a highly useful skill for him or her to learn. It teaches vital problem-solving, creativity, and communication skills. Plus, it can be downright fun for you both.

It's hard to imagine the amazing apps and tools our kids will develop when they're older if we get them started on learning how to tinker with codes now. But most importantly, when you introduce your child to programming, in the process he/she's not just learning to code, but also coding to learn, as MIT professor Mitchel Resnick writes.
At 6, 7, 8 or even 9-years old, children may be too young to think of codes in terms of "If-then" statements, true, but the impetus is still the same: they want to play games (how about making the game?) and don't even question that the tools are within their reach. The absolute dexterity with which some of our kids play these games should make us wonder; who taught them how to play these games so well within such a short while the iPad (tablet PC) or mobile device was handed them. Now, let’s put their curiously daring minds to more fruitful ventures; LETS GET THEM TO MAKE THEIR OWN GAMES, LET’S GET THEM TO MAKE THERE OWN ANIMATIONS AND SHARE WITH THEIR FRIENDS. What an awesome experience this is gonna be. Thing is the awesome apps available today engage their curiosity and teach them the fundamentals through exploration and play, which are by far the best way to learn.
Here are some of the best tried-and-true apps for teaching kids of all ages how to code. Many of them are iPad-based, simply because that touch interface is more intuitive for young kids, but there are desktop and web-based apps as well for students of all ages.

Programming Games for the Youngest Learners

The best apps for the youngest children are centered more on graphics and simple animations than the actual code itself. While most of these types of game-like educational apps are rated for ages 8+, if your kid is old enough to read, understand cause and effect, and motivated, you can introduce the games below to even pre-K learners.
Daisy the Dinosaur (iPad, free): This app prompts kids to manipulate a character, Daisy, through challenges that involve loops, events, and other programming basics (e.g., when touched, move dinosaur forward). It's a very stripped-down, basic program, but the simplicity is a big plus for young kids. There's a free-play version in this app as well, so you can make Daisy jump in the air or walk backwards at will. (The novelty of this, however, wears off as soon as kids discover the stellar kids' animation tool Toontastic, which doesn't teach code logic, but rather storytelling basics).
Move the Turtle (iPhone/iPad, $2.99): Similar to Daisy the Dinosaur, Move the Turtle teaches basic programming concepts by manipulating one graphical object through challenges. Yes, a cute turtle (like Logo back in the late '60s to '80s). Though with slightly less functionality than Daisy the Dinosaur, this app comes highly recommended. With Move the Turtle, kids can learn a great deal of logical programming concepts, as Wired's Geek Dad asserts; (I prefer Move the Turtle's puzzles and interface over Daisy the Dinosaur, but who am I to argue with a 7-year-old?)

Graphical Tools for Beginners of All Ages

Moving past the simple single-character-manipulation apps, you'll find apps that teach programming through drag-and-drop interfaces with coding blocks. Think LEGO, but with code. In these, your child can pull in code parts to manipulate more than one object (and access more commands, variables, and events) to create animations or games.
Hopscotch (iPad, Free): From the makers of Daisy the Dinosaur, Hopscotch is a visual introduction to programming for kids ages 8-12. Kids can select preset characters or create text objects and manipulate them by dragging-and-dropping method blocks. For example, you can move an object by a set amount on the X-Y axis, change the scale, or repeat actions. The app offers just right amount of controls for kids just starting out. They're very limited in what they can do, but this means kids can play with the iPad on their own and learn how each basic method works. (So, you don't have to feel guilty saying "Find out for yourself" when your kid asks "How do I make the monkey move backwards?")
Scratch (Web, Free): An MIT project specifically designed for kids ages 8 to 16, Scratch has been used by educators and parents around the world to help kids develop animations, interactive stories, and games through drag-and-drop code blocks. It was the first programming tool I introduced my first summer students to when I started out, and it was a wonderful experience for all of us. I remember in one of our sections pupils refused going home at end of the class because they all got to a certain point (bug) and they insisting on staying back to fix or I show them how so they can continue with other steps to finish a game we were creating. Well, time was up we had to go to finish it up in a subsequent class. Scratch remains their favorite programming tool, mainly because it offers so much control. It's like Hopscotch, above, but more robust, and like App Inventor, below, but more user-friendly. In Scratch, there's a huge gallery of objects you can use or customize. And with the vast array of methods available, you can make them do just about anything. Although games created with Scratch can't be turned into bonafide mobile apps, your kids' creations can be saved and shared on the site.
Stencyl (Windows, Mac, Lunux; Free): It "pays homage" to Scratch but specifically designed to create games and can publish to every platform (iOS, Android, Flash, HTML5, Windows, and Mac). Over 12,000 games have been created using Stencyl; I’m trying this out someday soon. Lol.
Other suggestions: Robert Hirsch on Google+ had these additional iPad recommendations:
DynamicArt [$2.99] is much like scratch but is more focused on making procedural drawings
Kodable [Free] is very kiddie-ish and makes kids perform procedural programming to solve puzzles.

There is a similar one called A.L.E.X [Free] which does the same thing with robots
I dont think this is for a 7 year old, but there is Codea [$9.99], a Lua interpreter for the iPad. Lots of cool things have been done with it, but its object oriented and may be tough for a kid to learn unless you happen to know Lua already to help.
[To be Continued]

SYSTEM DEVELOPMENT CYCLE (SDC)

Software Development Cycle (SDC) or Software Development Life Cycle (SDLC) is a process that consists of a series of planned activities, w...