張智慧
摘 要: 傳統(tǒng)的軟件開發(fā)課程,以培養(yǎng)編程技能和邏輯思維能力為主,已遠(yuǎn)不能滿足人才市場的職業(yè)化需求。在分析當(dāng)前軟件開發(fā)課程存在問題的基礎(chǔ)上,結(jié)合C語言程序設(shè)計(jì)課程教學(xué)實(shí)踐,將信息系統(tǒng)軟件運(yùn)行機(jī)理融入課堂教學(xué)實(shí)踐,提出面向職業(yè)技能培養(yǎng)的教學(xué)改革方案,并給出課堂教學(xué)內(nèi)容設(shè)計(jì)實(shí)際案例。實(shí)踐證明,該教學(xué)方案提高了學(xué)生靈活運(yùn)用知識、解決實(shí)際問題的工程能力。
關(guān)鍵詞: C語言; 程序設(shè)計(jì); 職業(yè)技能; 課程改革
中圖分類號:G424 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2015)05-54-02
Abstract: The traditional software development course, focus on programming skills and logical thinking ability, can not meet the needs from the human resource market. Based on the analysis of the existing problems of current software development course, combining with the teaching practice of C language program course, this paper propses a teaching reform scheme for occupation skill training, integrates the information system software mechanism into classroom teaching practice, and gives one example of teaching design. The practice proved that, the reformed teaching scheme improves the students' engineering ability to apply knowledge to solve practical problems.
Key words: C language; programming; occupation skill; course reform
0 引言
在國家“信息化帶動(dòng)工業(yè)化”戰(zhàn)略指導(dǎo)下,企業(yè)信息化飛速發(fā)展,帶動(dòng)了區(qū)域經(jīng)濟(jì)轉(zhuǎn)型和產(chǎn)業(yè)結(jié)構(gòu)升級,相關(guān)行業(yè)和企業(yè)對信息技術(shù)人才的綜合素質(zhì)能力要求越來越高,對從事信息技術(shù)應(yīng)用型工作的技能型創(chuàng)新人才需求非常迫切[1]。高級語言程序設(shè)計(jì)作為高職院校信息技術(shù)專業(yè)的必修課,主要是面向編程技能和邏輯思維能力培養(yǎng),人才培養(yǎng)質(zhì)量和規(guī)格已遠(yuǎn)不能滿足人才市場需求[2]。職業(yè)能力是人們從事其職業(yè)多種能力的綜合,也是高等職業(yè)教育的重點(diǎn)培養(yǎng)目標(biāo)之一,主要指靈活運(yùn)用知識解決實(shí)際問題的工程能力和動(dòng)手能力。當(dāng)前流行的C++、Java開發(fā)平臺運(yùn)用,一般信息系統(tǒng),Android應(yīng)用開發(fā),以及一些工具的應(yīng)用和配置等,都離不開C語言的基礎(chǔ)知識。如果將職業(yè)能力培養(yǎng)注入到C語言程序設(shè)計(jì)的教學(xué)目標(biāo),從系統(tǒng)工程的角度,重新安排知識點(diǎn)的學(xué)習(xí)路徑,結(jié)合信息系統(tǒng)的建設(shè)、管理、運(yùn)行、維護(hù)工作需求,增強(qiáng)實(shí)際應(yīng)用技能和解決問題能力培養(yǎng),將有利于提高學(xué)生的學(xué)習(xí)積極性和第一任職技術(shù)能力培養(yǎng)。
1 面臨問題分析
C語言基礎(chǔ)知識普遍適用于當(dāng)前流行的開發(fā)平臺,成為很多高職院校信息技術(shù)專業(yè)的必修課。但是,現(xiàn)有的C語言程序設(shè)計(jì)教學(xué)往往過多的關(guān)注結(jié)構(gòu)化程序設(shè)計(jì)方法,按照知識點(diǎn)的先后順序和難易程度講解程序的基本結(jié)構(gòu)[3],注重語言的各種語句、語法和命令,即便是列舉了一些典型例題,也僅僅是從編寫程序的角度幫助學(xué)生理解所講的內(nèi)容,無法達(dá)到靈活應(yīng)用的教學(xué)目的,課程學(xué)習(xí)價(jià)值得不到充分發(fā)揮。
1.1 與應(yīng)用需求脫節(jié)
很多學(xué)生畢業(yè)后認(rèn)為程序設(shè)計(jì)課程教學(xué)安排不合理,37%的學(xué)生認(rèn)為對就業(yè)沒有任何意義,20%的學(xué)生認(rèn)為沒有掌握所學(xué)知識[4]。究其原因,是因?yàn)殡S著計(jì)算機(jī)和互聯(lián)網(wǎng)應(yīng)用的普及,人才需求兩極分化嚴(yán)重,大量的人才需求是信息系統(tǒng)管理、運(yùn)行和維護(hù)人員,不需要開發(fā)系統(tǒng)而要懂得系統(tǒng)優(yōu)化配置、故障排除和客戶服務(wù)。對于高職教育而言,顯然應(yīng)要求學(xué)生從技術(shù)上理解信息化系統(tǒng)的構(gòu)成和配置。
1.2 與技術(shù)發(fā)展不相適應(yīng)
計(jì)算機(jī)技術(shù)已經(jīng)從一個(gè)高端的技術(shù)行業(yè)演變成一個(gè)工具,云計(jì)算、物聯(lián)網(wǎng)等新技術(shù)層出不窮,多數(shù)實(shí)際應(yīng)用是利用第三方平臺進(jìn)行二次開發(fā),只需調(diào)用相關(guān)的軟件構(gòu)件,通過圖形化的界面配置幾個(gè)參數(shù)就能實(shí)現(xiàn)簡單的應(yīng)用。企業(yè)更關(guān)注人才解決實(shí)際應(yīng)用問題的技術(shù)能力。單純的語句、語法教學(xué)模式已經(jīng)不能滿足技術(shù)發(fā)展需求。
1.3 與職業(yè)技術(shù)能力不匹配
對語法、命令掌握的技術(shù)壁壘很低,但是數(shù)據(jù)建模、抽象問題的解決能力需要系統(tǒng)的學(xué)習(xí)。學(xué)生通過程序設(shè)計(jì)課程學(xué)習(xí),應(yīng)該能夠真正理解掌握計(jì)算機(jī)軟件的內(nèi)在運(yùn)行邏輯機(jī)理,而不是了解簡單的語言規(guī)范。現(xiàn)有授課模式下,學(xué)生只是被動(dòng)的接受語法和語句,而不能真正掌握軟件的運(yùn)行機(jī)理,也就無法轉(zhuǎn)化成自身的職業(yè)技術(shù)能力。
2 面向職業(yè)技能的教學(xué)改革方案
職業(yè)技能體現(xiàn)的是第一任職技術(shù)能力。要適應(yīng)市場人才需求,轉(zhuǎn)變以傳授知識為主的理論教學(xué)為提升學(xué)生技術(shù)能力的應(yīng)用教學(xué)。教學(xué)內(nèi)容要圍繞應(yīng)用技能需求設(shè)計(jì),提煉出共性的知識和應(yīng)用范疇,提高學(xué)生對程序設(shè)計(jì)背后運(yùn)行機(jī)理的掌握,培養(yǎng)學(xué)生提出問題、分析問題、解決問題的綜合能力。其教學(xué)強(qiáng)調(diào)在應(yīng)用情景的驅(qū)動(dòng)下,最大限度地調(diào)動(dòng)學(xué)生的主觀能動(dòng)性,探究完成任務(wù)或解決問題,增強(qiáng)創(chuàng)新實(shí)踐能力。
2.1 C語言應(yīng)用現(xiàn)狀深度分析
根據(jù)來自CodeEval的編程語言統(tǒng)計(jì)數(shù)據(jù)分析,2013年開發(fā)者使用Object-C飆升了300%,C#增長了100%,JavaScript增長了33%,Java雖然降低了14%,仍保持在領(lǐng)先地位。國內(nèi)一些教育網(wǎng)站,則大量推崇Java編程、C#和Android應(yīng)用開發(fā)。雖然已經(jīng)很少將標(biāo)準(zhǔn)C作為開發(fā)工具,但上述這些編程語言的基礎(chǔ)知識都在C語言程序設(shè)計(jì)教學(xué)中有體現(xiàn)。
2.2 教學(xué)改革思路
以就業(yè)第一任職技術(shù)能力為導(dǎo)向,突出程序運(yùn)行機(jī)理分析和解決實(shí)際問題方法等應(yīng)用內(nèi)容,提高施教的針對性。在教學(xué)計(jì)劃上,要依托學(xué)生在計(jì)算機(jī)組成和操作系統(tǒng)等相關(guān)課程上學(xué)到的知識,把軟件系統(tǒng)運(yùn)行機(jī)理融入到程序設(shè)計(jì),增強(qiáng)C語言程序設(shè)計(jì)授課的有效性。在教學(xué)目標(biāo)上,在掌握C語言編程基本規(guī)則的基礎(chǔ)上,適當(dāng)增加軟件系統(tǒng)管理、配置和優(yōu)化。在教學(xué)重點(diǎn)上,圍繞編寫、調(diào)試和配置一個(gè)實(shí)用、規(guī)范、可讀性的程序,靈活運(yùn)用任務(wù)驅(qū)動(dòng)和項(xiàng)目教學(xué)法,由簡單到復(fù)雜,逐步涵蓋C語言的基本語法、編程知識點(diǎn),涵蓋實(shí)際運(yùn)行維護(hù)各項(xiàng)流程,設(shè)計(jì)并實(shí)施一系列完整的項(xiàng)目,充分發(fā)掘?qū)W生的創(chuàng)造潛能,提高學(xué)生解決實(shí)際問題的綜合能力。
2.3 課程教學(xué)方案設(shè)計(jì)
改革后的C語言程序設(shè)計(jì)課程,以學(xué)習(xí)項(xiàng)目為知識載體,以項(xiàng)目導(dǎo)向活動(dòng)作為課堂教學(xué)的主要形式,突出項(xiàng)目開發(fā)過程中的管理、運(yùn)行、維護(hù)等能力培養(yǎng)。教師要充分利用自身的知識能力優(yōu)勢,分析就業(yè)市場需求,定位課程崗位能力培養(yǎng)目標(biāo),在教學(xué)設(shè)計(jì)時(shí)突出對學(xué)生的專業(yè)技能、項(xiàng)目經(jīng)驗(yàn)、職業(yè)素質(zhì)等方面的訓(xùn)練。課程設(shè)計(jì)通常包括:設(shè)計(jì)項(xiàng)目、分解任務(wù)、協(xié)作開發(fā)、應(yīng)用評價(jià)、迭代升級五個(gè)環(huán)節(jié)。首先,要對項(xiàng)目開發(fā)的相關(guān)技術(shù)進(jìn)行概況式介紹,包括開發(fā)環(huán)境搭建、項(xiàng)目背景、任務(wù)要求。設(shè)計(jì)項(xiàng)目要由簡到繁,前后關(guān)聯(lián),遞進(jìn)完善,將C語言程序設(shè)計(jì)的知識點(diǎn)融入到一系列項(xiàng)目中;分解任務(wù),要成立項(xiàng)目小組,對應(yīng)項(xiàng)目開發(fā)中的項(xiàng)目管理、系統(tǒng)分析員、程序員、測試員和運(yùn)行維護(hù)人員等角色,輪流完成指定任務(wù);協(xié)作開發(fā)就是創(chuàng)建仿真工作任務(wù),采用任務(wù)驅(qū)動(dòng)調(diào)動(dòng)學(xué)生的積極主動(dòng)性,由項(xiàng)目小組獨(dú)立完成任務(wù);應(yīng)用評價(jià)要組織對一次任務(wù)完成情況進(jìn)行研討,分析下一次項(xiàng)目迭代升級方案,繼而開展項(xiàng)目的迭代升級。
3 課程教學(xué)設(shè)計(jì)方法案例
精心設(shè)計(jì)課堂實(shí)例是教學(xué)內(nèi)容的關(guān)鍵。仿真項(xiàng)目的安排,應(yīng)該遵循課程內(nèi)容之間的內(nèi)在邏輯關(guān)系,充分包含課程知識點(diǎn),完成相關(guān)應(yīng)用知識和技能的掌握。
3.1 項(xiàng)目設(shè)計(jì)
讓學(xué)生充分了解當(dāng)前常用的C語言開發(fā)平臺,在此基礎(chǔ)上搭建TC2.0開發(fā)環(huán)境,研討應(yīng)用軟件的安裝配置基本要求,培養(yǎng)學(xué)生的項(xiàng)目建設(shè)能力,將其作為學(xué)生從事信息技術(shù)應(yīng)用的基本技能。例如每五人分為一個(gè)仿真任務(wù)工作組,完成一個(gè)“找出最大數(shù)”的應(yīng)用程序編寫。其中每個(gè)人輪流擔(dān)任項(xiàng)目管理,負(fù)責(zé)溝通協(xié)調(diào)項(xiàng)目開發(fā)中出現(xiàn)的問題,匯總系統(tǒng)分析員、程序員、測試員和運(yùn)行維護(hù)人員文檔,撰寫項(xiàng)目報(bào)告。要求學(xué)生在程序設(shè)計(jì)過程中,不只是完成某一功能,還要分析每一行語句的應(yīng)用場景,通過查找資料,轉(zhuǎn)化為應(yīng)用技能。下面例子中,重點(diǎn)是注釋中的應(yīng)用說明,拓展學(xué)生的知識點(diǎn)。
#include//C語言調(diào)用的頭文件,實(shí)現(xiàn)對已有函數(shù)的引用,
可根據(jù)需要選擇。C#、Java也有類似作用的package。這是實(shí)現(xiàn)程序復(fù)用的主要途徑。
int main(void) //主程序,必須存在,是系統(tǒng)調(diào)用軟件進(jìn)程的入口。
Windows、Linux操作系統(tǒng)管理進(jìn)程的入口,也可實(shí)現(xiàn)程序之間的調(diào)用和通信。本程序涉及了int和void變量類型,int類型數(shù)據(jù)在實(shí)際應(yīng)用中可以用來表示一些整數(shù)如職員序號等。
{ //C程序的分段標(biāo)識,以C為基礎(chǔ)發(fā)展起來的程序大多以此為標(biāo)識。
int i,j,k,t; //定義變量,要放在函數(shù)的最前面。主要是要考慮具體應(yīng)用的對象屬性。
printf(“input 3 number(exp:12 32 34):”); //輸出顯示,一方面
是調(diào)用已有的程序模塊,二是實(shí)現(xiàn)程序界面的交互,當(dāng)前主要是圖形化交互界面,但在工業(yè)控制上還有一些字符型交互界面,主要取決于具體的應(yīng)用場景。
scanf(“%d %d %d”,&i,&j,&k); //函數(shù)調(diào)用,接受鍵盤輸入。每個(gè)
應(yīng)用程序都要通過與輸入輸出設(shè)備實(shí)現(xiàn)信息的收集,存到相應(yīng)的內(nèi)存變量,然后進(jìn)行處理。
t=i; //臨時(shí)存儲(chǔ),計(jì)算機(jī)的功能之一就是存儲(chǔ)功能,很多實(shí)際應(yīng)用
都需要將數(shù)據(jù)格式化后進(jìn)行存儲(chǔ)處理。
if(j>t) t=j; //比較邏輯處理,完成功能要求,并存儲(chǔ)結(jié)果。
if(k>t) t=k;
printf(“\n The max number is :%d”,t); //函數(shù)調(diào)用,顯示結(jié)果。
由采用的函數(shù)決定什么方式來顯示結(jié)果。加格式符是為了顯示的人性化。
renturn 0; //向上層操作系統(tǒng)或調(diào)用程序返回運(yùn)行結(jié)果,可以實(shí)
現(xiàn)應(yīng)用間的銜接。
} //完成順序程序結(jié)構(gòu)的處理。
根據(jù)這一示例,學(xué)生分別完成程序設(shè)計(jì)、文檔編寫,并通過查閱相關(guān)資料,開展應(yīng)用拓展分析。通過這個(gè)簡單的項(xiàng)目設(shè)計(jì),能讓學(xué)生在學(xué)習(xí)C語言編程基本規(guī)則的基礎(chǔ)上,創(chuàng)建仿真工作任務(wù),讓學(xué)生帶著任務(wù)學(xué)習(xí),擁有學(xué)習(xí)的主動(dòng)權(quán),帶動(dòng)起學(xué)生的學(xué)習(xí)興趣。這個(gè)過程可以有效地拓展學(xué)生的應(yīng)用技能。
3.2 項(xiàng)目評估
組織小組討論,引導(dǎo)學(xué)生分析項(xiàng)目存在的應(yīng)用問題。該程序存在的主要問題,一是只能處理3個(gè)數(shù);二是程序不能重用;三是程序結(jié)果無法存儲(chǔ)。一個(gè)完整的用戶報(bào)告應(yīng)包括提交問題報(bào)告和新的需求報(bào)告。通過學(xué)生的研討和書面報(bào)告,對學(xué)生的綜合素質(zhì)進(jìn)行評價(jià),并給出問題處理方法建議。
3.3 項(xiàng)目迭代
在項(xiàng)目評估問題的基礎(chǔ)上,提出項(xiàng)目迭代任務(wù),一是進(jìn)行輸入保護(hù),采用循環(huán)的方式實(shí)現(xiàn)隨機(jī)個(gè)數(shù)數(shù)據(jù)輸入和比較,掌握循環(huán)結(jié)構(gòu)知識點(diǎn);二是利用函數(shù)實(shí)現(xiàn)程序代碼級的重用,掌握函數(shù)知識點(diǎn);三是實(shí)現(xiàn)數(shù)據(jù)文件寫入,掌握文件操作方法。教師講解示例,完成相關(guān)應(yīng)用分析后,交予仿真任務(wù)工作組進(jìn)行實(shí)踐開發(fā)。這樣就將枯燥的語法融入到了一個(gè)不斷完善的項(xiàng)目應(yīng)用過程中,培養(yǎng)學(xué)生思考問題、解決問題的職業(yè)能力。
4 結(jié)束語
本文提出的C語言程序設(shè)計(jì)課程改革方案,以一個(gè)完整項(xiàng)目的迭代升級貫穿教學(xué)過程的始終,將編程知識點(diǎn)融入每次任務(wù)設(shè)計(jì)中,在任務(wù)驅(qū)動(dòng)下提高學(xué)生學(xué)習(xí)的積極性和主動(dòng)性,以仿真任務(wù)工作組提高學(xué)生溝通交流和實(shí)際工作能力,以應(yīng)用拓展分析帶動(dòng)職業(yè)技能提升。該方法通過近年來的課堂教學(xué)實(shí)踐,取得了較好的效果,學(xué)生在畢業(yè)實(shí)習(xí)階段就明顯得到了企業(yè)用人單位的認(rèn)可,是一種適合于程序設(shè)計(jì)課程的教學(xué)方法。
參考文獻(xiàn):
[1] 工業(yè)和信息化部中小企業(yè)司.中小企業(yè)信息化發(fā)展指南[M].機(jī)械工業(yè)出版社,2013.
[2] 朱殷勤,論高職計(jì)算機(jī)應(yīng)用專業(yè)技能型創(chuàng)新人才培養(yǎng)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2013.11:150-153
[3] 武相軍等.實(shí)例拓展法在結(jié)構(gòu)化程序設(shè)計(jì)教學(xué)中的應(yīng)用[J].計(jì)算機(jī)教育,2013.2:47-49
[4] 趙立恒.論高校計(jì)算機(jī)人才培養(yǎng)[J].高教研究,2013.12:242