999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件工程碩士專業課教學中科學思維與創新思維能力的培養

2008-01-01 00:00:00蔡海尼文俊浩
現代教育技術 2008年3期

【摘要】軟件從業人員的人文素質和科學素養決定了中國軟件產業的未來。軟件人才教育必須重視科學人文底蘊的積淀,而不應局限于知識的傳授和實踐能力的提高。該文著重探討了如何針對軟件學院的辦學目標和特色,在教學中培養軟件工程碩士的科學思維和創新思維能力,并引導其從哲學角度思考軟件開發與設計中的問題。

【關鍵詞】軟件工程碩士;科學思維;創新思維;哲學思維

【中圖分類號】G420 【文獻標識碼】B 【論文編號】1009—8097 (2008) 03—0116—04

“面向應用、面向領域,培養多層次、實用型、復合型、國際化人才”是軟件學院的辦學目標和特色,對軟件工程領域工程碩士應注重培養其自學專業知識的能力、理解特定領域專業方法的能力和自我發展的能力。

大多數在職學習的工程碩士學生,已經具有一定的自學能力和較豐富的實踐經驗,處理和解決實際問題的能力普遍強于全日制在校生,他們希望通過碩士階段的系統學習,使知識水平和能力都得到明顯提升。相對本科層次而言,碩士生不僅要有較強的專業能力,還應具備一定的人文素養和科學素養。下文將以《軟件架構與設計模式》課程為切入點,闡述如何在專業課教學中培養軟件工程碩士的科學思維和創新思維能力,并初步探討對其中軟件設計與開發問題的哲學思考。

一 軟件人才科學思維能力的培養

人與人的差異,很大程度上取決于人的思維方式與思維水平的差異。科學思維是介于日常思維和哲學思維之間的思維層次,既有與實踐相聯系的確定性,又具有抽象性、邏輯性和系統性。科學思維能力的高低,是研究能力和素質的體現,直接決定著軟件工程碩士生畢業后能否擔當所肩負的重任。因此,在教學中要有意識地倡導科學精神,把科學思維的培養貫穿于整個教學過程,既要促進學生知識的增長,更要促進學生思維能力的發展。

國內軟件工程的教學和培訓,已經開始關注軟件過程、問題解決步驟等宏觀方法,但卻忽略了基本的科學思維方法在軟件開發中的微觀應用。如果不能有意識地運用這些邏輯思維方法來解決軟件問題,或不知道如何使用常規科學思維來完成開發任務,就會把軟件開發神秘化,認為開發高手如藝術家,設計技巧完全靠靈感所得,毫無思維規律可言。實際上,軟件工程師微觀上的思維模式并未超出傳統的科學思維范疇,心智良好并接受過系統的邏輯思維以及其它思維方式訓練的程序員,都能解決軟件中的大部分問題。

1 在教學中培養發現問題和解決問題的能力

問題發現和解決過程是高級形式的學習活動, 強化學生的問題意識,引導學生解決問題或創造性地解決問題,有利于培養其綜合思維能力和創造性思維。因此,在教學中變傳統的知識傳授過程為“探索和解決問題”序列的探究過程,創設問題情境,引導學生不斷地提出有價值的問題,探索解決問題的思路,對于提高學生的科學思維能力大有裨益。

(1)改變教學模式,引導學生發現問題和解決問題

課堂教學仍是當前高校教學的主要形式,課堂教學質量的高低直接影響著學生知識水平和能力的提高。在教學中除了應講清講透知識,更重要的是啟發和培養學生發現和解決問題的能力。沒有這方面的訓練,學生只會接受知識,其透視問題、把握問題的能力和習慣不能得到有效的開發,理論上的創新更無從談起。

《軟件架構與設計模式》所涉及的知識源自軟件設計實踐,有軟件開發經驗的學生完全能夠自學,甚至已經在從事軟件開發的過程中自發或自覺地加以應用,只是缺乏系統性。因此,在教學過程中必須改變平鋪直敘的授課方法,采用靈活的授課形式,從教學的內容、方法和手段等多方面調動學生的學習積極性,使他們主動參與教學過程。教師首先簡明扼要地介紹軟件體系結構的發展現狀、存在的問題與爭論以及對軟件開發的影響等,以激發學生的興趣;在教學中,留足夠的時間讓學生去閱讀、思考和提問,要善于創造問題情境,開展多種形式的討論,以提高學生發現問題和解決問題的能力,鼓勵學生對權威理論提出評論性意見。

