国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

應(yīng)用型高校學(xué)生程序設(shè)計能力培養(yǎng)研究

2017-07-01 20:28肖卓宇葉嘉笑李港楊道武中南林業(yè)科技大學(xué)涉外學(xué)院湖南長沙4000湖南郵電職業(yè)技術(shù)學(xué)院湖南長沙4005
關(guān)鍵詞:設(shè)計模式程序設(shè)計檢測

肖卓宇,葉嘉笑,李港,楊道武(.中南林業(yè)科技大學(xué)涉外學(xué)院,湖南長沙4000;.湖南郵電職業(yè)技術(shù)學(xué)院,湖南長沙4005)

應(yīng)用型高校學(xué)生程序設(shè)計能力培養(yǎng)研究

肖卓宇1,葉嘉笑2,李港1,楊道武1
(1.中南林業(yè)科技大學(xué)涉外學(xué)院,湖南長沙410200;2.湖南郵電職業(yè)技術(shù)學(xué)院,湖南長沙410015)

文章以應(yīng)用型本科院校計算機(jī)專業(yè)設(shè)計模式課程為例,首先介紹學(xué)習(xí)設(shè)計模式課程的前驅(qū)知識;接著依據(jù)GOF分類編程實(shí)現(xiàn)設(shè)計模式,并通過具體項目進(jìn)行綜合實(shí)訓(xùn);最后引導(dǎo)學(xué)生將設(shè)計模式課程與逆向工程、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等領(lǐng)域結(jié)合,解決涉及交叉學(xué)科的復(fù)雜問題,并取得較好的效果。事實(shí)證明,系統(tǒng)性與漸進(jìn)性融合的啟發(fā)式學(xué)習(xí)方法有助于激發(fā)學(xué)生學(xué)習(xí)設(shè)計模式課程的積極性。

設(shè)計模式;啟發(fā)式;逆向工程;數(shù)據(jù)挖掘;機(jī)器學(xué)習(xí)

應(yīng)用型本科院校側(cè)重學(xué)生實(shí)踐動手能力的培養(yǎng),并密切關(guān)注市場對人才的需求,計算機(jī)相關(guān)專業(yè)對實(shí)踐應(yīng)用的要求顯得尤為重要。結(jié)合先前計算機(jī)專業(yè)大學(xué)生程序設(shè)計實(shí)踐能力培養(yǎng)改革[1-3],通過各級程序設(shè)計大賽經(jīng)驗(yàn)的積累[4],并以大學(xué)生研究性學(xué)習(xí)與創(chuàng)新性實(shí)踐項目“基于設(shè)計模式角色的附加關(guān)系檢測研究”為契機(jī),本研究以設(shè)計模式為例,著重探討應(yīng)用型本科院校程序設(shè)計的啟發(fā)式學(xué)習(xí)方法。

Erich Gamma等人提出設(shè)計模式是一套被反復(fù)使用、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗(yàn)的總結(jié)。使用設(shè)計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性[5]。為此,眾多軟件企業(yè)為節(jié)約成本,減少研發(fā)周期,使設(shè)計模式得以廣泛應(yīng)用于項目研發(fā)中。

1 設(shè)計模式前置知識點(diǎn)學(xué)習(xí)

設(shè)計模式課程學(xué)習(xí)具有一定的抽象性,故對學(xué)生掌握相關(guān)知識的能力提出了一定的要求。

圖1 設(shè)計模式前驅(qū)知識圖

如圖1所示,第一階段學(xué)生首先應(yīng)該具備結(jié)構(gòu)化程序設(shè)計知識,為此學(xué)院在大一階段開設(shè)了C語言程序設(shè)計課程,并制定了符合學(xué)院特點(diǎn)的C語言程序設(shè)計實(shí)訓(xùn)書;第二階段需在第一階段的基礎(chǔ)上側(cè)重面向?qū)ο蟮某绦蛟O(shè)計知識學(xué)習(xí),主要涉及類、實(shí)例、封裝、繼承、多態(tài)等知識點(diǎn)的學(xué)習(xí),該階段學(xué)院通過多年來對多屆學(xué)生教學(xué)方式的改革,制訂了具有學(xué)院特色的Java程序設(shè)計課程及實(shí)訓(xùn),側(cè)重案例式教學(xué),并將多種面向?qū)ο蟮闹R融入到實(shí)訓(xùn)中來,取得了較好的效果;第三階段通過軟件工程這門課程將UML程序設(shè)計引入到項目設(shè)計中,該階段尤其側(cè)重學(xué)生對類圖、用例圖、時序圖的掌握能力,并通過積累的經(jīng)典案例引導(dǎo)學(xué)生分小組進(jìn)行實(shí)訓(xùn);在第三步之后逐步介入到設(shè)計模式領(lǐng)域。

