楊 武,盧 玲,陳 媛
(重慶理工大學 計算機科學與工程學院,重慶 400050)
數據結構課程是計算機專業課程體系的重要組成部分。該課程一般面向普通高校本科二年級的計算機類及信息類各專業學生開設,主要學習基本數據結構[1],包括邏輯結構、存儲結構、算法設計與分析等相關理論,培養學生的模型抽象能力[2],為學生研究能力和創新能力的形成奠定基礎,在計算機專業課程體系中具有承上啟下的作用。
目前,分布式計算平臺及并行計算技術的發展帶來了計算力的極大增強,同時,各應用領域累積的數據規模不斷擴大,強大的計算力及大規模數據推動了人工智能技術研究及應用的爆發式增長。產業發展及學科研究的需要,對數據結構課程的教學內容及教學方式提出了新的要求。2017年,《教育部高等教育司關于開展新工科研究與實踐的通知》指出,希望各地高校開展新工科的研究實踐,并將新工科的主要研究內容歸納為工程教育的新理念、學科專業的新結構、人才培養的新模式、教育教學的新質量、分類發展的新體系。這五個“新”表明,傳統工科課程的教學內容及方式應面向產業需求,積極進行改革和升級。
數據結構課程的大案例具有三個主要特點,一是其數據包含簡單類型和復雜類型,二是案例數據的邏輯結構包含線性、樹形、圖形,三是案例數據的規模包含小規模、中規模和大規模。大案例主要運用于課程設計環節,由教師演示、講解,再指導學生完成。根據人才培養方案的要求,重慶理工大學數據結構課程的大案例構建應達成三個目標,即案例問題有吸引力、數據規模有壓迫性以及案例文檔有規范性。目前,數據結構課程的大案例構建面臨如下問題,影響著前述目標的達成。
(1)虛擬的案例問題和數據影響學習效果。一般案例建設都是教師根據教學需要,自行選取虛擬案例問題及案例數據。從教學的角度看,虛擬問題的小規模,暫且符合本科二年級學生尚未系統地學習軟件工程等專業課程的特點;但如果虛擬問題與實際工程問題完全脫節,則可能使學生失去學習興趣,例如“走迷宮問題”“八皇后問題”就不適合作為大案例運用。另外,虛擬的數據也因數據形態單一、數據規模小而使算法的性能難以顯現。目前,采用虛擬案例問題及數據的原因,主要是沒有針對科學研究及工程應用問題,積極挖掘和提煉實際問題中可供教學使用的案例資源。
(2)由任課教師獨立進行大案例構建,難以保證案例質量,同時影響案例建設的長效性。大案例有別于一般的實驗題目,其內容包括問題設計、方案設計、案例編碼、案例文檔資料等多個方面。目前,案例建設多由任課教師獨立進行,雖然教師具備科研和應用開發能力,但由于其主要著眼于教學,因此教師制作的案例在編碼規范、文檔編寫規范等方面,仍與實際工程項目存在差距。此外,大案例建設的工作量大、周期長,如何調動教師建設和運用大案例的積極性,形成使教學雙方受益的案例建設長效機制,也是大案例構建需要解決的重要問題。
針對上述大案例構建所面臨的主要問題,數據結構課程大案例構建思路如圖1所示。

