摘要:傳統的C語言教學模式往往局限于繁瑣的語法知識細節的講解,該文提出了采用基于問題的PBL教學方法,增強了學生的自主學習意識、增加了學生學習編程的興趣、培養了學生解決實際問題的能力和提高了學生的綜合素質。
關鍵詞:PBL;程序設計語言;教學方法
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2009)33-9373-02
PBL in the \"C Programming Language\" the Reform of Teaching
SUN Jiong-ning1, XU Yong-hua2
(1.Jiangsu Maritime Institute, Nanjing 211170, China; 2.Jingling Institute of Technology, Nanjing 211170, China)
Abstract: Traditional teaching in the \"C programming language\", is limited at teaching the complicated details of the syntax of knowledge. By introduced PBL teaching base of problem, Sense of self-study about students is enhanced, interest of studying programming is increased, and the ability to practical problem and Overall quality is developed.
Key words: PBL; programming; teaching
C語言程序設計不僅是計算機專業的一門核心課,也是非計算機專業學生的一門基礎語言課,通過這門課程的學習,重要的是要提升學生解決實際問題的方法和技能,培養學生的創造的思考和設計程序的能力,鍛煉他們的邏輯思維能力。但是傳統的教學模式往往局限于繁瑣的語法知識細節的講解,教學活動過程的開展往往是逐一地講解各語句及相應的生成工具后加以舉例說明,最后學生針對課后練習上機完成驗證,整個學期從開始學習到最后,學生逐漸的失去了學習的興趣,只是為了應付最終的考試,沒有達到預期的效果,筆者根據多年從事語言教學的實踐經驗,在分析目前教學中存在的問題的基礎上,提出采用引入PBL教學方法,在實際的教學過程中收到了很好的效果。
1 PBL問題教學法
基于問題的學習(Problem Based Learning, PBL)最初是由美國神經病學教授Barrow在加拿大麥克馬斯特大學提出的一種課程模式,1993年在愛丁堡世界醫學教育高峰會議中得到了推薦,目前已成為國際上一種十分流行的教學方法[1]。PBL(Problem-based Learning)教育是以問題為基礎,以學生為主體,以小組討論為形式,在教師的參與下,圍繞某一專題或具體問題進行研究的學習過程。是一個以實際情況,提供一切應對的資源和指導的教學法。目的是讓學生能夠自主地從如何解決問題的方法中學習到知識的內容。PBL教學法主要是以問題的中心為本。學習者被要求先學習如何去懂得搜尋有關的資料以便用來解決有關的問題。這不僅能夠讓學生在學習中如何解決現實生活中的復雜問題,也可以很自然地培養學生獨立及自愿地吸取更多的知識充實自己,有效地解決面對的問題。
2 PBL方法應用在C語言程序設計教學中
2.1 以問題為學習的起點
學生的一切學習內容以問題為主軸進行架構。首先課堂設計中改變往日的教學方式,采用問題驅動,提出問題,探討解決的方案,完成源代碼的編寫,討論代碼的優勢,通過強化算法,弱化語言,使得學生建立算法的設計思路,培養學生的實際編程能力,課堂上不再先解決語法知識點,而是穿插在講解實際問題的算法中,比如要講數組,可以先提出一個問題即如何實現數據的排序問題[2],直觀點說比如是學生的身高排隊或成績排名等等,在這個問題的解決過程中需要解決的兩個小問題就是:1) 這樣的一組連續的數如何在計算機中存放?2) 采用的排序算法?針對問題1原有學習的數據類型已經不能滿足需要,引入一維數組去存放,針對問題2,學生提出了很多中排序的算法,根據不同的算法,提出優劣比較,分析算法的時間與空間復雜度,最后采用其中的一種算法完成程序的設計,并在課堂上完成程序的調試,演示最終的結果。因此,在解決一定問題的環境中去說明語法的格式和作用。在整個學習過程中,要求學生對問題進行深入探究,找到問題之間的聯系,剖析問題的復雜性,運用知識形成問題的解決方案。
2.2 設計問題,構建學生的知識體系
問題由老師在課前選擇和準備,提前交給學生預習。在程序設計的教學中,學生分組對問題進行知識準備,完成問題,設計相應的算法流程圖,確定授課過程中的學習目標和要求。在問題設計和發現的過程中,要考慮到學生之間的能力差異,通過分組的形式,形成高低搭配的解決小組。在課堂授課過程中,要適時給予表揚,尤其是準備充分的小組或者是組成員有明顯提高的小組,總之,整個學習活動中應該始終保持同學們飽滿的學習興趣和克服困難的信心,增強同學們問題求解后的成功感和滿足感。
2.3 授課內容整合,減少語法知識點的集中講解
將傳統的第二章關于數據類型的知識點打散到每一個具體問題中講解,基本分為四個部分:常量、整形變量、實行變量和字符型變量,介紹常量可以通過提出要計算機完成計算圓的面積、周長,圓球的體積、圓柱的體積等,引入關于常用的設計,在講解整型變量時提出三個數判斷最大值時,引入整形數據同時介紹關于存儲的字節數,引出長整形,做到即要散,也要講究概念的連貫性。此外,相似的概念也要放到一起講,比如計算|X|、MAX、根據輸入成績輸出不同的分類講解if語句的三種新式。
2.4 分組式學習。
偏重小組合作學習和自主學習,學習者能通過社會交往發展能力和協作技巧,首先,學期開始,按照學生對程序設計的能立來分小組,優劣搭配,每一組成員在6-8人,實行組長負責制,由組長負責組成員平日的實際問題的解決及分配組成員完成相應的工作,老師只是對每一個組分配任務。
2.5 建立完整的考核體系
為了避免學生的惰性,抄襲或者是干脆不做,建立完整的考核體系,考核分為四部分:筆試、編程、作業和實訓答辯。平日的作業分為3種:1) 針對問題提出解決方案;2) 以作業本上交的習題;3) 程序題,以U盤拷貝或通過網絡發到教師信箱,每個知識點講解后教師都會分配相應的作業,此外,教師會采取隨機的課堂提問方式,由被提問人說出你小組所描述的任務的解決方案。
2.6 學生與教師角色的互換
以學生為中心,學生必須擔負起學習的責任,教師的角色是指導認知學習技巧的教練,在PBL中, 教師的角色是資源提供者和學生發展的促進者、推動者或輔導者。他們的任務基本上是在學習者解決問題的過程中引導學習者。而當學習者逐漸精通和熟練地解決問題時,老師逐漸退居幕后了。這與建構主義所倡導的“支架式(scaffolding)教學”中的師生的角色是一致的。
2.7 小組總結
在每一個問題完成和每個課程單元結束時要進行自我總結和小組總結,教師打分,鼓勵好的小組,在學生中形成競賽的機制,比著學,改變傳統的老師帶著學,扭轉學習的風氣。
3 教學中體現出來的優勢
1)學生分組討論算法的設計,為學生們營造了一個輕松、主動的學習氛圍,使其能夠自主地、積極地暢所欲言,充分表達自己對算法的認識,同時也可以十分容易地獲得來自其他同學和老師的信息;
2)可使有關課程的問題盡可能多地當場暴露,在討論中可以加深對正確理論的理解,還可以不斷發現新問題,解答新問題,使學習過程縮短,印象更加深刻;
3)它不僅對理論學習大有益處,還可鍛煉學生們多方面的能力,如文獻檢索、查閱資料的能力,歸納總結、綜合理解的能力,邏輯推理、口頭表達的能力,主導學習、終身學習的能力等,這些將對今后開展工作和科學研究等打下良好基礎。
4)學生從自身出發,完成角色轉換,從被動的學習者轉變為學習的主人。較之傳統的學習模式, 更強調學習的過程,增強了學生的自主學習,培養了他們的人際交往能力和團隊合作能力、自發的學習態度和良好的職業素養。
5)加強了橫向的學科的聯系、比如是數據結構、軟件工程等,在設計算法的時候考慮數據結構的知識點,在實訓的過程中,寫總結性報告需要軟件工程的知識,為今后的專業學習奠定基礎。
4 結束語
通過實際的教學活動發現PBL教學法比較適合程序設計語言課的講授,不僅僅是在課堂授課過程還是實驗環節中,采用這種方法有效的提高了學生對程序的理解能力,對算法分析設計能力,提高了實際的編程能力。但是,它也相應的對教師自身的素質和教學技巧都有很高的要求,教師不但熟悉教學大綱,對該語言、該課程內容要熟練掌握,還應當扎實掌握相關學科知識,并要具備提出問題解決問題的能力、靈活運用知識的能力。此外,教師應該熟悉學生的能力情況,這樣才能規劃好學習的重點、難點,制定有針對性的討論提綱,選擇出適當的問題,這是做好PBL教學的基本前提。另外,教師要學習和具備良好的組織管理能力,控制課堂節奏等技巧。才能調動學生積極性、寓教于樂。
參考文獻:
[1] 安蓉,王梅.高等教育課堂教學中問題式學習的應用[J].江蘇高教,2007(2):79-82.
[2] 譚浩強.C語言程序設計[M].北京:清華大學,2001.