1 |
Design Patterns in Learning to ProgramPorter, Ronald, ron.porter@infoeng.flinders.edu.au January 2006 (has links)
This thesis argues the case for the use of a pattern language based on the basic features of the programming language used in instruction for the teaching of programming. We believe that the difficulties that novices are known to have encountered with the task of learning to program ever since the inception of computers derive from a basic misfit between the language used to communicate with a computer, the programming language, and the way that humans think. The
thrust of the pattern language idea is that patterns are the essential element in understanding how the mind words in that they are the source of that relationship that we call `meaning'. What an entity or event `means' to us derives from the effect that it has on us as living biological beings, a relationship that exists in the `real world', not from any linguistic relationship at the symbolic level.
Meaning, as a real world relationship, derives from the patterns of interactions that constitute being. The meaning that an entity has for an individual is more than can be expressed in a formal definition, definitions are matters of agreement, convention, not the pattern of experience that the individual has acquired
through living. What is missing for a novice in any skill acquisition process is meaning, the pattern of experience. All that we can give them using a formal linguistic system like a programming language is definitions, not meaning. Pattern language is the way that we think because it exists at that fundamental level of experience as living beings. The patterns of experience become the patterns of thought through recurrence, not through definition. But this takes time, so in
presenting new material to a person trying to learn, we have to present it in the form of a pattern language, the 'cognitive map' that drives the problem solving process. Creativity is always a function of combining ideas, what is really being created is new meaning, not a program, or a house, or a poem, or a sculpture - these things are mere implementations of meaning. Ultimately meaning can derive only from experience, the pattern of life around us, so creativity is the language of experience, pattern language. The mind is the product of experience, creativity its modus operandi.
|
2 |
SNOOPIE : development of a learning support tool for novice programmers within a conceptual frameworkCoull, Natalie J. January 2008 (has links)
Learning to program is recognised nationally and internationally as a complex task that novices find challenging. There exist many endeavours to support the novice in this activity, including software tools that aim to provide a more supportive environment than that provided by standard software facilities, together with schemes that reduce the underlying complexity of programming by providing accessible micro-worlds in which students develop program code. Existing literature recognises that learning to program is difficult because of the need to learn the rules and operation of the language (program formulation), and the concurrent need to interpret problems and recognise the required components for that problem (problem formulation). This thesis describes a new form of learning support that addresses that dual task of program and problem formulation. A review of existing teaching tools that support the novice programmer leads to a set of requirements for a support tool that encompasses the processes of both program and problem formulation. This set of requirements is encapsulated in a conceptual framework for software tool development. The framework demonstrates how the requirements of a support tool can be met by performing a series of automated analyses at different stages in the student's development of a solution. An extended series of observations demonstrates the multi-faceted nature of problems that students encounter whilst they are learning to program and how these problems can be mapped onto the different levels of programs and problem formulation. These observations and the framework were used to inform the development of SNOOPIE, a sample instantiation of the framework for learning Java programming. This software tool has been fully evaluated and demonstrated to have a significant impact on the learning process for novice Java programmers. SNOOPIE is fully integrated into a current introductory programming module and a future programme of work is being established that will see SNOOPIE integrated with other established software tools.
|
Page generated in 0.0485 seconds