2 設(shè)計模式分類學(xué)習(xí)

Erich Gamma將23種設(shè)計模式分為結(jié)構(gòu)型、行為型、創(chuàng)建型三類,每一類設(shè)計模式側(cè)重點(diǎn)各不相同,見表1,如若要較好地掌握23種設(shè)計模式,將其分類進(jìn)行實(shí)踐學(xué)習(xí)顯得尤為重要。

表1 設(shè)計模式功能分類表

在表1分類基礎(chǔ)上,引導(dǎo)學(xué)生依次通過編程實(shí)現(xiàn)結(jié)構(gòu)型模式、行為型模式、創(chuàng)建型模式的應(yīng)用,在此基礎(chǔ)上啟發(fā)學(xué)生側(cè)重分析3類設(shè)計模式中不同模式的設(shè)計意圖,尤其注重研究其區(qū)別。如:Composite模式與Decorator模式同屬于結(jié)構(gòu)型模式,但前者側(cè)重解決“部分與整體”的層次結(jié)構(gòu)問題,后者側(cè)重動態(tài)增加新的職責(zé)問題。通過比較分析法,讓23種看似枯燥的設(shè)計模式學(xué)習(xí)變得生動有趣,并輔以多年來積累的經(jīng)典用例實(shí)現(xiàn),讓學(xué)生對設(shè)計模式學(xué)習(xí)的積極性得到了極大的提高。在此基礎(chǔ)上,再將多個設(shè)計模式融入先前指導(dǎo)學(xué)生實(shí)現(xiàn)的網(wǎng)上商城購物系統(tǒng),從而實(shí)現(xiàn)對設(shè)計模式的融會貫通,進(jìn)一步讓學(xué)生認(rèn)識到設(shè)計模式的重要性與趣味性。

3 設(shè)計模式的演化學(xué)習(xí)

在學(xué)生較好地掌握了23種經(jīng)典設(shè)計模式用例后,嘗試將學(xué)生的程序設(shè)計思維進(jìn)一步引入到更為開闊的逆向工程、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等領(lǐng)域。

3.1 設(shè)計模式與逆向工程、數(shù)據(jù)挖掘關(guān)聯(lián)

設(shè)計模式廣泛應(yīng)用于軟件系統(tǒng)開發(fā)中,但從軟件工程的角度可知,再優(yōu)秀的軟件也存在軟件生命周期,故存在設(shè)計模式的遺產(chǎn)系統(tǒng)如能進(jìn)行有效識別,必能大大節(jié)約人力成本及時間成本。以此為契機(jī),進(jìn)一步引導(dǎo)學(xué)生對遺產(chǎn)系統(tǒng)中的設(shè)計模式實(shí)例檢測進(jìn)行深入研究。

先期啟發(fā)學(xué)生以DPS(Design pattern string,DPS)表達(dá)式類圖形式檢測設(shè)計模式,該階段對遺產(chǎn)系統(tǒng)中設(shè)計模式恢復(fù)的程度進(jìn)行了初步研究,其檢測結(jié)果只有完全匹配、部分匹配及完全不匹配三種形式[6]。之后,在此基礎(chǔ)上針對發(fā)生頻率較高的設(shè)計模式檢測部分匹配進(jìn)行了深入研究,并提出了基于矩陣積分評估的設(shè)計模式檢測研究方法[7],該方法基于子圖同構(gòu)的概念,通過矩陣積分理論對候選設(shè)計模式參與者進(jìn)行檢測,并通過閾值對檢測結(jié)果進(jìn)行約束,從而過濾不精確的結(jié)果,并進(jìn)一步提高了設(shè)計模式檢測的精確率。此階段之后,逆向工程與數(shù)據(jù)挖掘知識漸進(jìn)式進(jìn)入學(xué)生的思考范疇,而學(xué)生對于設(shè)計模式檢測的認(rèn)知更加深刻。

