趙玉玲
(天津天獅學院 天津 301700)
課程導(dǎo)入與項目驅(qū)動在C語言教學中的應(yīng)用*
趙玉玲
(天津天獅學院 天津 301700)
針對目前C語言課程教學中存在的“教師難教,學生難學”的問題,文章提出了在《C語言程序設(shè)計》課程教學中進行課程導(dǎo)入設(shè)計、項目驅(qū)動式教學等教學模式,旨在提高教學質(zhì)量,激發(fā)學生的學習興趣,加深學生對理論知識的理解和掌握,培養(yǎng)分析和解決具體問題的能力,進而培養(yǎng)學生分析問題的完備性以及統(tǒng)籌全局、協(xié)調(diào)關(guān)系的基本素質(zhì)。
C語言教學;課程導(dǎo)入;項目驅(qū)動式;軟件工程
C語言程序設(shè)計是一門過程性程序設(shè)計語言,它的發(fā)展貫穿了計算機發(fā)展的歷程,它蘊含了程序設(shè)計的基本思想,囊括了程序設(shè)計的基本概念,所以它是理工科高等院校的一門基礎(chǔ)課程。另外,在計算機教育方面,C語言是為數(shù)不多的與國外保持內(nèi)容同步的課程之一,因此,它在相關(guān)專業(yè)教學中的地位和重要性不言而喻。
傳統(tǒng)的C語言程序設(shè)計的教學,從教學形式上看,通常是多媒體教室講課+學生上機訓(xùn)練。從教學內(nèi)容上來看一般都是“說明書”式的教學,即教師進行教學時往往是逐一地講解相應(yīng)的知識點,然后加以舉例說明,最后學生進行針對性練習。這種以概念、舉例、練習三部曲的方式來按部就班地組織教學,由于受到教學課時等因素的影響,在講授程序設(shè)計思想、方法等重要概念和應(yīng)用時,已沒有足夠的教學時間讓學生去做一些具體的綜合性練習。這種教學方式的缺點是:一般都脫離了實際應(yīng)用,純粹的過程性程序設(shè)計使學生在學習和上機時,將學習重點放在C語言的語法上,不知道所學習的東西有什么用,不能很好地把握知識的重點,也不能很好地訓(xùn)練在實際工作中所需要的技能。由于不能很好地調(diào)動學生的積極性,因此普遍存在著“教師難教,學生難學”的狀況。
針對以上問題,我們認識到在C語言課程的學習上,首先要轉(zhuǎn)變一種觀念,使學生學習C語言的主要目的不再局限于單純地了解和掌握基本語法規(guī)范,而是把學習的重心轉(zhuǎn)移到培養(yǎng)學生運用C語言解決實際問題的編程能力,把C語言作為一種實踐工具,介紹程序設(shè)計的基本思想和方法,培養(yǎng)學生無論以后在學習、工作中使用什么語言編程,都能靈活應(yīng)用這些思想和方法的能力。
在實際教學中,將課程導(dǎo)入設(shè)計和項目驅(qū)動教學引入C語言教學中,取得了一定的效果。
(一)課程導(dǎo)入在C語言教學中的應(yīng)用
課程導(dǎo)入的設(shè)計 課堂導(dǎo)入是課堂教學中的第一個環(huán)節(jié),是指課堂教學伊始的3~5分鐘內(nèi)教師和學生所有教學活動的統(tǒng)稱。這一環(huán)節(jié)時間很短,但作用重大,如果設(shè)計得當,可以快速集中學生的注意力,激起學生的求知欲,為后續(xù)教學的順利開展帶來極大的便利。所以,課堂導(dǎo)入是課堂教學中一個不可忽視的重要環(huán)節(jié)。下面通過對課堂導(dǎo)入環(huán)節(jié)的分析,結(jié)合教學實例,提出這一環(huán)節(jié)的一些設(shè)計原則。
課程導(dǎo)入的教學示范 課程導(dǎo)入需要良好的教學案例。下面以C語言中的循環(huán)結(jié)構(gòu)程序設(shè)計部分的課程導(dǎo)入為例加以介紹。
1.強化理解概念。循環(huán)的相關(guān)概念如循環(huán)控制條件、循環(huán)變量、循環(huán)體等是設(shè)計循環(huán)結(jié)構(gòu)程序的關(guān)鍵因素,在本部分教學之初,必須透徹理解。因此,設(shè)計了“植樹”案例。具體描述為:學校要求每人種植50棵樹,種樹的具體過程描述如圖1所示。通過圖1,可以對循環(huán)基本概念進行如下定義:(1)循環(huán)體:重復(fù)執(zhí)行的動作,如圖1中的“挖坑、澆水”;(2)循環(huán)控制條件:重復(fù)執(zhí)行循環(huán)體的條件,如圖1中的“總棵數(shù)<=50”;(3)循環(huán)控制變量:決定循環(huán)次數(shù)的變量,如圖1中的“總棵數(shù)”。這里需要說明的是,上面三個概念是循環(huán)程序設(shè)計的三要素。

