Abstract— Teaching computer algorithm is one of the basic steps of teaching computer programming. It helps the programmers to understand what the problem is and how it is supposed to be solved. Therefore this process requires a certain level of problem solving skills. The purpose of this experimental study is to investigate if the process of learning and using computer algorithm can improve the problem solving skills of elementary school students. The findings of this study are considered important and useful since placing a programming course into the curriculum was considered by the Ministry of Education in Turkey. The results of the study suggest that there is a significant difference between the experimental group and the control group according to their problem solving skills in favor of the experimental group. Index Terms— computer algorithm, computer programming, problem solving skills, elementary school students I. INTRODUCTION Computer programming or in other words coding is undoubtedly one of the most promising professional fields of today and seemingly near future. Almost all electric or electronic devices that are widely in use today require programming. This phenomenon has been pushing many people -especially children who will constitute the future of the society to focus on programming more than ever. Just a couple decades ago, programming was considered as a very complicated procedure that can only be handled by highly trained and skilled professionals, however today it can be successfully done by amateur entrepreneurs who may not finished their high school education yet and they may gain considerable amounts of income which makes programming even more tempting for younger generations. This accomplishment potential provides educators and students the motivation for a better comprehension of programming and its applications. Programming in general is defined as “…human activity to mean the act of extending or changing a system’s functionality…” by Van-Roy & Haridi [1]. However when it comes to the computer programming Rist [2] defines it as rules of operation that are governed by the syntax and the control structures of the language used. On the other hand, Papert [3] defines computer programming with the analogy of a natural human language in that it has certain metaphors, images, and ways of thinking. As a matter of fact this language analogy is not too far from its literal meaning since computer programming basically consist of programming languages which have been evolving in many ways to carry out various functions. Algorithm constitutes one of the very first and basic steps of the programming process. The word algorithm comes from the name al-Khwarizmi who was a Persian mathematician, astronomer, geographer, and scholar. Since he was a mathematician, the term was mostly used in mathematics context. However, with the development of computer technology, the term was started to be used in information technology as well. Now it constitutes the basis for almost all programing languages because it provides detailed description of the problem(s) and its (their) possible solution(s). Cormen [4] defines computer algorithm as “…any well-defined computational procedure that takes some value as input and produces some value as output..” and he also views algorithm as a tool for solving a well-specified computational problem. In addition to this Neopolitan and Naimipour [5] defines computer algorithm as “…a step by step procedure for solving a problem by applying a technique”. These two definitions strongly indicate the relation between computer algorithm and problem solving. Related to problem solving with computer, Dave [6] determined 8 steps; 1. Statement of the problem or problem definition 2. Development of a model 3. Design of the algorithm 4. Checking the correctness of the algorithm 5. Implementation in some programming language 6. Analysis and study of the complexity of the algorithm 7. Program testing - debugging and profiling 8. Preparation of document These steps can be considered in and applied the solutions of most of the real world problems one can face every day. As a matter of fact, this idea constitutes the backbone of this study; if students of elementary school begin learning computer programming and algorithm at earlier ages, can that help them to develop better problem solving skills because now they have a more systematic way to look at the problems? Allan and Kolesar [7] support this idea by their statement that in the computer science courses students gain mathematical and problem-solving skills as well while becoming familiar with the computer as a tool. Mayer [8] approach to this situation through two questions; “What kinds of instruction enable students to learn programming productively?” and “What are the cognitive consequences of learning programming languages?” His second seems relatively more important because these cognitive consequences will create the mindset of the current and future generations. Problem solving skill can be regarded as one of the useful and rewarding cognitive consequence of Zekeriya KAZANCI, Çukurova University Turkey E-mail: zkazanci@cu.edu.tr Teaching computer algorithm as a medium of improving problem solving skills in elementary school students