The last years of the last century witnessed the emergence of the computer, which was a scientific revolution and a technical development that contributed to the progress of mankind in various fields. The importance of this device emerged in its taking over the organization, arrangement, retrieval, and storage of information and data processing with accuracy and speed, then the development of the computer until it became a stand-alone science, and the need for various sciences increased, so it was necessary to simplify dealing with it so that everyone can use it. Here comes the need for an intermediary between the user and the computer. This mediator is the programming language through which various software have created that help to enter and process data inside the computer.
These languages varied and diversified according to the goal it seeks to achieve, and several languages appeared, including procedural languages, in which the program is written one procedure after another, including the visual languages, which are used in several areas for their ease, such as the Visual Basic language, and other languages specialized for the tasks of And multiple goals, which are more complex and require study and practice.
Resolving programming tasks is one of the elements of using the computer as a study subject, and although some believe that it should be taught within computer culture, the right thing is that it does not fall within computer culture due to the difficulty of studying it in the subject of computer culture and that teaching it within this subject should be In terms of introducing programming languages, their objectives, and types.
In the beginnings of the educational computer, there was a general and strong trend calling for teaching learners programming in general, and learning programming in the Basic language in particular, and the reason for this was the belief that learners urgently need to learn how the computer works and the method of planning to solve various problems with the help of the computer. This trend has changed and the use of the computer through its application programs – which is called the Authoring system or language such as Authorware, which the learner needs more than learning programming languages - is the goal that educators seek to achieve and focus on at the present time.
The main objective of teaching programming is to accustom the student to facing problems and trying to solve them and to search for and follow the correct ways to solve, as well as to develop his research and investigation skills.
In order for students to acquire one of the skills, for example, the problem-solving skill, the teacher uses the teaching method that ensures the student develop this skill, and if we assume that the purpose of teaching programming languages is as a means of training in problem-solving skills, then the teaching method adopted by the teacher is Which enables the learner to be trained in acquiring these skills, not the language per se. Some may mistakenly think that simply studying the programming process alone provides the individual with problem-solving skills. In fact, this is not the case. There is an important point to bear in mind, which provides three factors:
1- The possibility for the learner to acquire skills through an educational experience.
2- That the learner realizes the importance of making use of the computer’s ability to solve his problems.
3- That the learner has the motivation to benefit from and employ the capabilities of the computer.
If these conditions are met, the teacher will be able to train his students in problem-solving skills through studying programming, and he must also design and provide his students with training experiences that encourage them to do programming and train them to acquire these skills.
Saqr stated that the method of teaching programming depends on the procedures and steps that would lead to training and the acquisition of problem-solving skills, noting that the mere study of the programming process alone does not lead to the student’s acquisition of problem-solving skills and critical thinking skills, which It is achieved indirectly when teaching programming. Rather, the teacher must design and provide teaching experiences in a way that encourages them to do programming work and trains them to acquire those skills.
Teaching programming aims to provide the student with several skills, including getting used to facing problems and searching for their solution, critical and creative thinking, and evaluation, which is the highest pyramid in Bloom’s classification of cognitive objectives, which are remembering, understanding, applying, analyzing, synthesizing and evaluating. We find that programming if taught correctly, brings the student to the top of the cognitive hierarchy, as well as developing the skill of making a decision whether this solution is suitable for this problem or whether it needs more treatment.