(2)創設問題情境,與學生共同探求解決問題的方法

問題情境是指學生不能用已有的知識經驗直接加以處理,感到不理解和束手無策的情形。創設問題情境能夠調動學生的探究意識和學習積極性,啟迪思維,在交互過程中完成問題的理解、知識的應用。認清問題的關鍵,探索解決問題的途徑正是學習和理解架構與模式的最佳方法。

問題情境狀態下的問題,不是簡單的提問和回答,是通過嚴謹的分析,深刻揭示所講課程內容的內在規律,啟發引導學生去思考更深層的問題,應具有可接受性、障礙性和探索性。每種架構或設計模式都有特定的意圖和應用場景,應當選擇軟件項目開發過程中常見而又有一定難度的問題加以分析和討論,啟發和鼓勵學生把自己的實踐經驗與相關理論知識相結合,表達自己的思想,提出合理的方案,再共同總結和完善分析解決問題的思路,這樣既提高了學生參與教學的積極性,又有利于靈活掌握和應用所學內容,可取得良好的課堂教學效果。在課程的后階段,考慮到軟件工程碩士的學科交叉背景和相對豐富的實踐經驗,更應提倡學生主動發現和提出問題,只有不斷提出深刻的問題,分析能力才會有所提高,這種能力對從事科學研究和工程實踐尤為重要。

1 在問題解決中培養科學思維方式

軟件與數學的淵源甚深,理科學生尤其是數學專業的學生在軟件設計和開發中所體現的潛在優勢發人深思。工科學生的數學基礎停留在知識層面,沒有提升到思維的高度,用科學思維方法指導軟件的設計和開發,這使他們在編寫一般應用軟件時得心應手,善于用新開發技術和工具快速實現軟件功能,但在設計內在復雜度高的軟件尤其是系統軟件時,會感到無從下手,或是只實現軟件的基本功能需求,而軟件的內部結構和質量卻很差。這種軟件設計的先天缺陷是不能靠規范軟件工程過程、軟件質量管理等后天手段來彌補的。

當代軟件越來越復雜,人文素質成為軟件設計人員必備的基本素質,而科學素養是決定他們最終能否有所作為的最重要的素養。培養軟件專業學生的科學思維能力,固本強基,才能鍛造出適應時勢變化的真正軟件精英。

(1)巧設案例, 拓展思維的深度和廣度

多數學生習慣于用一種固定模式解決問題, 把平時熟悉的架構或設計模式案例套用在當前遇到的問題上, 一旦問題有變化,就很難靈活應對,這是思維定勢造成的。針對上述情形,教師可設計一些特殊案例,并在原問題基礎上加以演進變化,與學生共同探討解決方案。

以處理對多種數據庫操作的通用數據庫訪問類的設計為例,通常學過設計模式的學生都會采用工廠模式解決同類的問題,將對數據庫的訪問集中起來,以保證良好的封裝性和可維護性。分析具體實現細節,由于數據庫操作通常被劃分成幾個邏輯步驟,在工廠方法類中又可使用模板模式,這是一部分有設計經驗的學生會自覺采用的方法。如果使問題稍加變化,要求提供能程序控制的數據庫連接緩存,以提供更大的靈活性和效率,則需要構建一個緩沖池,保存數據庫類的實例,此時多數學生不能準確找出解決問題的模式,教師可引導學生思考如何將保證數據庫連接唯一性的單例模式擴展為多例模式。把問題再引申一步,在數據訪問類DAO的設計中,實現商業邏輯抽象和具體數據對象的分離,則是橋模式的應用。通過上述案例的變換與分析,學生對常見問題的解決方案和設計模式理論都會有更深刻的認識和理解,拓展了思考問題的廣度和深度。

(2)剖析案例,提高思維的精度

