摘 要 面對C語言對計算機應用領域的日益增大,在計算機C語言教學方面我們要進行怎樣的教學實踐和改革,如何教使學生更能夠接受,如何改才是比較適合新一代大學生的;對于不同的授課對象,我們是不是要采取不同的講課方法。文章針對C語言在各專業學生中的教學略施薄見,淺談了高校教師應如何教C語言,應對不同專業的學生應如何進行教學改革和實踐。
關鍵詞 C語言 程序設計 教學實踐 改革 教學方法
中圖分類號:G420 文獻標識碼:A
1 C語言程序設計在當今教學中的現狀
當前高校在計算機程序設計C語言教學方面存在如下的問題:(1)非計算機專業的學生普遍感覺難學,特別是數學底子較為差的學生沒有學習興趣,不愿學習;(2)教師普遍反映難教,課堂上認真學習的人較少,計算機二級考試當年通過率很低;(3)隨著可視化編程工具的增多,部分學校的C語言程序設計教學課時都已經大幅度地減少理論內容,教師在授課時若要完成相應的教學計劃,就不能保證教學進度和質量,因而教師對知識的延伸講解很少;(4)C語言程序設計集抽象性、邏輯性、實踐性于一身,在教學過程中解決好這三項就能提高學生的學習興趣,減輕學習壓力。
2 如何開展C程序語言教學
2.1 在教學中培養學生分析與解決問題的能力
在案例的選擇上,我們通常采用生活中的具有趣味性、實用性的諸如學生成績管理系統、圖書管理系統等相關模塊進行教學。用例通俗易懂,既能吸引學生,又易形成互動,活躍課堂,提高課堂效率的案例始終貫穿整個教學過程,注重從直觀到抽象,從特殊到一般漸進地學習,從而減輕了學習負擔,提高了學習熱情。通過對案例實現過程的分析,引導、啟發學生逐步理解與掌握分析解決問題的方法與步驟,使整個學習過程下來,既能輕松掌握語法知識,又能在分析與解決問題上有所收獲。最終通過各案例相關模塊實現融會貫通,加深對程序設計的結構化、模塊化設計思想體會,真正達到學習C語言程序設計的目的。
2.2 培養學生的整體思維,建立學生的編程意識
筆者在幾年的教學實踐中總結出,很多學生學這門課始終都沒有較強的編程意識,通常到課程結束,怎么編寫程序,他們都無從下手,沒有自信。如果根據一般課程講解,按照課程內容中的數據類型、程序控制語句、指針、數組、函數及機構體等這樣一個順序對內容進行講課,通篇講解完畢后,學生感覺到內容不能形成一個整體,而只是一堆零散的知識點,因此我們要改變傳統的講課模式,要讓學生建立編程意識,從一個完整的程序出發,在程序中講解語法和語句的作用,培養學生對個別知識點的掌握和整體程序結合起來,從整體出發講解再涉及個體。
2.3 過程教學中巧妙講解課本知識點在實例的應用
在C語言課本中都會有很多對應知識點的例子,在教學中如何講解課本中的實例和實例中相應知識點的作用、關系至關重要,有效的講解和演示實例對學生鞏固知識點非常重要,如果就書論書的照本宣讀,學生的邏輯思維得不到很好的建立和鍛煉。因此,在一節的知識點講解完后,應對實例,我們要很好的應用C語言上機練習的平臺,目前應用比較廣泛的是turbo c3.0或者Microsoft Visual C++ 6.0,利用多媒體平臺,在理論教學中對實例進行現場過程演示和編程,演示過程中激發學生的編程思維,同時加深學生對知識點的掌握。
2.4 注重理論課與實踐課相互融合
C程序語言是一門理論與實踐相結合的課,只有理論教學,不能解決實際問題,必須上機實踐。高校本科教學中一般理論課和實踐課課時比例為3:2,在講理論課后相應的給學生布置實踐學習任務很重要,學生在實踐練習和思考中得到編程的快樂,同時在運行結果正確的時候會有一種成就感,能更好的對知識點理解和應用,在教學中要先講課后實踐,而且實踐課要緊隨其后,如果間隔時間太長學生早已把課上聽到的內容忘記,所以要及時上機實踐。在上機練習中必要的指導和演示也很重要,在學生實踐練習時穿插對本節理論知識點的總結和指導,做到在過程教學中完成教學結果的考察。多實踐是學習掌握C語言的必經之路,理論-實踐-理論。最后強調一點課程考核采用機試與筆試相結合的方法,只有這樣才能對學生C語言的掌握程度作全面的反饋。
3 C語言教學的改革
在C語言課程教學過程中,筆者認為一方面要能夠把握好授課內容,同時也要對傳統教學方法進行改革,增加學生的實踐能力,以此提高教學質量。以下是筆者在幾年的C語言課程教學中采用一些新的方法。
3.1 強調知識總結的教學方法
以崔永君編寫的《C語言程序設計》西安電子科技大學出版社為例,內容中有大量的定義、概念、語法和語句,它們像數學的知識點一樣使用靈活、記憶難度大,特別是使用起來容易出錯,很難吃透。如果能夠引導學生在學習過程中時時進行歸納總結,提高學生的學習效率。在C語言學習中發現,有一些定義、概念、語法、函數等有許多相似的地方,例如:puts( )與gets()函數、printf和scanf函數等、基本數據類型的學習等,法規則是一樣的,對它們進行歸納總結之后,學生只要記住其中一個函數或知識點,另一個自然就會使用了。
3.2 應用實例練習的實踐教學法
強化實踐,這門課主張程序設計是高強度的腦力勞動,不是聽會的,也不是看會的,而是練會的。引導學生在解題編程的實踐中探索其中帶規律性的認識。將感性認識升華到理性高度。
教學重點要放在實例演示講解和過程在解題的思路上,通過大量的實際案例和書本提供的實例讓學生學會怎樣設計一個基本的算法,利用語句和規則構造一個簡單程序。筆者在教學過程中的初始階段,讓學生理清程序的需求,進而編寫程序設計流程圖,接著根據流程圖編寫簡單的程序,舉一反三,通過程序引導學生逐步深入實際應用能力的培養。在實驗題目設置上,根據課時安排以及要掌握的基本知識,根據各個層次的學生需要,設置相應不同難度實踐課題。在本課程結束后,安排一次綜合的社會應用的虛擬項目實例的制作,培養學生綜合應用能力和團隊協作能力。
3.3 突出虛擬案例解析的教學方法
在教學中給學生提供一些C語言設計的項目案例,增加學生的學習興趣和知識點的實際應用能力,筆者引用遞歸算法的經典例子:漢諾塔算法, 一個柱子1上n個盤子套著,大的在下,借用柱子2,全部轉移到柱子3上,然后把此思想引用到實際工業生產中的超市打折的程序設計的實現,對程序的過程演示,使學生系統地了解C語言的功能和拓展他們的知識面。