programming

Programmers instruct computers to perform tasks and create games, software, and websites. They can even control physical objects like cameras and robots through harnessing the power of code.

  • many of the core challenges in the quest to harness artificial intelligence to automate computer programming, but entirely miss the point of why we need to learn to code. As Cynthia [Solomon] remarked more than 30 years ago, “debugging is the great educational opportunity of the 21st Century.” Marcus and Davis do observe that “a good programmer understands, deeply, a problem that needs to be solved, and then creates an architecture for solving a problem that’s never been solved before.” The true value of learning to code is that it engages children in the rigors and discipline of problem-solving. For must learners, computation is a “thing to think with”, not an end in and of itself. –Walter Bender IAEP May 2016 commenting on New Yorker article

There are a number of web sites and applications to help you learn to program in an interesting and fun-filled environment.

  • Scratch – program your own interactive stories, games, and animations — and share your creations with others in the online community. Learn to think creatively, reason systematically, and work collaboratively — essential skills for life in the 21st century.
  • Kodable (iPad app) – Programming fundamentals and logic lessons for kids. The fuzz family crash landed on Smeeborg and they need your help navigating the Technomazes. Use drag and drop commands to direct your fuzz through the colorful lighted maze. Don’t get lost, or your fuzz might not be too happy.

Mobile apps

  • Kodable – (about $7, basic activities with free download ) – basic skills needed for learning to program
  • Preparing Kids to Code – Apps for all Ages – several apps that are great introductions to programming – varying difficulty, some free.
  • Kodu Game Lab – create games on the PC and XBox via a simple visual programming language. Kodu can be used to teach creativity, problem solving, storytelling, as well as programming. Anyone can use Kodu to make a game with no design or programming skills.

Introductory programming uses logic and problem solving skills as well as critical thinking skills. All it takes is a bit of practice. The key components to any program are:

  • Sequence of events
  • Conditional statements, ex: “If this, then that will happen.”

Algorithms. Programs. Functions. Input. Output. Scope. Feedback loop. Flow chart. Actions. Decisions.

Program. Language. Programming / writing. Testing. Syntax. Errors. Documentation. Comments.
Data. Program structures. Variables. Built-in functions. Arguments.

Logic. Relational operators. And. Or. Not. Conditional statements. If then else.
Loops. For. While. Initialize.

  • Loops – repeating set of commands up to a certain number of times in order to complete the maze.

Computer science is fun and interesting

  • block languages like Scratch, Kodu and Alice (see block programming languages
  • turtle graphics – LOGO or TouchDevelop or Small Basic
  • languages like Visual Basic that are more friendly than the semi colon and curly brace languages
  • get creative, show friends
  • applications that change the world

No introduction to programming would be complete without some tips

Meet a Programmer

Project CS Girls organization aimed to cultivate a love for technology and computer science in girls and encourage them to pursue their interests and careers in these fields. We believe that nurturing an interest in science, math, and technology during the critical middle school period will help them to better see themselves as the future leaders of tomorrow. We aim to do this through a unique idea – the nation’s largest computer science competition for middle school girls. ProjectCSGIRLS is run by high school and college students from around the country who are incredibly passionate about computer science and technology.

Scratch example bee maya
Code for a flying sprite in Scratch

This is programming? Scratch (video 1:37) – overview of Scratch and programming. Scratch is free program from the MIT Media Lab. Learners of any age create games, tell stories, make animations, and much more. Scratch is entirely web-based.

The video shows an example of basic programming in Scratch. The result is an animated cat cartoon. The program is created by arranging blocks of special purpose program instructions. The steps in the Engineering Design Process are useful for learning about programming.

  • In the Scratch program example, the cat dances. What do you want the computer to do? What will the user of your program do?
  • There are lots of tools listed. Find out what each one does. The blocks cause some actions. Linking them together results in action on the screen. What does the computer know how to do? Can you find ways to use what the computer knows how to do?
  • The cat moved backward and forward. This looks like dancing when there is music to go with the movement.: What order does the computer need to do steps? Do you have to tell the computer to repeat steps?
  • Making the cat move forward and back several times automatically looks like dancing. Changing the color of the cat was interesting, too. Does it work when all the steps are in order? Do you need to rearrange the steps?
  • Once the cat can dance, add an interaction so that the cat dances when the users clicks on the cat sprite. What would make this program better? Can you add more jobs for the computer to do?

Engineering ideas

  • program, code, robots, control, software, websites, internet, Worldwide Web, interaction, sprite

Do It
Here are some challenges for you to work on…

  • complete the challenges in the DIY n00b
  • learn to program – online, type command to direct dog on screen
  • using one of these apps, work through the examples and write some programs. Preparing Kids to Code – Apps for all Ages – several apps that are great introductions to programming – varying difficulty, some free.
  • Code.org’s own tutorials (videos) – learn basic sequencing, repeat loops, and if-then statements from Mark Zuckerberg, Bill Gates, and Angry Birds.
  • Take some self-guided tutorials that anybody can do, on a browser, tablet, or smartphone. Try the unplugged tutorials without computers. No experience needed.

Learn more…