虛擬實驗開發的數據結構課程設計探討

前言:尋找寫作靈感?中文期刊網用心挑選的虛擬實驗開發的數據結構課程設計探討,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。

虛擬實驗開發的數據結構課程設計探討

摘要:在工程教育專業認證背景下,針對原有教學模式下數據結構課程設計過程中存在的問題,提出一種基于面向對象的虛擬實驗開發課程設計教學模式。將本課程的核心算法,通過面向對象的開發方式進行過程和結果的GUI展示,有效地培養學生解決復雜工程問題的能力。

關鍵詞:數據結構;虛擬實驗;課程設計;面向對象編程;工程教育專業認證

數據結構課程是計算機類專業的一門專業基礎課,是后續數據庫、操作系統、計算機網絡、編譯原理等課程的重要基礎[1]。該課程是一門理論與實踐緊密結合的課程,對學生的實踐能力培養發揮重要作用。本課程的教學目標是培養學生對數據的認識和理解能力、邏輯思維能力、算法設計與分析能力、程序設計和實驗能力。一般情況下,本課程的教學計劃中均安排理論教學、實驗教學和課程設計三個教學環節。數據結構課程設計作為本課程理論教學和實驗教學完成后的實踐環節。在工程教育專業認證背景下,學生在此實踐環節,能夠通過建立抽象數據模型來解決復雜工程問題,并對復雜工程問題的解決方案持續改進和優化[2]。因此,數據結構課程設計在課程體系乃至專業體系中占有非常重要的地位。

1數據結構課程設計教學現狀

本課程的理論內容復雜、抽象,課程內容主要圍繞線性結構(線性表、棧、隊列、串、數組和列表)、樹形結構和圖形結構的三大邏輯結構、查找和排序兩大應用展開[3]。課程大綱均結合章節內容安排一定數量的上機實驗,實驗內容大多圍繞三大邏輯結構和兩大應用來設計,要求學生通過編碼的方式來解決一些問題,如約瑟夫問題、進制轉換、二叉樹的遍歷、折半查找、快速排序等。實驗多以某種程序設計語言(如C語言、C++等)的編譯器為實驗環境,以學生調試通過解決問題的程序作為主要評價依據,以實驗報告作為課程設計成果。由于程序設計基礎能力和邏輯思維能力的差別較大,學生的學習效果存在很大的不確定性。課程理論與實驗教學結束后,一般會安排1~2周的課程設計,內容多圍繞線性結構和非線性結構(樹或圖)進行設計,如大數相乘、表達式求值、迷宮求解、哈夫曼樹編碼和譯碼、最短路徑、線索二叉樹、二叉排序樹和平衡二叉樹的創建與應用等問題。課程設計具有如下特點:一是學生會參考一些資料,將所要解決的問題的程序驗證性地調試通過;二是程序的運行結果比較單調,如常規C語言編譯器的運行結果(字符模式);三是抄襲現象比較嚴重,特別是當題目相似時,更是無法避免。嚴格意義上說,設計過程應包括需求分析、邏輯設計、詳細設計、編碼和測試。但原有模式下的課程設計,學生往往會直接進行代碼編寫,達不到課程設計的目的,與工程教育專業認證的要求相差甚遠,無法培養學生解決復雜工程問題的能力[4]。

2基于面向對象的虛擬實驗開發的數據結構課程設計模式

2.1設計思路

課程設計主要是基于面向對象的虛擬實驗開發來解決原有課程設計中出現的一些問題,在提升程序運行效果的同時,嚴格按照軟件工程的要求來完成課題任務,這會極大地提升課程設計環節的訓練質量,有效地培養解決復雜工程問題的能力。關于學生的開發能力,根據我校的情況,數據結構課程結束時,學生同步完成了面向對象編程技術課程,已初步具備面向對象的開發能力,通過課程設計,有助于其提升面向對象的開發能力。為了配合課程設計改革,本課程的教學和實驗過程中需做好以下幾項工作:一是生動地上好開學第一課,讓學生了解本課程在專業中的地位、課程內容與學習方法、課程資源與評價體系,展示往屆學生的優秀作品,激發學生的學習興趣與積極性;二是學期中間的實驗教學,借助網絡資源,加大面向對象程序設計方法的指導力度,為實驗結束后的課程設計環節做好鋪墊;三是注意教學方法的多樣性,在發揮教師主導性的前提下,可利用MOOC資源結合翻轉課堂等手段提高學生的參與度,為課程設計環節的團隊作戰創造條件;四是加大指導期間的觀察力度,客觀評價每位同學在小組中的貢獻,完善課程設計環節的考核方式。

2.2設計選材和要求

課程設計題目取材于課程大綱的重要知識點,在理解相關算法的基礎上,通過面向對象的開發方式展現算法的實現過程,同時呈現圖形用戶界面(GUI)的運行結果。有些問題的初始化過程能夠支持人機對話方式的實現,這樣能夠保證所要解決問題的動態規模,有效提高程序的適應能力。表1是筆者在課程設計教學實施過程中總結的參考選題及設計要求。

2.3設計案例展示

圖1~圖3展示了哈夫曼樹的創建及編碼過程示例。操作步驟如下:第一,通過“操作”→“設置”菜單打開“設置”對話框,輸入結點數及對應權值,其中葉子對應字符按英文字母索引次序自動分配;第二,權值設置完成后,即可通過單擊左邊窗口中的“下一步”按鈕觀看創建過程,此步的邏輯過程需要哈夫曼樹創建算法支持,同時通過開發工具支持的繪圖功能將結點組成的各個子樹繪制于主窗口(動態演示過程如圖2所示);第三,最終創建的哈夫曼樹及其編碼表如圖3所示。此案例是在VisualC++6.0開發環境下完成的,基于單文檔模式開發。課程設計前,通過錄制好的視頻對學生的開發能力做短期培訓,特別是VC++環境下基于MFC的繪圖技術。

3結語

數據結構課程是計算機類專業的核心專業基礎課程,在專業中所處的地位毋庸置疑。在實現課程教學大綱基本要求的前提下,通過面向對象的虛擬實驗開發的課程設計環節,提升課題完成質量的同時,很好地訓練了學生的綜合開發能力,有利于培養學生解決復雜工程問題的能力。這種課程設計的改革,從表面上看增加了學生開發的難度,但從實施效果來看,學生的積極性反而得到了很好的調動,學生完成了一些非常好的作品,抄襲現象有所減少,教學效果比原有模式要好。數據結構課程設計對本課程后續課程的教學改革起到了激勵作用,課程組教師也就更加堅定了這種模式的改革。

作者:儲岳中 程澤凱 秦鋒 單位:安徽工業大學計算機科學與技術學院

亚洲精品一二三区-久久