簡易檢索 / 詳目顯示

研究生: 黃韋期
Wei-Chi Huang
論文名稱: 程式設計課程之團隊程式碼審查流程與系統建置
Team Code Review Process and System Development of Programming Course
指導教授: 黃世禎
Sun-Jen Huang
口試委員: 黃世禎
Sun-Jen Huang
魏小蘭
Hsiao-Lan Wei
劉俞志
Yu-Chih Liu
學位類別: 碩士
Master
系所名稱: 管理學院 - 資訊管理系
Department of Information Management
論文出版年: 2021
畢業學年度: 109
語文別: 中文
論文頁數: 79
中文關鍵詞: 學習動機學習成效程式碼審查合作學習
外文關鍵詞: learning motivation, code review, learning effectiveness, cooperative learning
相關次數: 點閱:412下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報

許多軟體公司藉由導入程式碼審查(code review),幫助查找錯誤並修正、達到知識的轉移以及發想替代的解決方案。學者們發現軟體行業中程式碼審查帶來的好處,也開始在課堂中導入程式碼審查,以提升學生的學習效果。但教師在導入程式碼審查於課程中仍遇到許多困難,例如:學生的學習動機低落、學生的審查能力不足、低品質的程式碼審查以及教師的工作量過大,針對這些困難,目前沒有一個綜合性的解決方案。
因此本研究先彙整與分析程式碼審查在教學場域中遇到的問題,提出整合性解決方案,在程式碼審查中導入小組合作的方式,並以小組成績激勵與均能分組來促進合作學習的效果,設計程式碼審查框架幫助學生進行程式碼審查,作業程式碼由配對的分組批改,學生對成績有疑惑時也能提出交由老師處理,以上述解決方案設計團隊程式碼審查流程,並依照此流程開發團隊程式碼審查系統,實際於程式設計課堂中實施本研究所提出的團隊程式碼審查流程與系統,以系統數據與問卷的方式蒐集結果驗證成效。
研究結果發現,透過本研究提出的團隊程式碼審查流程,學生的學習動機有顯著的提升,批改結果顯示學生有足夠的審查能力,低品質的程式碼審查也獲得改善,而教師的工作量減輕,學生也認同成績的公平性。在迴歸統計的假設結果也顯示出,在程式碼審查學習中,團隊程式碼審查之合作學習對學習動機有正向的影響,進而提升程式碼審查的學習成效,藉此證明本研究提出之以合作學習為主的團隊程式碼審查流程有助於學生的學習動機以及學習成效。


Many software companies use code review to find and correct errors, transfer knowledge and develop alternative solutions. Teachers discovered the benefits of code review in the software industry, and they introduced code review into the curriculum. However, there are still many difficulties, such as low learning motivation, insufficient review ability, low review quality and heavy workload of teachers. There is no comprehensive solution for these difficulties.
Therefore, this study collects and analyzes the problems of code review in the curriculum. The solution introduces the team cooperation into the code review and promotes the effect with performance incentives and average ability grouping. The review framework is designed to facilitate students. Assignments are corrected by students. Students can raise questions when they have doubts about their grades. The team code review process is designed for this solution, and the system is developed in accordance with this process. This study implements the team code review in the course, and collects the data of system and questionnaire results.
The results find that, through the team code review, the learning motivation of students has been significantly improved. The correct results show that the student are sufficient to review. Low review quality has also been improved. The workload of teachers is reduced, and students also agree with the fairness of the score.
The results of regression show that cooperative learning has a positive effect on learning motivation and enhances the learning effectiveness of code review in the code review learning. This proves that the team code review process proposed by this study, which is mainly based on cooperative learning, is helpful to learning motivation and learning effectiveness.

