博碩士論文 110522107 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:49 、訪客IP:18.225.149.32
姓名 陳冠瑋(kuan-wei chen)  查詢紙本館藏   畢業系所 資訊工程學系
論文名稱 基於鷹架理論的學習輔助系統以引導式填空在遞迴程式設計學習之研究
(A Study on Using a Learning Support System Based on Scaffolding Theory to Guide Learners by Fill-in-the-blank for Recursive Programming Learning)
相關論文
★ 條件判斷式事件驅動程式設計之C語言擴充★ 基于小波变换的指纹活度检测,具有聚集 LPQ 和 LBP 特征
★ 應用自動化測試於異質環境機器學習管道之 MLOps 系統★ 設計具有可視化思維工具和程式作為單一步的 輔助學習程式之棋盤式遊戲
★ TOCTOU 漏洞的靜態分析與實作★ 用於繪製風力發電控制邏輯之特定領域語言
★ 在Java程式語言中以雙向結構表達數學公式間關聯之設計與實作★ 支援模組化規則製作之程式碼轉換工具
★ 基於替代語意的 pandas DataFrame 靜態型別檢查器★ 自動化時間複雜度分析的設計與實作–從軟體層面評估嵌入式系統的功率消耗
★ 以震波層析成像為應用之特定領域語言實作與分析★ 用特徵選擇減少疲勞偵測腦電圖通道數
★ 一個應用紙本運算與數位化於程式設計學習使程序性思維可視化的機制★ 基於抽象語法樹的陣列形狀錯誤偵測
★ 從合作學習角色分工獲得函式程式設計思維學習遞迴程式的機制★ 基於抽象語法樹的深度複製及彈性別名之所有權系統解決 Java 表示暴露問題
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   至系統瀏覽論文 (2029-1-22以後開放)
摘要(中) 程式設計能力已成為各行各業的必備能力,對於初學者來說,程式設計涉及到了數學邏輯、文法規則等多種先備知識,因此需要有效的策略進行學習。其中遞迴被認為是較難學習的項目之一,需要學生建立正確的心理模型才能正確思考並撰寫出完整的程式,也由於遞迴程式需要同時思考基底與如何將程式拆分變小,對新手而言較難去兼顧多種條件並同時思考整體的遞迴程式。因此本文提出了基於鷹架理論的學習輔助系統,並以引導式填空幫助學生理解遞迴程式設計,透過分階段思考遞迴的概念,每次只須思考遞迴程式的一小部分,並根據系統反饋及時驗證答案,遇到錯誤時能夠及時針對該階段做修正,如此一步一步完成遞迴程式的撰寫。本研究設計了學習系統進行了教學實驗,對遞迴程式設計的概念和程式碼撰寫能力進行探討,結果顯示以分階段引導式填空學習的實驗組優於直接撰寫程式碼的控制組,顯示本研究提出之學習方式對遞迴程式學習有正面的效果。
摘要(英) Programming skills have become an necessity skill across all indus- tries. For beginners, programming involves a variety of prerequisite knowl- edge such as mathematical logic and grammar rules, thus necessitating ef- fective learning strategies. Recursive programming design is considered one of the difficult topics to learn. It requires students to establish a correct mental model in order to think correctly and write a complete program. Also, recursive programming needs to think about the base case and how to split the program into smaller parts at the same time, it is difficult for novices to consider multiple conditions while thinking about the overall re- cursive program. Therefore, this paper proposes a learning support system based on scaffolding theory to guided learners by fill-in-the-blank to help students understand recursive program design. Through staged thinking about the concept of recursion, each time only a small part of the recursive program needs to be considered, and the answer can be verified in time based on system feedback. If an error is encountered, it can be corrected in time ,thereby completing the recursive program step by step. This study designed a learning system and conducted teaching experiments to explore the concept of recursive programming and the ability to write sourcecode. The results showed that the experimental group, which used guided fill-in- the-blank outperformed the control group that wrote code directly. This outcome indicates that the learning method proposed in this study has a positive effect on learning recursive programming.
關鍵字(中) ★ 計算機科學教育
★ 程式設計
★ 遞迴
★ 鷹架理論
關鍵字(英) ★ Computer Science Education
★ Programming
★ Recursion
★ Scaffolding theory
論文目次 摘要 i
Abstract ii
目錄 iv
一、 緒論 1
1.1 研究背景與動機 1
1.2 研究目標 3
1.3 研究問題與解決辦法 3
二、 文獻探討 5
2.1 遞迴教學 5
2.2 鷹架理論 6
三、 方法與實作 8
3.1 方法概述 8
3.2 系統介面 12
3.3 學習流程 13
3.4 系統實作 22
3.4.1 系統概述 22
3.4.2 頁面傳遞 24
3.4.3 預先填入及選項 JSON 26
四、 實驗設計 29
4.1 研究對象 29
4.2 實驗流程 29
4.3 學習內容 30
4.3.1 實驗組 32
4.3.2 控制組 33
4.4 遞迴程式能力前測驗與後測驗 35
五、 結果與討論 37
5.1 描述統計分析結果 37
5.2 學習成效分析工具 38
5.2.1 共變異數分析前提檢驗 38
5.2.2 共變異數分析 40
5.3 受試者回饋 41
5.4 學習成效結果討論 42
5.5 研究限制 42
六、 結論與未來展望 44
6.1 結論 44
6.2 未來展望 44
參考文獻 46
參考文獻 Ajax introduction. (n.d.). Retrieved September 5, 2023, from https://www.w3schools.
com/js/js_ajax_intro.asp

