DEVELOPMENT OF VARIATIONAL THINKING SKILLS IN PROGRAMMING TEACHING Sava Grozdev, Todorka Terzieva Abstract. The paper presents an example of methodological approach to the development of variational thinking skills in teaching programming. Various ways in solving a given task are implemented for the purpose. One of the forms, through which the variational thinking is manifested, is related to trail practical actions. In the process of comprehension of the properties thus acquired, students are doing their own (correct or incorrect) conclusions for other, hidden properties and at the same time they discover possibilities for new ways of action and acquiring of new effects. The variability and the generalizing function of thinking are in a close interrelation, and their interaction to a great extend determines the dynamics of the cognitive activity of the student. Keywords: programming, critical thinking, variational thinking 2010 Mathematics Subject Classifications: 97Q60, 97Q30 The new and fast-changing content of Informatics teaching requires the development of methodologies which could provide not only reproduction of large volume of knowledge, but most of all methodologies, which could form and develop competences that would allow students to master the knowledge actively and to create skills for acquiring new knowledge independently and for comprehending it critically. We shall emphasize a number of problems, which students encounter in teaching programming: difficulties in pointing out more than one way of solving a task; difficulties in analyzing their own solution or other suggested solution of a task; lack of skills to discover independently and rectify admitted mistakes; difficulties in finding the optimal solution. In the studies of numerous authors there are different approaches to increase the efficiency of programming teaching [5,7,10] and information technologies [2,4,11] at all levels of the teaching process. The development and the implementation of a teaching process focusing on the development of programming skills through the use of different paradigms and methods from the modern programming languages are discussed in [1, 8, 9]. In order to overcome the problems arising at all stages of training, it is necessary to maintain and develop striving for unconventional thinking and brought to you by CORE View metadata, citation and similar papers at core.ac.uk provided by Bulgarian Digital Mathematics Library at IMI-BAS