目錄 圖目錄 表目錄 第一章 緒論 1.1 研究背景 1.2 研究動機 1.3 研究目的 1.4 研究架構 第二章 文獻探討 2.1 程式碼審查 2.1.1 程式碼審查之起源與定義 2.1.2 程式碼審查應用於教學領域之現況 2.2 合作學習 2.2.1 合作學習定義 2.2.2 合作學習之成功因素 2.2.3 提升合作學習之相關理論 2.3 同儕互評 2.3.1 同儕互評定義與理論基礎 2.3.2 同儕互評之缺點 2.4 學習動機 2.5 學習成效 2.6 各變項間之關聯 2.6.1 合作學習與學習成效 2.6.2 合作學習與學習動機 2.6.3 學習動機與學習成效 第三章 研究方法 3.1 研究方法 3.2 研究流程 3.3 團隊程式碼審查流程設計 3.3.1 教學上程式碼審查之問題彙整與分析 3.3.2 教學上程式碼審查之問題解決方案設計 3.3.3 團隊程式碼審查流程設計 3.3.4 程式碼審查框架設計 3.4 研究假設 3.4.1 變數定義 3.4.2 研究假設 3.5 研究設計 3.5.1 研究對象 3.5.2 實施流程 3.5.3 問卷設計 3.5.4 資料處理與分析 第四章 系統設計與展示 4.1 系統分析與設計 4.1.1 團隊程式碼審查系統之需求分析 4.1.2 團隊程式碼審查系統設計架構 4.1.3 團隊程式碼審查系統設計 4.1.4 系統環境與技術 4.2 系統功能與展示 4.2.1 程式能力調查階段 4.2.2 分組階段 4.2.3 個人作業階段 4.2.4 程式碼審查合作階段 4.2.5 建議評分階段 4.2.6 考試階段 第五章 結果分析與討論 5.1 結果分析 5.1.1 學生在程式碼審查作業評分的效度 5.1.2 學生在團隊程式碼審查中的成績疑慮 5.1.3 小組程式碼建議之品質 5.1.4 問卷結果 5.1.5 團隊程式碼審查對學習動機之影響 5.2 假設驗證 5.2.1 合作學習對學習成效之影響 5.2.2 合作學習對學習動機之影響 5.2.3 學習動機對學習成效之影響 5.2.4 學習動機在合作學習對學習成效之中介效果 5.3 研究結果討論 5.3.1 團隊程式碼審查解決教學上程式碼審查之問題 5.3.2 團隊程式碼審查系統之滿意度 5.3.3 團隊程式碼審查之程式設計學習效果 5.3.4 團隊程式碼審查的假設驗證結果之意涵 第六章 結論與建議 6.1 研究結論 6.2 研究限制 6.3 未來建議 參考文獻

