研究生: |
陳光禧 Chen, Guang-Si |
---|---|
論文名稱: |
GitHub輔助程式設計專題學習之研究 Project-based Programming Learning by Using GitHub |
指導教授: |
林育慈
Lin, Yu-Tzu |
學位類別: |
碩士 Master |
系所名稱: |
資訊教育研究所 Graduate Institute of Information and Computer Education |
論文出版年: | 2016 |
畢業學年度: | 104 |
語文別: | 中文 |
論文頁數: | 123 |
中文關鍵詞: | 程式學習 、專題式學習 、版本控制 、合作學習 |
英文關鍵詞: | program learning, project-based learning, version control, collaborative learning |
DOI URL: | https://doi.org/10.6345/NTNU202205169 |
論文種類: | 學術論文 |
相關次數: | 點閱:183 下載:0 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
許多研究同意利用專題式學習的方式透過讓學習者於真實的世界中,去參與並解決問題是有意義的學習方式。透過專題式學習,學習者必須訂定計畫、針對問題去辯駁、並做出預測,進一步地進行資料的蒐集與分析,進行實作以驗證預測,實作的過程重複地進行評估與修正,最後完成一項成果,並與同儕進行交流探討。利用專題式學習的方式進行程式學習的有效性也得到了現有的研究的證實,但是,還必須去找出較可行的方法去幫助學習者進行程式設計專題學習時,能更有效地完成專題成果。GitHub提供了一個供使用者進行社交程式設計(social coding)的平臺,讓使用者與人共享程式資源,亦提供討論、共編等功能,並且可以讓使用者透過GitHub觀察其他人的撰寫程式的想法。
在本研究中我們透過探討學習者在利用GitHub進行程式設計專題學習時的行為與其使用態度以及學習成效,分析出利用GitHub輔助程式設計專題學習的可行性。教學實驗於臺北市某國立大學進行,共33位參與者,讓學習者利用GitHub為輔助教學工具進行專題式程式設計學習活動。研究方式透過蒐集學習者GitHub上的行為紀錄、使用GitHub進行專題式程式設計學習的態度問卷、程式概念成就及程式專題成就等資料,並進行分析,得到主要結果如下所述:
一、在撰寫程式時,學習者在刪減程式碼的行為比新增程式碼的行為對於學習程式時是更有用的。因為學習者們透過了解程式碼的概念進而與自己的想法進行融合後,才會進一步進行修改程式碼,而新增程式碼的過程多是從範例中複製貼上相關的程式碼,學習者並未深入地進行思考,因此較無法增進程式設計的能力。
二、在製作專題成果時,學習者與同儕的討論與回饋,可以有效促進學習者對於專題製作的內容更加深入以及了解,因此專題製作的成果達到的成效相對地較好。
三、學習者認為透過GitHub的輔助能夠有效地輔助程式設計專題學習是抱持著正向的態度,因為可以透過進行程式碼資源的整合,並可以針對程式相關的問題進行線上討論,並且可以有效地管理整個專案發展的過程。
研究的結果能建議教學者可以利用社交程式設計或專題式學習的方式,並利用社群學習平台以及有效地教學策略,促進學習者學習程式的學習成效。而藉由GitHub的輔助,使得學習者在進行專題式程式設計學習時,有效率地管理程式碼且便利地與同儕溝通合作。
Much research agrees that project-based learning can achieve meaningful learning by engaging students in investigation and real-world problem solving. During the project-based learning, students have to design plans, pose questions, debate ideas, make predictions, collect and analyze data, implement ideas to create artifacts, evaluate solutions, draw conclusions, and communicate with peers. The effectiveness of project-based instruction on programming learning has also been proven by existing research. However, it is still required to find a more feasible method for project-based programming learning for learners to collaboratively write programs to conduct a project. GitHub provides a appropriate social learning platform for programming. Students can write codes collaboratively, share codes, discuss coding ideas, and observe others’ ideas through GitHub. In this study, we investigate the feasibility of applying GitHub in project-based programming instruction in terms of students’ learning achievements and attitudes by studying students’ learning behaviors on GitHub. In terms of programming ability, the research results show that students benefited more from revising code than from only adding code. This was because students had to comprehend the code and then compare their ideas with the existing code to debug it during revising, but they sometimes copied from the exemplar code and pasted on GitHub without deep thinking. In terms of project quality, students had better project performance if they engaged more in discussing and questioning, or got more feedback from peers. Most students had positive attitude toward project-based programming learning on GitHub. The research findings can give suggestions to instructors or teachers to design more effective instructional strategies or learning platforms for programming instruction by social coding or project-based learning. .
There were thirty-three sophomores participating in this experiment, that learners leaning program of project-based learning by GitHub. Learner behavior through research methods to collect records on GitHub, using GitHub for project-based learning attitude questionnaire, achievement of program concepts and program themes of achievements and to analysis, the main results are as follows:
1.Learners can help learn the program through project-based learning. As in the process of topics, the need for the program when learners have to understand and modify the code to find the problem, and therefore delete the number of changes to the code number of learners relatively high learner achievement than simply add code. Learners observe that the the difference between the comparison code through version control by other team members via code can promote their programming capability, and found himself in the wrong place on the code, and then understand the code as well as the usage of the concept.
2.Project-based Programming Learning by Using GitHub so that students can be more effectively transmitted code sharing and joint management. Co-authored the program in the process, make it easier for learners to assist each other through then solve the problem, and thus enhance their programming skills.
Assisted by GitHub so that Project-based Programming Learning, the efficient management of code and conveniently communicate and cooperate with their peers, educators can also learn to master the situation of the learner through GitHub.
中文部份
徐新逸 (2001, July)。如何利用網路幫助孩子成為研究高手---網路專題式學習與教學創新。台灣教育,607,25-34。
徐新逸 (2002)。 中小學網路專題式學習之教學設計。教育新思維與創新。台北:心理出版社,411-422。
英文部份
Adomavicius, G. & Tuzhilin, A. (2005). Toward the next generation of recommender systems: A survey of the State-of-the-Art and possible extensions. IEEE Transactions on Knowledge and Data Engineering, 17(6), 734–749.
Basbay, M., Ates, A. (2009). The reflections of student teachers on project based learning and investigating self-evaluation versus teacher evaluation. Procedia Social and Behavioral Sciences, 1, 242-247.
Blumenfeld, P. C., Soloway, E., Marx, R. W., Krajcik, J. S., Guzdial, M. & Palincsar, A.(1991). Motivating project-based learning: Sustaining the doing, supporting the learning. Educational Psychologist, 26(3&4), 369-398.
Bravo, C., Marcelino, M.J., Gomes, A., Esteves, M. & Mendes, A.J. (2005).Integrating Educational Tools for Collaborative Computer Programming Learning. Journal of Universal Computer ScienceScience, 11(9), 1505-1517.
Boom, G., Paas, F., & Van, J. J. G. (2007). Effects of elicited reflections combined with tutor or peer feedback on self-regulated learning and learning outcomes. Learning and Instruction, 17, 532–548.
Brown, J. S., Collins, A., & Duguid, P. (1989). Situated cognition and the culture of learning. Educational Researcher, 18(1), 32-42.
Cutler, R. H. (1996). Technologies, relations, and selves. In L. Strate, R. Jacobson, & S. B. Gibson. (Eds.), Communication and cyberspace: Social Interaction in an Electronic Environment, 317–333. New Jersey: Hampton Press.
Ertmer, P. A.(1999). Addressing first- and second-order barrie rs to change: Strategies for technology integration. Educational Technology Research and Development, Vol.47:4, pp. 47-61.
Falchikov, N. (2001). Learning together. Peer tutoring in higher education. London & New York: Routledge
Freund, S., & Roberts, E. (1996). Thetis: An ANSI C programming environment designed for introductory use. In Proceedings of the Twenty-Seventh SIGCSE Technical Symposium on Computer Science Education.
Garner, S. (2007). A program design tool to help novices learn programming.ICT: Providing choices for learners and learning. Proceedings ascilite Singapore.
Goldman, M. (2011). Role-Based Interfaces for Collaborative Software Development. Proceedings of the 24th annual ACM symposium adjunct on User interface software and technology, 23-26.
Gutwin, C., Roseman, M., and Greenberg, S (1996). A usability study of awareness widgets in a shared workspace groupware system. Proceedings of CSCW '96. New York: ACM Press. Cambridge MA.
Hammond, M. (2000). Communication within on-line forums: The opportunities, the constraints and the value of a communicative approach. Computers & Education, 35, 251–262.
Harasim, L., Hiltz, S.R., Teles, L., & Turoff, M. (1995). Learning network: A field guide to teach and learning online, Cambridge, MA: MIT.
Hoadley, C. M., & Linn, M. C. (2000). Teaching science through online, peer discussions: speakeasy in the knowledge integration environment. International Journal of Research in Science Teaching, 38(3), 355–385.
Hollan, J.D., & Stornetta, S. (1992, May). Beyond Being There. In Proceedings of the ACM CHI'92 Conference on Computer-Human Interaction (Monterey, CA, 3-7).
Hrastinski, S. (2008). What is online learner participation? A literature review. Computers & Education, 51, 1755–1765.
Hwang, WY., Chen, NS., & Hsu, RL. (2006). Development and evaluation of multimedia whiteboard system for improving mathematical problem solving. Computers & Education, 46, 105–121.
Hwang, W. Y.,Wang, C. Y., Hwang, G. J., Huang, Y. M. & Huang, S. (2008). A web-based programming learning environment to support cognitive development. Interacting with Computers, 20(6), 524–534.
Hwang, W.Y., Shadiev, R., Wang,C.Y., & Huang,Z.H. (2012). A Pilot Study of Cooperative Programming Learning Behavior and its Relationship with Students’ Learning Performance. Computers & Education, 58, 1267–1281.
Hyun, E. (2005). A study of 5-to 6-year-old children’s peer dynamics and dialectical learning in a computer-based technology-rich classroom environment. Computers & Education, 44, 69–91.
Isenhour, P. L., & Carroll, J. M., & Neale, D. C., & Rosson, M. B., & Dunlap, D. R. (2000). The Virtual School: An integrated collaborative environment for the classroom. Educational Technology and Society, 3(3). Retrieved from http://www.ifets.info/journals/3_3/a03.html
Jones, B.F., Rasmussen, C. M., & Moffitt, M. C. (1997). Real-life problem solving: Acollaborative approach to interdisciplinary learning. Washington, DC: American Psychological Association.
Kordaki, M.(2010). A drawing and multi representational computer environment for beginners’ learning of programming using C: Design and pilot formative evaluation.
L. S. Vygotsky. Mind in Society: The Development of Higher Psychological Processes.
Laura Dabbish, Colleen Stuart, Jason Tsay, & Jim Herbsleb. (2012). Social coding in GitHub: transparency and collaboration in an open software repository. In Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work (CSCW '12) , ACM, New York, NY, USA, 1277-1286. DOI=10.1145/2145204.2145396 http://doi.acm.org/10.1145/2145204.2145396
Lau, W. W., & Yuen, A. H. (2011). Modelling programming performance: Beyond the influence of learner characteristics. Computers & Education, 57(1), 1202-1213.
Littleton, K., & Häkkinen, P. (1999). Learning together: Understanding the processes of computer-based collaborative learning. In P. Dillenbourg (Eds.), Collaborative learning: Cognitive and computational approaches, 20–29. Amsterdam: Pergamon.
Liu, Z. F., Lin, S. J., & Yuan, S. M. (2001). A World Wide Web Bulletin Board System Designed for Collaborative Learning: Detailed View on System Implementation. Journal of Internet Technology, 2(2), 129–135.
Liu, C. C. & Tsai, C. C. (2008). An analysis of peer interaction patterns as discoursed by on-line small group problem-solving activity. Computers & Education, 50, 627–639.
McDowell, C., Werner, L., Bullock, H., & Fernald, J.(2002). The effects of pair-programming on performance in an introductory programming course. Proceeding SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education, 38-42.
Milentijevic, I., Ciric, V. & Vojinovic, O. (2008). Version Control in Project-Based Learning. Computers & Education, 50 (4), pp. 1331-1338.
Moursund, D. (1999). “Project-based learning using information technology”. Eugene, OR:International Society for Technology in Education.
Ngai, E. W. T. (2007). Learning in introductory e-commerce: A project-based teamwork approach. Computers & Education, 48 (1), 17-29.
Nosek, J.T.(1998). The Case for Collaborative Programming, Communications of the ACM, 41(3), 105–108.
Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: A review and discussion. Computer Science Education, 13(2), 137-172.
Roschelle, J., Tatar, D., Chaudhury, S. R., Dimitriadis, Y., Patton, C., & DiGiano, C. (2007). Ink, Improvisation, and Interactive Engagement: Learning with Tablets. Computer,40(9), 42-48.
Salomon, G. & Perkins, D. N. (1987). Transfer of cognitive skills from programming: When and how? Journal of Educational Computing Research, 3, 149-170.
Seidman, R. H. (1988). New directions in educational computing research. In R. E. Mayer(Ed). Teaching and learning computer programming: Multiple research perspectives, Hillsdale, NJ: Lawrence Erlbaum.
Shaw, D. G. (1986). Effects of learning to program a computer in BASIC or Logo on problem-solving abilities. AEDS Journal, 19, 176-189.
Shaw, R. S. (2012). A study of the relationships among learning styles, participation types, and performance in programming language learning supported by online forums. Computers & Education, 58(1), 111-120.
Sussman, B., Fitzpatrick, B., & Pilato, M. (2004). Version control with subversion. USA: O’Reilly.
Thomas, J. W., Mergendoller, J. R., & Michaelson, A. (1999). Project-based learning: A handbook for middle and high school teachers. Novato, CA: The Buck Institute for Education.
Tomlinson, H., & Henderson, W. (1995). Computer supported collaborative learning in schools: a distributed approach, British Journal of Education Technology 26(2),133-140.
Vesperman, J. (2003). Essential CVS. USA: O’Reilly.
Wang, T., Su, X., Ma, P., Wang, Y., & Wang, K. (2011). Ability-training-oriented automated assessment in introductory programming course. Computers & Education, 56(1), 220-226.
Williams, L.A. & Kessler, R.R. (2000). All I really need to know about pair programming learned in kindergarten. In Communications of the ACM, 43 (5), 108-114