計算機程序設(shè)計實踐教改與革新思索

時間:2022-06-04 04:21:00

導(dǎo)語:計算機程序設(shè)計實踐教改與革新思索一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

計算機程序設(shè)計實踐教改與革新思索

由于軟件編程技術(shù)及方法的日新月異和社會對高校計算機相關(guān)專業(yè)學(xué)生的軟件能力要求的不斷提高,高校的程序設(shè)計類課程的門類越來越多,僅面向?qū)ο蟪绦蛟O(shè)計類課程就有VisualC++,VisualBasic,net編程,Java程序設(shè)計等。但長期的教學(xué)經(jīng)驗說明,當(dāng)學(xué)生學(xué)習(xí)了一大堆編程語言后,解決實際問題的能力并沒有明顯提高,動手能力和創(chuàng)新能力不強,不能較快適應(yīng)社會對軟件開發(fā)人才的需求。鑒于此,從程序設(shè)計類課程實踐教學(xué)計劃的制定、實踐教學(xué)質(zhì)量保障、拓展實驗實踐教學(xué)時間和空間、實踐教學(xué)項目設(shè)計與監(jiān)督等方面提出一系列改革和創(chuàng)新的思路和方法。

1制定合理的編程類實踐課程教學(xué)計劃

實踐教學(xué)大綱是實踐課程開設(shè)質(zhì)量的重要保證,同時,實踐教學(xué)計劃是整個教學(xué)計劃的重要組成部分。在制定實踐教學(xué)計劃時,要充分考慮自己學(xué)校的特色、學(xué)生的實際情況和社會實際需求,以《中國計算機科學(xué)與技術(shù)學(xué)科教程2002(CCC2002)》和《高等學(xué)校計算機科學(xué)與技術(shù)專業(yè)實踐教學(xué)體系與規(guī)范》等為指導(dǎo),以對所培養(yǎng)學(xué)生的目標定位為歸宿,制定和不斷修訂實踐教學(xué)計劃。制定系列化的編程類課程體系和編程類課程群[1-2],以Java程序設(shè)計實踐課程的開設(shè)為例,可以分階段開設(shè),按完整的Java技術(shù)路線組織,如在低年級開設(shè)“JavaSE程序設(shè)計和應(yīng)用”課程及其實踐課程,在較高年級開設(shè)“JavaEE程序設(shè)計和應(yīng)用”和“JavaME程序設(shè)計和應(yīng)用”課程及其實踐課程。這樣,可以有效避免學(xué)生在學(xué)習(xí)了一門編程語言基礎(chǔ)后,出現(xiàn)繼續(xù)深入的困難和技術(shù)“斷線”現(xiàn)象,如只學(xué)完了JavaSE部分的知識,不知道進一步的Java學(xué)習(xí)方向等[3]。目前,大多數(shù)院校開設(shè)的程序設(shè)計類課程是以專業(yè)選修課程的形式進行的,因此,指導(dǎo)學(xué)生有針對性地進行選課非常重要,如:學(xué)生選修了“Java程序設(shè)計”的先修課,在高年級時可以建議其去選修“JavaWeb編程”課程;若學(xué)生選修了“VB程序設(shè)計”的先修課,在高年級時可以建議其去選修“ASP(ASP.net)Web編程”課程等。在選課系統(tǒng)中增設(shè)關(guān)于每門課程的內(nèi)容簡介和授課教師的介紹,這樣做有以下好處:一是在課程名稱字面上就可以看出授課的重點,可以回避學(xué)生從一個籠統(tǒng)的“XX程序設(shè)計”名稱上產(chǎn)生誤會,認為這門課可以將該編程語言的所有技術(shù)都包含進去;二是通過課程內(nèi)容簡介,讓學(xué)生更加透明地了解每門不同程序設(shè)計課程的授課重點,從而根據(jù)自己的知識需求和興趣有目的地選擇課程。所有代程序設(shè)計課程的教師共同參與,集思廣益地制定實踐教學(xué)計劃。這樣做,一方面可以保證實踐教學(xué)計劃的完整和系統(tǒng),避免低層次的重復(fù)和課程沖突;另一方面,可以讓教師從更高高度把握實踐教學(xué)規(guī)劃,而不僅是只關(guān)注自己所教授的那門編程課程。將實踐教學(xué)系統(tǒng)地規(guī)劃到理論教學(xué)、實驗課、課程設(shè)計、學(xué)年和畢業(yè)設(shè)計以及創(chuàng)新實踐等各個不同階段和各部分中,逐步落實,如圖1所示。

