蔣小鶯
摘要:針對C語言教學(xué)中存在的問題與現(xiàn)狀,介紹如何通過改進(jìn)教學(xué)方式方法,激發(fā)學(xué)生學(xué)習(xí)興趣,取得較好的教學(xué)效果的教學(xué)實(shí)踐。
關(guān)鍵詞:C語言; 程序設(shè)計(jì);教學(xué)方法; 教學(xué)效果;教學(xué)實(shí)踐
中圖分類號:TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:1009-3044(2014)07-1467-02
1 概述
C語言功能豐富、表達(dá)能力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好,兼有高級語言和低級語言的特點(diǎn),是高校程序設(shè)計(jì)語言課程中的典型代表,C語言課程的教學(xué)目的是通過理論教學(xué)和上機(jī)實(shí)踐,使學(xué)生了解程序設(shè)計(jì)語言的基本概念,初步掌握解決簡單問題的編程思路和C語言的程序設(shè)計(jì)方法,并通過上機(jī)實(shí)踐鍛煉學(xué)生的程序調(diào)試能力,為后續(xù)課程的學(xué)習(xí)和應(yīng)用奠定程序設(shè)計(jì)基礎(chǔ)。因?yàn)镃語言是計(jì)算機(jī)專業(yè)大一學(xué)生最先接觸的程序設(shè)計(jì)語言課程,所以一個(gè)好的開始對激發(fā)學(xué)生學(xué)習(xí)專業(yè)的興趣是必須的。
2 C語言教學(xué)中存在的問題與現(xiàn)狀
在多年教學(xué)實(shí)踐中發(fā)現(xiàn)學(xué)生普遍認(rèn)為課程難度較大,特別是到第二學(xué)期學(xué)到函數(shù)、指針、文件,有些學(xué)生感覺越來越困難,從預(yù)習(xí)作業(yè)不能完成到實(shí)驗(yàn)課三道題只能完成一題,越來越失去學(xué)習(xí)的信心。還有些學(xué)生對學(xué)習(xí)C語言很茫然,不知學(xué)了有什么用?,F(xiàn)在的學(xué)生對上網(wǎng)、淘寶、微信、手游、網(wǎng)游等感興趣,對學(xué)習(xí)C語言覺得和現(xiàn)實(shí)脫節(jié),課本的例子和完成的作業(yè)實(shí)驗(yàn)基本是一些簡單的數(shù)值計(jì)算,所以認(rèn)為C語言學(xué)了沒用,也缺乏了學(xué)習(xí)動(dòng)力。再加上采取的教學(xué)方法比較陳舊、單一,往往采用傳統(tǒng)的教師講授的填鴨式教學(xué),學(xué)生學(xué)習(xí)缺乏主動(dòng)性。教學(xué)過程以章節(jié)為綱,先講理論知識(shí)點(diǎn),在課堂上花了很多時(shí)間講述語法、格式和注意的問題。這些書上已經(jīng)很詳細(xì)地講述了。所舉的例題也都是小的數(shù)值計(jì)算題,結(jié)果學(xué)生到課程設(shè)計(jì)時(shí)總感覺無從下手,設(shè)計(jì)出來的程序有一些必須的需求都沒考慮到。比如做的管理系統(tǒng)出現(xiàn)數(shù)據(jù)不保存,每次運(yùn)行輸入數(shù)據(jù),或者沒從文件中讀出原來的數(shù)據(jù)。
3 改進(jìn)C語言教學(xué)的方式方法
3.1 以小游戲激發(fā)學(xué)生的學(xué)習(xí)興趣
以前課堂舉例都以數(shù)值計(jì)算為主,如求5!,輸出100~200之間所有的素?cái)?shù),學(xué)生覺得較為枯燥,沒什么意義和樂趣,所以可以投其所好,舉一些小游戲的例子讓學(xué)生編寫并嘗試。如可以用猜數(shù)、簡易貪吃蛇等讓學(xué)生覺得C語言學(xué)習(xí)和實(shí)踐很有樂趣和挑戰(zhàn),這樣就激發(fā)了學(xué)生學(xué)習(xí)的興趣。
3.2 以項(xiàng)目驅(qū)動(dòng)法培養(yǎng)學(xué)生的軟件開發(fā)的能力
項(xiàng)目驅(qū)動(dòng)教學(xué)法鼓勵(lì)學(xué)生通過項(xiàng)目中涉及到的課程內(nèi)容主動(dòng)地提出問題,然后再去探索、尋找答案,改變僅由教師上課的填鴨式教學(xué)模式。在實(shí)施項(xiàng)目的過程中,將學(xué)生分成項(xiàng)目小組,有項(xiàng)目組長組織小組活動(dòng),這樣既培養(yǎng)了學(xué)生發(fā)現(xiàn)問題、解決問題的能力,同時(shí)鍛煉了團(tuán)隊(duì)合作精神。用項(xiàng)目驅(qū)動(dòng)法來進(jìn)行教學(xué),以一個(gè)具體的項(xiàng)目,貫通需要的知識(shí)點(diǎn),并且按照軟件工程的思想,經(jīng)歷從需求分析到設(shè)計(jì)再到編程和測試運(yùn)行的幾個(gè)階段,逐步培養(yǎng)學(xué)生軟件開發(fā)的思想和能力。
首先要設(shè)計(jì)一個(gè)合適的項(xiàng)目。比如在學(xué)習(xí)函數(shù)、結(jié)構(gòu)體和文件內(nèi)容的時(shí)候,可以設(shè)計(jì)一個(gè)管理系統(tǒng)軟件項(xiàng)目,在項(xiàng)目中讓學(xué)生體會(huì)到函數(shù)、結(jié)構(gòu)體和文件的作用比教師單純的強(qiáng)調(diào)效果要好??梢赃x取學(xué)生能切身體會(huì)的成績管理系統(tǒng)。
然后在實(shí)施的時(shí)候,先將學(xué)生進(jìn)行分組,選取項(xiàng)目組長負(fù)責(zé)項(xiàng)目的執(zhí)行。第一步進(jìn)行需求分析,確認(rèn)新系統(tǒng)的功能需求。學(xué)生分析后得出結(jié)論,新系統(tǒng)需要具有學(xué)生信息輸入、增加學(xué)生、刪除學(xué)生、修改學(xué)生信息、統(tǒng)計(jì)成績、查詢成績、顯示信息、讀取文件和保存的功能。第二步進(jìn)行系統(tǒng)設(shè)計(jì)。為系統(tǒng)分解成以下幾個(gè)模塊:
l輸入初始的學(xué)生信息:其中包括學(xué)生的姓名、學(xué)號和性別以及學(xué)生的各門課程成績等相關(guān)信息。
l查詢模塊:根據(jù)學(xué)生的姓名或?qū)W號查找輸出此學(xué)生全部信息包括學(xué)生的各門課程的成績。
l插入模塊:插入學(xué)生,其中通過學(xué)號的大小來比較的,并且以此來排序。
l統(tǒng)計(jì)學(xué)生成績模塊:統(tǒng)計(jì)各門課程的平均分?jǐn)?shù)、最高和最低分?jǐn)?shù)。
l初始化模塊:若有文件則從文件中讀入學(xué)生信息到內(nèi)存中。
l退出系統(tǒng)模塊:首先將信息保存到文件中,釋放動(dòng)態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。
系統(tǒng)分解的功能模塊將由相應(yīng)的函數(shù)來實(shí)現(xiàn)。項(xiàng)目組長可以將任務(wù)進(jìn)行分配給組員來詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)相應(yīng)的模塊。通過這個(gè)過程,讓學(xué)生切身體會(huì)函數(shù)的作用,通過一定的自學(xué)和教師的精講,掌握函數(shù)的使用的重點(diǎn)和難點(diǎn)。
這時(shí)在設(shè)計(jì)學(xué)生的信息數(shù)據(jù)結(jié)構(gòu)的時(shí)候,學(xué)生會(huì)發(fā)現(xiàn)和思考以往學(xué)習(xí)和使用的簡單的數(shù)據(jù)類型能否較好地組織和保存學(xué)生的信息,便于教師適時(shí)引入結(jié)構(gòu)體類型來解決這個(gè)問題。
在保存學(xué)生數(shù)據(jù)的時(shí)候,學(xué)生自然會(huì)思考保存在哪里,如何保存。這時(shí)引入文件的讀寫操作幫助學(xué)生解決這個(gè)問題。
第三步是實(shí)現(xiàn)。在學(xué)習(xí)了相關(guān)知識(shí)點(diǎn)后,學(xué)生在項(xiàng)目組長的組織下編程實(shí)現(xiàn)系統(tǒng)。
第四步是測試。指導(dǎo)學(xué)生應(yīng)用相應(yīng)的測試方法,設(shè)計(jì)測試用例,分析測試結(jié)果、進(jìn)行相應(yīng)的調(diào)試和維護(hù)。
3.3 以動(dòng)畫演示幫助學(xué)生理解課程難點(diǎn)
一些算法、概念和步驟僅由教師口頭講授,太抽象,缺乏想象力的學(xué)生很難理解,所以用FLASH制作動(dòng)畫將步驟演示給學(xué)生看,提高課堂生動(dòng)性及學(xué)生的學(xué)習(xí)興趣。如通過動(dòng)畫演示冒泡排序、選擇排序、插入、二分法、遞歸過程、漢諾塔問題、指針、數(shù)組、結(jié)構(gòu)體和鏈表的創(chuàng)建、遍歷、插入、刪除等操作。
3.4 以網(wǎng)絡(luò)教學(xué)增加師生互動(dòng)
可以把教學(xué)內(nèi)容做成課程網(wǎng)站。課前發(fā)布上課資料,方便學(xué)生預(yù)習(xí)。學(xué)生課后可以隨時(shí)查看每次講課的內(nèi)容,遇到問題可以進(jìn)入網(wǎng)站查看資料,也可以在公告欄或討論板發(fā)布問題,尋求教師和同學(xué)的幫助。還可以在網(wǎng)站上布置作業(yè)和收取作業(yè),發(fā)布參考資料和前沿動(dòng)態(tài)。
3.5 以分層教學(xué)適應(yīng)學(xué)生差異
學(xué)生剛?cè)胄r(shí)的編程水平有差異,有的是沒接觸過編程,有的卻學(xué)過VB編程,或者有的參加過中小學(xué)信息技術(shù)培訓(xùn)和比賽,那么如果按照統(tǒng)一標(biāo)準(zhǔn)教學(xué),則有的困難很大,有的卻覺得太簡單沒意思。針對這種情況采取班內(nèi)分層教學(xué),根據(jù)是否有編程基礎(chǔ)和能力將學(xué)生分成A、B、C三等,在教學(xué)、實(shí)驗(yàn)題和作業(yè)上有一定區(qū)別,為A等學(xué)生增加難度題,為C等學(xué)生減少題目數(shù)量要求質(zhì)量??梢园才艃?yōu)秀學(xué)生擔(dān)任實(shí)驗(yàn)輔導(dǎo)員,在熟練迅速完成自己的實(shí)驗(yàn)后,也不必?zé)o所事事,而是幫助教師輔導(dǎo)學(xué)生,幫助學(xué)生調(diào)程序,在期末成績上給予一定的加分獎(jiǎng)勵(lì)。這樣既增強(qiáng)了先進(jìn)同學(xué)的自豪感和積極性,同時(shí)減輕了輔導(dǎo)教師的工作量。
3.6 改革課程考核辦法,開發(fā)相應(yīng)的考試系統(tǒng)
傳統(tǒng)的考試只有期末考試,并且只有筆試。這種弊端是學(xué)生到課程快結(jié)束時(shí),才會(huì)感到考試的緊迫而匆匆學(xué)習(xí),俗稱“零時(shí)抱佛腳”,這對課程內(nèi)容的掌握的扎實(shí)度和對后續(xù)課程的深入都是欠缺的。所以有必要改變“一考定終身”式的和單一的筆試考核方式,發(fā)揮以考促學(xué)的效果,改革考核形式和方法。將考核分為平時(shí)+實(shí)踐+考試三部分,考試有期中和期末兩次成績,并且包括理論和上機(jī)兩部分的考試,開發(fā)相應(yīng)的考試系統(tǒng),能夠自動(dòng)組卷和閱卷,讓學(xué)生考不同的卷子,減少作弊的可能性,減少教師閱卷的工作量。平時(shí)除了考勤、作業(yè),在單個(gè)知識(shí)點(diǎn)或相聯(lián)系的幾個(gè)知識(shí)點(diǎn)結(jié)束后,安排相應(yīng)的小測驗(yàn)。通過測驗(yàn)和考試,不斷拉緊學(xué)生學(xué)習(xí)的弦,檢查自己有哪些薄弱的地方,以促進(jìn)提高。
4 結(jié)論
C語言是計(jì)算機(jī)專業(yè)和相關(guān)專業(yè)的一門重要基礎(chǔ)課程,但是具有相當(dāng)?shù)碾y度和枯燥性,大多數(shù)學(xué)生難以掌握,所以在教學(xué)中要不斷探索總結(jié)經(jīng)驗(yàn),充分利用現(xiàn)代教學(xué)手段,激發(fā)學(xué)生的學(xué)習(xí)興趣,靈活應(yīng)用各種教學(xué)方法,這才能達(dá)到較好的教學(xué)效果。
參考文獻(xiàn):
[1] 孟朝霞,王琴竹,李妮. C語言程序設(shè)計(jì)課程項(xiàng)目教學(xué)目標(biāo)建設(shè)與實(shí)踐[J]. 中國科技信息,2010(4).
[2] 陳湘驥,徐東風(fēng),楊秋妹. 在線評判在C語言課程設(shè)計(jì)教學(xué)中的應(yīng)用[J]. 計(jì)算機(jī)教育, 2010(3).
[3] 蔣霞. 基于CDIO理論的C語言程序設(shè)計(jì)課程改革[J]. 電腦知識(shí)與技術(shù), 2012(27).
[4] 張婧姝,魏玲. 項(xiàng)目驅(qū)動(dòng)教學(xué)法在數(shù)據(jù)庫管理系統(tǒng)課程中的應(yīng)用[J]. 經(jīng)濟(jì)研究導(dǎo)刊, 2011(29).
[4] 胡尊美. “C語言”程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)改革探討[J]. 福建電腦, 2010(1).