• No se han encontrado resultados

LA CONCENTRACIÓN PARCELARIA CON LA ADHESIÓN DE ESPAÑA A LA UNIÓN EUROPEA (U.E.)

4.5. LA DECLARACIÓN DE CORK Y EL DESARROLLO RURAL

2.5.1 ATTRIBUTES OF A GOOD PROGRAMMER

Wiedenbeck (1985) found that expert programmers are much more accurate and faster than novices when it comes to performing low-level programming tasks for example finding syntax errors and understanding code functionality. Wiedenbeck (1985) and Fix et al. (1993) found that there is a link between programming experience and

Page 43 characteristics in their mental representations for example the mapping of code to goals and recognition of recurring patterns. Agno-Balabat and Rojo (2013) also found that to become an expert in programming involves a lot of practice and requires the aptitude and capabilities to understand the execution of a computer program in order to form a valid mental presentation of the problem to be solved by the program.

2.5.2 CHARACTERISTICS OF NOVICE PROGRAMMERS

Novice programmers are defined by Ala-Mutka (2004) as programmers that lack the knowledge and skills of programming experts. Novices often fail to apply the knowledge they have obtained correctly. It is further stated that Novice programmers lack the knowledge and skills to easily grasp and apply programming concepts. Their skills and knowledge are limited to surface knowledge of programs and they generally approach programming “line by line” rather than at the level of bigger program structures. According to Goosen et al. (2007) the needs, knowledge and abilities of novice programmers are considerably differently from those of expert programmers. Agno- Balabat and Rojo (2013) therefore proposed program visualization as an educational tool that integrates programming tasks with visualizations of program execution to help novices locate programming errors. The authors conclude that visualization as a helpful tool for novices would assist novices’ practice in writing code and visually tracing it to debug software, making it easier to shift from novice to expert programmer.

Novices spend little time in planning and testing code, and when necessary, try to correct their programs with small local fixes instead of more thoroughly reformulating them. Also, the knowledge of novice programmers tends to be context specific rather than general and they often fail to apply the knowledge they have obtained correctly. In fact, an average student does not usually make much progress in an introductory programming course (Ala-Mutka, 2004). Atachiants et al. (2014) identify testing and debugging as the two very complex areas for novice programmers and reported that some researchers found programming tools that support source-level debugging with data visualization to be more effective. The authors agree that planning is common amongst novice programmers and that the absence of good planning might result in more bugs. The incremental running and iteratively testing of code while new code is

Page 44 being written, have been found to be an effective debugging strategy for both novice and expert programmers

According to Smith and Webb (2000), novice programmers have difficulties in developing, comprehending and debugging of a computer program. Each individual student therefore brings into the learning experience a unique blend of knowledge, beliefs and fears. Students use their own metaphors to try and make sense of their learning. Furthermore, novices lack the necessary analytical skills resulting in the learning of programming to be highly complex for them. Experiences allow problem representation to be conceptualized. They further state that the meaning and importance students attach to original experiences and action taken by them is influenced by the different styles of learning by students. The pre-existing knowledge can then prevent students to see the programming problem as a problem. On the behavioural differences between expert and novice programmers, the findings of Loh and Sheng (2013) indicate that there exists a trend in novices to follow rules “blindly” when solving problems as they still need to acquire the context in which those rules operate. They will learn to apply the right rules with the right conditions as they develop in proficiency to solve the problems. However, expert programmers have a tendency to solve problems based on their instinct and ignore or sometimes even freely break the rules.

A group of novices learning to program will typically contain a huge range of different backgrounds, abilities and levels of motivation and it results typically in a huge range of unsuccessful to successful outcomes (Robins et al., 2003). They further found from a survey (covering background, intended major, expected workload, etc.) of students in an introductory programming paper that the most reliable predictor of success was the grade that the student is expected to receive. They indicated that students in general have a reasonable accurate sense of how they would do in the first two weeks of their course. Campbell (2013) also identified motivation to be the major factor affecting novice programming performance and that it is positively associated with student grade. Intrinsic motivation was found to be higher for students with some experience. However,

Page 45 in relation to self-efficacy in particular, it has been reported that no evidence was found that prior programming experience affected success.

In this study, the researcher wants to investigate whether students can develop their skills and willingness to learn the programming concepts without emphasising ethnic and educational backgrounds.