此外在對檢測結(jié)果的研究分析中,部分學(xué)生甚至發(fā)現(xiàn)了假陽性與假陰性結(jié)果,為了發(fā)現(xiàn)造成假陽性檢測結(jié)果的原因,指導(dǎo)老師啟發(fā)學(xué)生對假陽性結(jié)果進(jìn)行了歸納,并發(fā)現(xiàn)設(shè)計模式參與角色之間的附加關(guān)系會改變設(shè)計的意圖,從而導(dǎo)致假陽性結(jié)果。在歸納了典型的附加關(guān)系后,學(xué)生在指導(dǎo)老師的啟發(fā)下進(jìn)一步制定了設(shè)計模式角色間附加關(guān)系的檢測原則[8]。

為了對該附加關(guān)系進(jìn)行檢測,學(xué)生主動分析了當(dāng)前設(shè)計模式檢測工具的優(yōu)缺點(diǎn),并對之進(jìn)行優(yōu)化,提出了一種形式化上下無關(guān)文法關(guān)系驅(qū)動的設(shè)計模式檢測方法[9],該方法較好地解決了設(shè)計模式角色間的附加關(guān)系問題與設(shè)計模式參與者共享問題,進(jìn)一步提高了檢測的精確率。另一方面,同時引導(dǎo)學(xué)生對設(shè)計模式檢測結(jié)果存在的假陰性問題進(jìn)行深入研究后發(fā)現(xiàn),現(xiàn)有23種經(jīng)典設(shè)計模式已不能完全滿足軟件設(shè)計師的需求,大多數(shù)情況下,軟件設(shè)計師在不改變設(shè)計意圖的前提下對Erich Gamma提出的23種設(shè)計模式進(jìn)行了演化,并取得了較好的效果,這類演化后的設(shè)計模式可謂之設(shè)計模式“變體”,為此在先前工作[9]基礎(chǔ)上,項目組學(xué)生進(jìn)一步對這類難以檢測的設(shè)計模式變體進(jìn)行了檢測研究,這樣富有挑戰(zhàn)性的課題也漸進(jìn)式激發(fā)了學(xué)生的學(xué)習(xí)熱情,并進(jìn)而提出了基于文法產(chǎn)生式優(yōu)化的設(shè)計模式識別方法,旨在通過特征匹配進(jìn)行設(shè)計模式變體識別[10],過濾假陰性結(jié)果,該方法對結(jié)構(gòu)型設(shè)計模式變體檢測取得了較好的效果。但項目組學(xué)生通過手工驗(yàn)證恢復(fù)結(jié)果發(fā)現(xiàn),該方法對于行為型與創(chuàng)建型模式變體存在改進(jìn)的空間,但這類復(fù)雜的行為型與創(chuàng)建型設(shè)計模式變體規(guī)律性不太明顯,如果以全自動的方式很難發(fā)現(xiàn)全部的變體,故項目組學(xué)生嘗試一種半自動多階段交互式線索驅(qū)動的設(shè)計模式檢測方法[11],該方法通過調(diào)查表獲取常見的靜態(tài)線索、動態(tài)線索、專家線索,并將之轉(zhuǎn)為CSP形式的特征形式,并可以自定義,該方法對先前工作[10]進(jìn)行了優(yōu)化,并取得了較好的效果。如此對問題進(jìn)行漸進(jìn)式累積,并逐個擊破,讓學(xué)生深刻感受到設(shè)計模式課程的重要性及樂趣。

3.2 設(shè)計模式與機(jī)器學(xué)習(xí)的聯(lián)系

