夏百花,鄭 嵐,徐麗萍
(安徽三聯(lián)學(xué)院,安徽 合肥 230601)
《C語言程序設(shè)計》教學(xué)方法探討
夏百花,鄭 嵐,徐麗萍
(安徽三聯(lián)學(xué)院,安徽 合肥 230601)
針對學(xué)生在C語言教學(xué)過程中存在的重理論、輕實踐的現(xiàn)象,可以確定讓學(xué)生更好地理解和掌握學(xué)習(xí)方法是教學(xué)中的重中之重.本文主要從改進(jìn)教學(xué)方法、精心設(shè)計實驗內(nèi)容和加大習(xí)題量三個方面進(jìn)行分析和總結(jié),以促進(jìn)后續(xù)教學(xué).
C語言;教學(xué)方法;實踐
《C語言程序設(shè)計》作為本科理工類院校開設(shè)的一門高級程序設(shè)計語言,有其自身的特點:應(yīng)用廣泛、使用靈活、表達(dá)能力強、可移植性好、目標(biāo)代碼執(zhí)行效率高等.它既具有高級語言的優(yōu)點,同時又兼有低級語言的特點,因此《C語言程序設(shè)計》課程在本科教學(xué)中占有舉足輕重的地位.
《C語言程序設(shè)計》是計算機、電子等相關(guān)專業(yè)的一門專業(yè)基礎(chǔ)核心課程.該課程集應(yīng)用性和實踐性于一身,其開設(shè)目的在于使學(xué)生能夠掌握程序設(shè)計的基本方法和基本思路.該課程涉及的主要內(nèi)容包括C語言的基本概念、基本語法以及程序設(shè)計的三種基本方法即順序、選擇和循環(huán)等.本文主要結(jié)合自己的教學(xué)經(jīng)驗,闡述了在教學(xué)過程中應(yīng)該注意的幾個方面.
C語言一般在低年級開設(shè),而學(xué)生對程序的概念不太理解,加上有些學(xué)生上課精力不夠集中,跟不上教師思路,久而久之學(xué)生就會失去學(xué)習(xí)的興趣.因此在教學(xué)過程中,要加強師生交流,充分發(fā)揮教師的主觀能動性,調(diào)動學(xué)生的學(xué)習(xí)積極性,使學(xué)生能夠獨立思考,培養(yǎng)學(xué)生分析問題和解決問題的能力.
1.1 反復(fù)強調(diào)概念
由于C語言牽扯概念較多,規(guī)則也較多,因此在教學(xué)過程中,要對概念反復(fù)強調(diào).比如在講到自增(++)和自減(--)運算符時,前置運算(x++)和后置運算(++x)所得到的結(jié)果完全不同,學(xué)生很容易混淆.
1.2 化抽象為具體
在C語言中,有較多抽象化的問題,比如數(shù)組、指針等.對于這類問題,學(xué)生理解起來較為困難,因此,在實際教學(xué)過程中,可以將這類較為抽象化的問題具體化.
舉一個具體的例子來說.
上面程序完成的功能是將一個整型數(shù)組中的10個元素逆序輸出.在教學(xué)過程中,我們可以將程序說明語句部分定義中含有10個元素的整型數(shù)組int a[10]理解為整體,而程序執(zhí)行語句部分中所使用的任意一個元素a[i]理解成這個整體中的某個成員.也就是說,在程序中,要想使用成員必須首先指定這個成員屬于哪個整體.這類似于要想找到某個學(xué)生,必須要先知道要找的這個學(xué)生屬于哪個班級一樣.
1.3 精講三大算法
在程序設(shè)計的三大基本方法中,循環(huán)無疑是學(xué)生最難理解和掌握的設(shè)計方法.歸根結(jié)底其原因在于學(xué)生不會將遇到的問題向循環(huán)語句執(zhí)行過程靠攏,因此遇到問題就會束手無策.例如,在C語言中能夠影響循環(huán)執(zhí)行過程的break和continue語句.
請讀者認(rèn)真分析下面這個程序:
若將程序的第8行中的break替代為continue,結(jié)果又會怎樣?
通過上面這個程序,可以看出:雖然兩者在程序中所起到的作用完全不同,但它們的共同特點是僅僅影響內(nèi)層循環(huán),而與外層循環(huán)無關(guān).
1.4 采取多樣化教學(xué)手段
教師上課時如果僅僅采用傳統(tǒng)的黑板教學(xué),很難讓學(xué)生對于程序運行的過程、結(jié)果、函數(shù)的調(diào)用、變量值的變化等方面認(rèn)識清楚.而采用多媒體的教學(xué)方式,教師就能夠在課堂利用Turbo C或者Visual C++等編程軟件進(jìn)行一步步操作演示,這樣學(xué)生一看就清楚明了了.
由于C語言這門課程的實踐性和操作性較強,因此學(xué)生在學(xué)習(xí)過程中就需要不斷練習(xí)才能更好地掌握.同時,只有自己動手編寫程序并且經(jīng)調(diào)試運行出結(jié)果時,學(xué)生才會有成就感.但是,由于教材上面的題目較為簡單,大部分學(xué)生在利用C語言來解決實際問題時,仍然會感覺到束手無策.因此,為了培養(yǎng)學(xué)生解決實際問題的能力,教師在安排實驗內(nèi)容時,可以將某個大題目作為長期任務(wù),再按照不同的功能模塊將其分解形成一個個短期任務(wù).以“信息管理系統(tǒng)”為例,可以把整個系統(tǒng)作為一個長期任務(wù),然后將這個系統(tǒng)分成若干個小模塊作為短期任務(wù),比如輸入輸出信息、添加信息、修改信息等模塊.每次實驗課時,可以要求學(xué)生完成一個或幾個小模塊.
為了更好地了解學(xué)生的具體的學(xué)習(xí)情況,教師根據(jù)教學(xué)計劃和要求,在課后可適當(dāng)布置一些作業(yè),在每章結(jié)束時進(jìn)行集中講解.同時鼓勵學(xué)生對于同一問題提出不同解法,以培養(yǎng)學(xué)生的創(chuàng)新能力.
任何一門課程的教學(xué),都包含了兩個方面——教與學(xué).我們只有很好的組織好這兩個方面才能從根本上提升教學(xué)效果,讓學(xué)生學(xué)到更多更好更有用的知識,避免理論和實踐脫鉤.本文主要結(jié)合本人的教學(xué)實踐,從教師和學(xué)生的角度探討了一些切實可行的C語言教學(xué)方法,供讀者參考.
〔1〕周強.C語言教學(xué)方法探討[J].滁州學(xué)院學(xué)報,2004,6(4).
〔2〕徐大華.程序設(shè)計語言教學(xué)方法探討[J].高等理科教育,2007,71(1);36-38.
〔3〕曾正軍.在教學(xué)中對學(xué)生C語言編程能力的培養(yǎng)[J].南昌高專學(xué)報,2004(1).
TP312;G642
A
1673-260X(2014)02-0258-02
本文基于安徽三聯(lián)學(xué)院校級項目(2013Z017)
赤峰學(xué)院學(xué)報·自然科學(xué)版2014年4期