

摘要:針對數據結構與算法課程理論聯系實際的特點,文章提出在課程建設過程中應不斷完善課程體系,加強團隊建設,深入教學改革以及豐富教學資源,從培養學生的興趣入手,注重學生思維能力、動手能力和創新能力的培養,最終達到提高教學質量的目的。
關鍵詞:數據結構;課程體系;實踐教學;課程群
1背景
數據結構與算法是計算機類專業的一門核心基礎課程,是計算機、軟件工程等電子信息類專業的必修課。本課程較系統地介紹了軟件設計中常用的數據結構以及相應的存儲結構和實現算法;介紹了常用的多種查找和排序技術,并對其進行性能分析和比較,內容非常豐富[1-2]。本課程的教學目標是加強學生對數據邏輯關系的分析與認識,培養學生數據抽象的能力,通過理論分析與編程實踐相結合,增強學生求解復雜問題的能力以及控制算法復雜性的能力。
在計算機科學中,數據結構不僅是程序設計的基礎,而且是設計和實現編譯程序、操作系統、數據庫系統等系統程序和各種大型應用程序的重要基礎[3]。數據結構與算法是計算機類專業部分專業課的先導課,如操作系統、編譯原理和數據庫原理等,因此它為后續的專業課程學習提供必要的知識和技能儲備[4]。數據結構與算法課程一直以來都是本學科的核心專業基礎課程,而且正逐漸發展成為眾多理工科專業的熱門選修課。只有學好了這門課,才能在今后的計算機專業課程的學習中游刃有余。因此,本課程在國內同類課程中有較明顯的先進性和示范性。
根據新世紀對人才培養的要求,教學應重在學生能力、素質的培養,尤其是思維能力、實踐能力、創新能力的培養。多年來我們致力于數據結構核心課程的建設,從完善課程體系、加強團隊建設、深入教學改革和豐富教學資源等各個環節不斷探索和實踐。從提高學生的學習興趣和加強實踐環節教學方面入手,在教育教學方面持續、深入地改進教學方法,開展教學研究,提高教學質量。
2完善課程體系
首先,完善以“扎實基礎,強化實踐,引導創新”為培養目標的課程體系。計算機類專業核心基礎課程體系主要由離散數學、面向對象的程序設計、數據結構與算法、操作系統、編譯原理、計算機組成與結構、數據庫原理7門課程組成,用于支撐計算機科學與技術、軟件工程、網絡工程、信息安全、數字媒體技術5個計算機科學相關專業的教學。
我們將課程群的理念引入計算機專業基礎類課程教學,建立了以數據結構為核心的計算機類基礎課程群,如圖1所示。課程群以培養綜合運用計算機基礎知識能力為目標,打破課程間的壁壘,強化課程聯系。本課程群以數據結構為核心,將數據結構的一些基本內容如鏈表、排序等滲透到“C/C++程序設計”課程中;將編譯原理、數據庫原理等需要使用數據結構內容的部分在數據結構課程中以應用的實例進行講解,從而將相關課程的授課內容形成統一的整體。
在實踐環節我們強化數據結構對程序設計語言的訓練及解決相關課程問題的訓練。除各門課程有單獨的實踐課程外,獨立設置貫徹整個教學環節的實踐課程,將數據結構課程群中各門課程較為關聯的綜合大作業進行歸并整合。自身實驗課程注重雙基訓練,但大實踐課程要求對整個數據結構課程群教學經驗豐富、能夠精確把握該課程體系要點的教師進行授課,在教學中能夠結合本學期相關課程設置大作業,在講授中能夠根據學生的具體情況進行誘導性教學,使學生通過完成大作業來更深刻地認識學科體系的全貌,強化學科綜合素質的培養。
以數據結構課程為中心構建計算機類專業的核心基礎課程體系,將與計算機科學相關專業的專業基礎課程教學打通,在課程、課件、教材、師資隊伍等多方面進行統一的規劃和建設,以不同的著重點組織課程教學內容、進行大學生計算機實踐能力和創新能力的培養。該體系打破了原有實驗教學附屬于理論課程的模式,理論教學與實驗教學既相對獨立、又相互聯系,改變了單一的知識驗證的實驗模式,增強綜合應用設計和創新實踐內容,全面提高學生的實驗實踐技能。“扎實基礎,強化實踐,引導創新”培養目標體現了當前計算機類專業教育的發展趨勢,走在國內高校的前面,在全國各類會議作專題報告近30次。
3加強團隊建設
目前我院數據結構與算法教學團隊共有5位主講教師,其中教授2人,每50名學生配一名助教(博士或工學碩士)。該教學團隊主要由30~40歲的年輕教師組成,盡管精力充沛,工作熱情很高,但教學經驗尚有欠缺。團隊建設是本課程建設的重中之重,要把提高教師的綜合素質和教學科研水平,強化教師的責任心放在首位。堅持教學與科研相結合,以國家自然科學基金項目為依托,為提高教學質量,不斷提高科研水平和能力;以國家特色專業建設項目為依托,加強教學研究,以理論指導教學實踐,吸取好的教學方法和經驗,不斷改進教學方法和手段,迅速促進教學團隊成長。
在青年教師培養方面注重教學和科研能力的同步培養。要求青年教師在首次上課之前聽課助課,培養基本教學能力;實行集中備課,統一課件,互相監督,保持教學一致性和教學內容一致性;定期召開教學研討,及時總結教學經驗方法,教授言傳身教;以特色專業建設項目為依托,鼓勵青年教師開展教學研究,以國家級項目為依托開展科研課題研究。青年教師成長迅速,已具備一定的科研能力,教學效果良好,學生滿意超過90%;獲得校教學質量優良獎,青年教師講課競賽二等獎,多媒體課件二等獎等多項獎勵,已經成為學院的業務骨干。
4深化教學改革
4.1不斷探索新的教學模式
1) 實踐性教學。
實踐是獲得真知的根本源泉,主動探索真知是研究型人才的基本素質,我們在基礎課中的創新能力培養主要體現在,讓學生在自由的實驗環境中積極實踐、主動探索,自己發現新的知識和理論。如圖2所示,在實踐環節建設方面,建立書面作業,上機作業和課程設計3個層次的實踐教學環節,以通過書面作業形式消化理解教學內容;通過上機作業培養動手能力,將課程單元知識轉化為實際技能;通過課程設計培養解決實際問題的能力,融會貫通本課程的知識。
為了滿足強化實踐的教學要求,本課程團隊經過多年實踐,精選、整理了包括卡內基梅隆大學、斯坦福大學、麻省理工學院等國內外著名大學教授布置的實踐作業,結合我們的教學要求,每學期給學生布置18道有一定創新性的上機題目。這些題目既反應了數據結構教學的基本知識,又來源于實際應用。達到了理論和實踐的完美結合。本課程實踐教學和理論教學環節的學時比例為1.5∶1。經我們多年實踐,這個比例符合我國高等教育實際,達到了良好的能力鍛煉目的,值得推廣和借鑒。
2) 研究型教學。
在研究性理論教學方面,以教學大綱為主線,整理數據結構領域的經典論文,以提出問題為課堂教學的第一步驟,引導學生思考,將科學家的研究方法和研究思路融入課堂教學中。依托科學研究項目,提出本學科領域的最前沿課題,鼓勵學生思考并解決。對有明顯創造性的成果可以在教師指導下撰寫學術論文。
將研究型教學融入數據結構實踐教學課堂,鼓勵學生從解決問題的角度研究如何設計數據結構與算法,在傳授基礎知識的同時注重創新性思維方式的培養,發現問題和解決問題能力的培養。
4.2全方位的課程改革
課程建設的核心是提高教學質量。為提高教學質量,我們從教學內容、教材、教學方法和手段、考試方法、實踐教學等方向進行了全方位的改革。
1) 教學內容改革。
課程組參考國內外其他院校本課程的教學大綱和優秀教材,對數據結構課程的教學大綱進行了多次修訂,逐步穩定了理論教學的教學內容、教學要求,細化了教學目標,明確了教學任務、教學內容、教學重點和難點、不同知識點的掌握程度。理論教學采用以共性化課堂教學為主,并利用輔導答疑和實踐教學組織以學生為主的個性化教學,培養學生創新能力,輔助課堂教學。在教學過程中采用啟發式教學方式,即注重學生基礎理論知識的掌握,也注重學生分析問題、解決問題等基本能力的培養。
為了配合理論教學,我們也多次修訂了實驗大綱,使實踐內容更加符合專業的發展和其他各方面的要求,并且與前序課程和后繼課程很好地銜接。在實踐環節中注重學生能力的培養和科學的開發方法的培養。實踐教學內容采用梯度組織,具有不同的難易程度,方便學生鞏固學習和拓展知識。
2) 教材選取。
目前本課程使用教材為高等教育出版社出版的《數據結構與算法》,許卓群、楊冬青等編著。該教材除了講授基本數據結構外,突出作為面向對象程序設計的基礎概念——抽象數據類型,強調算法與數據結構的密不可分性、封裝性等;在處理知識面的寬度和知識點的深度上,既滿足作為基礎課的要求又達到一定的水平,完全適合本專業對人才培養的要求,是普通高等教育“十五”國家級規劃教材。目前課程組已經開始著手準備根據我們自己的教學特點、專業要求等實際情況自主編制一套教材。
3) 教學方法改革。
(1) 啟發式教學:學生的主動性是學習,我們在教學過程中注重啟發學生的思維,采用循循善誘的方式引導學生自己發現問題,并逐步解決問題,培養學生思考問題、分析問題和解決問題的能力。這極大調動了學生的主觀能動性,培養了學生分析和解決問題的能力。
(2) 共性化與個性化相結合教學:從教學形式上,我們積極探索新的教學方法,以便能夠調動和發揮學生的主觀能動性。具體有以教師為主體的課堂教學、習題課等共性化教學環節,也設置了答疑﹑質疑等教學環節,引導鼓勵學生通過實踐和自學獲取知識。共性化與個性化相結合,既可以起到教師主導作用,也可以滿足學生個性學習的需求。
(3) 理論與實驗相結合:數據結構課程主要介紹數據的邏輯結構、物理結構以及算法。算法的思想需要通過一種程序設計語言加以描述并在計算機上實現。我們在重視理論教學的同時,也很注重實驗課,注重學生靈活應用知識能力的培養。理論與實驗相結合,可以使學生更好地理解“數據結構”的思想與概念。
5豐富教學資源
建立本課程網上課堂及在線智能教學系統。網上課堂設
計的目的是能夠給不同層次、不同需要的學生提供幫助,提高教學質量。根據網絡教學環境的要求,
系統主要包括課程概況、師資隊伍、教學資源、實驗指導、教學錄像、課程擴展、課程論壇等多個模塊。系統主要具有以下特點:
1) 在線學習。
知識內容結構化,主體結構采用網頁形式組織教學內容,以單元、章、節等知識點為中心組織教學,以關鍵詞或標題為線索進行任意的查找。各知識點在整體上搭建框架式結構,思路明晰;在細節上環環相扣,前后關聯緊密,便于學生更好地理解和掌握知識要點。
2) 動畫演示。
以數據結構部分的講授為例,這部分內容包含許多的算法,其描述大多數采用類高級語言的形式進行,有些算法無論是時間復雜性或是空間復雜性都比較高,采用動畫的形式將算法的執行過程和思想呈現給學生,使學生很容易理解這一過程,再配上教師的解釋做旁白,可產生與上機親身實踐和跟蹤執行相似的效果。
3) 在線測試。
用數據庫對練習題和模擬題進行有效的管理,在學生進入到考核子系統后,能交互式進行試題的選題與答題。當學生提交答卷后,系統又能對答分進行自動評判,并給出相應正確的答案和綜合得分。
4) 課程擴展。
為更好地促進教學,本課程在鞏固基礎知識,提高實踐能力的基礎上,對學有余力的同學擴展了本課程的內容。引入了卡內基梅隆數據結構教學網站,這是一套全英文系統,上面提供了豐富的工程性題目訓練,更加注重數據結構算法在實際中的應用,讓學生開闊了思維和眼界;還為學生提供了ACM競賽以及大連理工大學程序設計競賽的模擬題庫,通過這些略有難度又很新穎的題目進一步提高學生的學習興趣,培養其解決實際問題的能力。
6結論
在近幾年的課程建設實踐中,我們的任課教師認真組織教學內容,與實際相結合,積極探索有效的教學方法,利用多媒體技術動態演示復雜數據結構的變化,并補充學生比較感興趣的知識,拓寬學生的知識面。逐步完善和充實現有課件,做到內容充實,畫面生動,具備聲像效果,收到了很好的教學效果。作為計算機科學的核心內容,數據結構與算法的理論研究及應用研究一直在不斷發展,在以后的工作中要注重研究型教學,鼓勵學生從解決問題的角度研究如何設計數據結構與算法,并將學科領域經典研究成果和最新研究成果及時地反應在課程教學中,相信數據結構與算法這門課的教學效果和教學質量在我們持續深入的教學改革中會越來越好。
注:本文受教育部第二類特色專業建設項目——軟件工程特色專業建設項目資助。
參考文獻:
[1]