圖1 數據結構課程大案例構建思路
由圖1可知,案例構建思路主要著眼于提取優質的案例資源以及組織科學的案例建設團隊。其中,優質案例資源來自于教師的科學研究項目和實際工程項目;案例建設團隊以任課教師為主導、學生創新團隊以及企業工程師協同進行。
1)自科學研究項目中提取大案例。
教師的科學研究項目一般面向學科的前沿問題,是優質的大案例資源。例如,教師的“面向網絡輿論場的情感語義嬗變機制”研究項目,其中包括對機器學習算法、自然語言處理技術的研究和運用。在自然語言處理中,文本的結構化及其處理,如文檔向量構建、文本相似度計算、文本特征提取等,都涉及數據邏輯結構分析及存儲結構設計;再如,目前廣受關注的神經網絡方法中存在大量的矩陣計算,這些都為數據結構課程分析數據的邏輯結構、存儲結構提供了良好范例。此外,科學研究項目所采用的數據多是面向真實應用的,例如使用社交網絡平臺的真實文本數據。這些數據具有豐富、多樣的特征,以文本文件 、超文本標記語言等多種格式存儲,且數據量巨大。使用這種多維、異構的數據,可以較好地訓練學生的數據分析能力,且數據規模的 巨大性也容易使算法性能得到顯現。
由于科學研究項目的上述特點,使其可以為數據結構課程提供豐富的范例,但科學研究問題的理論背景較深,用作教學案例時,需進行有針對性的提煉。首先提取其子問題作為案例內容,再將科研項目的研究背景作為案例的問題背景,然后把項目研究所采用的數據,制作成小規模、中規模和完整的數據集三個層次,分別提供給學生使用。例如,重慶理工大學數據結構課程從任課教師的“面向網絡輿論場的情感語義嬗變機制”項目中,分別提煉出“樸素貝葉斯新聞分類問題”“基于KNN的新聞文本分類問題”案例,學生主要運用線性表進行中文文本特征的提取及計算。此外,該項目中頻繁使用的“文本清洗”操作,多需檢索停用詞典,適合作為數據結構課程查詢算法的案例,學生運用線性、樹形結構進行停用詞典的存儲和檢索,可實現該案例。
在教學實踐中,課程組試探性將上述案例在本科一年級學生中,以手工計算小規模數據的方式進行講解,極大地調動了一年級學生對相關領域的學習興趣。在本科二年級的數據結構課程中,學生通過獨立編碼,運用中規模、大規模數據測試的方式實施前述案例,大部分學生能夠對科學研究有身臨其境的感受,并通過案例實施,對數據結構課程在課程體系中的作用有了更好的理解。
2)自實際工程項目中提取大案例。
源自實際工程項目的案例,最能反映產業需求,體現課堂教學與實際應用之間的關聯,因此也是大案例構建的重要資源。由于實際工程項目開發需經過項目論證、需求分析、系統設計、編碼、測試等多個環節,數據結構課程的教學顯然不必還原實際生產環境,僅需根據教學目標,從項目中提煉出適合教學的內容。
例如,在任課教師參與的“鐵路機車車號實時識別系統”項目中,由于企業對車號識別的準確率要求極高,系統的復雜性除源于圖像處理、識別算法外,還源于針對實際生產環境的多種策略設計。任課教師經分析,認為該項目的圖像處理與數據結構的教學具有較大相關性,而復雜的策略設計則不適合課程的教學,因此僅將圖像的基本操作從該項目中提取出來作為大案例。以該項目的開發背景作為案例的問題背景,再將圖像看成矩陣,在案例中設計包含矩陣存儲、矩陣轉置、矩陣乘積等操作內容,同時將該項目在實際應用場景中采集的部分真實圖像作為案例數據,有效提高了學生的學習興趣。
3)憑借教師豐富的項目實踐經驗,挖掘優質案例。
如前所述,科研和工程項目中蘊含著豐富的案例資源,但需要任課教師有針對性地進行提煉。這不僅要求教師具有良好的研究能力和豐富的開發經驗,熟悉項目背景及相關技術,同時也要求教師對課程教學目標理解準確,能主動探索和挖掘項目中與教學相關聯的知識,將其轉化為教學內容。因此,應首先從任課教師參與的研究項目中選取案例,另外,課程組還應組織和參與廣泛的學習、交流活動,探索專業教師所研究課題中的案例資源。
結構合理的案例建設團隊,是大案例構建質量和效率的保證。大案例的構建應以多方協同的方式進行,通過調動專業建設資源服務于案例建設,激發任課教師建設和實施大案例的積極性,為大案例的維護、更新及案例建設的可持續性提供保證。如圖1所示,論文提出的案例建設團隊包括任課教師、學生創新團隊和企業工程師。其中,以任課教師為案例構建的主導,學生創新團隊主要協助教師完成案例編碼和文檔編制工作,企業工程師主要對案例內容及文檔規范進行指導,協同進行大案例的構建。
1)組織學生創新團隊參與案例建設。
由于大案例的構建包括問題設計、系統設計、編碼、文檔編寫等多方面內容,建設工作量大,周期較長,因此,構建過程以教師為主導、創新實驗室學生為主體的方式進行。首先由任課教師提出案例建設構想及案例設計方案,再由課程組對大案例所覆蓋的知識點、能力點進行論證;后續案例編碼及文檔編制,由任課教師組織學生創新團隊聯合進行。例如,重慶理工大學數據結構課程的“基于KNN的新聞文本分類問題”大案例構建流程如下:①任課教師提出“基于KNN的新聞文本分類問題”案例建設構想及案例設計方案;②課程組根據專業人才培養方案,對案例所覆蓋的知識點,與人才培養的能力點進行對照和論證;③任課教師組織創新實驗室學生團隊,聯合進行案例編碼和文檔編制;由任課教師制定案例編碼規范及案例文檔規范;④參與大案例建設的學生創新團隊,成為課程實踐教學的助教團隊。實驗室通過招新更新助教團隊,助教團隊內部進行傳、幫、帶,配合任課教師進行大案例的維護和更新。
上述方法較好地規范了大案例的構建流程,一是通過課程組對案例設計方案的論證,在一定程度上保證案例質量;二是充分調動了專業實驗室的學生創新團隊輔助課程建設,較好地緩解了教師因案例建設工作量大導致的積極性不足的問題。同時,通過案例建設,可以提高實驗室學生創新團隊的綜合能力,鍛煉和帶動一批本科學生助教,使大案例的構建和教學實踐形成使教師、學生雙方受益的良性循環,保證案例建設的長效性。
雖然論文提出以教師為主導、學生團隊為主體的案例構建方法,但是為保證教師能準確把握案例實施的重點、難點問題,在案例構建時,應保證任課教師的高參與度。例如,重慶理工大學的大案例構建由任課教師獨立完成案例第一版本,再以教師為主導、學生團隊為主體進行后續的案例升級和維護。
2)引入企業工程師指導案例構建。
大案例不僅應在背景問題上契合企業需求,同時在案例編碼、文檔編制方面,都應符合一定的規范。對此,可邀請合作企業的工程師協同進行案例構建,對案例編碼、文檔規范等進行指導。例如,重慶理工大學的“機車圖像中的車號識別”案例在建設時,多次邀請該項目的合作企業工程師進校講座,與教師及學生進行研討。目前,重慶理工大學計算機專業申請的教育部產學合作協同育人項目,也計劃借鑒Oracle公司的成功商業案例,用于指導專業課程教學大案例的制作規范。
重慶理工大學數據結構課程面向產業需求,以深化高等工程教育改革[3]、培養高水平應用型人才為目標,提出了建設具有“一定規模、一定邏輯結構、一定形態”的大案例[4]的實踐教學內容,建設目標是滿足產業對高水平應用型計算機本科人才的需求,并在課程實踐內容建設方面進行有益探索。筆者針對大案例構建中面臨的問題,提出從教師科研項目、工程實踐項目中提煉優質案例資源,以教師、學生創新團隊、企業工程師協同的方式,進行大案例構建。這種構建方法,可以較好地調動教師將科研成果轉化為教學內容的積極性,培養一批富有責任感和良好工程實踐能力的學生創新團隊,同時引入企業工程師參與教學案例建設,為計算機專業培養高水平應用型人才探索出了多種途徑。近兩年,重慶理工大學運用這種案例構建方法,數據結構課程已逐步建設了“樸素貝葉斯新聞分類問題”“基于KNN的新聞文本分類問題”案例,同時正在建立“結合倒排索引的問答系統”“機車圖像中的車號識別”等大案例。這些案例運用在數據結構的課程設計中,取得了良好的教學效果。此外,課程組試探性地在本科一年級學生的計算機導論課程中講解大案例,引發了學生對相關領域濃厚的學習熱情。重慶理工大學本科學生廣泛參與各類大數據、智能計算領域的競賽,如CCF中文信息評測、中國大數據創新創業大賽等,取得了良好成績,這與數據結構課程逐步運用大案例,進行實踐教學內容改革和升級是密切相關的,從一定程度反映了課程教學目標的達成。筆者將在如何有效地推進大案例實施和針對大案例的教學方法設計方面展開進一步的研究。