朱旻如 閔麗娟
(1.南京郵電大學計算機學院,江蘇 南京 210003;2.南京郵電大學物聯網學院,江蘇 南京 210003)
“能力”是技能化的知識,是知識的綜合體現。就大學教育而言,培養的是學生的專業能力。根據《中國高等院校計算機基礎教育課程體系(CFC)2008》提出的要求,程序設計類課程需要解決的是學生的計算思維能力、算法設計與分析能力、程序設計及實現能力以及系統能力四個方面。
然而在高等院校程序設計課程教學過程中經常出現的現象是學生仍以考試為目的,缺乏主動的探究和思維分析過程,導致實踐能力和解決問題能力不夠。
近年來,協作學習作為一種新穎的教學策略,已經成為國內外教育系統中的研究熱點。在Wikipedia中,對協作(Collaborative Learning)的定義是:兩個或兩個以上的主體在一起學習,不同于個人的學習,從事合作學習的人可以利用彼此的資源和技能(互相詢問信息、評價別人的想法、監督別人的工作等等)[1]。
文獻[2]描述了協作學習的五個基本原理:
(1)深度互動(Deep Interaction):當學習者有機會獲取深度互動的機會并積極投入其中,學習和知識建構能夠得到有效支持;
(2)匯聚共享(Convergence and Sharing):當教學信息能夠快速地匯聚并有效地分享的時候,學習和知識建構能夠得到促進;
(3)集體思維(Collective Thinking):當思維能夠在個體和群體兩個層面得以有效展開,學習和知識建構能夠得到促進;
(4)合作建構(Collaborative Building):當學習者之間能夠進行充分地協同合作完成學習任務和開展學習活動,學習和知識建構能夠得到促進;
(5)多場協調(Multi-field Coordination):當調動個體和群體的多維潛能參與學習過程的時候,知識建構和個體發展將得到促進。
因此協作學習強調的是學習過程中所涉及到的各個要素之間的協同關系與結構,包括認知主體、認知客體、以及群體交互形成的學習場。協同學習的目標在于獲得教、學協同增效,協同小組成員在學習過程中無主次之分[3]。
鑒于協作學習的上述特點,針對程序設計課程中存在的問題,我們在本校該課程的開設過程中進行了改革和嘗試,通過三種協作學習模式的引入,為學生的自主學習提供一個相互交流和協作學習的平臺,使學生在教師的監控指導下密切結合課堂學習任務,有組織、有目的、有計劃地進行協同式的交互學習,形成群體交互的學習場,教與學協同增效,極大提高了老師教學的積極性以及學生的興趣,敢于嘗試,保證了教學效果。
該模式改變了以往提交紙質作業的方式,而是利用計算機技術建設作業網站,保證作業的自動提交、自動批改功能的同時,提供網絡答疑功能,很好地體現協同的優勢。作業平臺包括了的以下具體功能:
(1)作業錄入
教師根據課程的大綱要求,事先把課程中要求完成的作業錄入到作業系統中。對于只有唯一正確答案的題目,錄入標準答案;對于靈活的編程題目,錄入測試用例,便于程序運行結果的自動驗證。
(2)協作交流
學生在完成作業的過程中,可以通過作業平臺系統提供的聊天室、討論區等功能進行學生之間的交流、以及學生老師之間的溝通。當學生遇到困難時,老師設法引導;在討論的過程中,老師適時調控,讓學生的討論始終圍繞話題,突出關鍵問題。由于這種討論方式是實時在線的,所有的同學都能查看討論內容并參與其中,極大地提高了溝通效率。
(3)作業提交和批改
學生在規定的時間內提交作業,作業平臺系統會自動完成作業的批改,并給出分數。老師可以根據該平臺系統實時查看作業完成情況。
(4)信息反饋
學生可根據自己的作業完成情況,將自己的需求和意見向老師反饋。老師據此不斷總結經驗,來改善教學效果,充分發揮老師作為引導者、監督者和教學資源建設者的作用。
該模式改變了傳統的填鴨式教學方法,提倡課堂教學應該是一種學習者之間彼此進行知識分享、意義協商與深化認識的互動性活動,而不是以教師為權威中心的互動活動[4]。采取的方法包括:
(1)科研案例教學法
在授課過程中,引入科研過程中的實際案例,不僅可以提高學生興趣,還能培養學生解決實際問題的能力。例如:在講解選擇結構時,我出的課堂練習是:計算一條話單產生的費用。要求從鍵盤輸入話單的時長,單位是秒。如果時長是3分鐘以內,費用為0.1元;如果時長超過3分鐘,超出部分每分鐘0.1元;時長超過3分鐘的,不足1分鐘按1分鐘計算。最終計算出的費用在屏幕上顯示出來。這是一個實際的問題,學生也容易理解。通過這個練習,學生理解了處理實際問題時,如何定義變量;掌握了if和else語句如何構造;掌握了運算符%的用處;復習了scanf和printf函數的用法。
(2)學生授課法
在程序的講解過程中,可以邀請學生充當小老師,由學生講解程序,老師予以充分的肯定和引導。學生親自講解,一來增強理解,二來增強成就感,能促使學生更有興趣地學習后續的內容。
(3)討論法
在介紹程序案例時經常采用討論法。例如:從鍵盤輸入三角形的3條邊長,計算三角形的面積并輸出到屏幕上。程序講解完后,提出思考題,如果輸入的3條邊是負數怎么辦?如果輸入的3條邊不能構成三角形怎么辦?通過學生的全班討論,不但可以加強學生對程序的理解,還可以對引入后續的內容做鋪墊。
該模式提倡在課程設計過程中,以團隊為單位來完成一個相對完整的任務。該模式強調學習過程中以學生為中心,分工合作,自主探究。采取的形式可以歸納成以下兩種:
(1)按照培養相同能力的目標進行分工
把大系統分解成若干個小任務,由小組成員分別完成各自的設計、開發、測試的步驟,然后統一進行聯調。
(2)按照任務步驟和個人能力進行分工
把大系統按照實施的先后步驟分解成若干個小任務,小組成員分別進行系統設計、開發、測試工作,每個成員的工作不同,重點研究的方向也不同。
無論上述哪一種方式,學習者都必須積極從事與專業領域相關的實踐,必須自己去發現問題和解決問題。這就是學習的過程。利用協同學習,引導學生積極參與到項目的集體學習與研發中,并在個體之間的互動中組成一個實踐共同體。給學習者創造自主的學習機會,以及學習其它組員的機會,這是傳統課堂教學所不能達到的。
在程序設計課程中進行的上述協作學習模式的嘗試過程中,師生的工作和學習的積極性都得到了提高。
就教師而言,由于整個教學過程因為師生的共同參與和建設,教師能更好地了解學生的學習狀況,適時加以引導,從而推進教學內容的實施,達到預期的教學目標。例如,所建設的作業平臺實現了電子作業的自動批改和網絡實時答疑。通過設置參數,如作業的截止完成時間,就可以對學生的學習進程進行很好的控制。這種監督可以對那些自制力較差的學生進行必要的提醒和適時控制。同時,在及時了解學生學習進度、協同學習參與的情況、存在的問題后,教師可適時調整教學方案和教學方法,從而保證教學達到預期的效果。
就學生而言,協作學習模式對能力的培養只要體現在以下三個方面:
(1)自主學習能力的培養
通過建設的作業平臺來實現電子作業的自動批改,能督促學生及時學習并幫助學生隨時評價自己對知識點的掌握情況:學生可以實時發現錯誤,修改,再提交,再修改,再提交。通過這種不斷的交互來發現問題修正問題,給學生以直觀的感覺,增加學習興趣。
而課堂教學活動中的師生互動、以及扭轉“老師講學生聽”的角色固定的模式,讓學生講解知識點,提高了學生的參與感和成就感,又迫使學生主動學習,從而不斷提高學生的自主學習能力。
(2)程序設計與實現能力的培養
傳統教學往往將程序設計過程拆分成若干離散的知識點讓學生去掌握,學生學習過程中無法將這些相互孤立的知識點和程序設計聯系起來,對完成程序有所畏懼,更不用說設計出可用、高效的程序。因此,將實際科研項目引入課堂教學,讓學生學習更有方向性。實際案例的演示給學生以生動形象的感官認識,再以協作小組的模式進行程序設計,小組成員之間取長補短,完成程序的可能性大大提高,極大地增進了學生的自信心和求知欲,希望動手完成自己的程序。通過若干項目的實施完成,逐步提高了學生的程序設計與實現能力。
(3)團隊協作能力的培養
以獨生子女為主體的當代大學生,自我意識較強,不善于與他人相處,缺乏合作意識。通過團隊方式來完成軟件的設計開發,可以增強學生的合作意識,例如在軟件系統的實現過程中,需要進行任務的分解與合并,為協作小組成員提供了交互的要求和環境。合作的成功,體現了自我價值,也建立了歸屬感,由此培養了學生的協作意識、協作精神和協作能力。
將協作學習策略應用于程序設計課程的教學活動中,不但可以便于老師監控學生的學習效果,實時調整教學方案和教學方法,保證良好的教學效果,還可以提高學生學習的積極性,培養了學生的自主學習能力、協作能力,提高了學生的實踐編程能力,有著傳統教學方法無法比擬的優越性。
[1]Collaborative Learning[EB/OL].https://en.wikipedia.org/wiki/Collaborative_learning.
[2]王佑鎂.協同學習技術系統的構建與應用研究[D].上海二華東師范大學,2009.
[3]Zhiting Zhu,Youmei Wang,Hongwei Luo.Synergistic Learning for Knowledge Age:Theoretical Model,Enabling Technology and Analytical Framework.Advances in Web Based Learning-ICWL2007,2007.
[4]朱永海,張舒予.從共享到共生:基于專題學習網站的知識建構演進與實踐策略[J].中國電化教育,2012,(12):81-87.