陳鴻+殷鳳梅+張江
摘 要:C語言程序設計課程是非計算機專業理工院系開設的公共必修課,作為學生入校學習的第一門計算機技術課程,學生學習過程中感到內容抽象,困難重重,興趣衰減。該文對漸進式框架教學法進行研究,首先提出以程序設計模塊為主線學習的重要性,其次結合程序設計驅動模塊提出漸進式框架教學方法的可行性。通過漸進式框架教學法的研究,旨在提高非計算機專業學生學習C語言程序設計的興趣,運用C語言分析問題、解決問題的能力,提高編程效率。
關鍵詞:C語言 程序設計模塊 漸進式框架 教學方法
中圖分類號:G642 文獻標識碼:A 文章編號:1674-098X(2017)04(c)-0221-02
C語言是一門通用性較強的計算機程序設計語言,它具有匯編語言和高級語言的雙重特點,既能運用它編寫操作系統軟件,又能開發各領域的應用軟件,實用性不言而喻[1]。語言是相通的,學好該語言,再學習其他計算機編程語言的時候就會觸類旁通,學習速度提升許多。而非計算機專業學生學習該語言不僅可以深入理解計算機的運行過程,還在于培養自身嚴密的邏輯思維能力,利用計算機解決本專業問題的能力等。
為了更好地幫助非計算機專業學生學習C語言程序設計課程,激發學生學習興趣,提高學生分析問題和解決問題的能力,提出漸進式框架教學方法。
1 漸進式框架教學方法
1.1 程序設計驅動模塊
C語言課程分為兩大模塊,即語法模塊和程序設計模塊。教師在講授過程中,往往會將重點放在枯燥的語法規則解釋上,容易陷入重理論、輕實踐的誤區[2]。學生課上聽講頻頻點頭,上機操作只會驗證教師講過的例題,其他題目無從入手。
在C語言課程的教學中,程序設計和語法學習同等重要,教學中不能單一講解C語言中的語句、語法,應該積極推行案例分析,將復雜枯燥的語法恰當地嵌入有趣實用的程序實例中。通過程序實例重點介紹程序設計的思路和方法,在分析程序過程中逐步熟悉語法和應用語句,直接切入教學的主題和深入部分,把軟件工程學的思想貫穿于算法分析和程序設計的過程中[3-4]。
1.2 漸進式框架
在程序設計驅動模塊作用下,學生開始培養學習C語言程序設計的興趣,但是隨著學習案例、知識點的增多,學生編程容易出現瓶頸,對于編寫綜合性案例存在難度。因此提出漸進式框架學習方法,以程序設計模塊為主線,將程序設計案例與知識點進行結合,提煉出若干漸進式編程框架,幫助學生逐步提升編程能力。
C語言程序設計課程中主要講授了基本數據類型、復雜數據(數組、指針等)、表達式、順序結構、選擇結構、循環結構、函數、結構體和共同體、文件等。根據程序設計模塊結合語法規則提出以下幾種框架。從前往后的框架是漸進搭建的,符合學生學習知識難度的梯度要求,幫助學生快速寫出案例的主線。
(1)基本輸出框架。
任何一個C語言程序一定會有輸出結果,因此搭建最基本的框架。具體框架如下。
#include
void main()
{
printf( );//打印輸出
}
學生在編寫含有輸出結果的程序中,首先搭好這一基本框架,根據程序要求將“printf( );”語句填充完整。
(2)基本輸入——輸出框架。
在許多程序中,除了輸出結果是必須包含的,輸入項也是大多數程序中包含的。輸入項主要分為兩類:一類是直接賦值;另一類是鍵盤輸入。在基本框架基礎上進行框架進一步搭建,將其定義為基本輸入——輸出框架。具體框架如下。
#include
void main()
{
scanf( );//鍵盤輸入或者直接賦值輸入
printf( );//打印輸出
}
學生編寫程序時,如果題目有輸入項要求,可以先將輸入輸出框架搭建起來,再進行語法填充。針對鍵盤輸入,“scanf( );”語句的語法規則類似“printf( );”語句,可以將兩者進行對比學習,歸納異同點,有效學習兩種語句。
(3)輸入——結構組——輸出框架。
隨著程序學習的深入,基本輸入-輸出框架無法滿足編程需求,此時在該框架基礎上繼續搭建。在學習結構的時候,主要介紹順序結構、選擇結構和循環結構等3種常用結構。三種結構之間可以進行組合。總體上,將此框架定義為輸入-結構組-輸出框架。具體框架如下。
#include
void main()
{
scanf( );//鍵盤輸入或者直接賦值輸入
結構組;//單一結構或三種結構的組合
printf( );//打印輸出
}
學生根據程序要求,首先確定輸入項和輸出項,然后分析由輸入到輸出的中間過程可以通過哪一種或哪幾種結構完成。
(4)自定義函數——輸入——結構組——輸出框架。
在應用程序要求逐漸增多的時候,一個主函數無法完成所有需求,需要將需求進行分塊,在主函數中直接調用各應用需求模塊。此時開始搭建包含若干自定義函數的自定義函數——輸入——結構組——輸出框架。框架如下。
#include
自定義函數;//函數定義
void main()
{
scanf( );//鍵盤輸入或者直接賦值輸入
結構組;//單一結構或3種結構的組合,內部可能涉及函數調用
printf( );//打印輸出,內部可能涉及函數調用
}
學生進行編程分析時,可以先將各個需求模塊劃分好,再使用該框架進行程序搭建,最后填充具體內容。
(5)復雜輸入——結構組——復雜輸出框架。
此時可能會提出疑問,教學中的重要內容數組、指針、結構體、文件等如何體現,根據應用要求提出復雜輸入-結構組-復雜輸出框架。輸入、輸出項中可以含有數組、指針、結構體等數據類型或文件等。
#include
void main()
{
復雜輸入;/*與循環結構綁定的數組元素賦值、指針變量賦值、結構變量賦值或者打開文件賦值等*/
結構組;//單一結構或三種結構的組合
復雜輸出;//數組元素輸出、指針變量輸出、結構變量輸出或者值寫入文件等
}
在一些綜合應用中,程序的輸入輸出數據具有一定的特點。根據數組、指針、結構體和文件各自的適用范圍,選擇對應的類型進行程序輸入輸出的編寫。
1.3 應用舉例
分析案例的時候,可以先找到對應的框架進行搭建,再進行細節填充。具體應用如下。
(1)案例1——計算100以內的素數個數。
該案例經過分析,可以得出輸入是1到100的整數,輸出是素數的個數,中間運算過程是判斷指定范圍內的每個數字是否為素數。根據前面提出的幾個框架,很快找到輸入-結構組-輸出框架,結構組中運用了循環結構和選擇結構的組合。
(2)案例2——計算超市購物總花銷。
輸入是每個物品的單價和數量,輸出是所有物品總價,中間運算過程是將每個物品總價進行累加。輸入項目特點滿足數組輸入條件,因此找到復雜輸入——結構組——輸出框架。
(3)案例3——統計某班學生高等數學成績平均分、及格率與學生成績排名。
該案例較前面案例較為復雜,輸入項包含每個學生的分數以及學生信息,輸出有平均分、及格率、學生成績排名等,中間運算過程要對應3個輸出對象。顯然,案例可以劃分3個需求模塊,考慮運用自定義函數——輸入——結構組——輸出框架進行求解比較快捷。
2 結語
高校非計算機專業C語言程序設計課程應用范圍很廣,對于學生邏輯思維和編程等能力的培養很有幫助。根據學生學習該課程的學習心理分析與學習情況的跟蹤調研,尋找一種適合學生掌握所學知識的教學方法,在堅持以程序設計模塊為主線的教學中,提出漸進式框架教學方法,提高學生的分析能力和編程能力,通過小范圍試行驗證了方法的可行性和實用性。但是,C語言程序設計課程的改革不是一勞永逸的,漸進式框架還有很大的改進空間,后續將繼續進行相關研究。
參考文獻
[1] 朱立才,湯克明.C語言程序設計研究型教學實踐[J].計算機教育,2010(4):115-117.
[2] 周長英,董翠英,陳穎.非計算機專業“C語言程序設計”教學方法探析[J].教育與職業,2010(8):148-149.
[3] 方艷紅,趙海龍.計算機高級語言程序設計類課程實踐教學改革研究[J].中國科技信息,2008(19):12-14.
[4] 汪紅兵,姚琳,武航星,等.C語言程序設計課程中的計算思維探析[J].中國大學教育,2014(9):59-62.