考慮到現(xiàn)實(shí)生活中設(shè)計模式專家畢竟是有限的,為了讓更多的設(shè)計模式初學(xué)者能夠靈活應(yīng)用設(shè)計模式解決軟件設(shè)計問題,除開設(shè)計模式檢測領(lǐng)域,指導(dǎo)老師也引導(dǎo)另一部分同學(xué)深入設(shè)計模式推薦系統(tǒng)領(lǐng)域。項目組學(xué)生在指導(dǎo)老師的啟發(fā)下結(jié)合形式概念分析與實(shí)例推理技術(shù),并依據(jù)余弦理論對用戶提出的問題要求進(jìn)行了設(shè)計模式推薦,這有助于輔助軟件設(shè)計師進(jìn)行高效的軟件項目設(shè)計[12]。對文獻(xiàn)[12]優(yōu)化的后續(xù)工作正有條不紊地進(jìn)行,通過設(shè)計模式與機(jī)器學(xué)習(xí)的聯(lián)系,將大大開拓學(xué)生的視野,并更進(jìn)一步激發(fā)學(xué)生的學(xué)習(xí)興趣。

此外,項目組學(xué)生從基準(zhǔn)、變體及設(shè)計模式實(shí)例共享指標(biāo)出發(fā),對各類設(shè)計模式檢測工具優(yōu)缺點(diǎn)進(jìn)行了評估[13]。從而更進(jìn)一步加深了對設(shè)計模式的了解。等領(lǐng)域有機(jī)結(jié)合,實(shí)現(xiàn)了基于設(shè)計模式漸進(jìn)式學(xué)習(xí),并取得了較好的效果。后期工作將設(shè)計模式與更多交叉學(xué)科進(jìn)行聯(lián)系,從而實(shí)現(xiàn)應(yīng)用型本科院校學(xué)生程序設(shè)計能力的進(jìn)一步提升。

4 結(jié)束語

本研究對應(yīng)用型本科院校大學(xué)生程序能力培養(yǎng)進(jìn)行了研究,以設(shè)計模式為例,介紹了設(shè)計模式學(xué)習(xí)的前驅(qū)知識點(diǎn),并分類引導(dǎo)學(xué)生對結(jié)構(gòu)型、行為型及創(chuàng)建型模式進(jìn)行程序?qū)崿F(xiàn),在此基礎(chǔ)上以具體項目為依托,融入多種設(shè)計模式,進(jìn)一步將學(xué)生對設(shè)計模式學(xué)習(xí)的成果融會貫通。此后,引導(dǎo)學(xué)生介入交叉學(xué)科學(xué)習(xí),并將設(shè)計模式與逆向工程、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)

[1]肖卓宇,葉嘉笑,黎妍.計算機(jī)專業(yè)大學(xué)生程序設(shè)計實(shí)踐能力培養(yǎng)改革[J].軟件導(dǎo)刊,2017(2):197-199.

[2]肖卓宇,黎妍,葉嘉笑.以計算思維為導(dǎo)向的大學(xué)生程序設(shè)計能力培養(yǎng)研究[J].計算機(jī)時代,2017(1):79-81.

[3]肖卓宇,陳俊旭,楊鑫維,楊邦平,胡振濤.獨(dú)立學(xué)院計算機(jī)專業(yè)大學(xué)生程序設(shè)計能力培養(yǎng)的研究與實(shí)踐[J].湖南郵電職業(yè)技術(shù)學(xué)院學(xué)報,2016(2):88-90.

[4]肖卓宇,余波,黎妍.以競賽為驅(qū)動的計算機(jī)專業(yè)創(chuàng)新人才培養(yǎng)模式的研究[J].湖南郵電職業(yè)技術(shù)學(xué)院學(xué)報,2015(3):89-92.

[5]ZHANG C,BUDGEN D.What do we know about the effectiveness of software design patterns?[J].IEEE Transactions on Software Engineering,2012(5):1213-1231.

[6]肖卓宇,何锫,黎妍.基于DPS表達(dá)式類圖的設(shè)計模式檢測[J].計算機(jī)工程與設(shè)計,2015(10):2743-2748.

[7]肖卓宇,黎妍,何锫,陳俊旭.基于矩陣積分評估的設(shè)計模式檢測研究[J].小型微型計算機(jī)系統(tǒng),2016(7):1428-1433.

[8]肖卓宇,何锫,黎妍.基于設(shè)計模式角色的附加關(guān)系檢測研究[J].計算機(jī)應(yīng)用研究,2015(7):2042-2045.

