Code Lattices and Natural Code Evolution Paths

碩士 === 中原大學 === 資訊工程研究所 === 92 === For students of computer science, programming is an indispensable knowledge and technical ability. However, during the course of learning programming, the learners are often faced with hesitations, setbacks, and frustrations. Having written a piece of code after...

Full description

Bibliographic Details
Main Authors: Yi-yuan Tsai, 蔡益元
Other Authors: Yen-Teh Hsia
Format: Others
Language:zh-TW
Published: 2004
Online Access:http://ndltd.ncl.edu.tw/handle/3aqf2u
id ndltd-TW-092CYCU5392009
record_format oai_dc
spelling ndltd-TW-092CYCU53920092018-06-25T06:06:10Z http://ndltd.ncl.edu.tw/handle/3aqf2u Code Lattices and Natural Code Evolution Paths 程式絡與自然程式進化路徑 Yi-yuan Tsai 蔡益元 碩士 中原大學 資訊工程研究所 92 For students of computer science, programming is an indispensable knowledge and technical ability. However, during the course of learning programming, the learners are often faced with hesitations, setbacks, and frustrations. Having written a piece of code after spending a lot of time and effort, a learner may only find that there are many mistakes (bugs) in the code. Though there may be a strong desire on the part of the learner to try to correct the code, he/she may only “wonder around”, not knowing where to start and what to do. The result is often that the learner acts like a “headless fly”, trying everything everywhere. Perhaps, with good lucks, the learner can finally find a way of correctly revising the code, but only after trying many “wrong ways”. An instructor, on the other hand, often has to face many different pieces of “wrong” code, each with some kind of strange bugs in it. Though the instructor knows what are wrong with any particular piece of code, there is often a great difficulty in trying to “guide” the student (the author of the code) in correctly revising the code and learning the “correct” way of programming. This problem is further complicated by the fact that the instructor often cannot figure out why the student wrote his/her particular piece of code this way, not to mention how the instructor may be able to “correct” the student’s way of thinking. This is a further hindrance in providing appropriate assistance to the learner so that the learner can “think correctly” and write “correct code”. Because of this, we constructed a computer-assisted learning system (a CAL system, for short), and we call this system CSD (for Code Schema Development). CSD may be said to be constructivism-based. The main idea is to control the problem-solving environment and provide scaffolding for code constructions in such a way so that the leaner can (1) develop the intended code schemas and (2) correctly apply the developed code schemas in solving programming problems. A secondary goal of CSD is to raise the learner’s confidence and interests in programming. CSD tracks the learner’s actions and answers (including the intermediate answers) and records everything in a database. From the learners’ records, we seek to analyze the various “tracks of thinking”, with a goal of trying to identify the various “paths” of code evolution, showing how the learners progress from the initial erroneous code to the final correct code. In related previous research works, the main focus was on the identification of error patterns in the learners’ code, and researchers were not concerned with how the learners made revisions in order to obtain the “right” code. In this research, we propose a way of describing how a learner “evolves” from one error pattern to another in producing his/her final answer (the correct code). In doing so, we also try to analyze what the learner may be thinking when he/she wrote the (erroneous) code. Yen-Teh Hsia 夏延德 2004 學位論文 ; thesis 73 zh-TW
collection NDLTD
language zh-TW
format Others
sources NDLTD
description 碩士 === 中原大學 === 資訊工程研究所 === 92 === For students of computer science, programming is an indispensable knowledge and technical ability. However, during the course of learning programming, the learners are often faced with hesitations, setbacks, and frustrations. Having written a piece of code after spending a lot of time and effort, a learner may only find that there are many mistakes (bugs) in the code. Though there may be a strong desire on the part of the learner to try to correct the code, he/she may only “wonder around”, not knowing where to start and what to do. The result is often that the learner acts like a “headless fly”, trying everything everywhere. Perhaps, with good lucks, the learner can finally find a way of correctly revising the code, but only after trying many “wrong ways”. An instructor, on the other hand, often has to face many different pieces of “wrong” code, each with some kind of strange bugs in it. Though the instructor knows what are wrong with any particular piece of code, there is often a great difficulty in trying to “guide” the student (the author of the code) in correctly revising the code and learning the “correct” way of programming. This problem is further complicated by the fact that the instructor often cannot figure out why the student wrote his/her particular piece of code this way, not to mention how the instructor may be able to “correct” the student’s way of thinking. This is a further hindrance in providing appropriate assistance to the learner so that the learner can “think correctly” and write “correct code”. Because of this, we constructed a computer-assisted learning system (a CAL system, for short), and we call this system CSD (for Code Schema Development). CSD may be said to be constructivism-based. The main idea is to control the problem-solving environment and provide scaffolding for code constructions in such a way so that the leaner can (1) develop the intended code schemas and (2) correctly apply the developed code schemas in solving programming problems. A secondary goal of CSD is to raise the learner’s confidence and interests in programming. CSD tracks the learner’s actions and answers (including the intermediate answers) and records everything in a database. From the learners’ records, we seek to analyze the various “tracks of thinking”, with a goal of trying to identify the various “paths” of code evolution, showing how the learners progress from the initial erroneous code to the final correct code. In related previous research works, the main focus was on the identification of error patterns in the learners’ code, and researchers were not concerned with how the learners made revisions in order to obtain the “right” code. In this research, we propose a way of describing how a learner “evolves” from one error pattern to another in producing his/her final answer (the correct code). In doing so, we also try to analyze what the learner may be thinking when he/she wrote the (erroneous) code.
author2 Yen-Teh Hsia
author_facet Yen-Teh Hsia
Yi-yuan Tsai
蔡益元
author Yi-yuan Tsai
蔡益元
spellingShingle Yi-yuan Tsai
蔡益元
Code Lattices and Natural Code Evolution Paths
author_sort Yi-yuan Tsai
title Code Lattices and Natural Code Evolution Paths
title_short Code Lattices and Natural Code Evolution Paths
title_full Code Lattices and Natural Code Evolution Paths
title_fullStr Code Lattices and Natural Code Evolution Paths
title_full_unstemmed Code Lattices and Natural Code Evolution Paths
title_sort code lattices and natural code evolution paths
publishDate 2004
url http://ndltd.ncl.edu.tw/handle/3aqf2u
work_keys_str_mv AT yiyuantsai codelatticesandnaturalcodeevolutionpaths
AT càiyìyuán codelatticesandnaturalcodeevolutionpaths
AT yiyuantsai chéngshìluòyǔzìránchéngshìjìnhuàlùjìng
AT càiyìyuán chéngshìluòyǔzìránchéngshìjìnhuàlùjìng
_version_ 1718705378815901696