人接受新知識都會經歷“表象-抽象-本質”的演化過程, 教師在教學中可設計典型案例, 完成從分析問題,提出解決方案到方案具體實現的全過程,幫助學生澄清模糊認識,深刻理解所學內容,掌握知識的實質。

在講解MVC(Model-View-Controller)架構模式時,暫不直接介紹相關概念和理論,以Java技術實現Web應用的3種不同模型為例,激發學生興趣,分析前兩種模型中存在的問題,探討如何先從模型中分離表現,再從視圖中分離控制器,最終引入實現3部件解耦的MVC架構方案。在此基礎上,總結MVC模式的優勢,并從使用意圖、所針對(的)問題、實現機制、局限性等方面比較系統、詳盡地講授相關理論知識。最后,鑒于MVC作為一個廣泛采用的模式,在J2EE,.NET框架的候選方案中都有典型應用,對學生構建應用系統有較高的參考價值,將詳細剖析ASP.NET和JSP+Servlet下MVC模式實現的2個完整實例及代碼片段,強化對所學知識的理解和實踐,學以致用。在整個課程的結束階段,嘗試融會貫通,綜合運用所學知識,以企業應用為切入點,從領域邏輯模式,數據源架構模式,控制器及視圖的不同實現方式等角度深入討論系統MVC架構的實現策略,以及與其他設計模式的協同應用,提升認識的層次。

二 軟件人才創新思維能力的培養

高等教育必須改變傳統的教學模式,重視潛能的開發,突出創新能力,實施創新教育,培養創新人才,追求“為創造性而教”的最高境界。創新思維是創造和創新的核心,在教學中提倡多種思維方式相結合,培養和訓練創新思維,提高創新能力。

在專業課的教學實踐過程中,有意識地強調思維的能動性和集中性的統一,強調思維的逆向性、靈活性、發散性、獨創性與敏銳性,能有效提升課堂教學效果,激發學生的學習興趣,在潛移默化中培養學生的創新思維能力。

1 復合思維與發散思維相結合

復合思維是單一地尋求答案的思維過程,是創新思維不可缺少的前提;而發散思維則假定一個問題有多種不同答案,是創新思維的本質或基礎。復合思維“求同”,發散思維“求異”,在分析解決問題的過程中,應努力實現這兩種思維的有機結合:任何軟件的設計和實現方案都不是唯一的,通常同時有多個候選架構都能正確完成軟件的功能,且各有優劣。教學中應鼓勵學生盡可能多地從不同的角度,提出各種解決方法。這些方法有的很經典,容易想到,有現成方案可借鑒;有的則很具新意,注意針對系統的特點,優勢突出,但實現起來有一定難度。此時再用一些經驗性的方法簡單分析各種候選架構的特性及優缺點,進而引導學生采用SEI提出的ATAM(Architecture Tradeoff Analysis Method)評估每一種架構方案,從中選擇一種最合理的架構設計。

2 抽象思維與形象思維相結合

架構師的頭腦需要經常在抽象思維和形象思維間切換,他必須能理解表述模糊或抽象的概念并將其變成相關各方能夠理解的項目構件;必須掌握將解決方案分解到不同抽象層次的技能;必須能綜合利用架構圖、UML圖、文字和代碼片斷,表達自己的設計思想。如果是對現有系統的改造,那么在看過系統的文檔和代碼后,他就要能總結出系統的架構特點。雖然架構師不是教出來的,但培養上述必備素質無疑是本課程的目標。模式都基于抽象,架構模式描述系統基本的結構組織方案,把系統抽象為部件和連接件;設計模式提供部件和連接件的解決方案,是對不同可變性的封裝,從而使系統在不同的角度達到“開-閉”原則的要求。但模式不是提供一種簡單可復制的方法,而是從已有的經驗中歸納、抽取、提升規律的過程,往往是“可意會,不可言傳”,只能用通過“模式”的方法去解決某個問題的例子來說明模式的存在。在架構與設計模式的學習中,應以探索的方式完成“問題-解決方法-通用(可復用)解決方案-抽象模式-模式的規范描述-模式實現”的全過程。

3 逆向思維法

