但志平,任東,王安慧,任小燕
摘要:本文針對地方高校計算機C語言在教學中的現狀和存在的一些問題,探討了不同專業下C語言教學的改革思路和相應的解決方法,并對未來新形勢下地方高校的C語言教學進行了分析。通過課堂教學實踐,本文提供的改革思路能夠有效地提高學生主動學習的意識,達到提高C語言教學效果的目的。
關鍵詞:C語言;程序設計;計算機教育
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2014)20-0056-03
信息產業是21世紀發展的重要方向,作為信息產業中最重要的一個支撐技術,計算機技術的發展離不開計算機人才的培養。如何培養面向未來現代化企業需求、具備較強信息技術實踐能力的復合式人才,將是大學計算機教育探討的重要內容。目前,從全國普通高校來看,無論是非計算機專業的理工科學生,還是計算機專業本身,都必須打下堅實的計算機程序設計基礎,這不僅是為了讓學生能順利通過全國計算機二級考試,更是為了能讓高校的學生具備信息技術素養,提高實踐動手能力,適應社會的需要。計算機C語言作為一門計算機程序設計基礎課程,已經在各個高校開設多年,具有相當的普及性。C語言本身的特點,使得學生在學習的過程中遇到了非常多的問題,使得學生的學習效果不好,這也是這么多年來C語言教學中需要解決和研究的課題。
本文分析了目前地方高等學校,尤其是面向像三峽大學這樣正在向上發展,既有一本專業和也有二本專業的學校,針對C語言在這類學校中的現狀和教學中存在的問題,結合目前課堂的教學實踐,探討了相應的解決問題的策略方法,并對新形勢下的C語言教學進行了分析。
一、C語言教學現狀
大學計算機程序設計語言課程,一般分為必修和選修兩種。現在大多數高校開設程序設計語言課程把C語言作為理工科必修課,Basic語言作為藝術類學生必修課,而把Foxpro作為文管科必修課,對于理工科還開設了C++課程。由于C語言是面向過程的程序設計,而C++語言是面向對象的程序設計,雖然兩者關系非常相近,但思想卻完全不同。所以,許多一類大學,嘗試著直接開設C++作為入門的語言,但效果并不都是很好。考慮到三峽大學是地方二本院校,我們仍然選擇C語言作為理工類學生入門的程序設計語言,相對來說Foxpro程序設計相對容易,主要提高文管學生的實踐動手能力,Basic語言采用的是可視化編程,適合基礎比較差的藝術類學生。
在以理工類大學為主的學校中,以計算機C語言這門課來分析:C語言課程中內容比較全面,對算法的要求也比較高,加上C語言具有語法靈活、運算符極為豐富等自身特點,在教學中,學生普遍反映內容枯燥和難學;同時,由于課時相對壓縮,C語言學時明顯不足,結果學生在學習過程中總感覺進度較快,不容易掌握。由于教學效果差,有的老師放慢教學進度,結果使正常的教學內容也不能完成,很多內容沒有時間去講授,這又導致一些理工科專業的后續課程學習(譬如:計算機專業的數據結構、電氣專業的C++),學生動手能力也將受到影響。
教學中的主體是學生,學生的狀況也直接影響到目前C語言的教學水平。這幾年很多高校的辦學層次在提高,包含一本專業和二本專業,同時高考的學生規模在減小,招收來的不同專業學生基礎參差不齊,不少學生對新知識的求知欲也大大地降低。因此,原有的C語言教學方法和教學手段已經不能適應當前形勢下的教學任務。如何在教學中調動當前學生學習的主動性和能動性,利用有限的資源因材施教,積極探索先進的教學方法來提高教學質量,將是目前和未來研究的重點。
二、教學中的問題與教學方法的探討
結合C語言課程的教學與實踐工作,本文對教學中可能遇到的問題進行了詳細分析與思考,探討新的教學改革思路來提高教學質量,在實踐中取得了一定的成效。
1.定位的問題。盡管學生已經在大一上學期學過計算機基礎課程,但是很多學生的計算機素養還是很低,有不少同學跟剛進校的基礎一樣,仍然是零起點。計算機專業的學生也是如此,尤其是實行“3+1”新教學培養方案后,學生將從大一上學期開始學習C語言,難度進一步增大,雖然是計算機專業學生,但是計算機水平并不見得比其他專業學生高。同時,有不少學生對計算機課程學習信心很足,可是遇到C語言學習中的困難卻很難解決。一方面,他們是中學應試教育的受害者,另一方面也是因為大一階段其他課程的壓力太大,學生普遍反映高數和外語學習困難較大,實在沒有很多時間投入到計算機學習中,這就必然帶來計算機語言教學和學生對課程認識程度的矛盾問題。
為了能解決好這個問題,首先要選擇合適的教材和參考書。有些教材編得很好,實踐性很強,但從學生學習的情況上來看,并不適合學生的學習,所以各專業的C語言課程都換成國內內容全面、有一定基礎性的教材,學生學習效果明顯好不少。同時,為了讓學生更好地了解這門課,可以在第一次上課的時候,較為詳細地介紹一下C語言的歷史和用途、社會上的需求、為什么要開這門課、這門課應該學習什么、這門課與其他專業課的關系等,讓學生能充分了解學習這門課的意義,增強學生的學習興趣,為后面的課程學習開個好頭。
2.教學內容的設置。首先內容以能力培養為目標,突出程序設計,強調算法而不是語法。逐步培養學生的程序設計思想,讓學生真正地學習到分析問題和解決問題的方法。在教學的過程中,教師要重視編程思想,不要過多講解語言的語法。注重介紹有關獨立于任何特定編程語言的算法思想。重視算法的思想,并不是輕視C語言本身的語法,只是沒有必要為一些語法規定花太多精力。我們只需要在了解語法的基礎上更多地去模仿編程,只有通過自己多動手編程,才能有效地提高程序設計能力。同時,學習好算法,也能促進語法的掌握,這可以大大提高學習效率,更加突出教學的重點與難點,讓學生更好地掌握知識點。
由于C語言用途很廣,它所涉及到的內容很多,而大學的課時有限,老師不可能在課堂上講授所有內容,而且大學生已經不同于中學生,必須具備一定的課外自學能力。因此,老師在有限的學時中必須突出重點內容。同時根據不同專業方向發展的學生,適當地調整教學大綱,調整授課內容,例如與計算機軟件相關的,以后會涉及到數據結構、算法設計等專業課程,因此要在講課過程中加強指針、結構體等內容;與計算機硬件、自動化、電氣專業相關的,則必須加強數據類型、硬件編程等方面的內容;如果以后專業課程跟C語言相關較小的專業,學生可通過課程網站和圖書館資料進行學習。學生通過課堂老師講授的內容,可以掌握知識重點,學會編程思想,再通過課外的自學,拓寬C語言知識,加強課堂內容的吸收,這樣不僅有效地利用了有限的課堂學時,也充分發揮了課外學習的效能,實現了內外互補的層次教學。由于教學面對的對象不同,教學目的也會不同,教學內容的重點也不同。以突出重點內容的程序設計方法和技術,可以為高校學生自學習慣和應用能力培養奠定基礎。endprint
3.教學方式的探討。在教學過程中,目前的教學方式都是采用計算機多媒體教學。如果僅僅利用多媒體電子教案進行講授,內容顯得很抽象,學生不能很好地理解C語言的精華。而C語言是一門實踐性很強的課,要求學生在學習的過程中能夠主動地動手實踐。所以,傳統的教學方式以老師為中心,學生只是被動地去聽課,只會讓學生對C語言表面理解內容,不能有效地提高實踐能力,遠遠達不到課程的學習要求。由于C語言學習有一定難度,傳統的教學方式在各個高校比較普遍,所以長期以這種方式教學,忽略了計算機教學的根本是以學生為主體,忽略了學生的主動學習性、創新思維和探索精神的培養。所以,即使用計算機輔助教學,傳統教學方式仍然問題還很多。
這里我們需要探討如何改進教學方式,增進學生的主體角色。首先,在課堂上可以采用由淺入深的教學方式,通過一些趣味問題引出教學內容,然后利用多媒體(包括圖像、文字、動畫、聲音等方式)演示出來,讓枯燥的技術內容變成生動、直觀的視聽覺信息。其次,教學內容以實例教學引導,將實例內容根據語言的特點、程序設計方法和算法思想進行有機地組織,把知識點循序漸進地貫穿在實例內容中。最后,教師可以講解一些趣味性較強的例題,啟發學生學習的興趣,在課外和上機實踐課布置與例題相似而且貼近學生生活的程序設計作業,讓學生可以通過模仿課堂上學習的例題,迅速地直觀理解和掌握所學的知識,從而加強學生獨立編程的能力。
另外,C語言是一門實踐性很強的課程,實驗環節和實驗內容的設置一定要加強。C語言程序設計實驗不但可以提高學生的動手能力,而且能讓學生更好地理解課堂教學內容。合理的實驗內容安排可以讓學生很快地學以致用,通過在編程過程中體會到成就感,進而提高學生的求知欲和學習興趣。由于上機時間有限,在學生上機前,一定要讓他們準備好上機內容,上機時以調試程序為主,有問題及時向教師和同學請教,以提高效率。另外,目前我們采用的是大班教學,每個班上的學生人數大約有100人左右,在上機的時候學生眾多,而實驗課老師只有一人,在輔導實驗時不可能解決大多數學生的問題。所以,上機時學生可以成立幾個小組,學生有問題可以先在小組內互相幫助解決,比較集中的問題再由老師解決。如果遇到較難的題目時,同學之間應先討論再獨立完成,不要學生一遇到困難,老師就幫他解決問題。對于計算機專業,我們將逐步按專業分成小班制教學,以更有利地提高教學效果,增強學生的專業編程基礎。
實驗內容可有基礎的題目,也有一定技巧、比較靈活的題目,到實驗后期,可布置一些大型的作業(更多地利用課外時間完成)。大型的作業根據學生的能力和興趣成立實踐小組,每個組的作業可能不同,類似課程設計教學方式。通過大型課程作業的實踐,學生可以盡早地面向應用的程序設計實踐環節。在這個過程中學生要主動查閱有關研究資料、編寫模塊程序、調試程序、完成作業,最后寫出報告、成功演示。這樣可鍛煉學生邏輯思維能力、創新思維能力、解決實際問題的能力、團隊合作能力。教師主要從解決問題的思路上指導,培養學生的創新意識、創新精神和創新能力,提高學生的綜合程序設計水平,使其具有初步的系統分析和系統設計能力。
現在學校網絡普及,C語言課程所有資源可放到學校的求索學堂供學生參考。學生可以在網上訪問該課程的相關資源,也可以跟教師在約定的時間內在線交流,這不僅解決了學時的限制,也豐富了教學場所(不僅僅局限在教室),給學生與老師交流創造了更多的空間和時間。同時,針對計算機專業學生,教師還可以指導學生在網上參考與C語言相關的國內高校和國外高校MOOC課程,擴展學生的視野,提高學生的學習能力。
三、小結
對于地方高校,在C語言的教學過程中,除了要充分利用學校現有計算機設備環境外,更需要根據學生的學習基礎情況,制定合理的教學內容,采用先進的教學理念和教學方式去調動學生的學習主動性。同時,在學生的學習過程中及時關注學生教學反饋信息,不斷修正教學內容,改進教學方法,最終提高教學質量。
參考文獻:
[1]鄭文斌,等.面向C語言課程的多角度模塊化教學方法探索[J].教育教學論壇,2013,(19).
[2]王欣如,等.程序設計課程與探究式教學方式[J].計算機科學,2009.
[3]薛非.拋棄C程序設計中的謬誤與惡習[M].北京:清華大學出版社,2012.
[4]廖靈芝,等.“最近發展區”理論在C程序設計教學中的應用[J].計算機教育,2010,(22).
基金項目:2012年湖北省高校省級教研項目(2012232)。endprint