2以實際問題為出發(fā)點,以社會需求為歸宿

為了切實培養(yǎng)學(xué)生發(fā)現(xiàn)問題、解決問題、實際動手、交流和表達、持續(xù)學(xué)習(xí)、適應(yīng)和協(xié)調(diào)、組織能力等綜合能力[4],需要從以下幾個方面入手。

2.1實踐項目的設(shè)計應(yīng)以實際應(yīng)用為背景

任何的應(yīng)用和創(chuàng)新都是源于現(xiàn)實的需求,再小的實踐項目,都需要有調(diào)研與需求分析過程。引導(dǎo)學(xué)生在編程實踐時學(xué)會思考“某一種編程方法會運用在哪些實際項目中”、“哪些是通用的軟件模塊”、“接口方法如何”、“如何將不同成員開發(fā)的模塊集成在一起,怎樣測試”、“在單臺計算機上開發(fā)并測試的項目如何到網(wǎng)絡(luò)環(huán)境下”、“能用嗎”、“如何改進”等問題,是鍛煉和提高學(xué)生獨立思考能力的重要途徑。教師自身要研究社會對計算機軟件人才的具體要求、研究如何培養(yǎng)學(xué)生,以發(fā)展的眼光注重培養(yǎng)學(xué)生獨立思考、分析和解決實際應(yīng)用問題的能力。

2.2明確畢業(yè)走向,提高學(xué)生實踐能力

經(jīng)驗表明,計算機軟件相關(guān)專業(yè)學(xué)生在畢業(yè)后,大體有以下幾種走向:考研深造、直接進公司從事計算機軟件開發(fā)、通過考公務(wù)員等方式進入事業(yè)型單位從事技術(shù)性或文職型工作崗位等。因此,在高年級階段,應(yīng)引導(dǎo)學(xué)生明確就業(yè)意向,進而有針對性地強化其專業(yè)技能。

2.2.1加強基本編程思維和方法的訓(xùn)練編程思維和方法的訓(xùn)練對程序設(shè)計能力的培養(yǎng)具有決定性作用。對學(xué)生要進行面向過程和面向?qū)ο缶幊趟枷牒推鋵?yīng)的基本編程方法的引導(dǎo),達到讓學(xué)生由此及彼、觸類旁通地學(xué)習(xí)其他編程語言和技術(shù)。若沒有培養(yǎng)起學(xué)生基本編程思想和能力,即便學(xué)生學(xué)習(xí)了再多門類的編程語言,仍不能提高能力,有時反而還會導(dǎo)致學(xué)生在各種編程語言和技術(shù)中徘徊不定,遇到問題不能快速進行編程和技術(shù)選型。

