摘要:面對信息科技行業(yè)日益激烈的人才競爭,高校計算機(jī)專業(yè)學(xué)生需要培養(yǎng)過硬的程序設(shè)計能力,以便適應(yīng)嵌入式系統(tǒng)設(shè)計、軟件開發(fā)、系統(tǒng)管理維護(hù)等領(lǐng)域的用人需求。國家中長期教育改革和發(fā)展規(guī)劃綱要中提出了“堅持能力為重,提高人才培養(yǎng)質(zhì)量”的要求。文章在分析現(xiàn)有教育教學(xué)方式的基礎(chǔ)上,提出在培養(yǎng)學(xué)生程序設(shè)計能力方面應(yīng)強(qiáng)化學(xué)生程序理解能力的實踐教學(xué)改革思路,并通過網(wǎng)絡(luò)教學(xué)管理平臺的建設(shè)予以實施和推廣。
關(guān)鍵詞:計算機(jī)專業(yè);程序理解能力; 程序設(shè)計能力;教學(xué)管理平臺
隨著信息科技的不斷進(jìn)步與發(fā)展,新型軟硬件產(chǎn)品和信息服務(wù)不斷涌現(xiàn)。在嵌入式系統(tǒng)設(shè)計、軟件開發(fā)、系統(tǒng)管理維護(hù)等領(lǐng)域,高素質(zhì)程序設(shè)計人才的需求與日劇增,這對高校計算機(jī)專業(yè)的人才培養(yǎng)提出了更加具體的要求。如何適應(yīng)社會對高素質(zhì)程序設(shè)計人才的需求,對于重慶郵電大學(xué)這樣一所以信息科學(xué)技術(shù)為特色和優(yōu)勢的高校來說尤為迫切。
盡管各高校都制定了適合自身特色的培養(yǎng)方案以應(yīng)對社會對程序設(shè)計人才的需求,但受教學(xué)方法、實踐教學(xué)環(huán)境、考核方式等因素的影響,近年來,如何提高學(xué)生程序設(shè)計能力一直是高校計算機(jī)實踐教學(xué)改革的重要內(nèi)容之一?!白x懂程序難,設(shè)計程序更難”成為計算機(jī)專業(yè)學(xué)生普遍反映的問題,有條件的用人單位通常需要組織專門的培訓(xùn)來滿足生產(chǎn)的要求,這極大地影響了學(xué)生的就業(yè)能力和企業(yè)的生產(chǎn)效率。提升在校學(xué)生的程序設(shè)計能力,需要從教學(xué)方法、教學(xué)手段和資源建設(shè)等方面入手,探索一些新的思路。
1現(xiàn)狀分析
目前,大多數(shù)高校均通過開設(shè)C/C++、Java等程序設(shè)計類課程培養(yǎng)學(xué)生的程序設(shè)計能力,而此類課程的傳統(tǒng)教學(xué)方式是采用以知識點為單元的“講授—驗證—作業(yè)—考核”流程,即首先由主講教師在課堂上講授語法、結(jié)構(gòu)等知識點,學(xué)生在課后或?qū)嶒灜h(huán)節(jié)中上機(jī)驗證,通過完成習(xí)題來體會程序設(shè)計方法,最后組織考核[1-2]。多年的教學(xué)實踐表明,這樣的實施流程忽略了一個至關(guān)重要的環(huán)節(jié)——培養(yǎng)學(xué)生的程序理解能力。
什么是學(xué)生的程序理解能力?簡單說來就是當(dāng)大段代碼出現(xiàn)在學(xué)生面前的時候,學(xué)生是否能夠明白這樣一段程序代碼在計算機(jī)中是怎樣執(zhí)行的,執(zhí)行過程中環(huán)境會發(fā)生怎樣的變化,是否能獲得正確的執(zhí)行結(jié)果,等等。傳統(tǒng)的教學(xué)流程將程序設(shè)計這個有著嚴(yán)格的邏輯結(jié)構(gòu)的行為拆分成為了若干個離散的知識點,學(xué)生在僅僅掌握這些知識點的前提下,尚未透徹理解給定的代碼,此時,要設(shè)計出可用、高效的程序具有很大的挑戰(zhàn)。
程序設(shè)計類課程學(xué)習(xí)的一個主要內(nèi)容是掌握不同程序設(shè)計語言的語法規(guī)則和流程,進(jìn)而靈活運(yùn)用以解決遇到的專業(yè)領(lǐng)域問題。程序設(shè)計語言和人與人之間交流所用自然語言有一定的共性,且遠(yuǎn)沒有自然語言復(fù)雜。在學(xué)習(xí)自然語言的過程中,通常首先學(xué)習(xí)基礎(chǔ)語句,然后對語句的字詞進(jìn)行分析,進(jìn)而掌握句子的意思,最后在充分理解句法的基礎(chǔ)上組合出能表達(dá)
個人意愿的句子。程序設(shè)計語言也可以遵循這樣的學(xué)習(xí)方法,先學(xué)習(xí)示例程序語句,然后拆分語句,用離散的知識點去分析解釋語句的構(gòu)造,并查看運(yùn)行過程和結(jié)果,在頭腦中形成直觀印象,然后利用這些知識點有組織地結(jié)合程序結(jié)構(gòu)的思想去解決問題。因此,先熟識程序的“廬山真面目”,理解程序的編寫方法,然后模仿編寫,將使得程序設(shè)計能力的培養(yǎng)變得事半功倍。
從另一方面來看,多樣化的程序設(shè)計語言對于高校程序設(shè)計類課程的教學(xué)要求提出了新的挑戰(zhàn)??紤]到學(xué)分結(jié)構(gòu)、師資力量、個性教育、教學(xué)管理等因素,不可能、也沒必要為每一門程序設(shè)計語言都開設(shè)相關(guān)的課程。即便能夠這樣做,往往會出于對學(xué)生成績考核的量化而要求學(xué)生在選課階段便對相應(yīng)的語言進(jìn)行選擇,由不同的教師對其進(jìn)行授課指導(dǎo)。絕大多數(shù)學(xué)生在選擇程序設(shè)計語言時,由于沒有直觀的印象,也沒有具體的應(yīng)用需求,僅從教師簡單的介紹和外界輿論,很難選擇適合個人發(fā)展方向的語言環(huán)境。為滿足個性培養(yǎng)的需求,讓學(xué)生能找到適合自己的主要語言方向,需要提供豐富的、開放的程序設(shè)計教學(xué)資源[3],且允許學(xué)生靈活選擇。同時,多樣化、自由選擇的程序設(shè)計語言教學(xué)資源也將使得學(xué)有余力的學(xué)生能對照學(xué)習(xí),提高學(xué)習(xí)效果。
2改革思路
圍繞上述分析,為了培養(yǎng)具有良好程序設(shè)計能力的計算機(jī)專業(yè)學(xué)生,在教學(xué)實踐過程中,我們結(jié)合學(xué)校的專業(yè)建設(shè)、團(tuán)隊建設(shè)、課程建設(shè)和實驗室建設(shè)工作,主要從以下幾個方面進(jìn)行改革探索。
1) 培養(yǎng)學(xué)生的程序閱讀能力。在培養(yǎng)方案中,加大實驗實踐學(xué)分的比重,明確程序設(shè)計類課程在實踐能力方面的教學(xué)標(biāo)準(zhǔn)和能力要求。實踐環(huán)節(jié)并不是強(qiáng)調(diào)學(xué)生立即進(jìn)入到具體的程序設(shè)計的學(xué)習(xí),而是提供大量程序和針對這些程序提出的問題,引導(dǎo)學(xué)生對程序設(shè)計風(fēng)格和相關(guān)知識點進(jìn)行模仿學(xué)習(xí),并追蹤程序運(yùn)行過程,查看運(yùn)行結(jié)果。在這個過程中,教師通過評價學(xué)生的閱讀效果,指導(dǎo)學(xué)生理解程序中具體知識點。
2) 培養(yǎng)學(xué)生的程序設(shè)計能力。在現(xiàn)有培養(yǎng)方案中,教學(xué)內(nèi)容貫穿程序設(shè)計語言、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫、軟件工程等系列課程,明確每一階段的能力要求,采用基礎(chǔ)訓(xùn)練、項目驅(qū)動和課賽結(jié)合等教學(xué)組織形式,以在校期間編寫數(shù)萬行代碼為形式要求,以解決某一領(lǐng)域的具體應(yīng)用問題為導(dǎo)向,促進(jìn)學(xué)生程序設(shè)計能力的逐步提高。
3) 建設(shè)包含多種程序設(shè)計語言的教學(xué)資源。組織教師建設(shè)多樣化、開放式的程序設(shè)計類課程教學(xué)資源,包括大量的程序代碼、知識點和幫助學(xué)生理解程序。學(xué)生可自主選擇不同的語言進(jìn)行學(xué)習(xí),并在階段性考核前自愿隨意調(diào)整,教師僅對學(xué)生學(xué)習(xí)進(jìn)程和最終階段性學(xué)習(xí)效果進(jìn)行控制。為實現(xiàn)這一改革思路,我們采用以題庫為核心的網(wǎng)絡(luò)教學(xué)管理平臺,原因有以下幾點:
① 從網(wǎng)絡(luò)使用角度來看,網(wǎng)絡(luò)化的教學(xué)管理平臺具有開放、訪問方便等特點。目前,絕大多數(shù)高校都構(gòu)建了良好的校園網(wǎng),有條件的高校甚至可以將其發(fā)布在Internet上,提供校內(nèi)校外的同步訪問。學(xué)生的學(xué)習(xí)場所不再局限于課堂,而是擴(kuò)展到了校園網(wǎng)(或Internet)上。
?、?從資源管理角度來看,培養(yǎng)程序閱讀能力所需的大量程序代碼和針對不同知識點進(jìn)行學(xué)習(xí)可按照“一對多”或“多對多”的對應(yīng)關(guān)系存儲在數(shù)據(jù)庫中,學(xué)生僅需通過發(fā)送請求就可獲得相互關(guān)聯(lián)的程序、知識點和問題等,再圍繞相關(guān)的問題進(jìn)行在線練習(xí)。同時,授課教師還可根據(jù)教學(xué)和學(xué)生學(xué)習(xí)的實際情況,在數(shù)據(jù)庫中陸續(xù)添加和補(bǔ)充新的內(nèi)容。
?、?從教學(xué)管理角度來看,平臺可以記錄學(xué)生訪問行為、讀取程序細(xì)節(jié)等內(nèi)容,可以通過學(xué)生的練習(xí)結(jié)果追蹤學(xué)生學(xué)習(xí)效果,統(tǒng)計分析后的信息可以為教師提供輔助決策,并可對學(xué)習(xí)效果明顯的學(xué)生進(jìn)行“精英指導(dǎo)”,而對學(xué)習(xí)效果不明顯的學(xué)生進(jìn)行人為干預(yù),整體上促進(jìn)學(xué)生程序設(shè)計能力的提高。
④ 從程序設(shè)計語言選擇的角度來看,可以為每一種主流的程序設(shè)計語言提供一套題庫資源。在這個過程中,可以根據(jù)階段性教學(xué)目標(biāo)準(zhǔn)備難度相似、進(jìn)度相同的不同程序設(shè)計語言的資料。學(xué)生在學(xué)習(xí)過程中,僅告知學(xué)習(xí)的大致進(jìn)度以及階段性考核檢查的時間,而由學(xué)生自行選擇感興趣的程序設(shè)計語言進(jìn)行理解學(xué)習(xí),且在任何時間可以自行更換,僅需要在階段性考核時選定一種語言參與考核,提高學(xué)生學(xué)習(xí)的靈活性。
?、?從教學(xué)考核的角度來看,學(xué)生總體程序設(shè)計能力的考核不局限于以學(xué)期為單位的時間段,而是以能力要求為標(biāo)準(zhǔn)設(shè)定的學(xué)習(xí)階段,在完成一個階段的學(xué)習(xí)之后自行申請考核。在校期間,必須分階段完成相應(yīng)的內(nèi)容并通過階段考核。這種方法使得能力要求明確,有利于個性化教育,并能充分挖掘?qū)W生的學(xué)習(xí)潛力[4]。
3具體實施
按照上述改革思路,學(xué)生程序設(shè)計能力的培養(yǎng)可分三個階段來實施,如圖1所示。從最初程序閱讀能力的培養(yǎng),到程序編寫能力的培養(yǎng),最后進(jìn)行綜合程序設(shè)計能力的提高,每一個階段都有對應(yīng)的解決方案與之對應(yīng)。實施重點是建設(shè)以題庫為核心的網(wǎng)絡(luò)教學(xué)管理平臺。
網(wǎng)絡(luò)教學(xué)管理平臺實現(xiàn)“程序”和“問題”一對多的映射關(guān)系,采用“知識點”的方式對每一個問題所針對的基礎(chǔ)培養(yǎng)的內(nèi)容進(jìn)行區(qū)別和歸納,通過“難度”來判定學(xué)生對于具體問題的掌握程度。系統(tǒng)主要對象關(guān)系如圖2所示。
在具體運(yùn)行過程中,以日志形式收集基本的信息,如學(xué)生的來訪次數(shù)、語境選擇、操作情況等,提供統(tǒng)計信息供教師進(jìn)行查看以評價學(xué)生階段性學(xué)習(xí)情況,必要時可進(jìn)行指導(dǎo)或干預(yù)。平臺主要工作流程如圖3所示。
目前,網(wǎng)絡(luò)教學(xué)管理平臺已為C/C++語言建設(shè)了一定規(guī)模的程序庫和問題庫,并不斷進(jìn)行擴(kuò)充,其他語言如Java等也正在建設(shè)中。平臺試運(yùn)行以來為重慶郵電大學(xué)計算機(jī)相關(guān)專業(yè)的學(xué)生提供了開放的程序設(shè)計學(xué)習(xí)環(huán)境,并通過平臺在線考核評價其程序設(shè)計能力,從學(xué)生的投入程度和考核結(jié)果來看,學(xué)生的主動學(xué)習(xí)意識和程序設(shè)計能力普遍得到了提高,教學(xué)效果良好。教學(xué)團(tuán)隊中指定一名教師對平臺的日常運(yùn)行進(jìn)行管理維護(hù),并定期檢查學(xué)生訪問情況。其余教師擬定和補(bǔ)充多種語言的題庫資源,指定階段性學(xué)習(xí)任務(wù),并定期答疑解惑。
4結(jié)語
我校對于計算機(jī)專業(yè)學(xué)生程序設(shè)計能力的培養(yǎng)還在不斷地改革和探索,現(xiàn)行的方法和平臺的優(yōu)缺點還有待進(jìn)一步實踐和檢驗。未來的工作除了對現(xiàn)有工作的總結(jié)提高,還需要重點對平臺的功能進(jìn)行擴(kuò)展完善,從而更好地服務(wù)于計算機(jī)專業(yè)的人才培養(yǎng),為社會輸送高素質(zhì)程序設(shè)計人才,也為類似高校相關(guān)專業(yè)提供可借鑒的經(jīng)驗。
參考文獻(xiàn):
[1]