Ackerman, A. F., Buchwald, L. S., & Lewski, F. H. (1989). Software inspections: an effective verification process. IEEE Software, 6(3), 31-36.
Afzal, H., Ali, I., Aslam Khan, M., & Hamid, K. (2010). A study of university students’ motivation and its relationship with their academic performance. Available at SSRN 2899435.
Almeida, F. (2018). Framework for software code reviews and inspections in a classroom environment. International Journal of Modern Education and Computer Science, 10(10), 31.
Aurum, A., Petersson, H., & Wohlin, C. (2002). State-of-the-art: software inspections after 25 years. Software Testing, Verification and Reliability, 12(3), 133-154. doi:https://doi.org/10.1002/stvr.243
Bandura, A., & Walters, R. H. (1977). Social learning theory (Vol. 1): Englewood cliffs Prentice Hall.
Baron, R. M., & Kenny, D. A. (1986). The moderator–mediator variable distinction in social psychological research: Conceptual, strategic, and statistical considerations. Journal of personality and social psychology, 51(6), 1173.
Basalaj, W., & van den Beuken, F. (2006). Correlation between coding standards compliance and software quality. White paper, Programming Research Ltd.
Briand, L. C., Freimut, B., & Vollei, F. (2000). Assessing the cost-effectiveness of inspections by combining project data and expert opinion. Paper presented at the Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.
Carbonaro, A., & Ravaioli, M. (2017). Peer assessment to promote Deep Learning and to reduce a Gender Gap in the Traditional Introductory Programming Course. Journal of e-Learning and Knowledge Society, 13(3).
Chu, H.-C., Hwang, G.-J., Tsai, C.-C., & Tseng, J. C. R. (2010). A two-tier test approach to developing location-aware mobile learning systems for natural science courses. Computers & Education, 55(4), 1618-1627. doi:https://doi.org/10.1016/j.compedu.2010.07.004
Chu, H., & Hwang, G.-J. (2010). Development of a project-based cooperative learning environment for computer programming courses. International Journal of Innovation and Learning, 8. doi:10.1504/IJIL.2010.035029
Fagan, M. (1986). Advances Software Inspections IEEE Transactions Software Engineering Vol. SE-12(7).
Fowler, M. (2018). Refactoring: improving the design of existing code: Addison-Wesley Professional.
Gehringer, E., Chinn, D., Pérez-Quiñones, M., & Ardis, M. (2005). Using peer review in teaching computing.
Gilb T, G. D. Software Inspection. Addison-Wesley: Wokingham, U.K.
Guay, F., Ratelle, C. F., & Chanal, J. (2008). Optimal learning in optimal contexts: The role of self-determination in education. Canadian Psychology/Psychologie canadienne, 49(3), 233.
Hair, J. F., Anderson, R. E., Tatham, R. L., & Black, W. C. . (1998). Multivariate
data analysis (5th ed.). New York: Macmillan.
Hee, O. C. (2014). Validity and Reliability of the Customer-Oriented Behaviour Scale in the Health Tourism Hospitals in Malaysia. International Journal of Caring Sciences, 7(3).
Heywood, J. (2000). Assessment in higher education: Student learning, teaching, programmes and institutions (Vol. 56): Jessica Kingsley Publishers.
Hämäläinen, H., Hyyrynen, V., Ikonen, J., & Porras, J. (2011). Applying peer-review for programming assignments. International Journal on Information Technologies & Security, 1, 3-17.
Hundhausen, C., Agarwal, P., & Trevisan, M. (2011). Online vs. face-to-face pedagogical code reviews: An empirical comparison. doi:10.1145/1953163.1953201
Hundhausen, C., Agrawal, A., Fairbrother, D., & Trevisan, M. (2009). Integrating pedagogical code reviews into a CS 1 course: an empirical study. SIGCSE Bull., 41(1), 291–295. doi:10.1145/1539024.1508972
Hundhausen, C., Agrawal, A., Fairbrother, D., & Trevisan, M. (2010). Does studio-based instruction work in CS 1? an empirical comparison with a traditional approach. Paper presented at the Proceedings of the 41st ACM technical symposium on Computer science education, Milwaukee, Wisconsin, USA. https://doi.org/10.1145/1734263.1734432
Hwang, G.-J., Yang, L.-H., & Wang, S.-Y. (2013). A concept map-embedded educational computer game for improving students' learning performance in natural science courses. Computers & Education, 69, 121-130.
Ismail, A., Hasan, A. B. M., & Sulaiman, A. Z. (2010). Supervisor’s role as an antecedent of training transfer and motivation to learn in training programs. Acta Universitatis Danubius. Œconomica, 6(2).
Johnson, D. W. (1994). Cooperative learning in the classroom: ERIC.
Johnson, D. W., & Johnson, R. T. (1987). Learning together and alone: Cooperative, competitive, and individualistic learning: Prentice-Hall, Inc.
Johnson, D. W., Johnson, R. T., & Stanne, M. B. (2000). Cooperative learning methods: A meta-analysis. In: Minneapolis.
Kalkowski, P. (1988). Communication in cooperative learning groups. New Orleans, LA:
American Educational Research Association.
Krusche, S., Berisha, M., & Bruegge, B. (2016). Teaching code review management using branch based workflows. Paper presented at the Proceedings of the 38th International Conference on Software Engineering Companion, Austin, Texas. https://doi.org/10.1145/2889160.2889191
Kubincová, Z., & Homola, M. (2017). Code Review in Computer Science Courses: Take One, Cham.
Lahtinen, E., Ala-Mutka, K., & Järvinen, H.-M. (2005). A study of the difficulties of novice programmers (Vol. 37).
Li, X. (2006, 27-31 Oct. 2006). Using Peer Review to Assess Coding Standards - A Case Study. Paper presented at the Proceedings. Frontiers in Education. 36th Annual Conference.
Lin, S. S., Liu, E. Z.-F., & Yuan, S.-M. (2001). Web‐based peer assessment: feedback for students with various thinking‐styles. Journal of computer assisted Learning, 17(4), 420-432.
MacIntyre, P. D., & Blackie, R. A. (2012). Action control, motivated strategies, and integrative motivation as predictors of language learning affect and the intention to continue learning French. System, 40(4), 533-543.
Neill, D. O. (1997). Issues in software inspection. IEEE Software, 14(1), 18-19. doi:10.1109/52.566420
Nijhof, W., & Kommers, P. (1985). An analysis of cooperation in relation to cognitive controversy. In Learning to cooperate, cooperating to learn (pp. 125-145): Springer.
O'Hara, N., & O'Broin, D. (2016). Incorporating Game Elements Into Programming Practical Classes to Encourage Collaboration and Knowledge Sharing. Paper presented at the European Conference on Games Based Learning.
Park, J., Park, Y. H., Kim, S., & Oh, A. (2017). Eliph: Effective Visualization of Code History for Peer Assessment in Programming Education. Paper presented at the Proceedings of the 2017 ACM Conference on Computer Supported Cooperative Work and Social Computing, Portland, Oregon, USA. https://doi.org/10.1145/2998181.2998285
Parker, R. E. (1985). Small-group cooperative learning—Improving academic, social gains in the classroom. Nassp Bulletin, 69(479), 48-57.
Piaget, J. (1976). Mastery Play. In Bruner, Jolly, & Sylva (Eds.), Play: Its role in development and evolution New York, NY: Basic Books, Inc.
Piccoli, G., Ahmad, R., & Ives, B. (2001). Web-based virtual learning environments: A research framework and a preliminary assessment of effectiveness in basic IT skills training. MIS quarterly, 401-426.
Politz, J. G., Collard, J. M., Guha, A., Fisler, K., & Krishnamurthi, S. (2016). The Sweep: Essential Examples for In-Flow Peer Review. Paper presented at the Proceedings of the 47th ACM Technical Symposium on Computing Science Education, Memphis, Tennessee, USA. https://doi.org/10.1145/2839509.2844626
Pon-Barry, H., Packard, B. W.-L., & St. John, A. (2017). Expanding capacity and promoting inclusion in introductory computer science: a focus on near-peer mentor preparation and code review. Computer Science Education, 27(1), 54-77. doi:10.1080/08993408.2017.1333270
Putnam, J. W. (1993). Cooperative Learning and Strategies for Inclusion: Celebrating Diversity in the Classroom. Children, Youth & Change: Sociocultural Perspectives: ERIC.
Reily, K., Finnerty, P. L., & Terveen, L. (2009). Two peers are better than one: aggregating peer reviews for computing assignments is surprisingly accurate. Paper presented at the Proceedings of the ACM 2009 international conference on Supporting group work, Sanibel Island, Florida, USA. https://doi.org/10.1145/1531674.1531692
Rigby, P. C., & Bird, C. (2013). Convergent contemporary software peer review practices. Paper presented at the Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, Saint Petersburg, Russia. https://doi.org/10.1145/2491411.2491444
Rong, G., Li, J., Xie, M., & Zheng, T. (2012, 17-19 April 2012). The Effect of Checklist in Code Review for Inexperienced Students: An Empirical Study. Paper presented at the 2012 IEEE 25th Conference on Software Engineering Education and Training.
Russell, G. W. (1991). Experience with inspection in ultralarge-scale development. IEEE Software, 8(1), 25-31.
Searby, M., & Ewers, T. (1997). An evaluation of the use of peer assessment in higher education: A case study in the School of Music, Kingston University. Assessment & Evaluation in Higher Education, 22(4), 371-383.
Sitthiworachart, J., & Joy, M. (2004). Effective peer assessment for learning computer programming. SIGCSE Bull., 36(3), 122–126. doi:10.1145/1026487.1008030
Slavin, R. E. (1985). Cooperative learning: Applying contact theory in desegregated schools. Journal of Social Issues.
Slavin, R. E. (1990). Cooperative learning.Celin Rogers The social psychology of the primary school,N.Y.:KKY.
Slavin, R. E. (1995). Cooperative learning: Theory, research and practice. Edgewood Cliffs, NJ: Prentice Hall

