博碩士論文 110522122 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:11 、訪客IP:13.59.36.203
姓名 陳宏維(Hong-Wei Chen)  查詢紙本館藏   畢業系所 資訊工程學系
論文名稱 從合作學習角色分工獲得函式程式設計思維學習遞迴程式的機制
(The mechanism of learning recursion from obtaining functional programming thinking through cooperative learning with role division)
相關論文
★ 條件判斷式事件驅動程式設計之C語言擴充★ 基于小波变换的指纹活度检测,具有聚集 LPQ 和 LBP 特征
★ 應用自動化測試於異質環境機器學習管道之 MLOps 系統★ 設計具有可視化思維工具和程式作為單一步的 輔助學習程式之棋盤式遊戲
★ TOCTOU 漏洞的靜態分析與實作★ 用於繪製風力發電控制邏輯之特定領域語言
★ 在Java程式語言中以雙向結構表達數學公式間關聯之設計與實作★ 支援模組化規則製作之程式碼轉換工具
★ 基於替代語意的 pandas DataFrame 靜態型別檢查器★ 自動化時間複雜度分析的設計與實作–從軟體層面評估嵌入式系統的功率消耗
★ 以震波層析成像為應用之特定領域語言實作與分析★ 用特徵選擇減少疲勞偵測腦電圖通道數
★ 一個應用紙本運算與數位化於程式設計學習使程序性思維可視化的機制★ 基於抽象語法樹的陣列形狀錯誤偵測
★ 基於抽象語法樹的深度複製及彈性別名之所有權系統解決 Java 表示暴露問題★ 基於 Python 型別提示檢查不可變性
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   至系統瀏覽論文 (2028-7-17以後開放)
摘要(中) 學習程式語言已是公民必備技能,然而程式語言中的遞迴的教學卻一直以來都是教師們的難題,其原因在於學習者使用結構化程式設計的思維學習遞迴程式,初學者若是以結構化程式設計的程式語言入門,在學習遞迴程式時會受到結構化程式語言的影響而難以學會,這是因為結構化程式設計本身的機制並不利於用來學習遞迴,然而函式程式設計的思維卻與結構化程式設計的思維不同,學習者以函式程式設計的思維能更容易理解遞迴,其原因在於函式程式設計的思維與遞迴一模一樣,因此,本文提出了以合作學習的角色分工讓學習者無法使用結構化程式設計的思維,轉而讓學習者能從函式程式設計的思維學習遞迴的學習方法,以合作學習角色分工遞迴程式問題中的三個部分,學習者以三步驟進行函式程式設計思考學習遞迴程式,並以此學習方法設計了一套學習系統,為了驗證使用此學習方法的系統在學習遞迴程式上的學習成效,本研究進行了長達四週的實驗,實驗結果顯示使用本研究提出的學習方式所設計的學習系統在學習遞迴程式上比沒有使用此學習方法的控制組有更好的學習成效,因此,以合作學習角色分工遞迴程式問題中的三個部分讓學習者獲得函式程式設計思維在解決遞迴程式問題上有著正面的效果。
摘要(英) Learning programming languages has become an essential skill for citizens. However, teaching recursion within programming languages has always been a challenge for teachers. The reason lies in the fact that learners, who adopt structured programming thinking, face difficulty in learning recursive programming. For beginners who start with structured programming languages, the influence of structured programming concepts makes it challenging to grasp recursion. This is because the mechanisms of structured programming are not conducive to learning recursion. On the other hand, functional programming thinking differs from structured programming thinking. Learners who adopt functional programming thinking find it easier to understand recursion. The reason is that functional programming thinking is identical to recursion. Therefore, this article proposes a cooperative learning approach that restricts learners from using structured programming thinking and instead enables them to learn recursion through functional programming thinking. By dividing the roles in cooperative learning, the three components of recursive programming problems are addressed. Learners go through three steps of thinking in functional programming to learn recursive programming. Based on this learning approach, a learning system is designed. To validate the effectiveness of this learning system in learning recursive programming, a four-week experiment was conducted in this study. The experimental results demonstrate that the learning system designed using the proposed learning approach exhibits better learning outcomes in learning recursive programming compared to the control group that did not use this learning method. Thus, by employing cooperative learning and dividing the roles in recursive programming problems, learners gain positive effects in solving recursion problems through functional programming thinking.
關鍵字(中) ★ 計算機科學教育
★ 程式設計
★ 遞迴
★ 合作學習
關鍵字(英) ★ Computer Science Education
★ Programming
★ Recursion
★ Cooperative Learning
論文目次 摘要 v
Abstract vi
目錄 viii
一、 緒論 1
1.1 研究背景與動機 1
1.2 研究問題與解決辦法 3
二、 文獻探討 7
2.1 學習遞迴 7
2.2 合作學習 8
三、 學習方法與實作 11
3.1 方法概述 11
3.2 系統介面 15
3.2.1 小組資訊操作介面 15
3.2.2 角色作答操作介面 18
3.3 學習流程-階乘的遞迴問題 21
3.4 系統實作 38
3.4.1 系統概述 38
3.4.2 小組 JSON 39
3.4.3 遞迴題目 JSON 42
四、 實驗設計 43
4.1 研究對象 43
4.2 實驗流程 43
4.3 學習內容 44
4.3.1 實驗組 45
4.3.2 控制組 47
4.4 遞迴程式能力前測驗與後測驗 50
五、 實驗結果與討論 52
5.1 描述統計分析結果 52
5.2 學習成效分析工具 53
5.2.1 常態分佈檢定 53
5.2.2 迴歸係數同質性檢定 54
5.2.3 變異數同質性檢定 55
5.2.4 共變異數分析 55
5.3 受試者回饋 56
5.4 學習成效結果討論 58
5.5 研究限制 59
六、 結論與未來展望 60
6.1 結論 60
6.2 未來展望 61
參考文獻 63
參考文獻 [1] A. Robins, J. Rountree, and N. Rountree, “Learning and teaching programming: A review and discussion,” Computer science education, vol. 13, no. 2, pp. 137–172, 2003.
[2] B. Du Boulay, “Some difficulties of learning to program,” Journal of Educational Computing Research, vol. 2, no. 1, pp. 57–73, 1986.
[3] J. Gal-Ezer and D. Harel, “What (else) should cs educators know?” Communications of the ACM, vol. 41, no. 9, pp. 77–84, 1998.
[4] D. D. McCracken, “Ruminations on computer science curricula,” Communications of the ACM, vol. 30, no. 1, pp. 3–6, 1987.
[5] C. Rinderknecht et al., “A survey on teaching and learning recursive programming,” Informatics in Education-An International Journal, vol. 13, no. 1, pp. 87–120, 2014.
[6] D. Ginat and E. Shifroni, “Teaching recursion in a procedural environment—how much should we emphasize the computing model?” ACM SIGCSE Bulletin, vol. 31, no. 1, pp. 127–131, 1999.
[7] J. W. Backus, F. L. Bauer, J. Green, et al., “Report on the algorithmic language algol 60,” Communications of the ACM, vol. 3, no. 5, pp. 299–314, 1960.
[8] J. McCarthy, “Recursive functions of symbolic expressions and their computation by machine, part i,” Communications of the ACM, vol. 3, no. 4, pp. 184–195, 1960.
[9] O.-J. Dahl, E. W. Dijkstra, and C. A. R. Hoare, Structured programming. Academic Press Ltd., 1972.
[10] E. W. Dijkstra, “Recursive programming,” in Edsger Wybe Dijkstra: His Life, Work, and Legacy, 2022, pp. 291–300.
[11] R. W. Floyd, “The paradigms of programming,” in ACM Turing award lectures, 2007, p. 1978.
[12] J. A. Velazquez-Iturbide, “Recursion in gradual steps (is recursion really that difficult?)” In Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, 2000, pp. 310–314.
[13] K. Hinsen, “The promises of functional programming,” Computing in Science & Engineering, vol. 11, no. 4, pp. 86–90, 2009.
[14] P. Hudak, “Conception, evolution, and application of functional programming languages,” ACM Computing Surveys (CSUR), vol. 21, no. 3, pp. 359–411, 1989.
[15] J. Hughes, “Why functional programming matters,” The computer journal, vol. 32, no. 2, pp. 98–107, 1989.
[16] J. R. Anderson, R. Farrell, and R. Sauers, “Learning to program in lisp,” Cognitive Science, vol. 8, no. 2, pp. 87–129, 1984.
[17] E. W. Dijkstra, “Computing science: Achievements and challenges,” ACM SIGAPP Applied Computing Review, vol. 7, no. 2, pp. 2–9, 1999.
[18] J. Reinfelds, “A three paradigm first course for cs majors,” ACM SIGCSE Bulletin, vol. 27, no. 1, pp. 223–227, 1995.
[19] E. Roberts and E. Roberts, Thinking recursively. J. Wiley, 1986.
[20] G. Ford, “A framework for teaching recursion,” ACM SIGCSE Bulletin, vol. 14, no. 2, pp. 32–39, 1982.
[21] B. Haberman and H. Averbuch, “The case of base cases: Why are they so difficult to recognize? student difficulties with recursion,” in Proceedings of the 7th annual conference on innovation and technology in computer science education, 2002, pp. 84–88.
[22] E. Lahtinen, K. Ala-Mutka, and H.-M. Järvinen, “A study of the difficulties of novice programmers,” Acm sigcse bulletin, vol. 37, no. 3, pp. 14–18, 2005.
[23] P. Dillenbourg, What do you mean by collaborative learning? 1999.
[24] Pogil. process oriented guided inquiry learning. [Online]. Available: https://pogil.org/ (visited on 06/29/2023).
[25] D. M. Hanson, Instructor’s guide to process-oriented guided-inquiry learning. Pacific Crest Lisle, IL, 2006.
[26] T. Myers, R. Monypenny, and J. Trevathan, “Overcoming the glassy-eyed nod: An application of process-oriented guided inquiry learning techniques in information technology,” Journal of learning design, vol. 5, no. 1, pp. 12–22, 2012.
[27] H. H. Hu, C. Kussmaul, B. Knaeble, C. Mayfield, and A. Yadav, “Results from a survey of faculty adoption of process oriented guided inquiry learning (pogil) in computer science,” in Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, 2016, pp. 186–191.
[28] D. R. Hofstadter and E. Sander, Surfaces and essences: Analogy as the fuel and fire of thinking. Basic books, 2013.
[29] M. Er, “On the complexity of recursion in problem-solving,” International Journal of Man-Machine Studies, vol. 20, no. 6, pp. 537–544, 1984.
[30] P. L. Pirolli and J. R. Anderson, “The role of learning from examples in the acquisition of recursive programming skills.,” Canadian Journal of Psychology/Revue canadienne de psychologie, vol. 39, no. 2, p. 240, 1985.
[31] D. M. Kurland and R. D. Pea, “Children’s mental models of recursive logo programs,” Journal of Educational Computing Research, vol. 1, no. 2, pp. 235–243, 1985.
[32] I. Sanders and T. Scholtz, “First year students’ understanding of the flow of control in recursive algorithms,” African Journal of Research in Mathematics, Science and Technology Education, vol. 16, no. 3, pp. 348–362, 2012.
[33] W. Dann, S. Cooper, and R. Pausch, “Using visualization to teach novices recursion,” in Proceedings of the 6th annual conference on Innovation and technology in computer science education, 2001, pp. 109–112.
[34] A. Chaffin, K. Doran, D. Hicks, and T. Barnes, “Experimental evaluation of teaching recursion in a video game,” in Proceedings of the 2009 ACM SIGGRAPH Symposium on Video Games, 2009, pp. 79–86.
[35] J. Tessler, B. Beth, and C. Lin, “Using cargo-bot to provide contextualized learning of recursion,” in Proceedings of the ninth annual international ACM conference on International computing education research, 2013, pp. 161–168.
[36] D. Wilcocks and I. Sanders, “Animating recursion as an aid to instruction,” Computers & Education, vol. 23, no. 3, pp. 221–226, 1994.
[37] C. E. George, “Erosi—visualising recursion and discovering new errors,” ACM SIGCSE Bulletin, vol. 32, no. 1, pp. 305–309, 2000.
[38] O. AlZoubi, D. Fossati, B. Di Eugenio, and N. Green, “Chic) at-tutor: An integrated environment for learning recursion,” 2014.
[39] J. Á. Velázquez-Iturbide, A. Pérez-Carrasco, and J. Urquiza-Fuentes, “Srec: An animation system of recursion for algorithm courses,” Acm sigcse bulletin, vol. 40, no. 3, pp. 225–229, 2008.
[40] W.-J. Hsin, “Teaching recursion using recursion graphs,” Journal of Computing Sciences in Colleges, vol. 23, no. 4, pp. 217–222, 2008.
[41] M. Ben-Ari and N. Reich, “Recursion: From drama to program,” Journal of Computer Science Education, vol. 11, no. 3, pp. 9–12, 1997.
[42] M. Wirth, “Introducing recursion by parking cars,” ACM SIGCSE Bulletin, vol. 40, no. 4, pp. 52–55, 2008.
[43] S. Hamouda, S. H. Edwards, H. G. Elmongui, J. V. Ernst, and C. A. Shaffer, “Recurtutor: An interactive tutorial for learning recursion,” ACM Transactions on Computing Education (TOCE), vol. 19, no. 1, pp. 1–25, 2018.
[44] P. B. Henderson and F. J. Romero, “Teaching recursion as a problem-solving tool using standard ml,” ACM SIGCSE Bulletin, vol. 21, no. 1, pp. 27–31, 1989.
[45] S. Bhuiyan, J. E. Greer, and G. I. McCalla, “Supporting the learning of recursive problem solving,” Interactive Learning Environments, vol. 4, no. 2, pp. 115–139, 1994.
[46] J. Sawyer and R. Obeid, “Cooperative and collaborative learning: Getting the best of both words,” How we teach now: The GSTA guide to student-centered teaching, pp. 163–177, 2017.
[47] M. Deutsch, “An experimental study of the effects of co-operation and competition upon group process,” Human relations, vol. 2, no. 3, pp. 199–231, 1949.
[48] R. E. Slavin, “Cooperative learning,” Review of educational research, vol. 50, no. 2, pp. 315–342, 1980.
[49] R. E. Slavin, “Research on cooperative learning and achievement: What we know, what we need to know,” Contemporary educational psychology, vol. 21, no. 1, pp. 43–69, 1996.
[50] R. M. Gillies, “The effects of cooperative learning on junior high school students during small group learning,” Learning and instruction, vol. 14, no. 2, pp. 197–213, 2004.
[51] K. D. Benne and P. Sheats, “Functional roles of group members.,” Journal of social issues, 1948.
[52] D. Craciun, “Role-playing as a creative method in science education,” Journal of Science and Arts, vol. 10, no. 1, p. 175, 2010.
[53] J. D. Chase and E. G. Okie, “Combining cooperative learning and peer instruction in introductory computer science,” in Proceedings of the thirty-first SIGCSE technical symposium on Computer science education, 2000, pp. 372–376.
[54] H.-C. Chu and G.-J. Hwang, “Development of a project-based cooperative learning environment for computer programming courses,” International Journal of Innovation and Learning, vol. 8, no. 3, pp. 256–266, 2010.
[55] W.-Y. Hwang, R. Shadiev, C.-Y. Wang, and Z.-H. Huang, “A pilot study of cooperative programming learning behavior and its relationship with students’ learning performance,” Computers & education, vol. 58, no. 4, pp. 1267–1281, 2012.
[56] M. B. Garcia, “Cooperative learning in computer programming: A quasi-experimental evaluation of jigsaw teaching strategy with novice programmers,” Education and Information Technologies, vol. 26, no. 4, pp. 4839–4856, 2021.
[57] T.-W. Chan and C.-Y. Chou, “Exploring the design of computer supports for reciprocal tutoring,” International Journal of Artificial Intelligence in Education (IJAIED), vol. 8, pp. 1–29, 1997.
[58] Node.js api. api reference documentation for node.js. [Online]. Available: https://nodejs.org/api/net.html (visited on 06/29/2023).
[59] Newtonsoft.json. a json framework for .net. [Online]. Available: https://www.newtonsoft.com/json (visited on 06/29/2023).
[60] 教育部智慧創新跨域人才培育計畫, 大學程式設計先修檢測. [Online]. Available: https://apcs.csie.ntnu.edu.tw/ (visited on 06/29/2023).
[61] Nist. dictionary of algorithms and data structures. [Online]. Available: https://xlinux.nist.gov/dads/ (visited on 06/29/2023).
指導教授 莊永裕(Yung-Yu Zhuang) 審核日期 2023-7-17
推文 facebook   plurk   twitter   funp   google   live   udn   HD   myshare   reddit   netvibes   friend   youpush   delicious   baidu   
網路書籤 Google bookmarks   del.icio.us   hemidemi   myshare   

若有論文相關問題,請聯絡國立中央大學圖書館推廣服務組 TEL:(03)422-7151轉57407,或E-mail聯絡  - 隱私權政策聲明