• No se han encontrado resultados

comentaris de la transcripció i text de la transcripció de cada director 213 Document 10 Taula comparativa de les qualitats dels professors segons els diferents

2. Fonamentació teòrica

2.3. Competència i docència: el bon professor

2.3.5. Des de la perspectiva de l’educació física

One application area related to the development of software is that of the intelligent assistant. An intelligent assistant is a software application designed to support a design activity by taking over some of a user’s more menial tasks or providing checks and verification of their activity. The nature of the assistance can be passive, only responding to the user’s requests or activity; monitoring the user’s work and carrying out operations according to set goals.

An example of a passive intelligent assistant is the Genie application (Kaiser 1990). Genie is a question and answer system that is similar to the application help facility available on desktop programs and is designed to provide expert information on the use of a development environment to new users. The information in Genie exists in a single knowledge base but the application acts intelligently in the way that the user is able to interact with it. Genie was designed to address the need to search large knowledge bases to find the appropriate information for the immediate need of the user and to present the answer at the appropriate level for the user’s ability. New users to a system may possess different levels of expertise. The system assumes novice users require precise shorter answers while expert users may require more detailed and comprehensive information. So Genie models three levels of

26

user expertise “novice”, “intermediate” or “expert” and tailors its help to be either:

a) An introduction where a command is taught that a user may not have encountered before;

b) A reminder where a brief description is given of a command that may have been forgotten;

c) A clarification to explain the details or options about commands; d) Elucidation to correct user misunderstandings that have arisen or; e) A direct execution of a command on behalf of the user.

Input questions to Genie are constructed in a natural language form from a selection of templates where the user inserts domain specific keywords into appropriate fields to form queries that are then analysed. Typical questions to Genie may be in the form of “What does command C do?” or “How do I accomplish goal G?”.

Marvel is an example of an active intelligent assistant system designed to monitor and automate many of the tasks for organising software development projects (Kaiser 1990). Marvel is similar to a Make facility but is useful for large or complex developments that may be spread across many teams or platforms and not limited to any one programming language, method of development or type of project. It uses a production system that is able to reason about and manage many of the resources in a software development project in accordance with a set of rules and information is processed based on a knowledge base, which contains a description of the project in terms of:

a) Resources: software libraries, classes and objects, the development tools and the source code and target platform;

b) Relations: among the objects, inputs and outputs, products and variations;

c) Rules: which are similar to those in expert systems with a conventional condition part but the action is expressed as a single activity with a set of post-conditions and used to model the requirements of each project.

Marvel can be made to model the stages of the software life cycle and the activities required to transform from one stage to the next.

27

Processing is carried out opportunistically using both forward and backward chaining and automatically switching between the two when necessary. When, for example, a new procedure needs to be added to a project Marvel knows which dependences need to be updated and performs the necessary operation.

2.4 Summary

For the novice, learning to program for the very first time is fraught with difficulties. To build anything more than the most trivial program skilled practitioners have acquired the skills of how to understand a problem, how it can be represented in a computer, and how to encode it in a given programming language. In addition the practitioner needs the experience to know how to analyse the resultant output of a program, how to trace faults and how to devise solutions to correct errors. In order to make any progress as a programmer, the novice has to acquire these same skills and apply them. The nature of developing software means these skills have to be developed roughly in parallel and to avoid either one undermining the capacity to make progress with the other skills. The major obstacles to understanding for the novice programmer can be summarised as “fragile knowledge”, where the learner is aware of the required information but fails to see the opportunity to use it, and “neglected strategies”, where the learner does not use techniques to gain further understanding of problem solving in the domain. It was also shown that producing errors while learning to program cannot be avoided, software applications that simply attempt to remove the chance of errors often only delay learning about parts of the language.

28

Chapter 3: