龐爾麗
摘要任務驅動下的協作學習是學習C語言程序設計課程的好方法,教師在教學實踐中通過布置任務的方式,為學生創造一個協作學習的情景,指導學生進行協作學習。
關鍵詞C語言程序設計任務驅動協作學習
大學生計算機公共教學中的C語言程序設計被學生認為是一門難以掌握的課程,師生在教學實踐中往往付出很大努力,但還是不能達到預期的效果。尋求合適的教學與學習方法是取得良好教學效果的必由途徑,其中任務驅動下的協作學習尤其具有重要的實踐價值。
1任務驅動下的協作學習與C語言程序設計
協作學習是一種通過小組的形式組織學生進行學習的方法,注重培養學生的創造能力、求異思維、批判思維、探索精神與合作能力。任務驅動是指教師把教學內容設計成一個或多個任務,讓學生通過完成這些任務來掌握教學內容的教學與學習方法。任務驅動下的協作學習是指將協作學習與任務驅動二者有機結合起來,即由教師設計任務,學生在完成共同任務的動機驅動下結成小組,在教師的指導下完成指定任務,是教師教學方法與學生學習方法的統一。它的特點是目標性、協作性,重點是任務的設置與小組的劃分。
C語言作為結構化程序設計的中級語言,它的特點是語法嚴謹、功能強大、程序效率高、可移植性好等,但其豐富的功能所帶來的眾多的數據類型和復雜的語法結構對非計算機專業的學生來講,非常難以掌握,從而造成學生在學習過程中水平參差不齊。C語言支持模塊化的程序設計,這樣可以將一個程序分割成幾個獨立的模塊并行開發?;谶@些特點,筆者認為,任務驅動下的協作學習對于C語言程序設計的課程教學與學習具有特別的價值,不但可以照顧不同層次學生的學習需求,而且有利于學生的自主探究學習,同時可以培養學生的團隊精神。
2任務驅動下的協作學習構想
筆者認為,教師要在教學實踐中為學生創造協作學習的環境,指導學生完成協作學習任務,需要做好以下幾項工作。
2.1分組
分組是進行任務驅動下的協作學習的前提??梢愿鶕W生的興趣愛好、專業、特長等規則進行分組。要求學生上課時必須以組為單位就坐,問題的討論和回答也都以組為單位來進行,學生可以在小組內和小組間展開討論。每個學生作為某個組的組成成員,他們在完成小組共同任務時是協作關系,但每個成員在組內又擔任特定的任務,在完成自己的任務時又具有獨立性。為了協調組內關系,需要確定一個組長,主要負責小組內任務分配、協調組內成員等工作,以保證小組內和諧共處。
2.2任務的設計與分配
教師所指定的任務是任務驅動下的協作學習的基礎。教師指定任務為協作學習的展開創造了一個環境,除了平時課堂上有意識地提出一些供小組討論解決的問題外,可以在期中、期末各設計一個任務,要求小組協作完成。任務的設計盡可能具有綜合性、可分割性,保證學生既是對已學知識的綜合應用,同時又可以把任務分割成幾個獨立的模塊分配給不同的小組成員完成。
2.3教師的指導
教師的指導是協作學習得以展開的保證。教師的角色主要是信息資源的提供者,協作學習的協調者、監督者、幫助者、管理者。
2.4協作學習的評價
結果的評價是激發學生進行協作學習的動力。對學生的評價,要充分考慮協作與獨立的關系,所以對每個學生的評價是將小組整體得分與組內個人得分進行綜合,這樣既考慮小組協作的效果,也考慮學生作為小組成員的個人成效。
3任務驅動下的協作學習實踐探索
筆者對自己所教的北京師范大學生命科學學院生物技術和生物科學兩個專業的2002、2003級學生采用了任務驅動下的協作學習方法,效果良好。現將其中的一次具體實踐過程描述如下。
3.1分組
以宿舍為單位進行分組,組長就是他們的舍長,負責任務分配和協調組內關系。
3.2任務的指定與分配
任務為編寫一個DNA信息統計程序。筆者從NCBI網站上以Genbank的格式下載了一些物種的DNA片段,并把它們組成一個文本文件,要求學生從中提取指定的信息并完成相應的統計。要求:(1)提取每個DNA片段及其所對應的物種名和序列號;(2)把提取的信息存放到另外一個文本文件中;(3)統計物種數;(4)對每個DNA片段統計A、T、C、G的百分含量。任務完成后要求以Word文檔上交。這個文檔包括設計思路、設計分工、設計特點等,而且要求對各模塊的功能及使用方法加以說明,必須附程序源代碼。最后做一個演示文稿進行任務報告、評比。在任務的設置中預含了模塊的劃分,這樣就可以把每一個分解的任務分給小組內不同的同學完成,同時還有一個同學完成數據結構的確立與主程序的編寫,最后,組長再根據每個人的特長進行其他任務的分配。
3.3指導
給學生提供一些學習資源,包括一些C程序設計論壇以及NCBI網站等。在學生每周的統一上機時間里,教師主動去機房及時與學生溝通,平時遇到問題則以E-mail的形式或面對面的形式進行討論。同時,對協作學習中遇到的其他問題隨時加以協調。
3.4評價
作業提交后,對學生的協作結果進行評估,我采用的評分規則是:個體所得分值;小組得分。(個體在組內得分/小組內所有個體得分的平均值)。小組得分是任務評比所得的結果,是小組間競爭和小組內合作的結果。任務評比時,每個小組對自己的任務進行匯報時,其他小組和教師對其打分,最后所有打分的算術平均數就是該小組最后的得分;成員的組內得分則是在組長的組織下,由所有的成員對其打分取算術平均數。
4任務驅動下的協作學習反思
筆者在教學實踐中使用了任務驅動下的協作學習,雖然取得了一定的效果,但也遇到很多問題,其中既涉及到如何完善這種教學方法本身,又涉及到其與教學內容、教學大環境等的關系,這里提出自己的幾點體會。
4.1分組的規則有待細化
協作學習不同于簡單的小組討論,它是一種系統的、有計劃的學習方式。根據任務設置的不同以及學生來源的不同,可以采取不同的規則來進行分組。組長的人選尤其需要謹慎對待,作為組長,必須熟悉小組內每個成員的情況,必須具有組織、協調能力。組內要處理好競爭和協作、協作與獨立的關系,只要這樣才能既保證小組共同完成任務,又保證個體的自主學習與競爭關系。
4.2任務的設計需要技巧
任務設計既要具有綜合性,能夠對前面知識有系統的總結、回顧,同時又應該具有可分割性,有利于分組狀態下的協作分工。組內任務的分配要有科學性,最大限度達到各盡其能。
4.3教師必須注意角色的轉變及評價結果的分析
教師不是傳統的單純傳授知識,而是引導學生去協作研究、完成任務。結果評價的公正性直接影響學生學習的熱情,所以對學生學習的評價結果必須加以驗證,教師必須監督小組間評分以及小組內成員評分的合理性,必須制定適當的約束機制。
4.4任務驅動下的協作學習的適用范圍
C語言程序設計課程的教學內容是十分豐富的,教學方法的采用應當以服務教學內容為準則,并不是所有的教學內容都可以或者說都需要采用任務驅動下的協作學習,具體情況還要具體處理。