研究生: |
譚聖融 Tan, Sheng-Rong |
---|---|
論文名稱: |
實況程式設計影片輔助程式設計學習 Teaching by Demonstration: Programming Instruction by Using Live-Coding Videos |
指導教授: |
林育慈
Lin, Yu-Tzu |
學位類別: |
碩士 Master |
系所名稱: |
資訊教育研究所 Graduate Institute of Information and Computer Education |
論文出版年: | 2017 |
畢業學年度: | 105 |
語文別: | 中文 |
論文頁數: | 173 |
中文關鍵詞: | 程式設計教學 、實況程式設計 、陳述型知識 、程序型知識 |
英文關鍵詞: | live-coding, programming instruction, declarative knowledge, procedural knowledge |
DOI URL: | https://doi.org/10.6345/NTNU202202624 |
論文種類: | 學術論文 |
相關次數: | 點閱:149 下載:23 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
程式設計能力須同時應用陳述型知識(了解程式設計相關概念與技能的知識)與程序型知識(利用程式設計概念與技能以實作程式碼的知識),但傳統教學大多採用講授式,偏重陳述型知識的講授,較缺乏建立程序型知識的機會,因此無法培養完整的程式設計能力。本研究期望以實況程式設計影片來輔助學生學習程式設計,透過實況程式設計影片中所呈現從無到有的完整解題過程,以展示程式設計動態、非線性的歷程,藉由觀看實況程式設計影片並進行評註,以於陳述型知識(包含陳述語法型、陳述概念型知識)之外,能增進學生程序型知識(包含程序語法型、程序概念型知識)。
本研究建置一個實況程式設計影片輔助程式設計學習平台,提供三種程式設計教學影片:(1)教師講授影片—主要呈現教師針對課程主題之語法及概念知識進行講授教學(內含陳述語法型、陳述概念型知識)。(2)解題邏輯影片—是第一種實況程式設計影片,主要呈現專業程式設計師解題時的思考歷程(內含程序概念型知識)。(3)程式編碼影片—是第二種實況程式設計影片,主要呈現專業程式設計師實際從無到有的程式編碼歷程(內含程序語法型、程序概念型知識)。平台實況程式設計影片中亦提供評註功能供學生於觀看影片時進行評註以深化學習。
本次實驗參與者為40位高一下學期的資訊班學生,學習者透過實況程式設計影片學習平台輔助程式設計學習,研究方法為蒐集平台上評註與觀看學習行為紀錄、程式設計學習成就評量、程式設計學習態度問卷等資料進行相依t檢定、迴歸分析、群集分析、單因子變異數分析與相關分析,從實驗結果發現:
一、 在實況程式設計影片輔助程式設計學習平台輔助程式設計學習有助於提升程式設計學習成就
1. 學習者觀看實況程式設計影片撰寫評註時,會使用舊有的知識(基礎程式設計課程所學知識)來比擬新學到的知識(本學期所學之進階程式設計課程所學知識)並進行了反思歷程才有能力留下陳述型知識的評註內容來習得陳述型知識,進而提升程式設計理解學習成就。
2. 程式設計實作成就較佳的學習者,會透過花時間及反覆觀看程式編碼影片。學習者可透過觀看實況程式設計影片中語法意涵、解題邏輯及程式執行與編碼的片段,以及透過比較自己與專業程式設計師的編碼方式來習得程序型知識,進而提升程式設計實作學習成就。
二、 不同程式設計進步幅度的學習者在實況程式設計影片輔助程式設計學習平台之程式設計學習行為有所不同
1. 程式設計理解學習成就越佳的學習者在程式設計理解先備知識評量成績越差,其在觀看實況程式設計影片撰寫評註時,會使用舊有的知識(基礎程式設計課程所學知識)來比擬新學到的知識(本學期所學之進階程式設計課程所學知識)並進行了反思歷程才有能力留下陳述型知識的評註內容,因此培養了陳述型知識。透過撰寫陳述型評註可以讓學習者更了解程式設計相關概念與技能的知識,進而提升學習者的程式設計理解進步幅度。
2. 程式設計實作學習成就越佳的學習者在程式設計理解先備知識評量與程式設計實作先備知識評量成績越差,透過花時間及反覆觀看解題邏輯影片與程式編碼影片,學習者可透過觀看實況程式設計影片中語法意涵、解題邏輯及程式執行與編碼的片段,以及透過比較自己與專業程式設計師的編碼方式來習得程序型知識,透過花時間反覆觀看程式設計解題及程式設計影片可讓學習者更了如何應用程式設計概念與技能以實作的知識,進而提升程式設計實作進步幅度。
三、學習者對於程式設計學習態度自我效能面向越高,越少觀看學習實況程式設計影片,導致程式設計實作進步幅度較小;當學習者越肯定陳述型知識的重要性,越會反覆觀看教師講授影片(內含陳述型知識),並透過撰寫陳述語法型評註以進行深度思考,當學習者觀看教師講授影片中的語法意涵及解題邏輯片段的同時,也使得學習者了解及明白如何應用程式設計相關概念與技能以實作的知識,因此在程式設計實作進步幅度較佳。
藉由觀看實況程式設計影片輔助程式設計學習,學習者可於觀看實況程式設計影片後透過撰寫評註內容來與自身經驗進行反思,使得學習者更了解程式設計相關概念與技能的知識,進而提升程式設計理解能力;透過反覆觀看實況程式設計影片所呈現的程式設計解題程序及解題歷程,使得學習者更清楚如何利用程式設計概念與技能以實作程式碼的知識,進而提升程式設計實作能力。
The procedure of programming involves both declarative and procedural knowledge. However, traditional instruction is based on lectures, making emphasis on the declarative knowledge, which lacks opportunities to establish procedural knowledge, thereby failing to cultivate the programming implementation skills. This study probes into the effectiveness of programming instruction by using live-coding videos and to understand how the proposed live-coding-based instruction and learning behavior of students on the live-coding programming learning platform affect students’ programming performance. The live-coding videos demonstrate the dynamic and non-linear programming procedure and students can make annotations on live-coding videos to facilitate their procedural knowledge(including procedural-syntactic and procedural-conceptual knowledge)in addition to conceptual knowledge.
The study builds a live-coding-video learning platform, wherein three types of instructional videos are available: 1. Teacher’s lecture video- It presents teacher’s lecture on the syntax and concepts within the theme of course, including declarative-syntactic and declarative-conceptual knowledge. 2. Algorithmic logic video- It is the first type of live-coding video, which presents a professional programmer’s logic and algorithmic thinking process of problem solving, including the procedural-conceptural knowledge. 3. Coding video- It is the second type of live-coding video, which presents a professional programmer’s coding process from scratch, including procedural-syntactic and procedural-conceptual knowledge. Students were asked to watch the videos to review the teacher’s lecture or observe the dynamic programming procedures from scratch in addition to annotating with their reflection and discussion with peers on the videos.
The participants in this experiment were forty high school students and the experiment was conducted in the Information Technology Class. These students employed the live-coding learning platform to facilitate their programming learning. The learning behavior history, and the resutls of programming achievement test and programming learning attitude questionnaire were collected and analyzed by the t-test, regression analysis, one-way anova, k-means, and Pearson Product-Moment Correlation. The research findings include:
1. Students were enable to have an in-depth reflection by annotating their thoughts on algorithmic logic and coding videos, thereby their declarative knowledge was improved.
2. Students who had spent more time on watching live-coding videos had higher programming implementation achievement.
3. Students who have higher self-efficacy were more reluctant to watch live-coding videos, finally resulting in poorer performance in the program implementation test. It should be noted that students who had made greater progress in programming achievement were scored lower in the pretest. However, with a semester of live-coding programming learning, they had developed their own declarative knowledge and procedural knowledge by watching live-coding videos and indeep annotation, and thereby their program implementation skills were improved.
We have studied the effectiveness of programming instruction by using live-coding videos. The students learning declarative knowledge(teacher’s lectures with declarative-syntactic and declarative-conceptual knowledge) and procedural knowledge (problem-solving logic and program coding videos with procedural-syntactic and procedural-conceptual knowledge) by observational learning on the live-coding videos learning platform, further with annotations (students prefer to leave declarative annotation) for reflection process students were guided to establish declarative knowledge and procedural knowledge. Since programming experts are proficient in conducting the non-linear programming process based on their programming strategies, their live-coding videos can provide students with exemplar programming procedures and strategies of programming steps from scratch and thereby enhance implementation skills. Such interactive process provides students with opportunities of observing and thinking how the programs were built more deeply. The experiment results show that the use of live-coding videos in programming instruction can provide students with reference and examples on dynamic and non-linear programming process, which can effectively improve students’ program implementation skills.
中文部份
張春興. (2010). 教育心理學: 三化取向,重修二版。台北:東華
英文部份
Azouaou, F., Chen, W. & Desmoulins, C. (2004). Semantic annotation for learning material. In Semantic Web and e-learning workshop, adaptive hypermedia conference 2004 (pp. 359–364). Retrieved from https: //telearn.archives-ouvertes.fr/hal-00190130/
Bandura, A. (1977). Social learning theory. Englewood Cliffs: N.J.:Prentice-Hall.
Baroody, A. J., Feil, Y. & Johnson, A. R. (2007). An alternative reconceptualization of procedural and conceptual knowledge. Journal for Research in Mathematics Education, 115–131.
Boud, D., Keogh, R. & Walker, D. (Eds.). (2013). Reflection: Turning experience into learning. Routledge.
Branch Jr, W. T. & Paranjape, A. (2002). Feedback and reflection: teaching methods for clinical settings. Academic Medicine, 77(12, Part 1), 1185-1188.
Broden, M., Hall, R. V. & Mitts, B. (1971). The effect of self‐recording on the classroom behavior of two eighth‐grade students. Journal of Applied Behavior Analysis, 4(3), 191-199.
Brown, A. R. (2015). Tactical Temporalities: A live coding performance. Retrieved from http://www98.griffith.edu.au/dspace/handle/10072/68303
Byrnes, J. P., & Wasik, B. A. (1991). Role of conceptual knowledge in mathematical procedural learning. Developmental psychology, 27(5), 777.
Canobi, K. H. (2009). Concept–procedure interactions in children’s addition and subtraction. Journal of Experimental Child Psychology, 102(2), 131-149.
Cauley, K. M. (1986). Studying Knowledge Acquisition: Distinctions among Procedural, Conceptual and Logical Knowledge. Retrieved from https://eric.ed.gov/?id=ED278682
Chiu, M. (2007). A National Survey of Students’ Conceptions of Chemistry in Taiwan. International Journal of Science Education, 29(4), 421–452. https://doi.org/10.1080/09500690601072964
Clark, J. M. & Paivio, A. (1991). Dual coding theory and education. Educational Psychology Review, 3(3), 149–210.
Collins, N., McLean, A., Rohrhuber, J., & Ward, A. (2003). Live coding in laptop performance. Organised sound, 8(3), 321-330.
Costelloe, E. (2004). Teaching programming the state of the art. The Center for Research in IT in Education. Dept. of Computer Science Education. Dublin: Trinity College.
Cracolice, M. S., Deming, J. C. & Ehlert, B. (2008). Concept learning versus problem solving: A cognitive difference. J. Chem. Educ, 85(6), 873.
Davies, S. P. (1993). Models and theories of programming strategy. International Journal of Man-Machine Studies, 39(2), 237–267.
DeCaro, M. S., & Rittle-Johnson, B. (2011). Preparing to learn from math instruction by solving problems first. B. Rittle-Johnson & MS DeCaro (chairs), When are times for telling.
Edwards, S. (1996). Exchange rates and the political economy of macroeconomic discipline. The American Economic Review, 86(2), 159–163.
Ellis, J. A., Whitehill, B. V. & Irick, C. (1996). The effects of explanations and pictures on learning, retention, and transfer of a procedural assembly task. Contemporary Educational Psychology, 21(2), 129–148.
Esteves, M., Fonseca, B., Morgado, L. & Martins, P. (2009). Using Second Life for problem based learning in computer science programming. Journal For Virtual Worlds Research, 2(1). Retrieved from https://journals.tdl.org/jvwr/index.php/jvwr/article/viewArticle/419
Esteves, M., Fonseca, B., Morgado, L. & Martins, P. (2011). Improving teaching and learning of computer programming through the use of the Second Life virtual world: Improving teaching and learning through Second Life. British Journal of Educational Technology, 42(4), 624–637. https://doi.org/10.1111/j.1467-8535.2010.01056.x
Fodor, J.A. (1987). Modules, frames, fridgeons, sleeping dogs and the music of the spheres. In The robot's dilemma: The frame problem in artificial intelligence. ed. Z. Pylyshyn. Norwood, NJ: Ablex.
Goldin-Meadow, S., Alibali, M. W., & Church, R. B. (1993). Transitions in concept acquisition: Using the hand to read the mind. Psychological review, 100(2), 279.
Gugerty, L., & Olson, G. (1986). Debugging by skilled and novice programmers. ACM SIGCHI Bulletin, 17(4), 171–174.
Guzdial, M. & Soloway, E. (2002). Teaching the Nintendo generation to program. Communications of the ACM, 45(4), 17–21.
Haláková, Z. & Prokša, M. (2007). Two kinds of conceptual problems in chemistry teaching. J. Chem. Educ, 84(1), 172.
Hatton, N., & Smith, D. (1995). Reflection in teacher education: Towards definition and implementation. Teaching and Teacher Education, 11(1), 33–49.
Hammond, M., & Rogers, P. (2007). An investigation of children’s conceptualisation of computers and how they work. Education and Information Technologies, 12(1), 3-15.
Hiebert, J. & Lefevre, P. (1986). Conceptual and procedural knowledge in mathematics: An introductory analysis. In J. Hiebert (Ed.), Conceptual and procedural knowledge: The case of nulthematics (pp. 1-27). Hillsdale, N J: Erlbaum.
IEEE Computer Society (Ed.). (2002). 10th International Workshop on Program Comprehension: 27-29 June, 2002, Paris, France: proceedings. Los Alamitos, Calif: IEEE Computer Society Press.
Jonassen, D. H. (2004). Learning to solve problems: an instructional design guide. San Francisco, CA: Pfeiffer.
Kaczmarczyk, L. C., Petrick, E. R., East, J. P. & Herman, G. L. (2010). Identifying student misconceptions of programming. In Proceedings of the 41st ACM technical symposium on Computer science education (pp. 107–111). ACM. Retrieved from http://dl.acm.org/citation.cfm?id=1734299
Kay, R. & Kletskin, I. (2012a). Evaluating the use of problem-based video podcasts to teach mathematics in higher education. Computers & Education, 59(2), 619–627. https://doi.org/10.1016/j.compedu.2012.03.007
Kiewra, K. A. (1989). A review of note-taking: The encoding-storage paradigm and beyond. Educational Psychology Review, 1(2), 147–172.
Kilpatrick, J. (2001). Understanding mathematical literacy: The contribution of research. Educational Studies in Mathematics, 47(1), 101–116.
Kompf, M. & Bond, W. R. (1995). Through the Looking Glass: Some Criticisms of Reflection. Retrieved from http://eric.ed.gov/?id=ED383661
Krathwohl, D. R. (2002). A revision of Bloom's taxonomy: An overview. Theory into practice, 41(4), 212-218.
Ladewski, B. G., Krajcik, J. S., & Palincsar, A. S. (2007). Exploring the role of inquiry and reflection in shared sense-making in an inquiry-based science classroom: toward a theory of distributed shared sense-making. In national association of research in science teaching. Retrieved from https://pdfs.semanticscholar.org/5c38/e389527d148686468418a48e5f05ec0a2e42.pdf
Lee, K. L., Woh-Un, T., Ngoh-Khang, G. O. H. & Lian-Sai, C. (2001). The predicting role of cognitive variables in problem solving in mole concept. Chemistry Education Research and Practice, 2(3), 285–301.
Leijen, Ä., Lam, I., Wildschut, L., Simons, P. R. J., & Admiraal, W. (2009). Streaming video to enhance students’ reflection in dance education. Computers & Education, 52(1), 169-176.
Long, C. (2005). Maths concepts in teaching: Procedural and conceptual knowledge. Pythagoras, 2005(62), 59–65.
Magnusson, T. (2013). The threnoscope: A musical work for live coding performance. In ICSE. Live 2013. Retrieved from http://sro.sussex.ac.uk/id/eprint/46859
Mayer, R. E. (1989). Systematic thinking fostered by illustrations in scientific text. Journal of Educational Psychology, 81(2), 240.
Mayer, R. E. & Vilberg, W. (2013). Think: What’s the connection? Studying the Novice Programmer, 113.
McGregor, D. (2007). Developing thinking; developing learning. McGraw-Hill Education (UK).
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.
Murphy, L., Lewandowski, G., McCauley, R., Simon, B., Thomas, L., & Zander, C. (2008). Debugging: the good, the bad, and the quirky–a qualitative analysis of novices’ strategies. In ACM SIGCSE Bulletin (Vol. 40, pp. 163–167). ACM. Retrieved from http://dl.acm.org/citation.cfm?id=1352191
Paxton, J. (2002). Live programming as a lecture technique. Journal of Computing Sciences in Colleges, 18(2), 51–56.
Pea, R. D., & Kurland, D. M. (1984). On the cognitive effects of learning computer programming. New ideas in psychology, 2(2), 137-168.
Rittle-Johnson, B., Siegler, R. S. & Alibali, M. W. (2001). Developing conceptual understanding and procedural skill in mathematics: An iterative process. Journal of Educational Psychology, 93(2), 346–362. https://doi.org/10.1037//0022-0663.93.2.346
Rittle‐Johnson, B. (2006). Promoting transfer: Effects of self‐explanation and direct instruction. Child development, 77(1), 1-15.
Rittle-Johnson, B., & Star, J. R. (2007). Does comparing solution methods facilitate conceptual and procedural knowledge? An experimental study on learning to solve equations. Journal of Educational Psychology, 99(3), 561.
Rittle-Johnson, B., & Star, J. R. (2009). Compared with what? The effects of different comparisons on conceptual knowledge and procedural flexibility for equation solving. Journal of Educational Psychology, 101(3), 529.
Rittle-Johnson, B., Star, J. R., & Durkin, K. (2009). The importance of prior knowledge when comparing examples: Influences on conceptual and procedural knowledge of equation solving. Journal of Educational Psychology, 101(4), 836.
Rittle-Johnson, B., & Schneider, M. (2014). Developing conceptual and procedural knowledge of mathematics. Oxford handbook of numerical cognition, 1102-1118.
Robinson, W. R. (2003). Chemistry problem-solving: Symbol, macro, micro, and process aspects. ACS Publications. Retrieved from http://pubs.acs.org/doi/abs/10.1021/ed080p978
Rodriguez, M. A. (2002). Development of diagrammatic procedural instructions for performing complex one-time tasks. International Journal of Human-Computer Interaction, 14(3–4), 405–422.
Rose, S. (2004). Dimensions of cognition in infancy. Intelligence, 32(3), 245–262. https://doi.org/10.1016/j.intell.2004.01.004
Rubin, M. J. (2013). The effectiveness of live-coding to teach introductory programming. In Proceeding of the 44th ACM technical symposium on Computer science education (pp. 651–656). ACM. Retrieved from http://dl.acm.org/citation.cfm?id=2445388
Ruohotie, P. & Nokelainen, P. (2003). Practical considerations of motivation and computer-supported collaborative learning. Global Peace through the Global University System, 226–236.
Schön, D. (1983). The reflective practitioner." How professionals think in action." New York: Basic Books.
Schön, D. (1987). Educating the reflective practitioner." Toward a new design for teaching and learning in the professions. San Francisco: Jossey Bass.
Sekiya, T. & Yamaguchi, K. (2013). Tracing quiz set to identify novices’ programming misconceptions (pp. 87–95). ACM Press. https://doi.org/10.1145/2526968.2526978
Sirkiä, T. & Sorva, J. (2012). Exploring programming misconceptions: an analysis of student mistakes in visual program simulation exercises. In Proceedings of the 12th Koli Calling International Conference on Computing Education Research (pp. 19–28). ACM. Retrieved from http://dl.acm.org/citation.cfm?id=2401799
Soloway, E. (1986). Learning to program = Learning to construct mechanisms and explanations. Communications of the ACM, 29(9), 850–858.
Star, J. R. (2005). Reconceptualizing procedural knowledge. Journal for Research in Mathematics Education, 404–411.
Star, J. R. & Stylianides, G. J. (2013). Procedural and Conceptual Knowledge: Exploring the Gap Between Knowledge Type and Knowledge Quality. Canadian Journal of Science, Mathematics and Technology Education, 13(2), 169–181. https://doi.org/10.1080/14926156.2013.784828
Su, A. Y. S., Yang, S. J. H., Hwang, W.-Y. & Zhang, J. (2010). A Web 2.0-based collaborative annotation system for enhancing knowledge sharing in collaborative learning environments. Computers & Education, 55(2), 752–766. https://doi.org/10.1016/j.compedu.2010.03.008
Surif, J., Ibrahim, N. H. & Mokhtar, M. (2012). Conceptual and Procedural Knowledge in Problem Solving. Procedia -Social and Behavioral Sciences, 56, 416–425. https://doi.org/10.1016/j.sbspro.2012.09.671
Taconis, R., Ferguson-Hessler, M. G. & Broekkamp, H. (2001). Teaching science problem solving: An overview of experimental work. Journal of Research in Science Teaching, 38(4), 442–468.
van der Meij, J. & van der Meij, H. (2015). A test of the design of a video tutorial for software training: Video for software training. Journal of Computer Assisted Learning, 31(2), 116–132. https://doi.org/10.1111/jcal.12082
van Hooijdonk, C. & Krahmer, E. (2008). Information Modalities for Procedural Instructions: The Influence of Text, Pictures, and Film Clips on Learning and Executing RSI Exercises. IEEE Transactions on Professional Communication, 51(1), 50–62. https://doi.org/10.1109/TPC.2007.2000054
Verschaffel, L., Luwel, K., Torbeyns, J. & Van Dooren, W. (2009). Conceptualizing, investigating, and enhancing adaptive expertise in elementary mathematics education. European Journal of Psychology of Education, 24(3), 335–359.
Yi, M. Y. & Davis, F. D. (2003). Developing and validating an observational learning model of computer software training and skill acquisition. Information Systems Research, 14(2), 146–169.
Zacks, J. M. & Tversky, B. (2003). Structuring information interfaces for procedural learning. Journal of Experimental Psychology: Applied, 9(2), 88–100. https://doi.org/10.1037/1076-898X.9.2.88