逆向思維是在已知結論的情況下,尋找其成立的條件和原因,在分析中采用這種方法,能夠使邏輯嚴密,對問題分析透徹、認識深刻。在教學過程中,分析優秀的軟件產品解決方案或典型的程序代碼范例,推斷其軟件架構和使用的設計模式,結合所學知識證實這種推斷的正確性,并通過對軟件功能、性能需求,主要特點及開發技術的分析,反推選擇該架構或模式的理由; 或者找一段真實代碼(問題代碼)現場討論它的作用,什么地方做得好?什么做得不好?假如是你該如何進行設計和重構?上述方法對于軟件設計和程序重構都大有益處。

三 軟件人才哲學思維習慣的培養

科學思維要求從哲學的高度理解科學,需要哲學的頭腦和理論思維能力;任何成功的科技創新,尤其是突破傳統的重大科技創新,都有正確的哲學思維作指導。哲學思維在當今社會越來越受到重視,有些跨國公司在招聘人才的時候公開提出應聘者應該具有哲學思維的能力,能夠統觀全局,運籌帷幄。為順應時代發展,軟件人才必須具有哲學思維,能夠從哲學的層面思考和發現問題,用辯證的、發展的觀點分析問題。

部分優秀的軟件工程碩士生不僅已經在軟件項目開發中熟練應用架構和設計模式知識,而且能很好地權衡理論和實踐的關系,少數學生更是自覺從哲學角度思考軟件的設計與開發,在課堂討論中形象而深刻地總結了自己的經驗與體會,以下是其中兩個重要的論題。

1 軟件架構、設計模式與代碼實踐

有程序經驗的設計人員,對軟件架構、設計模式和代碼實踐通常會有兩種極端的認識。一種觀點認為在具備足夠豐富的編程和項目經驗之前,軟件架構和設計模式是空談,沒有學習的必要。事實上,好的軟件設計師必須主動地選擇工作在合適的抽象層次上,能夠脫離具體編程語言進行思考,準確抓住事物的本質,而架構與模式應用實質上正是對軟件設計思想、設計知識的重用;如果只會工作在代碼實現層,遇到任何問題就立即想到寫代碼,否則就無法順利思考,其能力是有缺陷的。軟件設計需要充分實踐,但不宥于實踐,積極地學習軟件架構與模式的理論,嘗試用理論來指導實踐,理論與實踐既不矛盾,也無絕對的先后順序。

另一種相反的情形是認為架構師只需關注模式和系統架構,軟件架構設計可以脫離具體的代碼實踐。事實上,由于程序設計語言、技術平臺、數據管理技術、網絡體系結構等下層技術的變化迅速,架構師一旦脫離現實應用,就會做出一些不切實際的設計決策,造成設計與現實的脫節,缺乏對系統真正的指導和掌控,成了為設計而設計,而非應需求而設計。具體地說,就是會寫代碼,也能設計系統方案,但對設計如何指導代碼,代碼如何實現設計意圖則缺乏把握。因此,在進行軟件設計時,應當對設計意圖具體到底層實現有一個清醒的脈絡圖,如果在這種設計架構下,底層實現會有困難或性能滿足不了需求,就應當調整設計思路。設計指導實踐,而實踐反過來又決定設計。

2 設計模式之道

面向對象系統的分析和設計實質上追求的就是高內聚(Cohesion)和低耦合(Coupling),這也是設計模式的原則和精要。面向對象系統的設計和開發中的很多原則,如封裝、繼承和多態、面向接口編程、優先使用組合而不是繼承、將抽象和實現分離的思想等,在設計模式的兩個基本策略中都有體現:發現并封裝變化點;優先使用對象組合,而不是類繼承。設計人員或更高抽象層次可以更多關注設計模式的使用場景和應用效益,而編碼實現人員則需要更多關注設計模式的實現方法。設計模式體現的是一種思想,產生于實踐并指導實踐。設計模式的思想在系統設計和開發中隨處可見:Observer(其實例為Model-View-Control模式)是MFC中的基本框架;Iterator模式則在C++的STL中有實現;軟件重構是實現設計模式的一種手段,設計模式往往是重構的目的;模式思維有助于理解和選擇系統架構,也有助于了解和使用框架。理解和掌握設計模式,并不只是記住23種或更多的設計場景和解決策略,而是接受一種思想的熏陶和洗禮,最重要的是自覺地遵循這種思想去進行設計和開發。

