文章編號:1672-5913(2009)08-0040-02
摘要:本文通過認識目前高職C語言教材現(xiàn)狀,提出采用明確教學目標,突出高職認知和教學規(guī)律,正確引導學生對C語言的認識,把握重點攻克難關和精選程序案例,以培養(yǎng)學生的學習興趣等多種教學改革措施,達到提高高職C語言教學效果的目的。
關鍵詞:高職;C語言;教學目標;教學規(guī)律;案例;教學效果
中圖分類號:G642
文獻標識碼:B
隨著計算機技術的發(fā)展與普及,計算機已成為各行各業(yè)最基本的工具之一,而且正迅速地進入人類生活的各個領域。C語言作為目前國內(nèi)廣泛流行的一種計算機程序設計語言,它具有高效、簡潔和接近匯編語言等特點,既適合編寫系統(tǒng)程序,又適合編寫應用程序。C語言自問世以來,以其獨特的魅力吸引了廣大計算機用戶學習和使用。但是由于C語言牽涉到的概念比較復雜,規(guī)則繁多,使用靈活,容易出錯,不少初學者感到學習困難。尤其對高職院校的C語言教學帶來更大挑戰(zhàn),那么如何采用教學改革提高此課程的教學效果呢?筆者經(jīng)過不懈的探索,結合本人多年的教學經(jīng)驗,總結如下體會。
1認識目前高職C語言教材現(xiàn)狀
高等職業(yè)教育(簡稱高職教育)是高等教育的重要組成部分,是以培養(yǎng)具有一定理論知識和較強實踐能力,面向基層、面向生產(chǎn)、面向服務和管理第一線職業(yè)崗位的實用型、技能型專門人才為目的的職業(yè)教育,是職業(yè)教育的高等階段,兼具高等教育和職業(yè)教育的雙重屬性。
高職的培養(yǎng)目標,教學模式、教學內(nèi)容有其鮮明特色,這就要求高職《C語言程序設計》教材也應當獨具特點,不能照搬普通高校教材,更不能借用中職教材?,F(xiàn)有教材很多是介紹語句的格式和功能,不適合高職學生。
筆者認為根據(jù)教學目的不同應對C語言的介紹分為兩種方向,一是作為一種程序設計語言,二是用C語言來初學程序設計。這兩種目的應致使教材的選用有很大的差別。前者是把C作為一種程序設計語言,僅需介紹C語言的格式和功能,重點注意一些不同點就可以了,是為已具備程序設計基礎的設計師們介紹新語言的做法,而對剛接觸程序設計的高職學生來說就不能用這種方法了。而后者是突出程序設計思想,是一種邏輯思維,是必須有一過程才能培養(yǎng)起來的。目前大多數(shù)現(xiàn)有教材都屬于第一種類型,正常的大學本科學生學習都難以適應,更別說高職學生了。因此必須調(diào)整教材結構和內(nèi)容來應對現(xiàn)在高職教育。
2采用多種教學改革措施,提高教學效果
2.1明確教學目標
C語言是專業(yè)基礎課,它的后續(xù)課程是“數(shù)據(jù)結構”,事實上計算機課程教學計劃安排的初衷是學完“數(shù)據(jù)結構”后,學生應能用程序設計語言寫出算法程序并上機通過,但是到學習“數(shù)據(jù)結構”時很多學生感覺學得容易就是不能寫出相應算法程序。通常說“程序=算法+數(shù)據(jù)結構+計算機程序語言”,那么“數(shù)據(jù)結構”和算法都學得比較好,程序為什么還是寫不出來呢?問題就是C語言沒學好,可以分析出學生對算法的理解沒有問題,只是寫不出來。所以C語言的重點是培養(yǎng)學生對程序的表達能力,適當降低設計能力的要求。
2.2突出高職認知和教學規(guī)律
高職學生學習的主動性、自覺性不足,學習習慣不好。許多學生的學習不具有計劃性,不考慮各學科之間的關聯(lián)性,基本上是被動上課,課后也以完成作業(yè)為主,基本上不涉及預習、學習、復習的簡單而基本的過程。由于學習的主動和探索性不夠,學生幾乎不提問題,對不懂的學習內(nèi)容也難以表達哪里不懂,為什么不懂。
同時,多數(shù)高職生源的文化素質(zhì)較低,部分學生學習積極性較差,有的學生到課堂聽課,一是受學校紀律的約束,二是應付考試,沒有去接受業(yè)務知識的欲望,學習紀律松弛。
因此要培養(yǎng)高職學生C語言的學習能力,突出高職認知和教學規(guī)律。首先是引導學生多閱讀C語言程序,然后是學會調(diào)試C語言程序,最后才是編寫C語言程序。在實例、習題編排時,應首先是模擬運行寫結果題,然后是指出錯誤題,最后才是語句表達、程序填空、編程題,指導學生多看、多寫、多上機。
2.3正確引導學生對C語言的認識
學生對課程的理解存在兩個誤區(qū):一是程序設計對今后不從事軟件開發(fā)工作的學生來講沒有用處;二是在當今的軟件領域,C語言已經(jīng)無用武之地。針對這兩個錯誤的看法,教師應從三個方面有意識地引導學生正確對待C程序設計。
(1) 強調(diào)算法。教師通過講解一些常用的、經(jīng)典的算法,使學生對學習C程序設計有更高層次的認識,不能讓學生僅僅為了一門語言的學習而學習,讓學生認識到只要有了算法,可能用不同的計算機語言來描述。
(2) 理論與實踐相結合。教師通常根據(jù)每學期的選課學生的專業(yè)性質(zhì),收集一些與其專業(yè)結合緊密的程序作為范例,讓學生能夠認識到C程序設計在解決本專業(yè)中的問題所發(fā)揮的作用。
(3) 幫助學生克服心理障礙。對于一些初學者,特別是基礎較差又沒有學過計算機語言的高職生來說,剛接觸C程序設計這門課程,會感到一些茫然,加上以往高年級同學給他們帶來的是“C語言如何難學”的信息,學不好它也成了正?,F(xiàn)象。針對這一問題,在機房上第一次實驗課的時候,教師可以通過一些簡單例題幫助學生消除心理障礙。如簡單的輸出語句。
void main ()
{
printf(“This is a C program!”);
}
通過類比,讓學生在短短幾分鐘內(nèi)可以通過C語言在屏幕上顯示自己想要的結果,使學生有成就感,消除學習C語言難的心理障礙。
2.4把握重點,攻克難關
一個學生的編程水平不是C語言一門課程能培養(yǎng)出來的,作為入門語言的C語言應重點培養(yǎng)學生的程序設計C語言的表達能力。學習C語言,算法分析與設計是核心。一般情況下算法分析是通過N-S流程圖表示出來,因此建議將流程N-S流程圖的繪制方法分散到每一章中,而不是集中在前面一章介紹,便于學生充分掌握。
2.5精選程序案例,培養(yǎng)學生的學習興趣
為了提高C語言的學習興趣,增強課程實用性,在整合課程內(nèi)容的基礎上,改變過去先給出定義和規(guī)則的講授辦法,而是從具體問題入手,努力把枯燥的“語言”講得生動、活潑。以程序案例驅(qū)動,將程序案例驅(qū)動,將語法知識點同實際編程結合。講授時一定要避免糾纏于語法細節(jié),應始終明確一點:計算機語言是用來描述需要解決的問題和問題的解決方法的,任何語法規(guī)定都是為這個目的服務的。因此,按照“提出問題—分析問題—用C語言描述問題與解決問題的方法—分析程序中的語法現(xiàn)象”的思路來講授,有利于培養(yǎng)學生分析問題與解決問題的能力,也使得學生對語法的理解更為容易。
舉一案例如下:
問題:編寫一個函數(shù),在數(shù)組中下標為i的元素前插入一個新元素。
分析:1. 假設整型數(shù)V,最多可存放n個元素,現(xiàn)前n-1個元素有值,在i位置前如果能插入一個新元素b,則插入前后示意圖如下:
2. 初始條件:v,i,b
3. 執(zhí)行條件:0<=i<=n-1
用以下N—S流程圖描述,解決問題:
根據(jù)N—S流程圖用函數(shù)實現(xiàn)算法如下:
int insert( int v[],int n,int i,int b)
{
int j;
if (i<0||i>n-1)
{
printf(“The value of i is out of rage ! ”);
return 0; /* 插入失敗 */
}
for (j=n-1;j>i;j--)
v[j]=v[j-1]; /* 后移 */
v[i]=b; /* 插入操作 */
return 1; /* 插入成功 */
}
總之,C語言是一種應用廣泛的編程語言,其編程思想和編程方法在很多行業(yè)都適用。對于高職工科學生來說,學好C語言既是專業(yè)素質(zhì)的需要,也是未來工作的需要;對于教師來說,如何因材施教,因人而異,充分激發(fā)學生的內(nèi)在積極性與潛能教學模式,講授好計算機語言也成為迫在眉睫的重任。隨著知識的不斷更新,教學模式、教學方法的進一步完善還是任重而道遠的。
參考文獻:
[1] 包振宇,孫干. 數(shù)據(jù)結構[M]. 北京:中國鐵道出版社,2005.