There have been reports of elementary students being taught computer coding, i.e. writing computer procedures that achieve a specific task. Anyone who has written successful computer code will recognize this as an abstract form of “programming.” An important issue is whether the educational benefits from learning to code exceed the benefits from other uses of that time. It is early for such an assessment, although some would argue that there may be less worthy uses of student time in physical education and social science categories.
One elementary coding exercise asks young coders to design a procedure that guides a car from one corner across a checkers-like board to a destination on the board. In the exercise, there may be obstacles that students must avoid. The tools available might be tokens labelled “move car ahead one” and “pivot car to face left” and “pivot car to face right.” The quality of the student’s coding could be measured by the number of tokens needed to direct the car to the destination. Each turn requires a pivot step that makes no forward progress, but establishes the direction and changes in moving along a matrix. The student would try to find solutions that result in the fewest number of turns.
A task that many users of Microsoft Word face is to “normalize” segments of text that are copied from other documents or from the web. Those segments often contain odd-ball spacing such as consecutive blanks or consecutive paragraph marks. To remove those one at a time manually is tedious. It is far faster and accurate to record a macro that handles such tasks – all at once. That macro would be an example of coding that Word users record and use for practical results.
A more complex exercise might be to sort any random set of numbers into an ascending sequence. Of course you could eyeball any collection of specific numbers and immediately envision the right answer for that specific set of numbers or you could use Excel, but coding a sorting procedure for any random set of numbers is more of a challenge. To solve the problem, the student could design a coding approach that works or could look up algorithms designed for that kind of task. Algorithms are usually efficient, but they need to be implemented in a coding language. Elementary students will probably be using Java or PHP as their “programming language.” Both are easy to learn and difficult to master, but language mastery is unlikely the goal for most K-6 students.
Coding is a small, useful corner of computer science. Taught in elementary school, coding can give students experience in planning logically, using well defined tools. Coding also teaches students to frame queries in a form that will receive productive responses from computer software. For the K-6 students who will later learn formal scripting and programming languages in academic and commercial use, coding is a gateway. For students considering the STEM fields, coding is almost mandatory.
Students who are taught coding in K-6 classrooms are likely to enjoy its game-like attributes. For some, it will dispel the misapprehension that they are incapable of programming a computer – of course they are able. It just takes patience and concentration, and developing logic skills is important to achieving educational success.