[9]肖卓宇,何锫,余波,黎妍,楊鑫維.一種形式化文法關(guān)系驅(qū)動的設(shè)計模式檢測方法[J].工程科學(xué)學(xué)報,2016(10):1499 -1508.

[10]肖卓宇,何锫,楊鑫維,楊邦平,陳俊旭,胡振濤.基于文法產(chǎn)生式優(yōu)化的設(shè)計模式識別方法[J].電子科技大學(xué)學(xué)報,2017(3).

[11]肖卓宇,何锫,余波.一種多階段交互式線索驅(qū)動的設(shè)計模式識別方法[J/OL].北京航空航天大學(xué)學(xué)報,http://kns.cnki. net/kcms/detail/11.2625.V.20161226.1707.002.htm l.

[12]肖卓宇,何锫,余波,黎妍,胡振濤.基于FCA與CBR的設(shè)計模式檢測[J].山東大學(xué)學(xué)報(工學(xué)版),2016(2):22-28.

[13]肖卓宇,黃海,何锫,李港,楊道武,彭逸凡,董澤民.設(shè)計模式檢測工具有效性評估策略[J/OL].計算機(jī)科學(xué)與探索,http: //kns.cnki.net/kcms/detail/11.5602.TP.20170504.1312.006.htm l.

Training research of students' programm ing ability in app lied undergraduate colleges

XIAOZhuo-yu1,YE Jia-xiao2,LIGang1,YANGDao-wu1
(1.Swan CollegeofCentralSouth University of Forestry and Technology,Changsha,Hunan,China 410200;2.Hunan Postand Telecommunication College,Changsha,Hunan,China410015)

The design pattern course of computer specialty in applied undergraduate college was taken as an example.Firstly pre-knowledge of design pattern coursewas introduced.Then,design patternswere performed based on classification of Gang of Four (GOF),and detail projects were performed.Finally,the students were guided to combine the design pattern course with reverse engineering,datamining,machine learning and other fields,solving the complex problems related to cross subjects,and achieving better results.The experimental results showed that the presented method based on systematic,progressive and heuristic learning can encourage theenthusiasm ofstudents.

design pattern;heuristic;reverseengineering;datamining;machine learning

10.3969/j.issn.2095-7661.2017.02.008】

TP311;G642

A

2095-7661(2017)02-0027-03

2017-03-27

肖卓宇(1979-),男,湖南長沙人,副教授,高級工程師,研究方向:程序理解、逆向工程、軟件演化等。

湖南省教學(xué)改革研究項目“獨(dú)立學(xué)院IT類相關(guān)專業(yè)學(xué)生程序設(shè)計能力的研究與實(shí)踐”(課題編號:湘教通[2016]400號1068);湖南省大學(xué)生研究性學(xué)習(xí)和創(chuàng)新性實(shí)驗(yàn)計劃項目“基于設(shè)計模式角色的附加關(guān)系檢測研究”(課題編號:湘教通[2015]84號197)。

猜你喜歡
設(shè)計模式程序設(shè)計檢測
“1+1”作業(yè)設(shè)計模式的實(shí)踐探索
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
三維協(xié)同設(shè)計模式下的航天項目管理實(shí)踐與展望
基于Visual Studio Code的C語言程序設(shè)計實(shí)踐教學(xué)探索
從細(xì)節(jié)入手,談PLC程序設(shè)計技巧
交通機(jī)電工程設(shè)計模式創(chuàng)新探討
高職高專院校C語言程序設(shè)計教學(xué)改革探索
小波變換在PCB缺陷檢測中的應(yīng)用
乌拉特中旗| 安图县| 龙陵县| 且末县| 梓潼县| 德化县| 哈巴河县| 从化市| 富蕴县| 阳新县| 同德县| 宿松县| 萨迦县| 岐山县| 勃利县| 衡南县| 小金县| SHOW| 喀喇| 安康市| 乌兰县| 庆城县| 贵州省| 迁西县| 堆龙德庆县| 从化市| 克山县| 谢通门县| 黄梅县| 宝坻区| 军事| 商河县| 手游| 福州市| 红河县| 教育| 鄂伦春自治旗| 张掖市| 博野县| 江华| 涟源市|