摘 要: “C程序設計”是數(shù)學與應用數(shù)學專業(yè)的一門基礎課,目前該課程在這兩個專業(yè)中的教學內(nèi)容有很大的局限性。傳統(tǒng)的教學模式基本上不考慮數(shù)學與應用數(shù)學的專業(yè)性,教學手段上還是以教為主,學為輔。根據(jù)數(shù)學與應用數(shù)學專業(yè)的特點,從教學內(nèi)容、教學模式和教學手段等方面對“C程序設計”教學進行了改革。經(jīng)學生實際學習情況驗證,取得了較好的教學效果。
關鍵詞: 數(shù)學與應用數(shù)學; C程序設計; 教學內(nèi)容; 教學模式; 教學手段; 探討
中圖分類號:G642 文獻標志碼:A 文章編號:1006-8228(2013)01-42-03
Research on teaching reform of C programming design for mathematics
and applied mathematics profession
Xu Shuhua
(Department of Mathematics, Shaoxing University, Shaoxing, Zhejiang 312000, China)
Abstract: \"C programming design\" is a basic course in specialties like mathematics and applied mathematics. At present, the teaching content of \"C programming design\" for mathematics and applied mathematics major students has significant limitation. Traditional teaching model basically does not consider the profession of mathematics and applied mathematics. Teaching is the main method while self-learning is assistance. According to the characteristic of mathematics and applied mathematics professional, teaching reform for \"C programming design\" is discussed from the aspects of the teaching content, teaching model and teaching methods in this paper. The students’ practical learning situation demonstrates the effectiveness of our proposed reform method.
Key words: mathematics and applied mathematics; C programming design; teaching content; teaching model; teaching method; discuss
0 引言
C語言是當前國內(nèi)外廣泛使用的計算機程序設計語言之一,由于其語言功能豐富,表達能力強,應用面廣,目標程序效率高等優(yōu)勢[1],成為各高等學校理工科專業(yè)學生進行程序設計必選的語言之一。對于數(shù)學與應用數(shù)學專業(yè)來說,為了實現(xiàn)使學生“學有所用,學有所得”的教學目的,C語言程序設計課程不僅要求學生掌握其語法,更重要的是培養(yǎng)學生在運用數(shù)學知識和計算機解決實際問題時算法的設計與實現(xiàn)的能力,提高其知識應用的能力,逐步讓學生筑就良好的程序設計基礎,培養(yǎng)全新的思維習慣和嚴格的軟件開發(fā)職業(yè)訓練。從課程結(jié)構(gòu)來看,C程序設計課程既可以作為數(shù)學統(tǒng)計分析軟件SPSS、Matlab、Maple等其他程序設計課學習的基礎,又可以作為數(shù)學建模和數(shù)值分析等課程的實驗課程。因此,C程序設計課的教學在數(shù)學與應用數(shù)學專業(yè)課程結(jié)構(gòu)中有著較為重要的地位。
在學習C程序設計課程中,數(shù)學與應用數(shù)學專業(yè)的學生表現(xiàn)出與計算機專業(yè)學生不同的方面,其主要表現(xiàn)在學習C語言的積極性和興趣不高,存在的主要問題如下。
⑴ C語言知識點過多、過繁,學生在學習過程中可能注重語句、語法等細節(jié)而忽略了課程全貌,產(chǎn)生了“只見樹木,不見樹林”的感覺,因而對該課程心存畏懼,缺乏學習的興趣;有些學生覺得學了C語言與自己的專業(yè)沒有太多的聯(lián)系,覺得學了C語言沒用,缺乏學習動力。
⑵ C程序設計的教學模式仍然是一個個小的簡單的例題,沒有專業(yè)性、工程性,學生在學習程序設計的初級階段沒有樹立正確的軟件工程觀念。
⑶ C程序設計的教學手段仍然是以教為主,學為輔,學生遇到問題就向教師求教,缺乏自主學習和自我探索的學習習慣。
⑷ 數(shù)學與應用數(shù)學專業(yè)的學生習慣動筆,不習慣上機操作,缺乏上機調(diào)試和改錯的能力。
⑸ 學生在編程過程中沒有注重培養(yǎng)良好的程序設計風格和規(guī)范,好的設計風格不僅使編碼更加規(guī)范,而且也易于調(diào)試和改錯。
本文從如何使C程序設計的教學更加符合數(shù)學與應用數(shù)學專業(yè)的要求為出發(fā)點,對C程序設計的教學改革進行探討。
1 教學內(nèi)容探討
C程序設計課程在教學內(nèi)容上力求體現(xiàn)課程的系統(tǒng)性、穩(wěn)定性和知識的先進性。摒棄一些用得少、過時的知識,增加一些C++的知識。針對這一要求,教學改革過程中對教學內(nèi)容作了如下幾點調(diào)整。
1.1 輸入與輸出
由于C語言牽涉的概念比較復雜,規(guī)則繁多,用法靈活,容易出錯,因而不少初學者感到困難。其中格式輸入scanf函數(shù)與輸出printf函數(shù)就是一個例子。格式輸入輸出的規(guī)定比較繁瑣,此類函數(shù)的調(diào)用語句書寫起來比較冗長,用的不準確就得不到預期的結(jié)果,而輸入輸出又是最基本的操作,幾乎每個程序都包含輸入輸出,不少編程人員由于掌握不好這方面的知識而浪費了大量調(diào)試程序的時間。由于C++語言完全兼容C語言,因此在這一節(jié)內(nèi)容的講解時可引入C++中的標準輸入流cin和標準輸出流cout,以簡化輸入輸出操作。
1.2 字符串
除了輸入、輸出和計算以外,文本處理也是編程過程中一個非常重要的方面。由于C語言中沒有專門的字符串變量,如果想將一個字符串存放在變量中以便保存,一種方法是使用字符數(shù)組來存放,即用一個字符型數(shù)組來存放一個字符串,數(shù)組中每一個元素存放一個字符[2];另一種方法是使用字符指針實現(xiàn)字符串。但是在C++語言中提供了一種既方便又好用的string類型,其中包括能夠用來遍歷字符串中的部分或全部元素的四種迭代器,分別為begin、end、rbegin和rend,包括計算字符串容量的相關操作,還包括很多有用的成員函數(shù),可以用來構(gòu)建字符串對象,對字符串進行賦值,可以訪問元素、修改、字符串操作。因此,在講到數(shù)據(jù)的類型時會增加string類型的講解,讓同學們通過網(wǎng)絡查找資料學會string類型相關函數(shù)的操作。
在講解數(shù)據(jù)類型、運算符與表達式這章時,可以不講解數(shù)據(jù)在計算機內(nèi)存中的存儲形式,因為對初學者來說接觸這些內(nèi)容會感覺比較難學。預處理命令這一章的內(nèi)容不是最基本的,可以考慮讓學生自學。位運算的內(nèi)容適合于編寫系統(tǒng)軟件,適用于硬件,所以位運算這一章的內(nèi)容也可讓學生自學。
2 教學模式探討
C程序設計課程在教學模式上要體現(xiàn)編程能力的實用性、專業(yè)性、工程性。在C語言的教學過程中,找到適合數(shù)學專業(yè)的學生學習特點的教學手段和方法,合理地組織教學內(nèi)容、精心地設計教學案例,是整個教學改革的核心。我們選擇了一個綜合型的小型系統(tǒng)任務和與專業(yè)相關的一些案例。選擇小型系統(tǒng)和案例的主要依據(jù)有,小型系統(tǒng)內(nèi)容要基本涵蓋C程序設計課程各章節(jié)的絕大部分知識點,并且是學生感興趣的和熟悉的內(nèi)容;所選擇的小型系統(tǒng)應有一定的綜合性,且要在任務驅(qū)動下容易完成,難度系數(shù)應該根據(jù)學生的知識掌握程度來設定,以維護學生信心,保持學習動力;系統(tǒng)的每個功能模塊完成后應能看到具體的效果,使學生完成任務后有成就感,提高他們進一步學習的興趣;最后讓學生進行歸納、概括、總結(jié),讓知識理解升華。
在教學改革過程中,我們選擇了學生成績管理信息系統(tǒng)作為我們整個貫穿各章節(jié)知識的小型系統(tǒng),該系統(tǒng)由標準任務和復雜任務構(gòu)成,標準任務及其各模塊所占分值如表1所示。
除了選擇一個小型綜合性的系統(tǒng)讓同學們來開發(fā),還根據(jù)教學大綱、教材內(nèi)容安排和數(shù)學專業(yè)實際情況,選擇超長整數(shù)運算、最大公因數(shù)、最小公倍數(shù)、因式分解、完美數(shù)、阿姆斯壯數(shù)、上三角、下三角、對稱 矩陣、m元素集合的n個元素子集、數(shù)學拆解等案例作為小型系統(tǒng)任務的補充。每個案例都以表格的形式制定了嚴格的評分標準,由于篇幅關系,我們列舉出一個案例的評分標準表格,如表5所示,其余案例的評分標準表格與此類似,在這就不累贅了。
3 教學手段探討
教學手段需要體現(xiàn)課堂教學的互動性、網(wǎng)絡平臺的溝通及時性。為了及時了解學生的學習情況,我們每周安排了一次固定時間和地點的答疑,并且構(gòu)建了該課程的網(wǎng)絡學習平臺(網(wǎng)址為http://zlgc.usx.edu.cn/kc/cyuyan),在這個網(wǎng)站學習平臺上,有實踐教學、電子教案、作業(yè)習題、模擬試題、課程資料和在線答疑等欄目,學生可以下載學習資料,模擬做題,在線提問,教師可以在線答疑。在此列舉一個學生的提問,如圖1所示;針對該問題的回復如圖2所示。教師會把一些典型的問題拿到課堂上進行講解。
4 結(jié)束語
C程序設計是高等學校數(shù)學與應用數(shù)學專業(yè)的一門重要基礎課,使用計算機語言編寫程序解決數(shù)學問題,已經(jīng)成為數(shù)學與應用數(shù)學專業(yè)大學生必備的一種能力要求[3],本文從教學內(nèi)容上、教學模式上和教學手段上對數(shù)學與應用數(shù)學專業(yè)的“C程序設計”課程教學改革進行了探討,突出其作為專業(yè)基礎課的特點。以一個小型綜合性的系統(tǒng)開發(fā)項目貫穿整個課程絕大部分知識點,同時挑選一些緊密結(jié)合本專業(yè)領域的案例作為輔助進行教學,為進一步的程序設計和專業(yè)運用奠定基礎。本文這些教學改革已經(jīng)在實際教學中得到了應用,并且取得了良好的效果。
參考文獻:
[1] 譚浩強.C語言程序設計(第三版)[M].清華大學出版社,2005.
[2] 譚浩強.C語言設計題解與上機指導(第三版)[M].清華大學出版社,2011.
[3] 郭琳琴,高文蓮.數(shù)學專業(yè)C語言循環(huán)結(jié)構(gòu)教學研究[J].呂梁高等??茖W校學報,2010.26(3):63-65