Kennisnet (a Dutch website on IT in education), has an article (in Dutch) on the topic "Students must learn programming as new 21st Century Skill". The article links to an overview (in English) of tools that can be used to accomplish this goal. I browsed through this list, learned about Scratch, and then started to think on this topic. How would I (with 30+ years of programming experience) introduce programming to (young) children?
First, the lessons should be based on some principles:
The curriculum could be like:
So far for the initial thoughts. Later more on the different topics.
First, the lessons should be based on some principles:
- it must be fun: of course,
- it must be elementary: most students don't have to become high-skilled programmers, they must be able to understand some basic principles of computers, internet and programming,
- it must be agille: you should be able to show results soon and often.
- it must be interactive: you should have direct result from your work. You type something, press a button, and you see the results (either right or wrong) immediately.
- it must give visible results that you can show easily to whoever wants to see it (like parents, grandparents, brother, sister, friends). E.g. the results could be webbased.
- preferably, you can use the same set of tools to explain different topics.
The curriculum could be like:
- Use Scratch to produce interactive multimedia content. The Scratch environment is easy to use, the kids can use their creativity, the program gives immediate results. The programming language shows elementary principles of programming. Results are visible via the Scratch website. Read more in the post "Programming for kids, part 2: Scratch".
- Use weebly.com (or similar) to create webpages, using drag and drop. The kids uses own text and photos the build content. Pages are build using drag and drop, but can also contain HTML. Learn HTML with the HTML tutorials on w3schools.com. Read more in the post "Programming for kids, part 3: webpages".
- Make interactive webpages by adding javascript, the programming language used on webpages. Start with simple interactive pages, where javascript is used to enable buttons and to manipulate content. Learn javascript with the javascript tutorials on w3schools.com. Read more in the post "Programming for kids, part 4: javascript".
- Explore more capabilities of the javascript language. E.g. use "Object-orientation through Closures" as described here. This introduces an important programming concept (Object oriented) in an easy way. Read more in the post "Programming for kids, part 5: more javascript".
- Create a simple interactive game (like tic-tac-toe) using javascript on a webpage. Publish this game on the own weebly website.
- Modify the game in such a way, that the boardsize fits a mobile phone. Use some tool to transform the game into a "web app", based on the available HTML, CSS and javascript. Deploy this web app on a mobile phone.
- Introduce hardware: connect an Arduino kit to the computer. Use breakoutjs.com create javascript programs that use the Arduino inputs (sensors, buttons, etc) and Arduino outputs (LED, servo motor, etc). Possibly combined to elements on a webpage.
So far for the initial thoughts. Later more on the different topics.