摘要:程序設(shè)計(jì)系統(tǒng)化思維模式培養(yǎng)是程序設(shè)計(jì)課程的內(nèi)在要求,也是理工科大學(xué)生綜合素質(zhì)培養(yǎng)的要求。本文根據(jù)軟件工程的思想,提出了程序設(shè)計(jì)系統(tǒng)化思維的培養(yǎng)模式,從學(xué)生學(xué)習(xí)方法,教師教學(xué)方法的角度提出了程序設(shè)計(jì)系統(tǒng)化思維的培養(yǎng)方法。并通過教學(xué)實(shí)踐,說明該方法是行之有效的。
關(guān)鍵字:程序設(shè)計(jì);系統(tǒng)化思維;培養(yǎng)模式
中圖分類號:G64 文獻(xiàn)標(biāo)識碼:B
文章編號:1672-5913(2007)04-0081-04
1引言
程序設(shè)計(jì)過程本身就是系統(tǒng)化思維的過程,首先要對解決的問題有一個(gè)系統(tǒng)化的認(rèn)識,從系統(tǒng)的觀點(diǎn)出發(fā),進(jìn)行可行性分析,需求分析,設(shè)計(jì)出系統(tǒng)的整體模型,進(jìn)行功能模塊的劃分,在此基礎(chǔ)上進(jìn)行詳細(xì)設(shè)計(jì),然后在程序設(shè)計(jì)風(fēng)格的基礎(chǔ)之上編寫程序代碼,進(jìn)行編譯、調(diào)試和測試。
1975年,有四十年軟件設(shè)計(jì)和軟件管理經(jīng)驗(yàn)的美國軟件管理專業(yè)作家杰拉德·M·溫伯格在他的《系統(tǒng)化思維導(dǎo)論》一書中給出了系統(tǒng)化思維的定義:“這種思維先于專門的學(xué)科知識的存在而存在——有時(shí)繞過專門的學(xué)科知識,有時(shí)又把專門的學(xué)科知識綜合起來。我們把這種思維和教育方法稱為一般系統(tǒng)論的方法。”同時(shí)他認(rèn)為“計(jì)算機(jī)語言的變化比人們思維模式的變化要快得多,所以我將編程語言的事情交給別人,自己則將精力集中到更加普遍的思維原理方面”。因此,系統(tǒng)化的思維與計(jì)算機(jī)編程思維與之有著深刻的內(nèi)在聯(lián)系[1,2]。
2現(xiàn)狀分析
程序設(shè)計(jì)是理工科大學(xué)生,尤其是計(jì)算機(jī)專業(yè)大學(xué)生的一項(xiàng)基本技術(shù)技能,是進(jìn)行科學(xué)研究和科技工作的有力工具,如科學(xué)計(jì)算,計(jì)算機(jī)仿真、企業(yè)管理等等。
根據(jù)我國軟件產(chǎn)業(yè)“十五”發(fā)展規(guī)劃,高校每年有5萬名計(jì)算機(jī)專業(yè)的畢業(yè)生,而國家對軟件人才的需求已達(dá)到20多萬人,并且這個(gè)需求每年都以20%左右的速度增長[2]。而實(shí)際情況是我國軟件企業(yè)急需合格的程序員,而每年有相當(dāng)數(shù)量的計(jì)算機(jī)及相關(guān)專業(yè)的大學(xué)畢業(yè)生找不著理想的工作。
(1) 軟件企業(yè)對合格程序員的素質(zhì)要求
根據(jù)調(diào)查分析,合格程序員必須具有:① 扎實(shí)的專業(yè)基礎(chǔ)知識;② 很強(qiáng)的綜合分析和解決問題的能力;③熟練的編程調(diào)試能力;④ 創(chuàng)新能力;⑤ 團(tuán)隊(duì)合作能力;⑥ 持續(xù)的自學(xué)能力;⑦強(qiáng)烈的好奇心;⑧較高的英語水平和軟件工程的實(shí)踐能力等。
(2) 軟件企業(yè)沒有對程序員持續(xù)發(fā)展能力的培養(yǎng)方案
有的軟件企業(yè)對計(jì)算機(jī)及相關(guān)專業(yè)的大學(xué)生提出了相當(dāng)高的要求,嚴(yán)重地挫傷了大學(xué)生的信心;個(gè)別軟件企業(yè)的急功近利的思想,要求大學(xué)生一進(jìn)入企業(yè)就能象熟練程序員一樣工作。既沒有進(jìn)行系統(tǒng)的培訓(xùn),也沒有制定提高程序員綜合素質(zhì)和持續(xù)發(fā)展的培養(yǎng)方案。如何培養(yǎng)合格的程序員,也就是提高大學(xué)生的編程能力,解決我國軟件人才短缺問題已經(jīng)擺在高等學(xué)校計(jì)算機(jī)專業(yè)面前,成為急需解決的問題。
3系統(tǒng)化思維模式培養(yǎng)的內(nèi)涵
程序設(shè)計(jì)的系統(tǒng)化思維培養(yǎng)模式,一是要調(diào)動(dòng)學(xué)生的學(xué)習(xí)主動(dòng)性,二是要改革現(xiàn)有的教學(xué)模式,使之適應(yīng)計(jì)算機(jī)技術(shù)的發(fā)展,滿足社會(huì)對合格計(jì)算機(jī)人才的需求[3]。
3.1 程序設(shè)計(jì)系統(tǒng)化思維培養(yǎng)模式
按軟件工程的原理,可以將軟件設(shè)計(jì)分解為需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件編碼、調(diào)試、測試和維護(hù)。對程序設(shè)計(jì)語言的初學(xué)者,將程序設(shè)計(jì)過程分解成下面幾個(gè)容易理解的步驟:
(1) 理解問題:分析問題的已知條件,求什么或要求得到什么結(jié)果,據(jù)此找到求解該問題的數(shù)學(xué)方法或建立相應(yīng)的數(shù)學(xué)模型。
(2) 歸納程序的基本功能:當(dāng)(1)解決之后,經(jīng)過分析,確定程序要完成的功能,也就知道了努力的方向。
(3) 計(jì)算機(jī)解題的算法:這一步要求設(shè)計(jì)者將要解決的問題轉(zhuǎn)換成計(jì)算機(jī)能理解的算法,并用偽代碼描述算法。即進(jìn)行數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和算法設(shè)計(jì)。符合著名的公式:程序=高級語言+數(shù)據(jù)結(jié)構(gòu)+算法。
(4) 用程序設(shè)計(jì)語言實(shí)現(xiàn)算法:用學(xué)習(xí)過的高級語言編寫程序,并輸入到計(jì)算機(jī)。
(5) 對源程序進(jìn)行編譯與調(diào)試:這一步對源程序中的語法錯(cuò)誤、算法錯(cuò)誤進(jìn)行糾正。
(6) 對程序進(jìn)行測試:這一步對程序算法的正確性進(jìn)行測試,如果通過,則認(rèn)為程序是正確的,否則轉(zhuǎn)(3),重新設(shè)計(jì)算法。
(7) 對已完成或調(diào)試運(yùn)行正確的算法進(jìn)行改進(jìn)或用新的方法再求解:這一步是啟發(fā)思維,尋找更好的算法或解決方案,使程序功能更齊全、運(yùn)行效率更高存儲(chǔ)空間更省。
3.2 程序設(shè)計(jì)過程本身是一個(gè)系統(tǒng)化思維過程
程序設(shè)計(jì)過程本身就是系統(tǒng)化的過程,首先要對解決的問題有一個(gè)系統(tǒng)化的認(rèn)識,從系統(tǒng)的觀點(diǎn)出發(fā),設(shè)計(jì)出系統(tǒng)整體模型,再進(jìn)行功能模塊的劃分,然后在遵循程序設(shè)計(jì)風(fēng)格的基礎(chǔ)之上編寫程序代碼。本科學(xué)生在開始學(xué)習(xí)程序設(shè)計(jì)課程,并進(jìn)行程序設(shè)計(jì)時(shí),是不具備這種系統(tǒng)化思維模式的,這就要求程序設(shè)計(jì)課程的教師在教學(xué)過程中重視程序設(shè)計(jì)系統(tǒng)化思維的滲透,以系統(tǒng)化的觀點(diǎn)選取教學(xué)內(nèi)容、組織教學(xué)過程,在教學(xué)過程中潛移默化地培養(yǎng)學(xué)生程序設(shè)計(jì)的系統(tǒng)化思維。
3.3 計(jì)算機(jī)編程能力培養(yǎng)也是一個(gè)系統(tǒng)工程
計(jì)算機(jī)編程能力的培養(yǎng)不是學(xué)習(xí)一門或幾門高級語言能夠解決的問題,它需要所有的專業(yè)教師結(jié)合課程內(nèi)容有意識地培養(yǎng)學(xué)生的程序設(shè)計(jì)能力,并貫徹到教學(xué)過程中;它需要學(xué)校制定旨在培養(yǎng)大學(xué)生扎實(shí)基礎(chǔ)理論、實(shí)踐技能和創(chuàng)新能力為目標(biāo)的培養(yǎng)方案;需要具有敬業(yè)開拓精神的教師隊(duì)伍作后盾,實(shí)施以系統(tǒng)化思維培養(yǎng)模式為基礎(chǔ)教學(xué)改革;需要學(xué)校為教師教學(xué)和科研,學(xué)生學(xué)習(xí)和參與科研提供開放實(shí)驗(yàn)的環(huán)境;更需要大學(xué)生在大學(xué)四年中堅(jiān)持不懈學(xué)習(xí),培養(yǎng)自己持續(xù)的自學(xué)能力,為將來工作打下扎實(shí)的專業(yè)理論基礎(chǔ),養(yǎng)成綜合分析和解決問題的能力,養(yǎng)成自己強(qiáng)烈的創(chuàng)新意識,團(tuán)結(jié)協(xié)作精神,同時(shí)努力提高自己的英語水平。各方面的協(xié)調(diào)配合才能達(dá)成目標(biāo)的實(shí)現(xiàn)。
4系統(tǒng)化思維模式培養(yǎng)方法
4.1 學(xué)習(xí)方法的改進(jìn)
編程是有規(guī)律的, 編程能力的提高關(guān)鍵在于對編程規(guī)律與必備知識基礎(chǔ)的把握程度。
(1) 只有掌握計(jì)算機(jī)科學(xué)與技術(shù)基礎(chǔ)理論和基本技能,才能理解在軟件開發(fā)過程中所進(jìn)行的各項(xiàng)具體活動(dòng)與工作步驟,才能在整個(gè)軟件開發(fā)過程中知道該做什么,不該做什么,先做什么,后做什么。
(2) 實(shí)踐就是最好的老師,重視培養(yǎng)編程能力,理論與實(shí)踐相結(jié)合,理論的學(xué)習(xí)促進(jìn)編程能力的提高,同時(shí)編程能力的增強(qiáng),可以更好地理解理論原理。社會(huì)上有大批的軟件開發(fā)愛好者,就采用自學(xué)和自我實(shí)踐的方式,結(jié)合自己的工作來應(yīng)用學(xué)到的計(jì)算機(jī)技術(shù)。雖然他們沒有在校生的優(yōu)越條件,但其中優(yōu)秀人物的真實(shí)開發(fā)能力,遠(yuǎn)勝于正規(guī)高校計(jì)算機(jī)專業(yè)的本科生甚至是碩士生。因此在校大學(xué)生應(yīng)該加強(qiáng)實(shí)踐環(huán)節(jié)的培養(yǎng),要認(rèn)真完成各項(xiàng)編程學(xué)習(xí)的訓(xùn)練科目,而不是當(dāng)作任務(wù)敷衍塞責(zé)。
(3) 學(xué)習(xí)是一個(gè)循序漸進(jìn)的過程,要克服浮躁的功利型學(xué)習(xí)方法。這種方法一是表現(xiàn)為盲目地跟風(fēng)學(xué)習(xí)各種當(dāng)前流行的新技術(shù)。如果不具備扎實(shí)的理論與實(shí)踐基礎(chǔ),又缺乏持之以恒的決心,對這些新技術(shù)的學(xué)習(xí)無法深入把握。二是盲目參加各種考證、軟件速成培訓(xùn)學(xué)習(xí)班,要知道編程是一種技能,是長期訓(xùn)練的一種能力,不可能速成。你向別人展示自己寫的一個(gè)軟件作品,比給別人看一堆各式各樣的證書更能說明你的能力!
(4) 知識的獲取與掌握是有其客觀規(guī)律的,一般而言,具體的知識易于理解,而抽象的知識則難于理解和掌握,在學(xué)習(xí)過程中,應(yīng)遵循“具體 → 抽象 → 具體 → ……”這樣一個(gè)無限循環(huán)的過程。
4.2教學(xué)模式的改進(jìn)措施
(1) 教材的選用上,要選用那些按程序設(shè)計(jì)系統(tǒng)化思維方式編寫的教材,以利于教學(xué)和學(xué)生自學(xué),從入門開始進(jìn)行系統(tǒng)化的思維方式培養(yǎng)。而目前大多數(shù)教材注重理論的完整性,而對實(shí)踐問題缺乏分析,一般是“問題—答案”模式,而沒有問題到答案之間的分析過程,這不利于程序設(shè)計(jì)系統(tǒng)化思維模式的培養(yǎng)。
(2) 教學(xué)方法上,通過實(shí)例講解程序設(shè)計(jì)語言的語法,而實(shí)例的講解又要按照程序設(shè)計(jì)系統(tǒng)化思維的方式進(jìn)行設(shè)計(jì)。讓學(xué)生知道設(shè)計(jì)一段程序或一個(gè)程序不是憑空而來,而是通過系統(tǒng)的綜合分析,合理的數(shù)據(jù)組織和適用的算法,找出科學(xué)的解決方案,然后使用程序設(shè)計(jì)語言寫出相應(yīng)的程序,并進(jìn)行編譯、調(diào)試和測試這樣復(fù)雜而又思路清晰的一個(gè)過程。
(3) 教學(xué)手段上,采用現(xiàn)代多媒體技術(shù),多媒體設(shè)計(jì),將課件設(shè)計(jì)得更加形象生動(dòng),吸引學(xué)生的注意力。講解上使用通俗的語言、比喻以增加課堂教學(xué)效果。通過程序設(shè)計(jì)實(shí)例的現(xiàn)場演示,使學(xué)生體會(huì)程序設(shè)計(jì)的系統(tǒng)化方法,培養(yǎng)學(xué)生系統(tǒng)化的思維模式。通過編譯、運(yùn)行的演示,可以讓學(xué)生體會(huì)程序的編譯、修改、再編譯、再修改的反復(fù)編譯過程,學(xué)會(huì)調(diào)試程序。通過單步調(diào)試演示,顯示程序每一條指令的運(yùn)行結(jié)果,也就體會(huì)到程序中的每一條指令的作用,從而真正理解程序設(shè)計(jì)語言中控制命令的含義,程序的功能和作用。
4.3系統(tǒng)化思維培養(yǎng)模式的要求
程序設(shè)計(jì)系統(tǒng)化思維培養(yǎng)模式從本科生的認(rèn)知特點(diǎn)出發(fā),使教師在教授學(xué)生程序設(shè)計(jì)課程、提高學(xué)生編程能力的同時(shí),培養(yǎng)了學(xué)生程序設(shè)計(jì)的系統(tǒng)化思維[1],這對提高學(xué)生整體素質(zhì)、提高程序設(shè)計(jì)課程整體教學(xué)水平和提高程序設(shè)計(jì)學(xué)科建設(shè)都有非?,F(xiàn)實(shí)的意義。
(1) 教師按系統(tǒng)化思維培養(yǎng)模式組織教學(xué)
程序設(shè)計(jì)系統(tǒng)化思維的培養(yǎng)是程序設(shè)計(jì)課程教學(xué)的基本要求,也是提高學(xué)生程序設(shè)計(jì)能力最基本的方法。程序設(shè)計(jì)系統(tǒng)化思維培養(yǎng)模式首先要求教師用系統(tǒng)化思維的方法,組織教學(xué)內(nèi)容、素材,在教學(xué)過程中要以程序設(shè)計(jì)系統(tǒng)化思維培養(yǎng)為出發(fā)點(diǎn),把教學(xué)的重點(diǎn)放在系統(tǒng)化的解題思路、算法設(shè)計(jì)、編程構(gòu)思和程序?qū)崿F(xiàn)上。
(2) 通過程序設(shè)計(jì)提高學(xué)生分析問題和解決問題的能力
程序設(shè)計(jì)系統(tǒng)化思維培養(yǎng)模式強(qiáng)調(diào)理理論與實(shí)踐相結(jié)合。要求學(xué)生作為學(xué)習(xí)的主體安排好學(xué)校的培養(yǎng)方案,構(gòu)建自己的知識結(jié)構(gòu),通過大量相關(guān)的資料豐富自己的知識,培養(yǎng)自己的獲取知識的能力。教師應(yīng)該引導(dǎo)學(xué)生在解題編程的實(shí)踐中探索其中帶規(guī)律性的認(rèn)識,啟發(fā)學(xué)生積極思考問題,探索未知的解題方法。程序設(shè)計(jì)課程的學(xué)習(xí)不僅教會(huì)學(xué)生如何進(jìn)行計(jì)算機(jī)編程,而且教學(xué)生系統(tǒng)、嚴(yán)謹(jǐn)、縝密地思考問題,通過程序設(shè)計(jì)系統(tǒng)化思維模式的訓(xùn)練,學(xué)生思考問題會(huì)更加接近事物的本質(zhì)。通過程序設(shè)計(jì)系統(tǒng)化的思維培養(yǎng),首先,可以解決我們在程序設(shè)計(jì)中遇到的問題,其次,學(xué)習(xí)程序設(shè)計(jì)能鍛煉思維,使我們的邏輯思維更加嚴(yán)密,這對一個(gè)理工科的大學(xué)生來說是至關(guān)重要的。
(3)加強(qiáng)學(xué)生創(chuàng)新意識的培養(yǎng)
按照軟件工程的思想,將軟件設(shè)計(jì)按工程化的思路進(jìn)行設(shè)計(jì),這就要求我們在對學(xué)生進(jìn)行程序設(shè)計(jì)系統(tǒng)化思維培養(yǎng)的同時(shí),兼顧對學(xué)生的工程化意識和創(chuàng)新意識的培養(yǎng),把任何一個(gè)程序的設(shè)計(jì)都看成是一個(gè)系統(tǒng),那么在程序設(shè)計(jì)風(fēng)格的規(guī)范上,系統(tǒng)化的要求和工程化的要求是一致的。系統(tǒng)化的程序設(shè)計(jì)思維的培養(yǎng)過程就是讓學(xué)生自己動(dòng)手解決實(shí)際問題的過程,這個(gè)過程充滿了學(xué)生對未知問題的探索、研究與創(chuàng)新。
(4) 培養(yǎng)學(xué)生可持續(xù)學(xué)習(xí)的能力
在當(dāng)今社會(huì),最有用的知識是關(guān)于方法的知識,最有用的能力是持續(xù)學(xué)習(xí)的 能力。學(xué)習(xí)能力的形成將教育轉(zhuǎn)化為自我教育,使人獲得可持續(xù)發(fā)展的自由。為以后的自我教育、自我發(fā)展和自我完善奠定良好的基礎(chǔ)。
5總結(jié)
計(jì)算機(jī)應(yīng)用領(lǐng)域的不斷擴(kuò)大,社會(huì)不僅需要專業(yè)的程序設(shè)計(jì)人才,同時(shí)更需要既具有其他專業(yè)知識又具有程序設(shè)計(jì)能力的復(fù)合型人才。所以程序設(shè)計(jì)系統(tǒng)化思維培養(yǎng)模式不僅適用于計(jì)算機(jī)專業(yè)的本科教學(xué),也適用于其他理工科程序設(shè)計(jì)語言的教學(xué)。
我們要全面深化教學(xué)改革,形成以學(xué)生為主體的自主學(xué)習(xí)機(jī)制,鼓勵(lì)教師將灌輸式的教學(xué)模式轉(zhuǎn)變?yōu)榻淌趯W(xué)生如何獲取知識的過程和方法,培養(yǎng)學(xué)生持續(xù)的學(xué)習(xí)能力,促進(jìn)其可持續(xù)發(fā)展的教學(xué)模式;鼓勵(lì)教師探索各種有利于啟發(fā)和調(diào)動(dòng)學(xué)生學(xué)習(xí)積極性、有利于激發(fā)學(xué)習(xí)的創(chuàng)新意識的教學(xué)方法;從體制上強(qiáng)化學(xué)生的讀書、實(shí)踐、實(shí)驗(yàn)設(shè)計(jì)等自主學(xué)習(xí)環(huán)節(jié);加強(qiáng)專業(yè)建設(shè),辦出專業(yè)特色,使學(xué)校成為各種新學(xué)科、新技術(shù)、新想法、新思想萌生、涌動(dòng)、交流和碰撞的園地[4]。
參考文獻(xiàn)
[1] Gerald M. Weinberg.An Introduction to Systems Thinking[M].北京: 清華大學(xué)出版社,2003.
[2] 馬寧,白燕.系統(tǒng)化程序設(shè)計(jì)培養(yǎng)模式初探[J]. 計(jì)算機(jī)教育,2005(3).
[3] 謝中科.《C語言程序設(shè)計(jì)》的教學(xué)改革與實(shí)踐[J].理工高教研究,2004(3):96-97,117.
[4] 袁祖望. 高校教師需要轉(zhuǎn)變哪些教學(xué)觀念[Z]. 長沙理工大學(xué)教育思想大討論資料匯編.2006,(5): 78-80.
投稿日期:2006-08-15
作者簡介:謝中科(1964-),男(漢族),湖南人,副教授,研究方向:主要從事數(shù)據(jù)庫應(yīng)用開發(fā)和數(shù)據(jù)挖掘方面的研究。