研究生: |
鄭舜尹 |
---|---|
論文名稱: |
Java程式設計初學者之迷失與迷思概念分析 A Study of Misconceptions and Missing Conceptions of Novice Java Programmers |
指導教授: | 林美娟 |
學位類別: |
碩士 Master |
系所名稱: |
資訊教育研究所 Graduate Institute of Information and Computer Education |
論文出版年: | 2011 |
畢業學年度: | 99 |
語文別: | 中文 |
論文頁數: | 82 |
中文關鍵詞: | Java程式設計 、迷失概念 、迷思概念 、診斷性訪談 |
英文關鍵詞: | Java programming, missing conception, misconception, clinical interview |
論文種類: | 學術論文 |
相關次數: | 點閱:184 下載:22 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
本研究旨在探討程式設計初學者於實作Java程式專案時所遭遇之困難,並以之分析學習者對於Java程式語言之語法、語意及物件導向概念的迷失與迷思情形。研究實施採質性研究之一對一診斷性訪談,參與者為台北市某技術學院資管系一年級學生共22名,學生年齡在18至21歲之間。研究者設計了涵蓋不同程式設計概念的9個題目供學生實作,並由訪談者於學生解題過程中全程在旁觀察,且視需要提供逐漸深入之提示,以了解學生在各項程式設計概念的迷失或迷思程度。研究結果發現,學生的主要「迷失」概念包括:(1)無法記住Java某些敘述之語法規定,或不清楚某些敘述的電腦內部運作情形,例如迴圈條件式和方法呼叫之寫法及控制流程;(2)不了解某些物件導向概念,例如繼承(inheritance)、多型(polymorphism)、及方法重載(overloading);(3)雖能說出某些概念的定義,但並不了解該定義之真正意涵,以致無法將其應用於實際解題;(4)無法自行查閱並應用Java標準類別庫的功能;(5)未能釐清各個類別在程式專案整體架構中所扮演的角色;以及(6)無法理解編譯器的錯誤訊息並進行除錯。本研究也整理出初學者容易形成之「迷思」概念,包括︰(1)未能釐清方法(method)的形式參數(formal parameter)與實際參數(actual parameter)之間的異同,以致在寫法上互相混用;(2)對資料型態之認知僅止於整數(int)、布林(boolean)等基本資料型態,不知道類別也是資料型態的一種;(3)誤以為所有類別的建構式皆在專案一開啟時即被呼叫;(4)不了解建構式不同於一般的方法,無須定義回傳值的資料型態;(5)誤以為建構式可被定義為類別的私有(private)成員;(6)誤以為類別的私有(private)方法內不能呼叫外部類別的方法。Java程式設計教師應可針對本研究所整理之迷失及迷思概念,於教學中特別加強講解,以提升學生之學習成效。
The purpose of this study is to investigate the difficulties encountered by novice Java programmers. In particular, it tries to identify typical missing conceptions and misconceptions students may have about Java’s syntax and semantics as well as fundamental concepts of object-oriented programming. One-on-one clinical interviews were conducted with 22 freshmen. The students were observed closely by the researcher as they implemented a well-specified Java project. Whenever an error occurred in a student’s program and s/he did not know how to proceed, the researcher asked him/her a sequence of pre-designed questions and gave suitable hints, ranging from general suggestions to detailed specifics, in order to determine the cause of the impasse. This study revealed that many students: (1) could not recall the correct syntax of certain Java programming constructs or did not understand how they (e.g., for loops, for-each loops, and method invocations) were executed internatlly; (2) had difficulties understading certain object-oriented concepts (e.g., inheritance, polymorphism, and overloading); (3) did not know certain object-oriented concepts well enough to apply them in problem solving; (4) were not familiar with standard Java libraries; (5) were unable to realize how various classes defined in a Java program related and interacted with one another; and (6) were incapable of debugging programming errors based on the error messages given by the compiler. This study also unveiled the following misconceptions harbored by many students: (1) They often confused formal parameters with actual parameters; (2) many failed to recognize that classes were actually user-defined data types that could be used to define variables just like built-in data types such as integer and boolean; (3) some erroneously thought that constructors of all classes defined in a project were invoked automatically when the project was opened; (4) many did not realize that constructors, as a special type of methods, did not require a return type; (5) some defined the constructor(s) of a class as its private member(s) while they should be public members instead; (6) some mistakenly considered that a private method could not invoke methods defined in other classes. It is essential that Java programming instructors pay special attention to help students to rectify the missing conceptions and misconceptions identified above.
王曉璿(民96)。使用問題分析式教學模式輔助學生學習電腦程式設計。中學教育學報,4,1-44。
尹玫君(民80)。電腦程式設計能力與認知能力相關之研究。臺南師院學報,24, 39-54。
林玉娟、林哲正(民90)。技職院校大一新生修習程式設計困擾因素之研究:以樹德科技大學為例。教育學刊,17,309-320。
林煌城(2004)高職學生學習程式語言之探討與研究。育達學報,18,118-125。
教育部(民89),技職教育白皮書。臺北市:作者。
教育部(民90),大學教育政策白皮書。臺北市:作者。
陳明溥(民96)。程式語言課程之教學模式與學習工具對初學者學習成效與學習態度之影響。師大學報:科學教育類,52,1-21。
葉連祺、林淑萍(民92)。布魯姆認知領域教育目標分類修訂版之探討。教育研究,105,94-106。
資訊服務產業2010-2012年專業人才供需調查報告(民99年6月)。經濟部人才快訊。取自http://itriexpress.blogspot.com/2010/06/2010-2012_25.html
鍾大定、陳菁惠(2006)。專題導向學習對高職程式設計課程影響之研究。資訊電子學刊,1(1),21-27。
謝如山(譯)(2004)。進入兒童心中的世界(原作者:Ginsburh, H, P.)。臺北市:五南圖書。(原著出版年:1997)
Bayman, P., & Mayer, R. (1988). Using Conceptual Models to Teach BASIC Computer Programming. Journal of Educational Psychology, 80(3), 291-298.
Becker, B. W. (2001). Teaching CS1 with karel the robot in Java. SIGCSE Bull, 33(1), 50-54.
Bennedsen, J., & Caspersen, M. E. (2005). Revealing the programming process. SIGCSE Bull., 37(1), 186-190.
Eckerdal, A., & Thun, M. (2005). Novice Java programmers' conceptions of "object" and "class", and variation theory. SIGCSE Bull, 37(3), 89-93.
Hadjerrouit, S. (1998). Java as first programming language: a critical evaluation. SIGCSE Bull, 30(2), 43-47.
Henriksen, P., & Kölling, M. (2004). greenfoot: combining object visualisation with interaction. Paper presented at the Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications.
Hu, C. (2004). Rethinking of Teaching Objects-First. Education and Information Technologies, 9(3), 209-218.
Kölling, M. (1999). The problem of teaching object-oriented programming Part I: Languages. Journal of Object-Oriented Programming, 11(8), 8-15.
Kölling, M. (2009). Introduction to Programming with Greenfoot. Upper Saddle River, New Jersey, USA: Pearson Education.
Kölling, M., Quig, B., Patterson, A., & Rosenberg, J. (2003). The BlueJ System and its Pedagogy. Computer Science Education, 13(4), 249 - 268.
Lahtinen, E., AlaMutka, K., & Järvinen, H. (2005). A study of the difficulties of novice programmers. SIGCSE Bull, 37(3), 14-18.
Lewis, J A., Henry, S M., Kafura, D G., & Schulman, R S. (1992). On the relationship between the object-oriented paradigm and software reuse: An empirical investigation. Journal of Object-Oriented Programming, 5(4), 35-42.
Linn, M. C., & Dalbey, J. (1985). Cognitive consequences of Programming Instruction: Instruction, Access, and Ability. Educational Psychologist, 20(4), 191-206.
Oliver, R. (1993). Measuring hierarchical levels of programming knowledge. Journal of Educational Computing Research, 9(3), 299-312
Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., et al. (2007). A survey of literature on the teaching of introductory programming. SIGCSE Bull., 39(4), 204-223.
Perkins, D. N., & Martin, F. (1986). Fragile knowledge and neglected strategies in novice programmers. In E. Soloway & S. Lyengar (Eds.), Empirical studies of programmers (pp. 213 - 229).
Putnam, R., Sleeman, D., Baxter, J., & Kuspa, L. (1986). A Summary of Misconceptions of High School Basic Programmers. Journal of Educational Computing Research, 2(4), 459 - 472.
Ragonis, N., & Ben-Ari, M. (2005). A Long-Term Investigation of the Comprehension of OOP Concepts by Novices. Computer Science Education, 15(3), 203-221.
Schollmeyer, M. (1996). Couputer programming in high school vs college. ACM SIGCSE Bulletin, 28(1), 378-382.
Winslow, L. E. (1996). Programming pedagogy—a psychological overview. SIGCSE Bull., 28(3), 17-22.