李秀香
(晉中師范高等專科學校,山西 晉中 030600)
[關鍵字] C語言程序設計;PBl模式;教學內容
C語言程序設計課是高等院校計算機類專業一門重要的專業課,也是計算機等級考試包含的種類之一,更是作為后續專業課程學習的前繼課程。通過這門課程的學習,不僅要求學生掌握C語言基本的語法和編程思想及方法,更重要的是培養他們的邏輯思維能力和舉一反三解決問題的能力。C語言程序設計課程作為一門典型的程序課,其本身枯燥、語法堆砌,會給學生造成一種只見樹木不見森林的感覺。教師講授這門課時,一般會發現內容多、學時短。兼顧上課進度,教師一般采用先講授理論知識、隨后上機演示操作、最后指導學生上機練習。這樣,在課堂上學生仍然是被動接受知識,在很大程度上限制了學生的創新能力和應用能力的提高。大學的教育與中學不同,大學教師不應僅僅教授已成形的舊知識,還應讓學生參與知識的拓展研究,培養學生的創新和研發能力。在大學中,研究、傳授及學習三位一體,環環相扣,教師的傳授與學生的學習,都是研究工作的重要環節。研究者不應僅僅研究,而應將研究成果傳遞給學生,教學內容應是正在研究的前沿的新知識。
隨著信息技術的飛速發展,結合C語言程序設計課程的自身特點,本文主要探究將基于問題的學習模式(Problem-Based Learning)應用于C語言程序設計課程教學改革中,從教材的設計理念、課程內容的處理、采取的PBL教學模式等多個角度,針對C語言教學中存在的問題,對C語言傳統教學模式進行改革。
PBL教學模式主要是以問題為基礎,以學生為中心,以任務驅動為主線,以小組協作為主導。該教學方法是由美國神經病學教授麥克馬斯特在加拿大提出來的,經過半個世紀的發展,如今已被延伸應用于各個教育領域,PBL的研究方向也已轉向了基于網絡平臺的學習設計方面。PBL教學可以促進學生敢于表達自己的意見及觀點,而對于教師及書本的觀點,他們也敢于質疑及挑戰。
筆者通過統計在中國知網上發表過的所有論文(包括博士、碩士和期刊),發現從2000年到現在共發表和PBL相關的文章共14656篇,其中有關教育領域的只占到不到20%,而醫學領域的文章高達80%。由此說明PBL理論在醫學研究領域研究的比較透徹、實踐應用開展得較好,而在教育領域里發展還不夠成熟,特別是在高校有關碩、博士論文對PBL研究非常有限。
針對PBL在我國各高校教學實踐中的應用,如果將PBL教學引入C語言程序設計課程教學改革中,將會改變程序設計課的教學現狀,提高教學質量,也為教師提供一種新的教學思路。
從社會需求的角度來看,C語言程序設計仍是持續火爆的編程語言之父,人才需求量穩居第一,掌握好它,有利于提高學生將來的就業競爭力。從應用的角度看,許多信息基礎設施和重要系統都是用C開發的,C語言尤其在嵌入式、控制和數據庫領域應用廣泛,如運行效率要求較高的實時控制系統、設備驅動程序、嵌入系統;任何含有微處理器的設備都支持C語言;超過一半的熱門方向直接或間接與C語言有關。從技術的角度看,C語言是一種高級語言,語法簡單精練,概念少,效率高,并能較好地反映計算機的特點,且數據結構豐富,更易于體驗程序設計的思想和算法的精髓。現在流行的C++、Java、C#等都借鑒了它的思想、語法,所以學好C語言是學習這些流行語言的基礎。
C語言教材使用中常見的問題是:許多實例不實,是為解釋語法而設計的。由于C語言本身語法較多,教師在講授中偏重語法講解,沒有過多時間講解調試程序過程中出現的錯誤分析。雖重視內容,但忽視內容的組織。
編寫教材時,采用由底向上的程序設計方法到自頂向下的程序設計方法,由簡單的數據結構到復雜的數據結構。教材編排如圖1:

圖1 C語言教材內容組織
(1)利用問題驅動,循序漸進地進行
借助現代化教學手段,設計選擇典型問題,逐步引導學生自己分析解決問題,從而培養學生探究學習和協作學習的能力。如解決用C語言編寫猜數游戲程序時,采用自頂向下的模塊化程序設計。學生初看這個問題,確實有些難度,但是如果按圖2步驟循序漸進地編程實現,會發現其實這個程序是很容易實現的。
一是建立健全綠色發展制度體系,讓美麗“顏值”變成經濟產值。率先在全國探索推行GDP與GEP雙核算、雙運行、雙提升機制,實施綠色經濟考評體系和綠色經濟考評辦法,制定實施重點領域、重點行業、重點產品綠色評價標準,全面開展生物多樣性和生態系統服務價值評估工作,用制度把“綠水青山”量化為“金山銀山”。探索環境保護聯動執法機制和損害責任終身追究制,提起云南省首例環境污染民事公益訴訟,堅決打擊破壞生態環境的違法行為。

圖2 猜數游戲
解決上述猜數游戲中明確小組分工,由兩位同學程序編寫與調試,兩位同學進行Word文檔制作,另兩位同學進行PowerPoint演示文稿制作。
(2)利用簡單編程,進行啟發誘導
用C語言的遞歸函數編寫求n!時,在編寫函數時對比使用自動變量和靜態變量時得到的結果,讓學生自己判斷解決該問題時選用正確的變量。如求10!時函數返回值類型定義為長整型即可,提出挑戰性的作業試求40!時,此程序是否可行,該如何解決。
(3)舉一反三,達到融會貫通
在C語言的循環結構中,常見三種循環控制方式和編程方法,以解決不同類型的問題。第一種計數控制的循環用于求已知循環次數的,如類似于1+2+3+……+100。第二種是條件控件的循環,在這類程序中已給定循環結束的條件,如1-1/2+1/3-……+1/99-1/100+……,直到最后1項的絕對值<10e-4為止。第三種是標記控制的循環,如給定條件到輸入數據為負數或0時為止。
在C語言程序設計教學中,使用PBL教學模式,根據每一個程序項目,從閱讀程序項目起,到提出問題、確定算法,再到繪制流程圖,直至編寫出完整程序和編譯調試程序,整個過程就是一個分析問題和解決問題的過程,在這個過程中學生通過小組協作討論,相互交流學習,教師可以引導學生新的語法和知識點,幫助他們在做中學,學中做,引導學生開拓思路,啟發學生在得到同一結果的同時提出多種解決方法。
(1)教案設計
在教案設計時,首先要明確教學目標,明確設計問題背景鋪墊、展示或導入方法,明確發現問題的角度和方式;其次是明確研究進行的形式;最后要明確研究結果表現形式。
(2)發現問題
(3)面向問題的學習方法
面向問題的學習方法,也是面向問題的教學方法,是國內外大學普遍推崇并證明有實效的方法。目前大多老師采用的是面向主題的教學方法。面向問題的學習方法也是提升學生的學習空間,并培養思考、探索及解決問題的能力,以適應不斷變化的學習環境。它是以一個個任務,通過教師的指導,小組協作方式進行的,通過不斷分析、總結和測試,得出結果。
(4)改革考試方式
C語言杜絕傳統的應試教育考試方式,盡量不用筆試;教師的考核盡可能在完成每個項目教學后,針對本項目,根據學生的掌握情況,分階段考核學生,考試結果作為平時成績。在此教學考核過程中合理地建立小組各成員的得分辦法;有機制地認定特色或創新。
在我們實際C語言教學中,圖3是PBL的具體實施過程:

圖3 PBL實施流程
本文針對C語言程序設計課教學中存在的問題,引入PBL教學模式。從課程設置的目的、教材編寫的理念、教學內容的組織、考核方式等多方面到PBL教學模式的具體實施進行闡述。PBL教學模式在程序設計課中的應用仍是今后研究的主要方向。