程式設計為一門學習者必須經歷複雜學習歷程的問題解決學科。然而,程式初學者由於缺乏相關先備知識,以及在傳統程式教學課程中較缺乏與同儕或教師之間的互動性,使得學習者在撰寫程式時遇到困難時無法立即獲得回饋與幫助。因此,本研究設置單向教學法與交互教學法兩種教學方法於程式設計學習,並應用多媒體註記系統(VPen)作為學習者之間分享學習內容與執行教學方法的學習工具。本研究包括46位大學部一年級學生,其中實驗組與控制組各為23位學習者。本研究共分為兩個實驗階段,第一階段的單向教學法為實驗組學習者以口說的方式詳述講解自己所撰寫的程式之架構與撰寫方法給同儕聽。更進一步地,將單向教學法應用於交互教學法中,實驗組學習者必須以分組的方式並有順序性地進行單向教學、提問與澄清策略,藉由此鷹架式合作學習方法下進行程式學習的分享與問題討論幫助學習者克服面臨的程式問題。探討在單向與交互教學法兩種不同的教學方法以及其應用次數對於學習者的程式設計學習成效的差異與影響。實驗結果顯示執行單向教學法的實驗組較無執行的控制組在後測筆試成績與程 式概念認知能力上顯著較佳。在第二階段,學習者更因為交互教學法的鷹架式合作學習討論方式,較無得到回饋的單向教學法的學習者之學習成效顯著較佳。另外,學習者的教學方法應用次數越多學習成效較佳,尤其交互教學法的應用次數與程式撰寫成績更是呈現顯著正相關與因果關係。綜合以上所述,交互教學法配合多媒體註記系統的應用能幫助程式設計學習。Programming is a problem-solving subject which students face complicated cognitive processes. However, novices lack for prior knowledge of programming and the interaction with peers and teachers in traditional programming course. Thus, they have difficulties to get instant feedback or help when they meet problems. The aim in this study is to investigate Unidirectional teaching and Reciprocal teaching methods for helping programming learning, and also to apply multi-media annotation (VPen) as the tool for sharing learning content and conduct two teaching methods. We conducted 46 college students, one class of 23 students was employed as the experimental group and the other class was employed as the control group. In Phase 1,the experimental group implements unidirectional teaching who need to explain program structure and programming solution to peers in verbal way. Furthermore, applying unidirectional teaching in reciprocal teaching, the experimental group has been divided into groups and was led to use unidirectional teaching, questioning, and clarifying strategies in sequence. This kind of scaffolding cooperative method could help novices to conquer the programming difficulties by sharing learning content and discussing. The results of the experiment results show that unidirectional teaching could help students perform better on post-test and the cognition of program concept. In phase 2, the experimental group who conducts reciprocal teaching has the better significant than control group who conduct unidirectional teaching without interaction. Furthermore, students apply teaching methods more frequency, the better learning performance it would have, especially the quantity of using reciprocal teaching has significant correlation with programming achievement. It is concluded that reciprocal teaching with VPen application could have better effect on programming learning.