四 結語

多年的專業課教學實踐表明:使學生掌握扎實的專業基礎、合理的知識結構,具備較強的軟件設計與開發能力、工程組織與管理能力固然重要,但要孕育一批優秀的軟件人才,僅僅傳授知識和培養專業能力是不夠的,知識經濟時代需要科學精神與人文精神的融合。目前,我國軟件業界存在的急功近利、浮躁、自我膨脹、不實事求是、缺乏誠信、惟利是圖等現象,都與這兩種精神的缺失有關。只有大力弘揚科學與人文精神,并將之融會、貫穿于軟件工程人才培養過程的始終,我國的軟件產業才真正有希望。

參考文獻:

[1]文俊浩,楊丹,陳林,傅鸝. 軟件工程人才培養體系研究與實踐[J]. 高等工程教育研究,2005,(4):63-65.

[2] 文俊浩,徐玲,楊丹. 軟件工程人才培養實踐[J]. 中國大學教育,2005(9):31-32.

[3] 陳靜, 馬蘇奇, 王來生. 注重學生解決問題的能力與創造型思維的培養提高高等數學課程的教學效果[J]. 大學數學,2006(3):25-27.

[4] 呂亞芹,劉世祥.培養學生數學思維能力的研究和探索[J]. 北京建筑工程學院學報,2004(1):72-75.

主站蜘蛛池模板: 9久久伊人精品综合| 亚洲人免费视频| 在线国产综合一区二区三区| 国产噜噜噜视频在线观看| 精品国产一区91在线| 黄色污网站在线观看| 亚洲无码高清一区| 精品第一国产综合精品Aⅴ| 久久综合国产乱子免费| 国产91色在线| 91久久国产综合精品女同我| 黄色网页在线播放| 国产第八页| 国产精品xxx| 日韩欧美综合在线制服| AV不卡国产在线观看| 天堂在线视频精品| 国产在线麻豆波多野结衣| 欧美日韩在线亚洲国产人| 一级一级一片免费| 美女国内精品自产拍在线播放 | 伊人国产无码高清视频| 伊在人亚洲香蕉精品播放| 凹凸国产分类在线观看| 国产日本视频91| 亚洲成人www| 蜜桃臀无码内射一区二区三区 | 亚洲男人在线| 日本亚洲欧美在线| 精品少妇人妻一区二区| 成人福利一区二区视频在线| 一级毛片免费高清视频| JIZZ亚洲国产| 中国一级特黄视频| 啊嗯不日本网站| 992Tv视频国产精品| 国产一线在线| 欧美一级片在线| 极品国产在线| 日韩久草视频| a毛片基地免费大全| 亚洲高清国产拍精品26u| 亚洲男人在线天堂| 青青草原偷拍视频| 99热这里只有免费国产精品| 亚洲日本www| 午夜视频www| 色成人综合| 免费人成视频在线观看网站| 大学生久久香蕉国产线观看 | 欧美色综合网站| 国产成人狂喷潮在线观看2345| 国产精品欧美在线观看| 亚洲区第一页| 色综合国产| 2021精品国产自在现线看| 亚洲日本韩在线观看| 亚洲精品免费网站| 国产无码制服丝袜| 国产免费黄| 国产美女人喷水在线观看| 中文字幕免费在线视频| 国产丝袜啪啪| 国产亚洲高清在线精品99| 久久久成年黄色视频| 国产视频一区二区在线观看| 片在线无码观看| 91娇喘视频| 欧美色香蕉| yy6080理论大片一级久久| 色婷婷亚洲综合五月| 99热这里只有精品国产99| 国产精品自在拍首页视频8| 国产麻豆aⅴ精品无码| 中文字幕日韩丝袜一区| 国产一线在线| 天堂久久久久久中文字幕| 色综合久久无码网| 亚洲全网成人资源在线观看| 国产毛片片精品天天看视频| 欧美亚洲综合免费精品高清在线观看| 97se亚洲综合在线|