圖1 種樹過程的描述圖
2.歸納、總結(jié),強調(diào)功能。現(xiàn)實中許多問題的求解都可以歸納為計算機能重復(fù)執(zhí)行的操作。例如,數(shù)值計算中的數(shù)列問題,數(shù)值計算中的對象遍歷(查找、排序)等問題。重復(fù)工作是計算機特別擅長的工作之一,也是計算機解決問題時遇到最多的一類問題。這部分主要強調(diào)循環(huán)結(jié)構(gòu)在程序設(shè)計中的重要作用。
3.循循善誘,引出新課環(huán)節(jié)。介紹C語言提供的三種循環(huán)控制語句:(1)while語句;(2)do-while語句;(3)for語句。這部分主要使學生認識到編制循環(huán)結(jié)構(gòu)的程序所需要掌握的工具。
4.分析簡單的數(shù)列求和實例,練習編制循環(huán)程序引入程序設(shè)計實例求“1+2+3+…+100累加和”。通過提問、啟發(fā)等多種方式共同設(shè)計算法,如下所示:
規(guī)律:每一步都是兩個數(shù)相加,加數(shù)總是比上一步加數(shù)增加1后參與本次加法運算,被加數(shù)總是上一步加法運算的和。可以考慮用一個變量i存放加數(shù),一個變量sum存放上一步的和。那么每一步都可以寫成:sum+i
算法1:直接寫出算式(用變量sum存放和)
sum=1+2+3+4+5+…+100
算法2:
步驟1:考慮1+2+3+…+100可以改寫為:(((1+2)+3)+…+ 100),
sum=0;
sum=sum+1;
sum=sum+2;
…
sum=sum+100;
步驟2:根據(jù)規(guī)律上述式子可以改成:
sum=sum+i,i=i+1
…
步驟3:完整算法:sum=0,i=1;
判斷如果i小于或等于100,執(zhí)行步驟3,否則算法結(jié)束;
sum=sum+i;i=i+1;返回步驟2
(二)在C語言教學中實施項目驅(qū)動教學法
提高教學質(zhì)量和教學效果,不但要通過良好課程導(dǎo)入的設(shè)計使學生很容易地融入新的教學內(nèi)容中,還要在具體知識的學習上吸引學生,提高學生的學習興趣。“項目驅(qū)動”教學法以提高學生的學習興趣,重點培養(yǎng)學生分析問題、解決問題的能力為目的,是培養(yǎng)學生自主學習能力的一種新的教學法。
所謂項目驅(qū)動教學法,是師生通過共同實施一個完整的“項目”工作而進行的教學活動,它既是一種課程模式,又是一種教學方法。可以看出,項目教學都是實踐導(dǎo)向的和任務(wù)驅(qū)動式的教學。
C語言程序設(shè)計作為計算機類專業(yè)的基礎(chǔ)課程,若擺脫傳統(tǒng)的“說明書”式的教學模式,采用“項目驅(qū)動”教學模式,將學生的關(guān)注點由繁復(fù)的C語言語法轉(zhuǎn)移到實踐性較強的項目的設(shè)計與開發(fā)上來,將會極大地提高教學效果。
幫助學生樹立軟件工程的基本思想 在計算機行業(yè)中,軟件是通過人們的智力活動把知識與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品。軟件的設(shè)計已經(jīng)用工程的觀念來進行管理,軟件設(shè)計工作被當作一項系統(tǒng)工程來對待。C語言作為大多數(shù)工科院校學生接觸的第一門程序設(shè)計語言,在學習之初,首先應(yīng)該讓學生簡單了解什么是軟件工程思想。同時,當前的程序設(shè)計教學也必須以切合將來軟件工程開發(fā)的實際需要為第一目標,使學生在學習程序設(shè)計的初級階段就樹立正確的軟件工程觀點。這樣做,不僅可以為學生將來從事計算機應(yīng)用設(shè)計打下良好的基礎(chǔ),而且有利于培養(yǎng)學生分析問題的完備性以及統(tǒng)籌全局、協(xié)調(diào)關(guān)系等基本素質(zhì)。
軟件工程思想 經(jīng)典的軟件工程思想將軟件開發(fā)分為3個階段:軟件定義、軟件開發(fā)和軟件維護。軟件定義可進一步劃分為問題定義、可行性分析和需求分析。在這一階段,通過對應(yīng)用問題及其環(huán)境的理解與分析,建立系統(tǒng)模型,將用戶的需求精確化、完全化。軟件開發(fā)階段可進而劃分為總體設(shè)計、詳細設(shè)計、編碼和測試。總體設(shè)計階段的主要任務(wù)是如何得到一個能夠?qū)崿F(xiàn)用戶需求的理想的系統(tǒng)結(jié)構(gòu),詳細設(shè)計的任務(wù)是進行系統(tǒng)所需要的數(shù)據(jù)結(jié)構(gòu)設(shè)計或者數(shù)據(jù)庫的物理設(shè)計以及模塊邏輯開發(fā)。編碼即軟件系統(tǒng)的實現(xiàn)階段,在現(xiàn)代軟件工程中,編碼階段所占的比重正在逐漸地縮小。軟件測試是軟件工程過程的一個重要階段,其主要任務(wù)是對軟件分析、設(shè)計和編碼各階段的產(chǎn)品進行檢查,保證軟件開發(fā)產(chǎn)品的正確性、完全性和一致性,檢測并修正軟件中出現(xiàn)的錯誤。軟件維護是在軟件產(chǎn)品交付給用戶之后進行的修改工作,維護工作的好壞直接影響到用戶的滿意程度,關(guān)系到開發(fā)者的信譽。
以軟件工程思想指導(dǎo)一個完整的軟件開發(fā)項目 在C語言教學實施過程中,配合“項目拓展驅(qū)動教學法”,整個課程教學圍繞一個“工程項目”進行,以項目的構(gòu)建過程為線索安排教學步驟,教學過程由項目任務(wù)來驅(qū)動;同時,以軟件工程思想指導(dǎo)整個軟件項目的建設(shè)。下面以“通訊錄管理系統(tǒng)”的設(shè)計與實現(xiàn)為例,簡單加以介紹。首先,將整個課程學習分為兩個階段。第一階段為單項的編程練習階段。該階段重點是掌握C語言的基本語句、數(shù)據(jù)類型與程序結(jié)構(gòu)等;第二階段是實訓(xùn)項目編程實踐階段。主要進行數(shù)組、函數(shù)、結(jié)構(gòu)、指針和文件內(nèi)容教學,同時,逐步組建“通訊錄管理系統(tǒng)”,并且添加文本菜單,整合擴展記錄添加、排序、查詢、統(tǒng)計和記錄瀏覽等功能并編寫程序文檔,形成完完整整的應(yīng)用軟件。具體設(shè)計參見表1。