2.2.2培養(yǎng)科研型、技術(shù)工程型人才在學(xué)生具備了基本編程思維和技能的基礎(chǔ)上,可以考慮引導(dǎo)學(xué)生在高年級階段根據(jù)自己的畢業(yè)走向有針對性地強化編程訓(xùn)練,以快速適應(yīng)即將面臨的新環(huán)境和新挑戰(zhàn)。對于準備考研深造的學(xué)生,可以將他們吸收到教師科研隊伍中。這樣,可以潛移默化地讓學(xué)生盡早熟悉科研工作,掌握正確的科研方法,提高科研意識,鍛煉分析問題、解決問題的能力,培養(yǎng)嚴謹求實的科研作風(fēng)[5]。舉例來說,教師可以在自己運用Matlab進行科學(xué)計算、數(shù)字圖像處理、Simulink仿真、遺傳算法與神經(jīng)網(wǎng)絡(luò)等智能算法研究時,通過帶動學(xué)生參與其中,讓學(xué)生不僅奠定一定科研基礎(chǔ),還會熟悉Matlab及其相關(guān)編程方法、運用Multisim進行電路系統(tǒng)的設(shè)計和仿真[6]等。對于將自己畢業(yè)走向確定為軟件項目開發(fā)等的學(xué)生,可以將其吸納到教師軟件項目開發(fā)小組中來,或吸納到由指導(dǎo)教師牽頭并組建的學(xué)生軟件項目開發(fā)小組中,讓學(xué)生熟悉實際軟件項目的開發(fā)流程和方法。在實際項目開發(fā)過程中,更進一步明確自己的技術(shù)選型,在社會需求量較大的眾多軟件技術(shù)如VisualC++、.Net技術(shù)、Java技術(shù)等中鎖定一種,進而鍛煉和培養(yǎng)學(xué)生進行實際項目開發(fā)的能力。

2.3鼓勵學(xué)生通過專業(yè)資格認證

對于所有學(xué)生,首先都應(yīng)鼓勵他們通過專業(yè)資格認證,如參加全國計算機等級考試四級中的四級網(wǎng)絡(luò)工程師、四級數(shù)據(jù)庫工程師、四級軟件測試工程師方向考試,軟件工程師、系統(tǒng)架構(gòu)師資格認證考試,SUN公司的Java技術(shù)認證,Cisco公司的網(wǎng)絡(luò)技術(shù)認證等。通過這些專業(yè)資格認證的考試的準備和資格獲得,可以幫助學(xué)生明確自己的專業(yè)方向,而且對該方向產(chǎn)生更大興趣和信心。其次,要鼓勵學(xué)生積極參與各級各類的專業(yè)程序設(shè)計競賽,如ACM競賽、ITAT競賽以及其他競賽。通過參與競賽,拔高學(xué)生的編程高度、拓展編程視野、培養(yǎng)創(chuàng)新精神和能力。

3拓展實踐教學(xué)的時間和空間

通常,實踐教學(xué)被納入正常的教學(xué)學(xué)時中,學(xué)時有限、實驗室固定,這對于綜合性、創(chuàng)新性實驗的開展很不利。

3.1充分利用優(yōu)質(zhì)資源,拓展實驗平臺

以利用北京大學(xué)的“北京大學(xué)程序在線評測系統(tǒng)(POJ)”為例,該系統(tǒng)具有可以運用各類編程語言進行在線程序編寫和即時評測的強大功能,其上的題目具有實用性、趣味性和很高的創(chuàng)新性,可以充分地幫助學(xué)生提高通過編程解決反映工作和生活實際問題的能力[7],從而充分調(diào)動學(xué)生的主動性、積極性和創(chuàng)造性,激發(fā)學(xué)生的創(chuàng)新思維和創(chuàng)新意識,逐漸掌握獨立思考問題、解決問題的方法,提高其創(chuàng)新實踐的能力。引進或自行研制開發(fā)基于Web工作流的程序設(shè)計綜合管理系統(tǒng)[8-9]。通過該系統(tǒng),由教師在課前提交實踐項目的目的、要求、內(nèi)容等,讓學(xué)生在實踐課前通過該平臺預(yù)習(xí)實踐內(nèi)容、查閱資料,進行相關(guān)的設(shè)計和初步實現(xiàn),課后書寫實踐報告并通過該平臺提交。教師評閱完畢后,學(xué)生可以看到批閱結(jié)果,根據(jù)批閱意見,繼續(xù)完善實踐項目。同時,教師可以將自己積累多年的程序設(shè)計項目、程序設(shè)計方法、歷屆優(yōu)秀學(xué)生的程序設(shè)計作品和實用開發(fā)工具等在該平臺上,以供學(xué)生共享。開通師生用于交流程序設(shè)計經(jīng)驗的論壇和即時答疑空間。

