摘要:針對C語言教學(xué)中教學(xué)目標(biāo)不明確、教學(xué)內(nèi)容泛泛的實(shí)際情況,借鑒軟件工程“自頂向下”設(shè)計(jì)的思想,以實(shí)戰(zhàn)項(xiàng)目為載體,項(xiàng)目分解任務(wù)為主線,重新梳理知識(shí)點(diǎn)的講解順序,提出培養(yǎng)學(xué)生能力為核心的教學(xué)目標(biāo),以階段任務(wù)作為量化考核依據(jù)的創(chuàng)新教學(xué)模式。
關(guān)鍵詞:自頂向下;實(shí)戰(zhàn)項(xiàng)目;軟件工程;量化考核;C語言
中圖分類號(hào):G642.41 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2015)03-0121-02
《C語言程序設(shè)計(jì)》課程的教學(xué)目標(biāo)是通過本課程,向?qū)W生介紹結(jié)構(gòu)化程序設(shè)計(jì)的基本思想與方法,使學(xué)生掌握程序設(shè)計(jì)的解題思路,能夠設(shè)計(jì)解決問題的算法,能夠更熟練地掌握基本的結(jié)構(gòu)化程序的設(shè)計(jì)方法。通過教學(xué),實(shí)現(xiàn)培養(yǎng)有能力,有發(fā)展?jié)摿Φ挠?jì)算機(jī)軟件開發(fā)工作的應(yīng)用人才的教學(xué)目標(biāo)。本文借鑒軟件工程“自頂向下”設(shè)計(jì)的思想,以實(shí)戰(zhàn)項(xiàng)目為載體,項(xiàng)目分解任務(wù)為主線,打亂教學(xué)大綱中的知識(shí)點(diǎn)講解順序,在規(guī)定的有限學(xué)時(shí)內(nèi)極大地提升了課程教學(xué)品質(zhì),取得了良好的教學(xué)效果。
一、C語言課程教學(xué)現(xiàn)狀分析
通過問卷調(diào)查和學(xué)生座談得知,《C語言程序設(shè)計(jì)》課程教學(xué)存在以下情況:(1)C語言本身概念抽象,語法規(guī)則眾多且應(yīng)用靈活,難以保證學(xué)生能夠深刻理解和熟練運(yùn)用;(2)該課程學(xué)時(shí)大為壓縮,僅能保證對C語言主要程序結(jié)構(gòu)和簡單算法等驗(yàn)證性實(shí)驗(yàn)內(nèi)容;(3)部分計(jì)算機(jī)基礎(chǔ)較差的學(xué)生無法跟上教師的教學(xué)進(jìn)度,容易失去學(xué)習(xí)興趣;(4)教師在教學(xué)針對性方面教學(xué)設(shè)計(jì)不夠新穎,學(xué)生反思時(shí)間不夠;(5)教學(xué)內(nèi)容選擇上缺乏針對性,無法讓學(xué)生體會(huì)技術(shù)的實(shí)用性。
二、C語言課程教學(xué)模式創(chuàng)新實(shí)踐
傳統(tǒng)的C語言課程教學(xué)普遍采用“先理論-再語法-簡單示例”的教學(xué)方式,忽略了對學(xué)生分析問題、解決問題和動(dòng)手實(shí)踐應(yīng)用等能力的培養(yǎng),降低了學(xué)生的學(xué)習(xí)興趣,制約了學(xué)生能力和實(shí)戰(zhàn)技能的發(fā)展。要想提升C語言課程的教學(xué)品質(zhì),就需要從其集抽象性、邏輯性和實(shí)踐性于一體的特點(diǎn)出發(fā),從教學(xué)內(nèi)容、教學(xué)環(huán)節(jié)以及教學(xué)評價(jià)等方面進(jìn)行創(chuàng)新實(shí)踐,只有這樣,方能激發(fā)學(xué)生的主觀能動(dòng)性和學(xué)習(xí)興趣,讓學(xué)生積極參與教學(xué)實(shí)踐,從而提升教學(xué)品質(zhì)。
1.C語言課程教學(xué)內(nèi)容之創(chuàng)新實(shí)踐。教學(xué)內(nèi)容的實(shí)用價(jià)值和趣味性有助于激發(fā)學(xué)生的學(xué)習(xí)興趣,提升學(xué)生對問題分析、解決的專注度。鑒于“90后”學(xué)生創(chuàng)造力與實(shí)用主義并存的現(xiàn)象,教學(xué)內(nèi)容可以選擇學(xué)生容易接觸的超市購物管理系統(tǒng)、圖書管理系統(tǒng)、學(xué)生成績管理系統(tǒng)等。本文擬定以學(xué)生成績管理系統(tǒng)為項(xiàng)目載體,從專業(yè)角度出發(fā),借鑒軟件工程“自頂向下”的思想,圍繞項(xiàng)目功能的分解、分析和完成的主線進(jìn)行教學(xué)。不僅完成傳統(tǒng)教學(xué)中的重點(diǎn)知識(shí)點(diǎn),而且融入了對當(dāng)代軟件工程師必備素養(yǎng)的培養(yǎng)。在創(chuàng)新教學(xué)模式中,加深了學(xué)生面對現(xiàn)實(shí)問題時(shí)從分析、分解、實(shí)現(xiàn)、聯(lián)調(diào)到撰寫文檔的軟件開發(fā)流程的體驗(yàn),不僅在體驗(yàn)中潛移默化地滲透了系統(tǒng)開發(fā)的大局觀,更能讓學(xué)生有條不紊地逐級實(shí)現(xiàn)項(xiàng)目分解的任務(wù),逐步實(shí)現(xiàn)目標(biāo)的過程中同時(shí)不斷強(qiáng)化學(xué)生的自信心。
2.C語言課程教學(xué)環(huán)節(jié)之創(chuàng)新實(shí)踐。本文創(chuàng)新教學(xué)環(huán)節(jié)之處在于,以系列迭代任務(wù)為主線進(jìn)行課堂教學(xué)中將所有重點(diǎn)知識(shí)點(diǎn)打亂、重組的先后次序的獨(dú)特性和創(chuàng)新性。本文采用的“學(xué)生成績管理系統(tǒng)(簡稱:CJGLXT)”在教學(xué)過程中,實(shí)現(xiàn)了以迭代項(xiàng)目任務(wù)為階段目標(biāo),由淺入深、由易到難的教學(xué)過程,不僅讓學(xué)生體驗(yàn)項(xiàng)目開發(fā)的流程,又順應(yīng)了學(xué)生的學(xué)習(xí)心里特點(diǎn)。隨著項(xiàng)目任務(wù)的逐步實(shí)現(xiàn)和項(xiàng)目功能的不斷完善,學(xué)生對程序設(shè)計(jì)的興趣也由淡變濃,化被動(dòng)為主動(dòng),采用階梯遞進(jìn)法助推教學(xué)目標(biāo)水到渠成。
C語言課程創(chuàng)新教學(xué)環(huán)節(jié)之創(chuàng)新實(shí)踐主要表現(xiàn)為:以項(xiàng)目CJGLXT分解的系列迭代任務(wù)串聯(lián)核心知識(shí)點(diǎn)的重組,具體教學(xué)環(huán)節(jié)如下。①CJGLXT的功能展示頁面。整潔大方的系統(tǒng)功能頁面帶給學(xué)生直觀可達(dá)的學(xué)習(xí)目標(biāo),通過經(jīng)典的“HELLO WORLD”程序,靈動(dòng)的個(gè)人簡歷,滲透著Main函數(shù)的學(xué)習(xí),打印輸出語句、換行符、特殊符號(hào)的輸出等,可以讓學(xué)生輕松地掌握基本的C語言知識(shí)和基礎(chǔ)技能。②CJGLXT的成績?yōu)g覽功能。任何一個(gè)真實(shí)項(xiàng)目涉及的數(shù)據(jù)都離不開強(qiáng)大的數(shù)據(jù)存儲(chǔ)技術(shù),讓學(xué)生真心地了解到C語言的強(qiáng)大,徹底激發(fā)學(xué)生的求知欲和興趣。通過成績?yōu)g覽功能,將函數(shù)調(diào)用、文件存取和數(shù)組的三座大山呈現(xiàn)在學(xué)生面前,從逆向思維的角度將學(xué)習(xí)目標(biāo)回溯到變量的學(xué)習(xí),并通過變量、人機(jī)互動(dòng)、scanf(),格式輸入輸出控制符、常量及數(shù)據(jù)類型等的學(xué)習(xí),將學(xué)生的靜態(tài)個(gè)人簡歷升級為動(dòng)態(tài)的“問答式”個(gè)人簡歷;利用靜態(tài)簡易的函數(shù)調(diào)用讓學(xué)生掌握最簡單的無參函數(shù)調(diào)用;通過日常接觸的各科成績來引導(dǎo)學(xué)生了解和學(xué)習(xí)易入手的一維數(shù)組。將文件讀取等難點(diǎn)暫留在后續(xù)的教學(xué)環(huán)節(jié)中循環(huán)強(qiáng)化、逐步實(shí)現(xiàn)。③CJGLXT的成績錄入保存功能。在簡單變量、人機(jī)交互的基礎(chǔ)上,學(xué)生通過強(qiáng)化可以熟練掌握成績錄入技術(shù),此時(shí)順勢講解如何實(shí)現(xiàn)成績保存功能,引入文件保存技術(shù)的學(xué)習(xí)。在此環(huán)節(jié),可以將簡單變量的文件保存過渡到一維數(shù)組數(shù)據(jù)的保存,從而實(shí)現(xiàn)學(xué)生成績的保存功能,并且完善成績?yōu)g覽功能階段應(yīng)該講解的文件讀取技術(shù)。教師通過繼續(xù)深入的引導(dǎo),會(huì)讓學(xué)生意識(shí)到成績必須依附于具體的學(xué)生信息,這就引入了結(jié)構(gòu)體知識(shí)的學(xué)習(xí),從而將枯燥無味的教學(xué)變成了鮮活生動(dòng)的寓教于樂的情景。④CJGLXT的成績排序功能。通過鮮活的“學(xué)生排隊(duì)”現(xiàn)場互動(dòng),很容易讓學(xué)生理解“冒泡”排序的原理,并將其應(yīng)用到學(xué)生的成績排序。此階段可以巧妙地讓學(xué)生掌握隨機(jī)數(shù)、編譯預(yù)處理指令、運(yùn)算符、賦值、if語句、for語句、while語句等知識(shí)的學(xué)習(xí)。⑤CJGLXT的成績查詢功能。本環(huán)節(jié)的設(shè)置重在如何讓學(xué)生真正了解函數(shù)調(diào)用的魅力,實(shí)現(xiàn)從無參調(diào)用到有參調(diào)用的實(shí)戰(zhàn)錘煉,進(jìn)一步提升學(xué)生的綜合實(shí)戰(zhàn)技能。
上述五大環(huán)節(jié)足以涵蓋C語言教學(xué)的絕大部分核心知識(shí)點(diǎn),并且在教師靈活、豐富的教學(xué)引導(dǎo)下,將會(huì)以項(xiàng)目形式直觀地讓學(xué)生了解系統(tǒng)所需要實(shí)現(xiàn)的功能,通過分析講解引導(dǎo)學(xué)生完成功能分解和實(shí)現(xiàn)的先后次序,能夠以團(tuán)隊(duì)的形式畫出系統(tǒng)功能模塊圖。此外,該系統(tǒng)還具有修改學(xué)生成績信息、刪除學(xué)生信息、清空學(xué)生成績信息、按要求進(jìn)行學(xué)生成績排序、按要求統(tǒng)計(jì)學(xué)生成績等相關(guān)功能模塊。當(dāng)然,根據(jù)不同學(xué)校賦予的學(xué)時(shí)不同、教學(xué)形式的不同、學(xué)生層次的不同,這些知識(shí)點(diǎn)既可以加以補(bǔ)充,也可以適當(dāng)縮減,抑或控制在一定的教學(xué)深度范圍內(nèi)。endprint
3.C語言課程實(shí)踐方式之創(chuàng)新實(shí)踐。在C語言課程實(shí)踐環(huán)節(jié),本文沿用程序?qū)哟翁畛浞?,這樣能夠有效將教學(xué)環(huán)節(jié)學(xué)生掌握的原理、想法和解決問題的思路訴諸于具體的代碼來實(shí)現(xiàn)。本文以簡單的“四則運(yùn)算測試題”為例講解如下:功能介紹:程序能夠顯示5道考題并每次運(yùn)行程序考題會(huì)有變化,學(xué)生答對一道題得20分,答錯(cuò)不得分,并根據(jù)分?jǐn)?shù)轉(zhuǎn)化為相應(yīng)的等級(優(yōu)、良、中、差、不及格)。環(huán)節(jié)1:能否順利編寫并運(yùn)行經(jīng)典的“HELLO WORLD”程序。環(huán)節(jié)2:是否能夠熟練運(yùn)用變量、scanf()及輸入輸出控制符等技能。環(huán)節(jié)3:是否能夠編寫靜態(tài)的5道考題?若可以,那如何讓其動(dòng)態(tài)化?環(huán)節(jié)3.1:引入隨機(jī)數(shù)的方法形成動(dòng)態(tài)的考題。環(huán)節(jié)3.2:引入for循環(huán)解決5道甚至多道考題的自動(dòng)生成。環(huán)節(jié)3.3:在出題環(huán)節(jié)引入switch-case來由考官實(shí)現(xiàn)四則運(yùn)算考題。環(huán)節(jié)3.4:學(xué)生答題時(shí)用if語句統(tǒng)計(jì)分?jǐn)?shù)并結(jié)合switch-case實(shí)現(xiàn)分?jǐn)?shù)轉(zhuǎn)換。采用程序?qū)哟翁畛浞?,使得學(xué)生能夠遵循分析問題、解決問題的邏輯思維,有步驟地將所學(xué)的知識(shí)點(diǎn)不經(jīng)意地重復(fù)應(yīng)用到現(xiàn)實(shí)問題中,隨著教師從易到難的啟發(fā)而順利有步驟地,由簡單到復(fù)雜地踐行C語言課程的實(shí)踐,做到理論聯(lián)系實(shí)際,提升自己的綜合實(shí)戰(zhàn)技能和理論水平,與教師共同推動(dòng)教學(xué)目標(biāo)的實(shí)現(xiàn)。
三、C語言課程教學(xué)方式的建議
現(xiàn)代多媒體技術(shù)能通過逼真的程序運(yùn)行結(jié)果來吸引學(xué)生的眼球和激發(fā)學(xué)生的求知欲,但具體的學(xué)習(xí)過程依然離不開經(jīng)典的傳統(tǒng)板書教學(xué)。教師在黑板上畫出的流程圖,一筆一畫的動(dòng)態(tài)過程為學(xué)生贏得了思維轉(zhuǎn)換和理解的緩沖,具有良好的教學(xué)效果。在教學(xué)中,理論教學(xué)依然占據(jù)著重要的地位,實(shí)驗(yàn)室則應(yīng)該具備至少兩塊以上的投影幕布,既便教師現(xiàn)場的演示,也便于學(xué)生看得清楚。學(xué)生的機(jī)位應(yīng)以小組抱圓形式布置,適合學(xué)生討論。此外,學(xué)生的考評依據(jù)根據(jù)程序填充法的原則,采用過程考核方法,根據(jù)階段任務(wù)完成的多少給出相應(yīng)的量化分?jǐn)?shù),做到公平合理。為了培養(yǎng)尖子生,還可以借用網(wǎng)絡(luò)收發(fā)作業(yè),遠(yuǎn)程輔導(dǎo)等方式為積極主動(dòng)的學(xué)生提供更多的指導(dǎo)。關(guān)于教材的選擇,建議選擇“項(xiàng)目為載體,任務(wù)驅(qū)動(dòng)”的國家規(guī)劃教材,通過教師的加工,合理地將知識(shí)點(diǎn)串聯(lián)起來進(jìn)行項(xiàng)目分解,重組后進(jìn)行教學(xué),相信會(huì)取得良好的教學(xué)效果。
四、C語言課程教學(xué)創(chuàng)新之實(shí)踐
本文在教學(xué)創(chuàng)新實(shí)踐中,通過項(xiàng)目驅(qū)動(dòng)教學(xué),讓學(xué)生了解C語言的魅力,讓其知曉C語言到底可以“干什么”,通過分析問題讓其知道需要“做什么”,結(jié)合教學(xué)進(jìn)度和知識(shí)的學(xué)習(xí)引導(dǎo)其一步一步“如何實(shí)現(xiàn)”,不僅潛移默化地滲透了軟件工程的思想,而且重點(diǎn)培養(yǎng)了學(xué)生分析問題、解決問題的能力。不斷完善的C語言課程創(chuàng)新教學(xué)方法,經(jīng)過近幾年的推行實(shí)踐,教學(xué)效果良好,數(shù)據(jù)表明創(chuàng)新教學(xué)模式有助于全面促進(jìn)不同類型不同層次學(xué)生對C語言知識(shí)的快速掌握,在分析問題、解決問題方面的邏輯性大幅增強(qiáng),并且涌現(xiàn)出一大批尖子生,教學(xué)質(zhì)量效果顯著。
參考文獻(xiàn):
[1]羅杰紅,胡建榮.基于“四驅(qū)式”階梯遞進(jìn)的《C語言程序設(shè)計(jì)》課程教學(xué)體系設(shè)計(jì)與實(shí)現(xiàn)[J].職業(yè)技術(shù)教育,2009,(17):28-29(52).
[2]陳戰(zhàn)勝,王廷梅.C語言程序設(shè)計(jì)創(chuàng)新教學(xué)的研究與實(shí)踐[J].時(shí)代教育,2013,(23):54-55.endprint