表1 通訊錄管理系統(tǒng)項目驅(qū)動教學表
通過這種逐步拓展的實訓(xùn)項目和設(shè)計,不但可以將C語言的知識點都融化到一個個實訓(xùn)項目的程序編寫中,而且可以熟悉一個軟件項目的簡單設(shè)計過程。在學習過程中,學生參與整個完整項目的分析、設(shè)計、實現(xiàn)全過程,在課堂教學中將理論與實踐教學有機地結(jié)合起來。這種開放性、創(chuàng)新性的教育思想和模式可使學生從被動接受者變成主動參與者,促進學生應(yīng)用能力的提高。
良好的課程導(dǎo)入設(shè)計可以充分調(diào)動學生的求知欲,為后續(xù)教學環(huán)節(jié)的順利開展帶來極大的便利;而將軟件工程思想結(jié)合項目驅(qū)動教學法引入C語言的教學中,從學生接觸編程語言開始,就培養(yǎng)軟件工程思想,有助于學生從整體上體會軟件開發(fā)的全過程,充分調(diào)動學生的學習興趣。
[1]肖榮,黃宏新,車云霞.論課堂導(dǎo)入及其設(shè)計[J].天津市教科院學報,2001,(4):38-41.
[2]楊玫,劉瑜,孔波.引入軟件工程思想的C語言案例教學法[J].科技信息,2010,(20).
[3]李愛軍.“項目驅(qū)動”教學法在C語言教學中的應(yīng)用[J].辦公自動化雜志,2010,(18).
G712
A
1672-5727(2012)04-0095-02
2009年度天津市教委高等學校人文社會科學研究項目《基于工作過程的計算機編程課程立體化教學模式研究》(項目編號:20092511)
趙玉玲(1977—),女,天津市人,碩士,天津天獅學院講師,研究方向為計算機應(yīng)用。