Altadmri, A., & Brown, N. C. (2015). 37 million compilations: Investigating novice pro-
gramming mistakes in large-scale student data. Proceedings of the 46th ACM tech-
nical symposium on computer science education, 522–527.

Apache friends. xampp (8.0.28). (n.d.). Retrieved September 5, 2023, from https://www.
apachefriends.org/index.html
Bannert, M. (2009). Promoting self-regulated learning through prompts. Zeitschrift für
Pädagogische Psychologie, 23(2), 139–145.
Bennedsen, J., & Caspersen, M. E. (2019). Failure rates in introductory programming: 12
years later. ACM inroads, 10(2), 30–36.
Berssanette, J. H., & de Francisco, A. C. (2021). Cognitive load theory in the context
of teaching and learning computer programming: A systematic literature review.
IEEE Transactions on Education, 65(3), 440–449.
Cabo, C. (2018). Effectiveness of flowcharting as a scaffolding tool to learn python. 2018
IEEE Frontiers in Education Conference (FIE), 1–7.
Ceja, J. M. O., & Cervantes, E. B. (2013). An epistemology for software tool design
that promotes knowledge production: Experiences with students learning computer
programming languages. 2013 Second International Conference on E-Learning and
E-Technologies in Education (ICEEE), 37–41.
Clark, D. B., Sampson, V., Weinberger, A., & Erkens, G. (2007). Analytic frameworks
for assessing dialogic argumentation in online learning environments. Educational
Psychology Review, 19, 343–374.
Collins, A., Brown, J. S., & Newman, S. E. (2018). Cognitive apprenticeship: Teaching the
crafts of reading, writing, and mathematics. In Knowing, learning, and instruction
(pp. 453–494). Routledge.
Dann, W., Cooper, S., & Pausch, R. (2001). Using visualization to teach novices recursion.
Proceedings of the 6th annual conference on Innovation and technology in computer
science education, 109–112.

da Rosa, S., & Chmiel, A. (2012). A study about students’ knowledge of inductive struc-
tures. PPIG, 7.

Endres, M., Weimer, W., & Kamil, A. (2021). An analysis of iterative and recursive prob-
lem performance. Proceedings of the 52nd ACM Technical Symposium on Computer

Science Education, 321–327.
Er, M. (1984). On the complexity of recursion in problem-solving. International Journal
of Man-Machine Studies, 20(6), 537–544.
Gal-Ezer, J., & Harel, D. (1998). What (else) should cs educators know? Communications
of the ACM, 41(9), 77–84.
Ginat, D. (2005). The suitable way is backwards, but they work forward. Journal of
Computers in Mathematics and Science Teaching, 24(1), 73–88.

Goldwasser, M., & Letscher, D. (2007). Teaching strategies for reinforcing structural re-
cursion with lists. Companion to the 22nd ACM SIGPLAN conference on Object-
oriented programming systems and applications companion, 889–896.

Gomes, A., & Mendes, A. J. (2007). Learning to program-difficulties and solutions. Inter-
national Conference on Engineering Education–ICEE, 7.

Götschi, T., Sanders, I., & Galpin, V. (2003). Mental models of recursion. Proceedings of
the 34th SIGCSE technical symposium on Computer science education, 346–350.
Grady, H. M. (2006). Instructional scaffolding for online courses. 2006 IEEE International
Professional Communication Conference, 148–152.
Harley, Z., & Harley, E. R. (2012). A wizard for e-learning computer programming.
2012 International Conference on E-Learning and E-Technologies in Education
(ICEEE), 95–98.
Henderson, P. B., & Romero, F. J. (1989). Teaching recursion as a problem-solving tool
using standard ml. ACM SIGCSE Bulletin, 21(1), 27–31.
Kahney, H. (1983). What do novice programmers know about recursion. Proceedings of
the SIGCHI conference on Human Factors in Computing Systems, 235–239.
Kahney, J. H. (1982). An in-depth study of the cognitive behaviour of novice programmers.
Open University (United Kingdom).
Kim, M. C., & Hannafin, M. J. (2011). Scaffolding problem solving in technology-enhanced

learning environments (teles): Bridging research and theory with practice. Com-
puters & Education, 56(2), 403–417.

Komm, D. (2021). Teaching recursion in high school: A constructive approach. Informatics
in Schools. Rethinking Computing Education: 14th International Conference on
Informatics in Schools: Situation, Evolution, and Perspectives, ISSEP 2021, Virtual
Event, November 3–5, 2021, Proceedings 14, 69–80.