Slavin, R. E. (2019). Educational psychology: Theory and practice.
Sondergaard, H. (2009). Learning from and with peers: the different roles of student peer reviewing. Paper presented at the Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education.
Sripada, S., Reddy, Y. R., & Sureka, A. (2015, 18-19 May 2015). In Support of Peer Code Review and Inspection in an Undergraduate Software Engineering Course. Paper presented at the 2015 IEEE 28th Conference on Software Engineering Education and Training.
Sripada, S. K., & Reddy, Y. R. (2015, 28 Sept.-1 Oct. 2015). Code Comprehension Activities in Undergraduate Software Engineering Course - A Case Study. Paper presented at the 2015 24th Australasian Software Engineering Conference.
Stalhane, T., Kutay, C., Al-Kilidar, H., & Jeffery, R. (2004). Teaching the process of code review. Paper presented at the 2004 Australian Software Engineering Conference. Proceedings.
Topping, K. (1998). Peer assessment between students in colleges and universities. Review of educational Research, 68(3), 249-276.
Turner, S., Quintana-Castillo, R., & Edwards, S. (2008). Misunderstandings about object-oriented design: Experiences using code reviews. ACM SIGCSE Bulletin, 40, 97-101. doi:10.1145/1352135.1352169
Vygotsky, L. S. (1978). Mind in society. Cambridge, MA : Harvard University.
Wang, Y., Li, H., Feng, Y., Jiang, Y., & Liu, Y. (2012). Assessment of programming language learning based on peer code review model: Implementation and experience report. Computers & Education, 59(2), 412-422. doi:https://doi.org/10.1016/j.compedu.2012.01.007
Wang, Y., Liang, Y., Liu, L., & Liu, Y. (2016). A multi-peer assessment platform for programming language learning: considering group non-consensus and personal radicalness. Interactive Learning Environments, 24(8), 2011-2031. doi:10.1080/10494820.2015.1073748
Wang, Y., Su, X., Hu, Y., & Wang, Q. (2007). How to Evaluate Students' Learning Outcome: A Peer Code Review Model in Undergraduate Computer Programming Class.
Wang, Y., Yijun, L., Collins, M., & Liu, P. (2008). Process improvement of peer code review and behavior analysis of its participants. ACM SIGCSE Bulletin, 40(1), 107-111.
Wang, Y., Zheng, B., & Huang, H. (2008). Complying with Coding Standards or Retaining Programming Style: A Quality Outlook at Source Code Level. J. Softw. Eng. Appl., 1(1), 88-91.
Watson, S. B. (1992). The essential elements of cooperative learning. The American Biology Teacher, 84-86.
Yanqing, W., Hang, L., Yanan, S., Yu, J., & Jie, Y. (2011). Learning outcomes of programming language courses based on peer code review model. Paper presented at the 2011 6th International Conference on Computer Science & Education (ICCSE).
Zhao, Y. (1998). The effects of anonymity on computer-mediated peer review. International Journal of Educational Telecommunications, 4(4), 311-345.
王子耕. (2013). 學習構成要素滿意度中介下,學習動機對學習成效影響之研究-以成人自主學習者為例. 國立臺灣科技大學,
王建忠. (2001). 團隊領導與團隊效能: 團隊內互動的中介效果, 國立台灣大學心理學研究所碩士論文.
吳有龍, 張啟瑞, & 林寶安. (2011). 警察機關 [受理報案 e 化資訊系統] 員警使用滿意度之研究. 經營管理論叢.
吳清山, & 林天祐. (2002). [教育名詞] 認知學徒制. 教育研究月刊.
李勇輝. (2017). 學習動機, 學習策略與學習成效關係之研究-以數位學習為例. 經營管理學刊第 14 期.
汪慧玲, & 沈佳生. (2013). 合作學習教學策略對大專學生之學習成效與學習態度之影響: 以兒童發展評量與輔導課程某單元為例 Effects of Cooperative Learning Teaching Strategy on College Students’ Learning Effectiveness and Attitude: An example of Child Developing Evaluation and Guidance.
林宏澤. (2010). 合作學習教學法對國中生英語學習成就和學習態度的影響 . 立德大學, 臺南市.
林秀玉. (2006). 小組合作學習達到真正成功必備的要點. 科學教育月刊(295), 23-32.
林英文. (2002). 線上同儕評量對國中生簡報製作技能學習成效之研究. 臺灣師範大學資訊教育學系在職進修碩士班學位論文, 1-78.
林雅雯, 江柏叡, & 曾志隆. (2015). 應用合作學習於國中數學課程之前實驗研究. 臺灣數學教師, 36(2), 13-25.
林達森. (2002). 合作學習在九年一貫課程的應用. In: 教育研究資訊.
林璟禧. (2008). 認知學徒制融入國小六年級 數學合作學習之行動研究. 中原大學教育研究所學位論文, 1-152.
韋佳伶. (2015). 國中數學課進行合作學習輔以認知學徒制之行動研究. 中原大學教育研究所學位論文, 1-107.
張春興. (2000). 教育心理學: 三化取向的理論與實踐, 臺北市: 臺灣東華書局.
張春興, & 林清山. (1996). 教育心理學, 台北: 東華書局.
莊志良, & 鍾乾癸. (2003). 程式設計人才能力管理系統之設計. http://hdl.handle.net/11536/49802.
陳怡莉. (2007). 提問式教學支援系統之同儕互評及學生學習成效. 臺灣師範大學資訊教育學系學位論文, 1-132.
陳品華. (2006). 技職大學生自我調整學習的動機困境與調整策略之研究. 國立臺灣師範大學教育心理與輔導學系, 教育心理學報, 38(1), 37-50.
曾聖超, & 蔡今中. (2003). 以網路同儕互評系統輔助高中電腦課程教學: 學習成效及同儕回饋之分析.
黃台珠, & 李嘉祥. (2000). 合作學習對國中學生生物學習動機之影響. 科學與教育學報(4), 61-81.
黃永和. (2013). 合作學習的教學實務議題探析. 國民教育, 53(5), 78-88.
黃俊程. (2011). 合作學習對國中七年級學生的數學學習成就與數學焦慮的影響(未出版之碩士論文)。國立臺灣師範大學,未出版,臺北市。

