馮翱,朱燁,李莉麗
(成都信息工程大學(xué) 計(jì)算機(jī)學(xué)院,四川 成都)
《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)學(xué)科的核心課程之一,在ACM-IEEE 課程體系中一般被編號(hào)為CS2,是在CS1(基礎(chǔ)程序設(shè)計(jì)語言)之后的第二門專業(yè)課程。數(shù)據(jù)結(jié)構(gòu)作為培養(yǎng)程序設(shè)計(jì)能力的核心專業(yè)課程,在問題理解、抽象、設(shè)計(jì)和實(shí)現(xiàn)這個(gè)流程中對(duì)于計(jì)算思維的形成起到關(guān)鍵性作用[1]。由于該課程概念多,并且通常講解方式較為抽象,如果不能有效地與工程應(yīng)用結(jié)合,對(duì)于部分學(xué)生來說理解難度較大[2]。
數(shù)據(jù)結(jié)構(gòu)課程中算法復(fù)雜度是最重要的知識(shí)點(diǎn)之一[3],通常在教材的第一章作為基礎(chǔ)內(nèi)容和方法出現(xiàn)。算法復(fù)雜度包含時(shí)間復(fù)雜度和空間復(fù)雜度兩個(gè)概念,分別衡量在一定規(guī)模的輸入數(shù)據(jù)下,程序運(yùn)行時(shí)間和額外占用空間相對(duì)于問題規(guī)模n 的漸近復(fù)雜度。前者判斷在問題規(guī)模較大時(shí),是否能夠以比較高的時(shí)間效率完成確定性算法的執(zhí)行,而后者決定算法運(yùn)行過程中的臨時(shí)數(shù)據(jù)是否能夠同時(shí)在處理效率較高的物理介質(zhì)中進(jìn)行操作。通常在數(shù)據(jù)結(jié)構(gòu)的教學(xué)過程中不涉及規(guī)模過大的數(shù)據(jù)集,而且多數(shù)算法不會(huì)用到超過多項(xiàng)式級(jí)別的空間復(fù)雜度。除了外部排序(在數(shù)據(jù)結(jié)構(gòu)課程中一般是選學(xué)內(nèi)容)之外,基本不會(huì)發(fā)生頻繁的內(nèi)外存數(shù)據(jù)交換,因此在提到算法復(fù)雜度的時(shí)候,大多數(shù)情況下重點(diǎn)關(guān)注的是時(shí)間復(fù)雜度。
對(duì)于算法復(fù)雜度分析的應(yīng)用貫穿于整門課程的教學(xué)過程中。后續(xù)章節(jié)通常是以一類數(shù)據(jù)結(jié)構(gòu)為核心,講解其類型定義、在不同存儲(chǔ)結(jié)構(gòu)下的實(shí)現(xiàn)以及在具體場(chǎng)景中的應(yīng)用。對(duì)于每種物理實(shí)現(xiàn)(如順序或鏈?zhǔn)酱鎯?chǔ))下的具體操作,都需要進(jìn)行時(shí)間和空間復(fù)雜度分析,一方面是加深學(xué)生對(duì)于算法過程和資源需求的理解,另一方面復(fù)雜度分析決定了在資源受限場(chǎng)景下數(shù)據(jù)結(jié)構(gòu)和算法選擇的優(yōu)先級(jí)和可行性。從某個(gè)層面上來說,對(duì)于算法復(fù)雜度的正確分析決定了學(xué)生是否能夠真正理解問題的困難程度,并在真實(shí)場(chǎng)景中選擇適當(dāng)?shù)乃惴▽?duì)其進(jìn)行合理應(yīng)用。
在數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)過程中,算法復(fù)雜度的內(nèi)容相對(duì)來說是掌握情況較差的。對(duì)于特定邏輯結(jié)構(gòu)下的指定算法,例如標(biāo)準(zhǔn)的內(nèi)部排序,經(jīng)過反復(fù)的講解和練習(xí)后,大多數(shù)學(xué)生能夠掌握其算法思路,并能在標(biāo)準(zhǔn)化場(chǎng)景下進(jìn)行應(yīng)用。但如果要求學(xué)生對(duì)于特定算法的復(fù)雜度進(jìn)行獨(dú)立分析,很大一部分的學(xué)生不能給出清晰的推導(dǎo)過程和結(jié)果,歷次考試中算法復(fù)雜度分析的題目得分率普遍在50%之下。經(jīng)過與多屆學(xué)生的反復(fù)溝通,這個(gè)知識(shí)點(diǎn)掌握困難的主要原因包括概念的抽象性、課程教學(xué)中問題規(guī)模過小和缺少真實(shí)應(yīng)用案例三方面。
算法復(fù)雜度的形式定義是使用數(shù)學(xué)中的漸近上下界來描述的,以漸近上界的定義為例:
雖然計(jì)算機(jī)類專業(yè)的學(xué)生在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)之前一般都完成了高等數(shù)學(xué)課程的內(nèi)容,要求他們用數(shù)學(xué)的方式閱讀并對(duì)該公式進(jìn)行解釋,對(duì)于絕大多數(shù)的學(xué)生有很大的困難[4]。相對(duì)來說,采用圖1 所示的方式直觀性地加以解說,對(duì)于有一定數(shù)學(xué)基礎(chǔ)的學(xué)生來說基本都能夠接受。
圖1 算法復(fù)雜度知識(shí)點(diǎn)中漸近上界的圖形化說明
對(duì)于漸近下界Ω()和漸近緊確界Θ()的講解也有類似的情況。從大多數(shù)數(shù)據(jù)結(jié)構(gòu)教材的內(nèi)容中可以觀察到,雖然多數(shù)基本算法在進(jìn)行復(fù)雜度分析時(shí)嘗試找到的是漸近緊確界,為了降低學(xué)生的理解難度,描述復(fù)雜度時(shí)通常都使用漸近上界符號(hào)O()。
時(shí)間復(fù)雜度的變化會(huì)帶來算法運(yùn)行時(shí)間的較大差異,但這個(gè)差異一般要在輸入數(shù)據(jù)的大小達(dá)到一定規(guī)模時(shí)才能夠被明顯觀察到。出于教學(xué)演示的需求,無論是教材和課件中用到的例子,以DSDemo[5]為代表的算法演示系統(tǒng),還是課程中設(shè)計(jì)的實(shí)驗(yàn)環(huán)節(jié),輸入數(shù)據(jù)集的大小通常不超過20。在這樣的小規(guī)模數(shù)據(jù)集上,具有不同運(yùn)行效率的同類算法在運(yùn)行時(shí)間上沒有明顯的區(qū)別。以內(nèi)部排序算法為例,雖然我們知道簡(jiǎn)單排序算法中的冒泡排序具有較高的時(shí)間復(fù)雜度,而復(fù)雜排序算法中的快速排序、堆排序等的平均時(shí)間復(fù)雜度為,對(duì)于實(shí)驗(yàn)中用到的小規(guī)模數(shù)據(jù),實(shí)際執(zhí)行時(shí)間都在毫秒級(jí)。如果嚴(yán)格執(zhí)行計(jì)時(shí)程序,經(jīng)常會(huì)出現(xiàn)簡(jiǎn)單算法運(yùn)行更快的結(jié)果,這是因?yàn)樗鼈儐未螆?zhí)行的指令更少,在執(zhí)行次數(shù)差別不大的前提下總的運(yùn)行時(shí)間可能更短。如果在不加限制的條件下要求學(xué)生實(shí)現(xiàn)一個(gè)排序算法,大多數(shù)學(xué)生毫不猶豫地選擇了冒泡排序,主要原因是實(shí)現(xiàn)簡(jiǎn)單。在小規(guī)模數(shù)據(jù)場(chǎng)景下這樣的判斷并沒有錯(cuò),但在他們畢業(yè)進(jìn)入正式的工程應(yīng)用環(huán)境后,冒泡排序顯然不是一個(gè)好的默認(rèn)選項(xiàng)。
作為對(duì)于真實(shí)工程需求的一個(gè)介紹,在數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中引入了TeraSort 的例子,這是一個(gè)Hadoop 時(shí)代的典型案例。隨著計(jì)算機(jī)軟硬件的不斷發(fā)展,Jim Gray 建立的Sort Benchmark 上這個(gè)任務(wù)已經(jīng)被MinuteSort 取代,2016 年騰訊的紀(jì)錄就已經(jīng)達(dá)到一分鐘排序37TB(非定制化算法)或55TB(定制優(yōu)化)數(shù)據(jù)的水平。但這樣規(guī)模的數(shù)據(jù)對(duì)于課程教學(xué)環(huán)節(jié)來說,是大大超出學(xué)生理解范圍的。在類似數(shù)據(jù)規(guī)模下的任何算法問題,對(duì)于時(shí)間復(fù)雜度都會(huì)有很高的敏感度。假定單臺(tái)計(jì)算設(shè)備有足夠的內(nèi)存,并且編譯器支持分配TB 級(jí)的內(nèi)存空間(多數(shù)高校的教學(xué)設(shè)備應(yīng)該滿足不了這些條件),對(duì)于不同排序算法的運(yùn)算時(shí)間估計(jì)是一個(gè)很有意思的問題,而這樣來自于真實(shí)工程需求的問題對(duì)于他們加深對(duì)算法復(fù)雜度的理解,乃至考慮類似工程問題的算法設(shè)計(jì)思路都是很有幫助的。在我們的課程教學(xué)中,明顯缺失了這一部分內(nèi)容,而這恰恰是學(xué)生從書本知識(shí)過渡到真實(shí)工程需求中欠缺的關(guān)鍵環(huán)節(jié)。
針對(duì)數(shù)據(jù)結(jié)構(gòu)課程中學(xué)生對(duì)于算法復(fù)雜度理解困難的現(xiàn)狀,課程組使用外部數(shù)據(jù)源和開源框架引入真實(shí)數(shù)據(jù)集,讓學(xué)生對(duì)于大規(guī)模問題有直觀的感受和更高的參與興趣,并面向不同層次的學(xué)生嘗試多種形式、不同規(guī)模的項(xiàng)目實(shí)踐活動(dòng),收集了學(xué)生的直觀反饋,以指導(dǎo)相關(guān)知識(shí)點(diǎn)教學(xué)過程的持續(xù)改進(jìn)。
為了在教學(xué)環(huán)節(jié)中讓學(xué)生有機(jī)會(huì)接觸到更大規(guī)模的真實(shí)數(shù)據(jù),課程組對(duì)高校教學(xué)領(lǐng)域現(xiàn)有的數(shù)據(jù)源和訪問框架進(jìn)行了調(diào)研。BRIDGES[6]為數(shù)據(jù)結(jié)構(gòu)課程提供了訪問多個(gè)真實(shí)數(shù)據(jù)集的簡(jiǎn)單接口,目前已經(jīng)包含Twitter、Facebook 等多個(gè)數(shù)據(jù)源,同時(shí)為了對(duì)于數(shù)據(jù)有直觀的認(rèn)知,還包含了數(shù)據(jù)可視化的功能。RealTimeWeb[7]在計(jì)算機(jī)課程的教學(xué)中使用了實(shí)時(shí)更新的在線數(shù)據(jù)集,在不接觸太多實(shí)現(xiàn)細(xì)節(jié)的前提下讓學(xué)生熟悉數(shù)據(jù)處理的基本原理。在計(jì)算機(jī)領(lǐng)域之外,CORGIS[8]涵蓋了歷史、政治、醫(yī)藥、教育等多個(gè)領(lǐng)域的40 多個(gè)數(shù)據(jù)集。經(jīng)過對(duì)這些框架的調(diào)研和比較,選擇了最適合相關(guān)課程的BRIDGES 框架,經(jīng)過移植和封裝后提供了使用樣例和說明文檔,供后續(xù)項(xiàng)目和其他教學(xué)環(huán)節(jié)使用。
數(shù)據(jù)結(jié)構(gòu)的課程項(xiàng)目設(shè)計(jì)中給出了一個(gè)算法復(fù)雜度分析的題目,要求在較大規(guī)模的數(shù)據(jù)集上實(shí)現(xiàn)至少一種時(shí)間復(fù)雜度為和一種復(fù)雜度為的排序算法,并且用實(shí)驗(yàn)的方法確定其復(fù)雜度。為了體現(xiàn)不同復(fù)雜度階次算法之間的性能差異,數(shù)據(jù)規(guī)模要求在10 萬條以上,這有效地避免了因?yàn)閿?shù)據(jù)量過小導(dǎo)致使用復(fù)雜度的簡(jiǎn)單排序算法運(yùn)行效率更高的情況。此外,題目要求對(duì)于算法真實(shí)運(yùn)行時(shí)間或者基本操作執(zhí)行次數(shù)進(jìn)行記錄,讓學(xué)生能夠更直觀地感覺到算法選擇對(duì)于執(zhí)行效率的影響。雖然這只是一個(gè)小規(guī)模的實(shí)踐項(xiàng)目,相對(duì)傳統(tǒng)課堂上的“小”數(shù)據(jù),這是一個(gè)更接近于真實(shí)工程應(yīng)用規(guī)模的虛擬場(chǎng)景。從提交的結(jié)果看來,這個(gè)項(xiàng)目一方面對(duì)于線性回歸、最小二乘法等數(shù)學(xué)知識(shí)提供了額外的學(xué)習(xí)機(jī)會(huì),更有價(jià)值的收獲是“不僅學(xué)會(huì)了多種排序算法,更對(duì)時(shí)間復(fù)雜度的概念有了深刻的理解,還把數(shù)學(xué)知識(shí)和編程、算法,聯(lián)系到了一起,對(duì)未來的編程道路有一定的啟發(fā)作用”。學(xué)生從計(jì)時(shí)結(jié)果上真實(shí)感受了較大數(shù)據(jù)規(guī)模下時(shí)間復(fù)雜度算法的明顯優(yōu)勢(shì),并有更高積極性去深入分析兩類算法的機(jī)制差異,嘗試?yán)斫猱a(chǎn)生這個(gè)復(fù)雜度變化的原因。
由于數(shù)據(jù)結(jié)構(gòu)課程在大二上學(xué)期設(shè)置,學(xué)生的數(shù)學(xué)基礎(chǔ)、程序設(shè)計(jì)能力和對(duì)工程問題的理解還比較有限,設(shè)計(jì)和實(shí)現(xiàn)一個(gè)具有更高通用性的復(fù)雜度分析系統(tǒng)對(duì)于這個(gè)階段的學(xué)生有一定難度。在本科畢業(yè)設(shè)計(jì)階段,將《算法時(shí)間復(fù)雜度分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》作為備選題目之一,并提出了更高的要求。增加的主要功能包括:
(1) 對(duì)于不同格式、不同來源的輸入數(shù)據(jù)進(jìn)行讀取和清洗,去掉異常數(shù)據(jù);
(2) 對(duì)于自定義算法,在滿足輸入輸出接口一致的前提下,能夠支持復(fù)雜度分析功能;
(3) 有效地去除擬合結(jié)果中的噪聲,得到算法對(duì)應(yīng)復(fù)雜度公式中最主要的函數(shù)項(xiàng),該結(jié)果在不同設(shè)備上具有較好的一致性。
在算法復(fù)雜度分析中,對(duì)指令/ 代碼進(jìn)行計(jì)數(shù)是比較常用的方法,但該方法通常只適用于固定代碼,對(duì)于自定義算法來說難以實(shí)現(xiàn)。如果采用運(yùn)行計(jì)時(shí)的方法,對(duì)于設(shè)備的各種參數(shù)和運(yùn)行時(shí)負(fù)載情況又比較敏感。為了得到跨設(shè)備一致的分析結(jié)果,學(xué)生設(shè)計(jì)了一段包含主要運(yùn)算操作的基準(zhǔn)代碼,用同一設(shè)備上算法運(yùn)行時(shí)間和基準(zhǔn)代碼運(yùn)行時(shí)間的比值作為相對(duì)復(fù)雜度,這樣在一定程度上排除了軟硬件環(huán)境對(duì)于運(yùn)行時(shí)間的影響。針對(duì)離群點(diǎn)影響最終擬合結(jié)果的情況,又引入了基于M 估計(jì)的最小二乘法,保證擬合曲線與實(shí)驗(yàn)數(shù)據(jù)有較好的一致性,系統(tǒng)展示的擬合結(jié)果如圖2 所示。
圖2 歸并排序算法在有較多離群點(diǎn)時(shí)的擬合結(jié)果
學(xué)生在對(duì)于該系統(tǒng)的總結(jié)中提到:“完成的系統(tǒng)表現(xiàn)出良好的擬合效果,得到的曲線與訓(xùn)練數(shù)據(jù)樣本高度重合,并表現(xiàn)出良好的穩(wěn)定性與可靠性。該系統(tǒng)提供可視化交互式界面,可以對(duì)外界的真實(shí)數(shù)據(jù)進(jìn)行操作,這有利于學(xué)生在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程時(shí)將教材內(nèi)容與真實(shí)問題接軌,提高學(xué)生的學(xué)習(xí)積極性與參與度?!边@與系統(tǒng)的設(shè)計(jì)目標(biāo)一致。
從已經(jīng)實(shí)施的教學(xué)環(huán)節(jié)中可以看到,教學(xué)過程中的小數(shù)據(jù)依然是制約學(xué)生對(duì)算法復(fù)雜度深入理解的主要障礙。而要解決這個(gè)數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中的共有問題,主要考慮從真實(shí)數(shù)據(jù)、實(shí)踐案例和師資水平三方面加以改進(jìn)。
在很多學(xué)生的反饋中都提到,當(dāng)數(shù)據(jù)規(guī)模較小時(shí),不同算法的運(yùn)行時(shí)間差別并不明顯,甚至?xí)霈F(xiàn)理論復(fù)雜度低的算法運(yùn)行時(shí)間更長(zhǎng)的情況。當(dāng)達(dá)到一定數(shù)據(jù)規(guī)模之后,不同類別算法的運(yùn)行時(shí)間就明顯展示出了增長(zhǎng)速度的差異。這也展現(xiàn)了課堂教學(xué)和工程應(yīng)用中的場(chǎng)景特征。在教學(xué)環(huán)節(jié),如果我們繼續(xù)使用小規(guī)模的“偽”數(shù)據(jù),對(duì)于學(xué)生來說如何用最簡(jiǎn)單的代碼實(shí)現(xiàn)要求的功能就會(huì)成為他們進(jìn)行方案選擇的第一優(yōu)先。而在真實(shí)工程技術(shù)場(chǎng)景下,對(duì)于大規(guī)模數(shù)據(jù)進(jìn)行處理的運(yùn)行效率直接決定實(shí)現(xiàn)方案的可用性。為了彌合二者之間的差異,引入大規(guī)模的外部數(shù)據(jù),尤其是現(xiàn)實(shí)應(yīng)用中的真實(shí)數(shù)據(jù),是提高學(xué)生工程應(yīng)用能力的必要環(huán)節(jié)。
從現(xiàn)在已經(jīng)嘗試的工作來看,算法復(fù)雜度至少對(duì)于本科低年級(jí)學(xué)生來說是一個(gè)具有一定難度的概念,其原因除了講解方式較為抽象以外,缺少具有足夠規(guī)模的真實(shí)問題,讓他們感受不到復(fù)雜度差異對(duì)于運(yùn)行效率的影響,是現(xiàn)有教學(xué)過程中不足之處?,F(xiàn)階段工程技術(shù)教育逐漸融入到高校教學(xué)過程中,這是一個(gè)良好的改進(jìn)契機(jī)。不少高校的培養(yǎng)方案中將工程實(shí)踐、企業(yè)實(shí)習(xí)等納入本科必修的教學(xué)環(huán)節(jié),在工程實(shí)踐教學(xué)過程中,可以適當(dāng)?shù)匾雭碜云髽I(yè)或者社會(huì)的真實(shí)數(shù)據(jù),并提供將教材所學(xué)數(shù)據(jù)結(jié)構(gòu)和算法應(yīng)用于真實(shí)需求中的實(shí)踐案例。這對(duì)于學(xué)生來說,一方面能夠更早接觸行業(yè)需求,了解自己應(yīng)該學(xué)什么,另一方面解決真實(shí)問題的成就感遠(yuǎn)遠(yuǎn)超過完成教材上的幾道習(xí)題,對(duì)于學(xué)習(xí)興趣和動(dòng)力也會(huì)有更大的促進(jìn)。
對(duì)于相關(guān)課程的任課教師來說,從校園到校園的純學(xué)術(shù)型人才已經(jīng)不能滿足信息學(xué)科發(fā)展的需求了。獲取行業(yè)實(shí)踐經(jīng)驗(yàn),根據(jù)經(jīng)濟(jì)和社會(huì)需求相應(yīng)調(diào)整課程教學(xué)的內(nèi)容和手段,也是持續(xù)提高教學(xué)水平、教學(xué)效果和個(gè)人能力的需要。此外,在與企業(yè)的聯(lián)合培養(yǎng)過程中引入更多的工程技術(shù)型校外導(dǎo)師,也是對(duì)于現(xiàn)有以學(xué)術(shù)型人才為主的高校師資的重要補(bǔ)充。
算法復(fù)雜度問題在很長(zhǎng)一段時(shí)間之內(nèi)都會(huì)是數(shù)據(jù)結(jié)構(gòu)課程的重點(diǎn)和難點(diǎn)之一,主要原因包括漸近復(fù)雜度概念的抽象化、課程中使用數(shù)據(jù)規(guī)模過小,以及真實(shí)工程應(yīng)用場(chǎng)景在課程教學(xué)環(huán)節(jié)中的缺失。對(duì)于這個(gè)概念內(nèi)涵理解的不夠深入使得在課程各階段的考核中學(xué)生的得分率偏低,同時(shí)在需要根據(jù)問題規(guī)模進(jìn)行算法選擇時(shí),很多情況下學(xué)生傾向于實(shí)現(xiàn)最簡(jiǎn)單的高復(fù)雜度算法,這些都是算法復(fù)雜度部分教學(xué)效果不佳的直觀體現(xiàn)。
為解決這些問題,在本科數(shù)據(jù)結(jié)構(gòu)課程和畢業(yè)論文等幾個(gè)階段通過課程項(xiàng)目和畢業(yè)設(shè)計(jì)等方式進(jìn)行了一些教學(xué)模式的實(shí)踐和研究。從執(zhí)行情況來看,選擇這些項(xiàng)目的學(xué)生會(huì)有意識(shí)地對(duì)相關(guān)算法、數(shù)學(xué)基礎(chǔ)和算法復(fù)雜度分析的方法進(jìn)行學(xué)習(xí),并通過一定規(guī)模下的實(shí)驗(yàn)真實(shí)體會(huì)不同復(fù)雜度對(duì)于算法運(yùn)行效率的影響。從教師的教學(xué)觀察和參與學(xué)生的直接反饋得知,參與這些教學(xué)環(huán)節(jié)使得學(xué)生對(duì)于相關(guān)概念和方法的理解有一定提高。
基于現(xiàn)有問題和教學(xué)研究已取得的成果,為了更為全面地改善數(shù)據(jù)結(jié)構(gòu)課程中對(duì)于復(fù)雜度的理解,提高教學(xué)效果和在后續(xù)工程實(shí)踐場(chǎng)景中的有意識(shí)應(yīng)用,下一步主要計(jì)劃從以下幾個(gè)方面對(duì)于培養(yǎng)過程進(jìn)行改進(jìn)。
(1) 引入真實(shí)外部數(shù)據(jù),以增強(qiáng)學(xué)習(xí)興趣,并理解真實(shí)大數(shù)據(jù)場(chǎng)景下復(fù)雜度對(duì)于算法選擇和運(yùn)行效率的影響;
(2) 聯(lián)合相關(guān)企業(yè)構(gòu)建工程實(shí)踐環(huán)節(jié),讓學(xué)生理解行業(yè)真實(shí)需求,并有意識(shí)地進(jìn)行按需學(xué)習(xí);
(3) 引入具有豐富實(shí)踐經(jīng)驗(yàn)的企業(yè)導(dǎo)師,并在高校中通過多種方式培養(yǎng)更多的雙師型教師,提高整體師資水平,給學(xué)生書本知識(shí)之外的全方面培養(yǎng)。
算法復(fù)雜度只是現(xiàn)有教學(xué)模式下暴露出來的一個(gè)知識(shí)難點(diǎn),而對(duì)應(yīng)的改進(jìn)方案也不僅僅是為了解決這一個(gè)問題,其核心思路是將學(xué)校的培養(yǎng)過程與行業(yè)發(fā)展和企業(yè)所需的知識(shí)體系結(jié)合,培育面向市場(chǎng)需求的高素質(zhì)綜合型人才。
致謝感謝王維寬提供基于BRIDGES 的外部數(shù)據(jù)引入代碼和文檔,感謝在數(shù)據(jù)結(jié)構(gòu)課程項(xiàng)目中選擇算法復(fù)雜度題目的吳晶、王奧等同學(xué),感謝李杏作為畢業(yè)設(shè)計(jì)項(xiàng)目完成的算法復(fù)雜度分析系統(tǒng)。