李卓 趙津燕 李益民
(北華大學計算機科學技術(shù)學院,吉林 132021)
C程序設(shè)計基礎(chǔ)課程是許多工科類普通高校計算機和非計算機專業(yè)公共基礎(chǔ)必修課,多為大學一年級新生開設(shè)的首門高級程序設(shè)計課程。通過這門課的學習,學生不僅要掌握C語言本身的基本概念和語法規(guī)則,更要掌握程序設(shè)計的思想、方法和技能,為后續(xù)課程的學習和本專業(yè)應用打下較扎實的理論和實踐基礎(chǔ)。通過以往的教學實踐,我們發(fā)現(xiàn)很多大學新生認為C程序設(shè)計基礎(chǔ)課程是一門比較難學好的課程,由于內(nèi)容多、課時緊、知識與高中相比跨度大,使得一些學生在學習過程中有畏難情緒,學習興趣不夠濃厚,往往出現(xiàn)教師教的累,學生學不會的現(xiàn)象。所以提高這門課程的教學質(zhì)量,激發(fā)學生的學習興趣,對于培養(yǎng)學生程序設(shè)計能力、靈活的思維方式以及較強的動手能力都是非常重要的。
C程序設(shè)計基礎(chǔ)是一門理論和實踐緊密結(jié)合的課程,而實踐必須要在理論的指導下才能正確進行,所以對于理論課教學內(nèi)容的設(shè)定和調(diào)整是提高教學質(zhì)量的前提。傳統(tǒng)的教材基本上是以一門語言的自身體系的脈絡(luò)來展開,過于注重語句語法的細節(jié),沒有把編程解題思路放在主體地位[1],使得部分學生學完后有種“只見樹木,不見森林”的感覺,遇到本專業(yè)領(lǐng)域的實際問題時,不知道如何去分析和解決,學以致用的能力沒有得到很好地培養(yǎng)。
對于教學內(nèi)容的改進可以從以下兩個方面來進行:其一,內(nèi)容的精簡與整合。具體而言就是對于一些過多過細的語法點要進行精簡,而對于一些前后聯(lián)系比較緊密的內(nèi)容可以不按照教材上的書寫順序來進行整合。例如,輸入輸出函數(shù)中對于格式控制符的介紹很詳細[2],在教學中,我們可以將一些不常用的格式控制符的使用說明作為精簡的內(nèi)容,學生在使用時可以通過查閱資料方式來獲得。又如,還可以將預處理命令部分作為精簡內(nèi)容,因為這部分內(nèi)容易于理解可以留給學生進行自學,使得學生在自學過程中提高了獨立分析和解決問題的能力。另外,對于指針[3]的學習一直是本門課程教學的重點和難點,由于數(shù)組和指針這兩部分的教學內(nèi)容聯(lián)系緊密,可以將其進行整合。例如,可以在一維數(shù)組的講解中引入指針的概念,使得學生更容易理解什么是指針,從而為進一步應用指針打下良好的基礎(chǔ)。
其二,內(nèi)容的補充與擴展。為了提高學生的程序設(shè)計能力,在以C語言本身知識作為教學內(nèi)容的基礎(chǔ)上,還要補充一些數(shù)學建模、算法設(shè)計、程序設(shè)計風格以及軟件工程等方面的知識,使得學生在學習過程中不局限在對于一門語言本身的掌握,而是能從更高角度來認識和感受程序設(shè)計的精妙之處,做到“既見樹木,亦見森林”。另外,隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,還可以指導學生充分利用網(wǎng)絡(luò)來獲取書本之外的寶貴學習資源,例如,一些優(yōu)秀的程序設(shè)計論壇,免費的視頻學習網(wǎng)站等,從而擴展學生的視野,激發(fā)學生主動學習的內(nèi)在動力。
傳統(tǒng)的“填鴨式”教學方法存在的弊端已經(jīng)越來越明顯,為了更好地實現(xiàn)教學內(nèi)容的組織思路[4],應該采用能夠激發(fā)學生學習興趣和主觀能動性的教學方法,對傳統(tǒng)教學方法進行改進,具體的改進方式主要有以下兩方面:其一,基于問題的啟發(fā)式教學。也就是說在教學中,要圍繞所要解決的問題,以學生為主體,教師為“協(xié)作者”逐步引導學生掌握解決問題的方式方法。例如,在講解“冒泡排序”算法時,教師可以在介紹該排序算法思想的基礎(chǔ)上,以一組具體的數(shù)據(jù)為例,引導學生來模擬計算機完成排序的過程,并啟發(fā)學生如何從程序設(shè)計的角度來實現(xiàn)模擬的排序過程,進而由具體數(shù)據(jù)排序過程擴展到對任何N個數(shù)據(jù)進行冒泡排序規(guī)律的尋找,最終得到整個排序算法的代碼框架。在這一過程中,將學生作為解決問題的主體,教師作為輔助者,在一個個問題獲得解決的過程中,可使學生獲得學習的成就感,從而提高學習興趣。
其二:適當進行角色互換。在課時允許的情況下,可以事先選擇一些內(nèi)容,讓學生自學,然后學生采取自愿原則作為教師講解這部分內(nèi)容,而教師則扮演學生角色。待學生講解完畢后,師生一起以討論方式對該生所講解的內(nèi)容進行點評和補充。例如:在學生學習完一維數(shù)組的基礎(chǔ)上,就可以選擇二維數(shù)組作為教學內(nèi)容進行角色互換,在這一過程中不僅可以提高學生的自學能力和表達能力,激發(fā)學習的主觀能動性,而且在角色互換的過程中還能讓學生體會到教師備課的辛勞,從而在學習過程中能更尊重教師的勞動成果。另外,教師在角色互換過程中,還可以從學生身上獲得一些教學啟示,從而達到教學相長的目的。
C程序設(shè)計基礎(chǔ)課程有其自身的特點,學生聽不會,也看不會,只能練會[5],為了鞏固和加強理論課教學內(nèi)容,提高學生實踐技能,培養(yǎng)工程意識和創(chuàng)新能力,必須加強實踐訓練,使學生在大量的練習中掌握知識,提高程序設(shè)計能力。
為了真正提高學生的程序設(shè)計能力,我們對實踐課教學主要從以下兩方面進行改進:其一,實驗課的實驗題目分梯度進行設(shè)置。傳統(tǒng)的實驗題目對所有學生都是統(tǒng)一設(shè)定的,這樣往往就會出現(xiàn)一些學生“吃不了”,而另一些學生“吃不飽”的現(xiàn)象。為了滿足不同程度學生的學習需要,我們將實驗題目劃分為三個梯度,分別為:驗證型題目、半設(shè)計型題目和設(shè)計型題目。其中,驗證型題目不僅給出題目描述而且還給出了程序代碼,通過這類題目可以培養(yǎng)學生讀程序和調(diào)試程序的基本能力;半設(shè)計型題目給出了題目描述和至少一種解決問題的算法描述,通過這類題目可以培養(yǎng)學生部程序設(shè)計和編寫能力;設(shè)計型題目只給出題目描述,要求學生自己建立解決問題的數(shù)學模型并最終通過程序來實現(xiàn),通過這類題目可以培養(yǎng)學生算法設(shè)計、程序設(shè)計和程序調(diào)試等多方面綜合實踐能力。
其二,以項目為驅(qū)動,分小組進行課程設(shè)計。實踐課教學的改進除了常規(guī)實驗課改進之外,還要在學生基本完成C程序設(shè)計基礎(chǔ)課程學習之后,分出兩個星期的時間進行課程設(shè)計。學生自由組成課程設(shè)計軟件開發(fā)小組(即開發(fā)團隊),每組為3人左右,并選舉1人任組長。每個軟件開發(fā)小組可以選擇教師擬定的課程設(shè)計題目中的一個課題或自選題目進行小型項目的開發(fā),每組獨立完成設(shè)計任務。課程設(shè)計按小組驗收,要求學生演示設(shè)計的程序,講解設(shè)計思路、方法、解決的主要問題,教師根據(jù)具體情況向每個學生提問2至3個問題。另外,每位同學在課程設(shè)計驗收結(jié)束后要上交一份內(nèi)容充實、寫作規(guī)范的設(shè)計報告。經(jīng)過這樣的實踐訓練,不僅培養(yǎng)了學生綜合運用所學知識獨立完成課題的能力,而且還培養(yǎng)了他們的團隊合作精神,為今后在學習過程中工程意識和創(chuàng)新能力的進一步提高打下了扎實的基礎(chǔ)。
現(xiàn)在還有許多高校的C程序設(shè)計基礎(chǔ)課程教學評價方式以筆試為主,這樣就會導致很多學生對于上機實踐不夠重視,出現(xiàn)“高分低能”的現(xiàn)象。為了提高學生的實踐能力,在日后激烈的就業(yè)競爭中能夠脫穎而出,我們需要對本門課程的考核方式進行改進:其一,加大上機實踐考核比例。具體而言,就是將期末筆試成績與上機考試成績的考核比例設(shè)定為1:1,其中上機考試成績又由平時實驗課成績和單獨的上機考核成績兩部分組成,如果單獨的上機考核學生沒有通過,則本門課程成績直接計為不及格。其二,調(diào)整上機實踐考核的時間。由于學生期末考試復習時間比較緊張,所以可以考慮將單獨的上機考核時間安排在第二學期開學的第一周進行,這樣既可以緩解學生期末考試的壓力,另外一些在學習過程中實踐能力較弱的學生還可以利用假期時間進行充電,最終達到提高學生實際動手能力,多編程序,編寫好程序的目的。其三,筆試采用“教考分離”方式。也就是說任課教師不能作為本門課程期末試題的命題教師,考試題目由試題庫隨機抽取產(chǎn)生,從而可以更客觀地考核學生對課程的掌握程度。
如何提高C程序設(shè)計基礎(chǔ)課程的教學質(zhì)量,切實培養(yǎng)學生的程序設(shè)計能力,是一個非常值得去探索的課題。筆者從理論教學、實踐教學和考試評價方式三個方面對C程序設(shè)計基礎(chǔ)課程教學改革提出了一些改革的思路,在實際教學中也收到了較好的教學效果。隨著社會對高等教育人才需求的改變,我們也要與時俱進,在教學中不斷探索和實踐,使得培養(yǎng)出來的學生能夠?qū)W有所長,學以致用,成為適應社會發(fā)展需求的合格人才。
[1]李靜雯.關(guān)于提高C語言教學質(zhì)量的探討[J].電腦知識與技術(shù),2007(04):1149-1150.
[2]黃群.C語言程序設(shè)計課程教學設(shè)計探討[J].計算機教育,2010(05):78-81.
[3]譚浩強.C程序設(shè)計[M].北京:清華大學出版社,2005.
[4]何欽銘,顏暉.“C程序設(shè)計基礎(chǔ)及實驗”國家精品課程的建設(shè)經(jīng)驗[J].計算機教育,2008(19):28-31.
[5]吳文虎.精心鑄精品理念須先行-談“程序設(shè)計基礎(chǔ)”課程改革[J].計算機教育,2008(13):46-49.