楊瑩. (2011). 以學生學習成效為評量重點的歐盟高等教育品質保證政策. 評鑑雙月刊(30), 27-34.
趙育玲, & 李亭亭. (2015). 加護病房護理人員使用臨床資訊系統之滿意度研究. 護理暨健康照護研究, 11(2), 109-118.
劉加霞、辛濤、黃高慶、申繼亮. (2000). 中學生學習動機、學習策略與學業成就
的關係研究,. 教育理論與實踐, 9, 34-45.
鄭守杰. (2003). 網路同儕互評對國小學童學習成效之影響.
鄭守杰, & Cheng, S.-C. (2003). 網路同儕互評對國小學童學習成效之影響. Retrieved from http://ir.lib.ncku.edu.tw/handle/987654321/33465
鄭采玉. (2008). 國小學生社會領域學習動機與學習滿意度關係之研究. 國立
屏東教育大學社會發展學系社會科教學研究所碩士論文.
鄭麗媛, 邱文信, & 曾德明. (2014). 合作學習教學法對體操學習表現之影響. 體育學報, 47(1), 129-138.
鍾大定. (2003). 專題導向學習應用於程式設計課程之研究.

無法下載圖示 全文公開日期 2024/08/18 (校內網路)
全文公開日期 2031/08/18 (校外網路)
全文公開日期 2031/08/18 (國家圖書館:臺灣博碩士論文系統)
QR CODE