透過您的圖書館登入
IP:3.145.97.248
  • 學位論文

程式絡與自然程式進化路徑

Code Lattices and Natural Code Evolution Paths

指導教授 : 夏延德
若您是本文的作者,可授權文章由華藝線上圖書館中協助推廣。

摘要


對於資訊工程學系的學生來說,程式設計是一門必備的知識與技能。然而,在學習程式設計的過程中,往往會面臨許許多多的挫折、徬徨與不知所措。好不容易寫出了一段程式碼,但是卻有著很多的錯誤,想要除錯,卻茫無頭緒不知從何著手。於是就像是隻無頭蒼蠅一樣到處亂試,也許運氣好,試過幾次之後終於找到修正錯誤的方法。 再者,教師在授課時,面對學生寫出來各種千奇百怪錯誤連篇的程式碼,明明知道有哪些地方是錯的,但是有時卻想不出該以何種適當的方式,引導學生逐步修正錯誤,並學習到正確的程式寫法。除此之外,對於學生在撰寫程式碼當時的思考邏輯,也常常無法清楚的瞭解,當然也就無法對學生提供正確且適性適宜的協助。 基於此,我們提供一個程式設計電腦輔助學習系統(CAL System),稱之為「程式碼基模發展系統(Code Schema Development)」。本系統以建構主義(Constructivism)的教學理論為基礎,透過人為的解題環境控制以及適性化的提示,讓學習者能夠提高其類比推理與基模(schema)生成的能力,並提昇對於程式設計的學習意願和興趣。 本系統會完整的收集紀錄學習者的所有作答過程,而本研究則希望能夠經由這些作答的紀錄,分析並整理出學習者在面對一個程式設計題目時,所作的答案程式碼是如何從一個有錯誤的程式碼,“進化”到最終完全正確的程式碼。 過去的相關研究幾乎都只是關注於分析學習者最後寫出來的程式碼有哪些錯誤類型(Error Pattern),而對於學習者在撰寫程式碼的歷程中,經過了哪些修改又是如何的演變與進化,似乎付之闕如。 本研究提出一個用來描述學習者在作答的過程中關於錯誤類型演變的方法,以此法針對本系統所收集到的學習者紀錄進行分析,找出幾種撰寫程式時最自然的演化方式,並且深入探討學習者在作答的過程中的思考模式為何。

並列摘要


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.

參考文獻


[9]林佳穎(2002)。“控制解題環境以激發和量測學生對於簡單基模的建立與使用”,中原大學資訊工程學系碩士論文。
[10]林科宇(2003)。“以答題正確性與答題時間作學習者信心、興趣與專心度之分析—初步的實驗設計”,中原大學資訊工程學系碩士論文。
[13]柯俊全(2004)。“程式碼基模生成實驗中基模數的控制”,中原大學資訊工程學系碩士論文。
[20]顏明賢(2004)。“程式碼基模的生成—一個教學實驗過程與結果之分析”,中原大學資訊工程學系碩士論文。
[3]Hsia, Y.-T. (2003), “Curricular automata and their applications”, In Proceedings of the 3rd IEEE International Conference on Advanced Learning Technologies (ICALT 2003), Athens, 264-265.

被引用紀錄


戴興漢(2005)。程式碼基模生成訓練對學習程式設計的影響〔碩士論文,中原大學〕。華藝線上圖書館。https://doi.org/10.6840/cycu200500159
顏明賢(2004)。程式碼基模的生成—一個教學實驗過程與結果之分析〔碩士論文,中原大學〕。華藝線上圖書館。https://doi.org/10.6840/cycu200400154

延伸閱讀