Lee, E., Shan, V., Beth, B., & Lin, C. (2014). A structured approach to teaching recur-
sion using cargo-bot. Proceedings of the tenth annual conference on International

computing education research, 59–66.
Mbogo, C., Blake, E., & Suleman, H. (2013). A mobile scaffolding application to support
novice learners of computer programming. Proceedings of the Sixth International
Conference on Information and Communications Technologies and Development:
Notes-Volume 2, 84–87.

McCauley, R., Grissom, S., Fitzgerald, S., & Murphy, L. (2015). Teaching and learn-
ing recursive programming: A review of the research literature. Computer Science

Education, 25(1), 37–66.
McGill, T. J., & Volet, S. E. (1997). A conceptual framework for analyzing students’
knowledge of programming. Journal of research on Computing in Education, 29(3),
276–297.
Nam, D., Kim, Y., & Lee, T. (2010). The effects of scaffolding-based courseware for the
scratch programming learning on student problem solving skill. Proceedings of the
18th International Conference on Computers in Education, 723, 727.
Nielsen, H., Mogul, J., Masinter, L. M., Fielding, R. T., Gettys, J., Leach, P. J., &
Berners-Lee, T. (1999, June). Hypertext Transfer Protocol – HTTP/1.1. https:
//doi.org/10.17487/RFC2616
Nist. dictionary of algorithms and data structures. (n.d.). Retrieved October 3, 2023, from
https://xlinux.nist.gov/dads/
Nouri, J., Zhang, L., Mannila, L., & Norén, E. (2020). Development of computational
thinking, digital competence and 21st century skills when learning programming
in k-9. Education Inquiry, 11(1), 1–17.
Pea, R. D. (2018). The social and technological dimensions of scaffolding and related
theoretical concepts for learning, education, and human activity. In Scaffolding
(pp. 423–451). Psychology Press.

Pirolli, P. L., & Anderson, J. R. (1985). The role of learning from examples in the ac-
quisition of recursive programming skills. Canadian Journal of Psychology/Revue

canadienne de psychologie, 39(2), 240.

Qian, Y., & Lehman, J. (2017). Students’misconceptions and other difficulties in in-
troductory programming: A literature review. ACM Transactions on Computing

Education (TOCE), 18(1), 1–24.

Raes, A., Schellens, T., De Wever, B., & Vanderhoven, E. (2012). Scaffolding informa-
tion problem solving in web-based collaborative inquiry learning. Computers &

Education, 59(1), 82–94.
Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: A
review and discussion. Computer science education, 13(2), 137–172.

Rohl, J. S. (1980). Why recursion? In J. M. Tobias (Ed.), Language design and program-
ming methodology (pp. 71–83). Springer Berlin Heidelberg.

Sadik, O., & Ottenbreit-Leftwich, A. T. (2023). Understanding us secondary computer
science teachers’challenges and needs. Computer Science Education, 1–33.

Salleh, S. M., Shukur, Z., & Judi, H. M. (2018). Scaffolding model for efficient program-
ming learning based on cognitive load theory. Int. J. Pure Appl. Math, 118(7),

77–83.
Segal, J. (1994). Empirical studies of functional programming learners evaluating recursive
functions. Instructional Science, 22, 385–411.

Sentance, S., & Waite, J. (2017). Primm: Exploring pedagogical approaches for teaching
text-based programming in school. Proceedings of the 12th Workshop on Primary
and Secondary Computing Education, 113–114.
Spohrer, J. C., & Soloway, E. (1989). Simulating student programmers. IJCAI, 89, 543–
549.
Velázquez-Iturbide, J. Á., Pérez-Carrasco, A., & Urquiza-Fuentes, J. (2008). Srec: An
animation system of recursion for algorithm courses. Acm sigcse bulletin, 40(3),
225–229.
Voelkel, S. (2013). Combining the formative with the summative: The development of a
twostage online test to encourage engagement and provide personal feedback in
large classes. Research in Learning Technology, 21.
Watson, C., & Li, F. W. (2014). Failure rates in introductory programming revisited.
Proceedings of the 2014 conference on Innovation & technology in computer science
education, 39–44.
Wood, D., Bruner, J. S., & Ross, G. (1976). The role of tutoring in problem solving.
Journal of child psychology and psychiatry, 17(2), 89–100.
Xie, B., Loksa, D., Nelson, G. L., Davidson, M. J., Dong, D., Kwik, H., Tan, A. H.,
Hwa, L., Li, M., & Ko, A. J. (2019). A theory of instruction for introductory
programming skills. Computer Science Education, 29(2-3), 205–253.
Xmlhttprequest - web apis. (n.d.). Retrieved September 5, 2023, from https://developer.
mozilla.org/zh-TW/docs/Web/API/XMLHttpRequest
教育部智慧創新跨域人才培育計畫,大學程式設計先修檢測. (n.d.). Retrieved October
3, 2023, from https://apcs.csie.ntnu.edu.tw/
指導教授 莊永裕(Yung-Yu Zhuang) 審核日期 2024-1-25
推文 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聯絡  - 隱私權政策聲明