3.2軟件創(chuàng)新實驗室建設(shè)

成立計算機軟件創(chuàng)新實驗室的最終目的,是培養(yǎng)學(xué)生獨立承攬實際軟件工程項目的能力,和進行計算機軟件相關(guān)科研能力的培養(yǎng),使學(xué)生具有快速適應(yīng)社會需求或深造發(fā)展的需求能力。

3.2.1軟件創(chuàng)新實踐開展流程和制度建設(shè)

實際軟件項目的開發(fā)應(yīng)具有嚴格的流程,在指導(dǎo)教師的帶領(lǐng)下,由學(xué)生組成創(chuàng)新實驗小組,創(chuàng)新實驗項目由指導(dǎo)教師規(guī)劃和安排,進入創(chuàng)新實驗室時應(yīng)向計算機科學(xué)學(xué)院報送創(chuàng)新實驗項目安排表或軟件項目投標書等。完成創(chuàng)新實驗和實際軟件項目開發(fā)時,在條件允許的情況下應(yīng)將相關(guān)資料和成果歸檔保存。軟件創(chuàng)新實踐項目和軟件項目開發(fā)一定要以“系統(tǒng)觀點”進行,即問題或大或小,都要通盤考慮,按照系統(tǒng)科學(xué)方法[10]和軟件工程方法進行,如圖2所示。組織項目開發(fā)人員,首先,進行角色劃分,如項目負責(zé)人、系統(tǒng)分析和設(shè)計人員、編碼和美工設(shè)計人員等,然后,當(dāng)系統(tǒng)設(shè)計完成后,就要明確分配任務(wù),形成任務(wù)分解表并落實到個人。由于學(xué)生進行實際項目開發(fā)的經(jīng)驗不足,可由指導(dǎo)教師擔(dān)任項目的總負責(zé)人,定期督促和檢查項目進度和估算項目成本等[11]。在創(chuàng)新實驗室日常管理環(huán)節(jié)上,可以建立在指導(dǎo)教師的監(jiān)督下,讓全體參與創(chuàng)新實踐的學(xué)生形成排班和輪流值日的管理制度[12]。

3.2.2軟件創(chuàng)新實驗實施方案

由指導(dǎo)教師牽頭,引導(dǎo)學(xué)生創(chuàng)新小組進行課題研究、承攬軟件開發(fā)項目和創(chuàng)新實踐探索研究[13]。課題研究一般是由教師吸收學(xué)生參與到研究的課題中,共同完成大型的實踐項目。指導(dǎo)教師帶領(lǐng)學(xué)生創(chuàng)新團隊承攬學(xué)校及校外的應(yīng)用開發(fā)項目,進行項目開發(fā)。由主持實踐教學(xué)改革項目的教師帶領(lǐng)其他教師和學(xué)生進入創(chuàng)新實驗室,組織實施和完成“以應(yīng)用為核心”、“以本科學(xué)生為主體”的創(chuàng)新性實踐教學(xué)改革項目。

4實踐項目的設(shè)計與監(jiān)督

4.1實踐項目的原創(chuàng)性和創(chuàng)新性

實踐項目設(shè)計的原創(chuàng)性和創(chuàng)新性在很大程度上決定著實踐教學(xué)的質(zhì)量。在長期程序設(shè)計教學(xué)過程中,發(fā)現(xiàn)學(xué)生在平時實踐、學(xué)年論文(設(shè)計)、畢業(yè)論文(設(shè)計)以及實際項目開發(fā)過程中原創(chuàng)性差和缺乏創(chuàng)新性等問題,究其原因有:

(1)為了與程序設(shè)計理論教學(xué)配套,平時的程序設(shè)計實踐項目中“驗證性”項目和沒有實際應(yīng)用背景的“示例性”項目比重較大。

(2)一些通用性的程序設(shè)計實踐項目,諸如“XX管理系統(tǒng)的設(shè)計和實現(xiàn)”、“XX網(wǎng)站的開發(fā)與實現(xiàn)”等的相關(guān)開放資源非常多,其整個軟件的設(shè)計開發(fā)背景和需求、分析和設(shè)計過程,以及實現(xiàn)的全部源碼都是有現(xiàn)成可參考的。若實踐項目如此命題,則導(dǎo)致部分學(xué)生將查閱參考資料變成了“復(fù)制—粘貼”,這樣,不僅沒有達到良好的實踐效果,反而還讓一些學(xué)生養(yǎng)成了不勞而獲、抄襲剽竊的壞習(xí)氣。

(3)虛擬和籠統(tǒng)的實踐項目較多,比如對系統(tǒng)的設(shè)計和開發(fā)背景是自定的而不是源于實際用戶的開發(fā)需求等。學(xué)生在完成過程中,沒有經(jīng)歷分析和解決實際應(yīng)用問題的磨礪過程。因此,在引導(dǎo)學(xué)生進行項目實踐的過程中,在對其進行各階段指導(dǎo)和檢查時,必須嚴格把關(guān),對實踐項目題目的設(shè)計本身應(yīng)具有很強的針對性、原創(chuàng)性和創(chuàng)新性。不斷引導(dǎo)學(xué)生從身邊做起,積極主動地發(fā)現(xiàn)需求,比如:在歷屆的全國計算機等級考試中,發(fā)現(xiàn)有個別考生攜帶U盤等電子介質(zhì)作弊的問題,教師應(yīng)引導(dǎo)學(xué)生去探究和開發(fā)一種能夠監(jiān)控和防止利用電子介質(zhì)作弊的軟件;學(xué)校的各機關(guān)部門和學(xué)院都有開發(fā)和維護各自部門網(wǎng)站、開發(fā)學(xué)生管理系統(tǒng)、財務(wù)管理系統(tǒng)等需求,這些需求往往很具體,具有特殊要求和差異性,教師可以引導(dǎo)學(xué)生項目開發(fā)團隊承攬和開發(fā)這些項目;教師面臨缺乏專有的與學(xué)生進行在線溝通和交流的系統(tǒng)和在線收發(fā)、批閱作業(yè)的系統(tǒng),可以將這樣的需求作為學(xué)生畢業(yè)設(shè)計的題目等。

4.2加強對學(xué)生實踐效果的檢驗和監(jiān)督

要注重從貫穿整個本科實踐教學(xué)的各個環(huán)節(jié),諸如各項編程類基礎(chǔ)實踐項目、創(chuàng)新性和研究性實踐項目、各級各類的專業(yè)程序設(shè)計競賽、本科學(xué)年設(shè)計、本科畢業(yè)設(shè)計等具體環(huán)節(jié)入手,全程監(jiān)督和檢查學(xué)生的實踐能力。改革對學(xué)生程序設(shè)計課程考核的機制,加大實踐考核在成績、能力評價中的比重;教師通過對學(xué)生所做的實踐項目進行提問、討論、答辯等方式,了解每個學(xué)生在實踐中存在的問題和實踐效果,發(fā)現(xiàn)不足,進而有的放矢地改善程序設(shè)計實踐效果。

5結(jié)束語

計算機程序設(shè)計類課程實踐教學(xué)的改革和創(chuàng)新是一項系統(tǒng)工程,涉及到實踐教學(xué)計劃的合理制定、實踐教學(xué)的目標定位,以及改革和實施創(chuàng)新實踐教學(xué)方法等方面,逐步落實、層層推進這些措施,才可能為應(yīng)用型、創(chuàng)新性、復(fù)合型計算機軟件人才培養(yǎng)做出應(yīng)有的貢獻。