實況程式設計影片輔助程式設計學習

No Thumbnail Available

Date

2017

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

程式設計能力須同時應用陳述型知識(了解程式設計相關概念與技能的知識)與程序型知識(利用程式設計概念與技能以實作程式碼的知識),但傳統教學大多採用講授式,偏重陳述型知識的講授,較缺乏建立程序型知識的機會,因此無法培養完整的程式設計能力。本研究期望以實況程式設計影片來輔助學生學習程式設計,透過實況程式設計影片中所呈現從無到有的完整解題過程,以展示程式設計動態、非線性的歷程,藉由觀看實況程式設計影片並進行評註,以於陳述型知識(包含陳述語法型、陳述概念型知識)之外,能增進學生程序型知識(包含程序語法型、程序概念型知識)。 本研究建置一個實況程式設計影片輔助程式設計學習平台,提供三種程式設計教學影片:(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.

Description

Keywords

程式設計教學, 實況程式設計, 陳述型知識, 程序型知識, live-coding, programming instruction, declarative knowledge, procedural knowledge

Citation

Collections