Computer programs are sequences of instructions that the computer must follow. There are hundreds of computer languages, but all involve giving clear and unambiguous instructions to a devices that doesn't understand meanings.
This activity demonstrates some of the issues that arise when we try to give precise instructions to achieve a desired outcome.
Mordechai (Moti) Ben-Ari from the Weizmann Institute of Science, Israel has programmed the Marching Orders Unplugged activity in Scratch which can be downloaded in a zip file of the complete set of activities . Please read the ReadMe.txt for documentation.
Computing Science Inside Workshop has an activity Algorithm Development which is a nice extension activity to this topic. In this workshop pupils will experience writing and following algorithms. They will be introduced to the concept of an algorithm and be asked to develop basic instructions to complete tasks considering factors such as order and preciseness in their solution. Pupils will have the opportunity to follow a given algorithm and compare their end product with others to assess the effect of ambiguity. The results will show pupils the difficulties that arise from unclear instructions and emphasise the importance of being precise. Pupils will realise the value of accurate, well-tested algorithms through the activities in this workshop, they will become familiar with the process of designing and executing algorithms and its place within Computing Science.
Note: You will need to apply and register in order to recieve the Workshop Pack for this activity.
A nice extension to this module is a Kinaesthetic Learning Activity (KLA) activity developed by Paul A. G. Sivilotti to introduce CS concepts to high school girls is Software Engineering: "Mars Pathfinder" . This activity illustrates the fact that a program is a series of instructions that tells a computer exactly what to do. So, a computer scientist must design the program carefully, to be sure that the computer will do the right thing. Please note that this activity requires the use of a Lego Rover robot.
An older version of this activity can be downloaded in PDF format here. The content is similar to the current version, but there's some extra technical information.
For a comprehensive list of languages used in Education, see Wikipedia: Educational Programming Language. Many educational programming languages position themselves inside a learning path, that is a sequence of languages each designed to build on the others moving a student from easy to understand and entertaining environments to full professional environments.
The Mathmaniacs web site has a lesson on Boolean Logic.
Alice v3.0. The focus of the Alice project is now to provide the best possible first exposure to programming for students ranging from middle schoolers to college students. Drag and drop IDE.
Hiccup: an IDE for kids.
Logo: the classic educational programming environment
Robocode: IDE activities, code, and forum.
Jeroo: IDE activities and teacher notes.
Karel J. Robot: A Gentle Introduction to the Art of Object-Oriented Programming using Java. Simulator, Java classes, and sample textbook chapters.
Squeak. IDE and activities for kids.
An interesting post (and comments) on teaching functional programming to kids, and especially using the familiar context of a Dr Seuss story to introduce the idea
Abbotswood Junior School, UK has lesson plans that demonstrate how to program a set of simple instructions.
To introduce students to the concept of Fuzzy Logic, there is an activity designed by PBS Teachers which demonstrates fuzzy systems use a series of simple rules, based upon experience, much as the human brain does.
Do I.T. has a free course that covers hardware and Boolean logic and logic gates with demo tryout applets.
Paul Gray has developed a kinesthetic activity called Square Chicken Dance to illustrate the idea of the
single-instruction, multiple data style of parallelism using message passing. It is one of several exercises that illustrates parallel programming principles using students.
A project developed by various 6th Grade students at ThinkQuest is a website dedicated to Wikipedia: Logo Microworlds Pro at A Look at Logo Microworlds Pro. This site has several programming activities and lesson plans for teachers.
Sebastian Golze, Thomas Hirsch, and Vinh Hoi Le Chau have developed a website at ThinkQuest dedicated to Logo at LOGO . This site provides opportunities to learn Logo and also sections for contains teachers. This site is available in English, Deutsch, and Français.
ThinkQuest has a website developed by various students dedicated to learning Microsoft QuickBASIC at BASIC Programming.
Algorithms Alive developed by ThinkQuest explains some of the more common searching and sorting algorithms using the Basic language.
A tutorial website for learning Pascal was developed for ThinkQuest by various students is at A Tutorial in Turbo Pascal .
Pascal Programming for Not-So-Literate Programmers developed by various authors teaches basics of Pascal, explains Stacks and Queues, and also has sections on Delphi programming.
To demonstrate the programming concept of recursion , MazeWorks has developed a tryout version of the Towers of Hanoi Problem .
This video shows how to solve "Towers of Hanoi" with 1-4 rings to demonstrate the concept of recursion . Video: Solving Towers of Hanoi .
Try Engineering has an activity called Program Your Own Game that explores the work of software engineers and allows student teams to develop their own computer game using free and simple software. Teams present their game to their class, evaluate other games, and reflect on the engineering experience. Download Full Lesson Plan and Student Worsksheets.
Merchant Taylors' School UK in it's free course on Moodle aimed at AS Computing has section called Fundamentals of Programming that has the following resources centred around Pascal and Delphi programming languages :
Misha Leder, a Software Engineer at Google has the following related activities
Virginia Tech, Dept of Computer Science has a complete module on Programming Languages .
A set of Logic Puzzles were developed as an extension activity at ROCS, Purdue University to teach students logical thinking in order to solve puzzles.
the Educator's Reference Desk has a lesson plan Computers only do what they are told by Daniel Swomley from Hanover School, Colorado Springs, USA is an exercise on giving directions precisely.
Abbotswood School UK has some lesson plans for activities using LOGO that demonstrate how to program a set of simple instructions.
Greenfoot is a combination between a framework for creating two-dimensional grid assignments in Java and an integrated development environment (class browser, editor, compiler, execution, etc.) suitable for novice programmers. While greenfoot supports the full Java language, it is especially useful for programming exercises that have a visual element. In greenfoot object visualisation and object interaction are the key elements.
The Greenroom is a community site for teachers using the Greenfoot software. Its purpose is to share experiences and material, and to offer a platform for discussion and support. The goal is to help all of us to find inspiration, help each other, find interesting material, and ultimately to improve our teaching. If you are a teacher, you can apply easily to join and use the resources there.
R Mukundan from University of Canterbury has an applet to demonstrate Towers of Hanoi problem.
Karel the Robot website with fundamentals and activities is an excellent method for introducing students to computer programming is described by Richard E. Pattis in his book titled Karel the Robot . By initially limiting the student's language repertoire to easily grasped imperative commands whose actions are visually displayed, the Karel approach quickly introduces students to such concepts as procedures and the major control structures. Although originally based on Pascal, the Karel approach has been used successfully with several different computer programming languages. These pages describe a version of Karel that uses the C / C++ language.
Mordechai (Moti) Ben-Ari from the Weizmann Institute of Science, Israel has programmed Karel the Robot programs in Scratch in Scratch . These programs provide a framework for implementing Karel the Robot programs in Scratch. The correspondence is not precise, but the learner who knows Scratch can experience robot programming without learning a new programming language and environment.
This can be downloaded in a zip file of the complete set of activities . Please read the ReadMe.txt and the included text file named "scratch-karel" for more documentation on using these programs.
Jo Edkins has two simple ways to introduce programming below: