時間:2023-05-29 18:23:33
開篇:寫作不僅是一種記錄,更是一種創造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇數據結構習題,希望這些內容能成為您創作過程中的良師益友,陪伴您不斷探索和進步。
關鍵詞:本體;知識表示;領域本體;網絡教育
中圖分類號:G434文獻標識碼:A文章編號:1009-3044(2012)04-0967-04
The Study for Engineer Domain Ontology: An Experience in Developing Data Structures Ontology
YANG Jin
(Information College, Yunnan Normal University, Kunming 650500, China)
Abstract: E-learning is a new direction for the development of international education. An effective way to reduce the cost of education, improving the quality of network education is sharing of resources. However, the absence of a unified education knowledge representation make the shared of the learning resources to be difficult among different learning systems. Use the example of "data structures" course to illustrate how to use ontology to describe curriculum knowledge. The general approach is to get terms of course, using the standard OWL ontology description language to define and describe it to form the domain ontology.
Key words: Ontology; knowledge representation; domain ontology; network education
隨著互聯網技術的發展,運用本體論理論通過互聯網技術進行知識和信息資源的整合是必要的。目前的知識己經愈來愈明顯地表現出跨越多學科的特點,此種結構特點使得知識表現模型的相關性顯得復雜且不單一,運用本體進行課程知識描述,在強調了概念的單一性和無二性的同時,在概念和概念之間、對象與對象之間建立了清晰的相關聯系。
在教育領域,國內外關于本體在智能教學系統的研究已有一些進展。利用本體表示的知識不僅有助于知識、信息資源的系統化,而且也便于知識、信息資源的擴展和更新,使之更容易滿足不同層次、不同需求的個人終生學習。使用本體來表示知識,構建領域本體,能夠促進智能學習系統的有效開發。
1本體的相關概念
1.1本體的定義
本體論(Ontology)來自哲學領域,旨在研究客觀事物存在的本質和組成[1]。隨著信息科學的飛速發展,本體論逐漸用于知識工程和信息科學等領域之中。
在知識工程領域中,本體通過對于概念及其相互關系的規范化描述,勾畫出某一領域的基本知識體系。
在計算機科學領域,斯坦福大學的Gruber認為“本體是概念化的明確的規范說明,能夠以一種明確的、形式化的方式來表示領域知識,促進知識共享”。
本體論可以分為四種類型:通用、應用、領域和任務。
1.2本體建模元語
Perez認為Ontology包含五個基本的建模元語(Modeling Primitive):
(1)類(Classes)或概念(Concepts):表示領域知識元,包括一般意義上的概念以及任務、功能、策略、行為、過程等,通常具有一定的分類層次關系。
(2)屬性(Properties):描述概念的性質。
(3)關系(Relations):表示概念之間的關聯,在形式上定義為n維笛卡兒積的子集:
R:C1×C2×…×Cn。
(4)函數(Functions):表示一類特殊的關系,即由前n-1個要素來唯一決定第n個要素。
(5)實例(Instances):表示屬于某個概念類的具體實體。
1.3構建本體的步驟
構建領域本體的目標就是要將一個或多個特定領域的概念和術語規范化,為其在該領域或領域之間的應用提供便利。面向不同的學科領域、不同的應用需求,本體構建的方法不同。比較成熟的本體構建方法有IDEF-5法、Skeletal Methodology骨架法、TOVE企業建模法、METHONTOLOGY方法、Cyclic Acquisition Process循環獲取法、軟件工程法等。文本以“數據結構”為例結合上述本體構建方法來構建領域本體[2,3]。
構建本體的一般步驟:
(1)列出研究對象所涉及到的概念(concepts);
(2)按照概念的固有屬性和專屬特征進行歸納和修改,對概念建立類(class)以及層級化的分類模型(taxonomy);
(3)加入關系(relation)連接concepts;
(4)按照需要添加實例(instance)作為概念的具象。
2“數據結構”領域本體的構建
通過分析“數據結構”的知識結構,并結合本體的五個基本的建模元語,得到該領域本體五元組表示:
O=
其中,O表示領域本體,C表示本體的概念集合,P表示本體的屬性集合,R表示C上的關系集合,I表示本體的實例集合,X表示實例集與概念集的映射關系集合。
本體的屬性集合P,描述概念自身的屬性,稱為數據類型屬性(DatatypeProperty)。
本體的關系集合R,描述概念與概念之間的關系,稱為對象類型屬性(ObjectProperty),關系集合R中除了本體中基本的關系如part-of、kind-of、instance-of、attribute-of關系之外[4],還可根據具體的情況定義相應的關系(如上位關系,下位關系,兄弟關系等)。
“數據結構”領域本體主要由“數據結構”課程中的概念,概念間的關系及計算機可以識別的形式化描述語言組成。構建該領域本體的目標就是要形成對于“數據結構”知識組織結構的共同理解和認識,為進一步建立智能學習系統奠定基礎。
2.1列出研究對象所涉及到的概念(concepts),即確定本體概念集C
分析“數據結構”知識內容[5],按照教學步驟,將知識對象進行劃分,并進行抽象歸納,形成的核心概念集C為:
C={集合,線性結構,樹形結構,圖狀結構,查找表,內部排序,外部排序,文件,基本概念,基本操作}
考慮到這些核心概念需要具體的習題資源來練習,因此增加了練習題核心概念。這些核心概念基本覆蓋整個“數據結構”課程的全部知識。
2.2對概念建立類(Class)以及層級化的分類模型,即建立概念層次結構關系
(1)對已確立的核心概念進行分析整理并進一步擴展,建立整個本體概念模型。
本體概念模型體現的是概念與概念之間的父子結構關系。這個過程是一個自頂向下的過程,根據已確立的上層父類概念,逐步細化形成下一級子類[6-8]。
把數據結構知識體系、練習題作為領域本體的頂級概念,數據結構知識體系向下有基本概念、基本操作、數據結構三個核心概念。每一個核心概念又有其子概念,進一步擴展為下一級概念,如:C(數據結構)={集合,線性結構,樹形結構,圖狀結構} C(樹形結構)={樹,森林}
C(基本操作)={遍歷操作,轉換操作,構造操作,…}
……
以此建立的概念層次結構是以樹型結構呈現,具有一條明確的主線。概念之間形成的等級層次結構如圖1所示。
(2)確定概念的屬性P
概念的等級層次結構是本體的骨架,其血肉要通過概念的屬性來充實。本文將“數據結構”領域本體中概念的屬性分為數據類型屬性(DataProperty)和對象類型屬性(ObjectProperty)。這里所說的屬性P主要是指數據類型屬性。
如數據結構的知識點可以從中文名稱、英文名稱、難易程度、掌握程度、考試概率、上位知識、下位知識、兄弟知識、關聯練習題等方面描述進行描述,因此數據結構知識體系概念的屬性P為:
P(數據結構知識體系)={中文名稱,英文名稱,難以程度,掌握程度,考試概率,上位知識,下位知識,兄弟知識,關聯練習題}練習題可以從以下六個方面來刻畫:
P(練習題)={編號,題目,答案,練習題類型,練習題難度,關聯知識點}
充分利用類屬性繼承性特性,子概念共有的屬性在父概念中定義,子概念繼承父概念中的所有屬性,再定義自己的特有屬性。
2.3加入關系(relation)連接concepts,即確定概念間的關系R
領域本體除了上面建立的類的父子關系外,還要添加符合學習步驟和學習規律的其他關系,將兩個概念之間的關系稱為對象屬性(ObjectProperty)。
如在學叉樹這一概念時,主要學叉樹的概念及各種操作。因此需要有概念和操作將二叉樹和對應的概念和操作聯系起來。
又如按照學習規律,在學叉樹之前我們應先學習樹的一些知識,因此樹是二叉樹的前驅知識、二叉樹是樹的后繼知識。需要用前驅知識、后繼知識將二叉樹和樹關聯起來。
前驅知識和后繼知識互為逆關系。
在“數據結構”領域本體中,部分對象屬性(Object Properties)如表1所示。
表1領域本體中概念的主要對象屬性
2.4按照需要添加實例(instance)作為概念的具象
實例是概念的具體實體,具有概念所有屬性,在添加實例前,要確定該實例的兩種屬性,即數據類型屬性和對象屬性,以練習題為例,為其添加實例,其所有屬性及屬性值如圖2所示:
3領域本體形式化編碼及開發工具
本體形式化編碼階段就是選擇合適的本體描述語言來描述知識本體,現有的形式化本體描述語言很多,主要有RDF和RDFS、 OIL、DAML、OWL、KIF、SHOE等。本文選用的是OWL(Web Ontology Language)來對領域本體進行描述[9]。
目前本體的開發工具主要有Ontolingua、Ontosaurus、WebOnto、OntoEdit、Protégé等。本文選擇Protégé4.1作為本研究的本體開發工具,Protégé是由斯坦福大學的Stanford Medical Information開發的一個開放源碼的本體編輯器[10]。
由于篇幅有限,關于OWL及Protégé的內容這里不做具體介紹。
4結束語
本體是一種用來描述概念以及概念之間關系的模型。將本體應用于領域本體的建設,可以表示復雜的知識層次結構。更便于知識的共享,重用及推理。下一步的工作將繼續完善“數據結構”領域本體。
參考文獻:
[1]謝娟.教學領域本體構建研究――以“C++程序設計”課程為例[D].濟寧:曲阜師范大學, 2010.
[2] PEREZ A G, BENJAMINS V R. Overview of knowledge sharing and reuse components:ontologics and problem-solving methods[C]. Stock? holm: Swtdem, 1999:1-15.
[3] A Guide to Creating Your First Ontology [EB/OL]. 2011-10-25. protege.stanford.edu/publications/ontology_development/ontolo? gy101.pdf
[4] Gruber T R. Towards Principle for the Design of Ontologies Used for Knowledge Sharing[J]. International Journal of Human Computer Studies. 1995,43:907-928.
[5]嚴蔚敏,吳偉民.數據結構(c語言版)[M].北京:清華大學出版社,2009.
[6]潘穎,歐啟忠,肖耿毅.面向語義的課程知識本體的構建[J].電話教育研究, 2007,2:19-21.
[7]杜小勇,馬文峰.學科領域知識本體構建方法研究[J].圖書情報工作,2005,8(49):74-78.
[8] Boyce S. & Pahl C. Developing Domain Ontologies for Course Content[J]. Educational Technology & Society, 2007,10(3):275-288.
論文關鍵詞:應用型本科 數據結構 課程建設 教學改革
論文摘要:應用型本科課程建設是我國高等教育的薄弱環節。本文在多方位研究了應用型本科特點之后,結合長期從事應用型本科教學工作的經驗和體會,重點論述了應用型本科“數據結構”課程的課程建設和教研教改問題,并簡要介紹了作者所在學校的一些做法。
“數據結構”是計算機科學課程體系中的一門重要專業基礎課程。我國“數據結構”課程的開設始于20世紀80年代初期,第一本教材是清華大學出版社1981年出版的嚴蔚敏教授組織編寫的《數據結構》。經過近三十年的建設,涌現出了許多版本的好教材和多門國家級精品課程。缺憾的是能很好地適應應用型本科教學的數據結構教材很少;數據結構國家級精品課程都是一本招生的重點大學課程,沒有一門二本、三本招生的應用型本科課程。我國的高等教育成功的從精英教育轉型到大眾教育,應用型本科的教材建設和課程建設是擺在我們面前刻不容緩急需解決的重大課題。
我校數據結構課程組經過十多年的建設取得了較好的效果,1999年“數據結構”課程評為省級優秀課程,2007年“數據結構”課程評為省級精品課程。建立了比較完備的教育資源,其中素材類教育資源有:試題庫、試卷素材、媒體素材、文獻素材、課件素材、案例素材和常見問題素材等等;根據教學的需要本課程已經建立了多媒體課件、CAI課件、無紙化考試系統等。建立了“數據結構”教學網站,網站上的教學資源豐富,有教學方法、教學管理、教學計劃、教學大綱、多媒體課件、習題、教案、講稿和授課錄象等網上資源,已供學生自學使用。本文就應用型本科數據結構課程建設,結合我校的教學改革研究與實踐談一點看法,供同仁參考。
1應用型本科的特點
應用型本科與重點大學的研究型本科有著很大的不同,除了在生源、師資、教學條件等方面的較大差別外,主要有以下幾個方面。
1.1多樣性
研究型本科承擔社會所需要的創新型、理論性人才的培養和基礎性、原創性科學研究任務;而應用型本科則承擔社會各種各樣人才需求的培養任務,尤其是適應經濟發展需要的實踐應用型人才培養的任務。其實,應用型人才更多的體現為一種人才培養目標的類型結構而不是層次結構,這種應用性表現在多方面,也可以區分為學術型、工程型、技術型和技能型等四種應用性人才類型,學術型人才的主要任務是探索和發現新原理,研究客觀規律,將客觀規律轉化為科學原理和學科體系;工程型人才則主要從事將科學原理及學科體系知識轉化為設計方案或設計圖紙;技術型人才主要從事將設計方案與圖紙轉化為產品;技能型人才則主要依靠熟練的操作技能來具體完成產品的制作。
1.2綜合性
應用型本科人才應該是和諧發展的高素質應用型人才,高素質應用型人才不僅要有一定的理論知識,同時還要有較強的理論技能;不僅要有扎實的專業基礎知識,還需要有過硬的應用性知識、一定的科學人文知識和相關的財務、管理和人際方面的知識。高素質應用型人才不僅要有一定的操作實踐能力,還要有較強的創新能力。更要具有較強的理論知識和技術的應用能力,要培養學生構建應用知識進行技術創新和技術的二次開發的能力、科學研究的能力。應用型人才不僅要有較高的專業素養,還要有一定的非專業素養。應用型本科教育要避免“重專業技能、輕綜合素養”、過分重視人的技術價值、工具價值,忽視人自我發展的價值,要把片面強調學生的職業素質轉變為兼重綜合素質。
1.3技能性
應用型本科人才,以能力培養為重心構建教學體系,建立以社會適應性為核心的教育質量觀和人才觀。我們必須圍繞應用型本科人才知識、能力、素質和諧發展的目標要求,以能力培養為重心,構建相對獨立、內在統一的人才培養體系。必須打破傳統的研究型人才培養的教學體系,確定理論與技能的深度和廣度,整合教學內容,在教學過程中把傳授知識、培養能力、提高素質有機地結合起來,體現多層次、個性化的培養特征,構建和完善以提高基礎理論和基礎知識為目標的理論課程體系,以提高基本技能與專業技能為目標的實踐課程體系,提高綜合能力和拓展專業外延為目標的素質拓展體系,構成人才培養的主體框架。
1.4實踐性
高級應用型本科人才培養模式有別于研究型大學和中國傳統的專科教育。其顯著特征是工程教學與工程實訓相結合,使學生通過實踐獲得工程技術人員的初步訓練,為受教育者未來的自主擇業和自主創業奠定基礎。根據應用型本科人才多層次、多元化的能力特點,需要構建分類設計、分層施教、分步實施、獨立設置的選修與必修相結合的實踐教學體系。圍繞著社會對人才的創新、創業精神和實踐能力的要求,需要構建從課堂內系統的、綜合性的實踐技能訓練到課外的自助式開放實驗、貫穿校內學習全過程的專業素質拓展訓練和校外實習相結合的培養體系。
1.5生產服務性
應用型本科的發展不同于研究型本科的追求以研究生培養為主,以原創性、基本性理論研究為主旨的發展路徑;也不同于我國傳統的高等教育以學術性本科生培養為主,以研究型大學為發展目標和參照依據的辦學模式,而是在強調必須的學術性和基礎理論性的同時,要更加強調面向市場現實需要和學生的實際與未來發展需求,主動積極的為地方經濟建設和區域社會與行業發展服務,以服務求支持,以貢獻求發展。通過產學研合作教育培養高技能應用型人才的同時要積極從事應用技術研究和實踐開發研究,積極致力于把原創性研究成果和學術性實驗成果直接推向市場,轉化為現實生產力和直接貢獻力。
2應用型本科數據結構課程建設問題
2.1課程目標側重問題
應用型本科的特點決定了其數據結構課程建在課程目標和要求等諸多方面與研究型本科有著不同的側重。數據結構課程介紹程序數據的結構、組織和管理技術以及在此基礎上的算法設計與分析技術,不僅為后續課程操作系統、編譯原理、數據庫原理、軟件工程、人工智能、計算機圖形學、計算機輔助設計、多媒體技術等課程提供必要的知識準備,更重要的是可以提高學生軟件分析、設計、編程和數據組織的能力。研究型本科側重與數據對象的特性、算法分析等數據結構理論問題的研究,注重理論的系統性、完整性和探索新結構新方法的創新性;而應用型本科則側重數據的邏輯結構、存儲結構和在特定結構基礎上的算法實現,注重結構的特性、算法的效率性和在實際問題中選擇結構與算法的應用性。應用型本科數據結構課程的目標、要求和側重決定了應用型本科數據結構課程建設在教材建設、課程設計、實驗環節、師資隊伍建設等方面應該有著與研究型本科不同的特色。
然而,在近些年我國推行的高等教育質量工程中,應用型本科教育卻是被忽視了的薄弱地帶。國家精品課程建設,只區分本科和高職高專兩部分,結果是本科部分基本上讓本一批招生的重點高校包攬,數據結構國家級精品課程全部是重點高校包攬。國家“十一五規劃教材”也是如此,數據結構教材入選者全部是研究型重點高校的教材,國家級教學成果獎、國家級教學名師對于應用型本科高校來說更是稀缺。這些都嚴重影響和制約著應用型本科高等教育的發展,影響和制約著應用型本科教育質量和教學效果的提高,也影響和制約著應用型本科的數據結構課程的建設。
2.2教材偏重理論問題
教材是保證教學質量與效果的前提。縱觀我國學者出版的數據結構課程教材,其中不乏許多有特色的好教材,如清華大學嚴蔚敏教授組織編寫的《數據結構》等國家“十一五”規劃教材。然而,這些教材理論性都比較強,對于應用型本科使用不夠理想。針對應用型本科特點,出版一套教材體系科學、面向大學二本三本學校學生、側重應用性、教學內容與應用實例有機融合、符合應用性本科特點的數據結構教材,是應用型本科數據結構課程建設的首要問題。
2.3教學實踐環節的設計問題
數據結構課程的難點在于學生聽得懂、看的明白,但當動手設計算法,解決實際應用問題時會感到無從下手。該課程一般在本科低年級開設,對于僅學過一門高級程序設計語言的學生,理解和掌握其中的原理比較困難。學生在學習時,對“數據結構”在計算機科學的算法理論和軟件設計中的重要性認識不足,缺乏學習興趣和學習動力。針對這些問題,注重課程設計、課程實驗等實踐環節設計是提高課程教學效果的主要措施。要精心選擇與課程教學內容密切相關的典型案例,通過典型案例培養學生獨立分析解決問題的能力。可把課程必須掌握的技能點設定為必修實驗(設計),對于技能延伸性技能點設為選做實驗(設計),供學生自由選擇,給學生以個性化發展的空間。以基礎性與先進性、綜合性相結合為原則,篩除部分傳統課程體系內的驗證性經典實驗,加大綜合性或設計性實驗數量,通過實踐環節,提高學生分析問題和解決問題的能力,強化學生的創新能力、技術開發能力培養。在實驗教學的方式上,要注重因果式引導、成果型訓練,刺激學生的成就感,激發學生的學習興趣與鉆研的好奇心。這種全方位、立體化、系統規范的培養模式創新和實踐,可使所培養人才符合社會對創新型、創業型人才的需要。
2.4考核與平臺問題
在課程考試考核環節設計上,既要考核基本理論的掌握程度,更要考核實驗實踐能力和開發設計能力。在教學資源平臺建設上,既要建設一般性常規教學資源,還要考慮充分利用網絡等現代化教學手段建設優質的網絡教學資源。在師資隊伍建設上,既要考慮有研究型本科師資具備的較扎實的理論基礎,又要考慮有應用型本科師資必備的較強的工程技術和應用研究開發能力。
3我校的數據結構課程建設
我校數據結構課程課程組不斷探索教學手段和教學改革的新思路,經過十多年的建設取得了較好的效果,1999年“數據結構”課程評為省級優秀課程,2007年“數據結構”課程評為省級精品課程。我們的主要做法是:
3.1重視教材建設
2000年在華東地區計算機基礎教育研究會的組織下,主持編寫了《數據結構——用C語言描述》和《數據結構習題解析與上機實驗指導》等教材,該教材一經使用就受到各校師生的一致好評,2006年發行了第二版,累計發行83000冊。2006年還應清華大學出版社邀請,針對應用型本科的特點主持編寫了高等院校信息技術規劃教材《算法與數據結構》、配套輔導與實驗教材《數據結構學習輔導》和《算法與數據結構習題精解和實驗指導》,已發行31500冊。有關專家的評價是:“教材體系科學,面向大學二本、三本學校學生側重應用性,教學內容與應用實例有機融合符合應用性本科特點,有助于培養學生解決實際問題的思維能力和創新能力;教材內容新信息量大,融入最新科研成果內容,很好地體現了該課程內容的基礎性與先進性。”
3.2重視實踐教學環節
學校在數據結構課程設計和上機實驗課的內容設計與方法改革等方面做了大量的工作。精心設計實驗案例和課程設計案例,出版《數據結構習題解析與上機實驗指導》、《算法與數據結構習題精解和實驗指導》教學參考書籍,實行開放式實驗教學改革,引進軟件企業培訓軟件開發項目驅動,這些措施有效地保證了實踐教學的質量。
3.3重視教學教改研究
課程組成員積極參加教研教改活動,積極參加各種教學研討會議,經常性的總結和交流教育教改經驗體會。先后主持和參與“計算機科學與技術課程CAI特性的研究和CAI軟件包研制”、“軟件人才培養實踐教學體系的建立與實施”等省校級教改項目十多項,發表教研教改論文二十多篇。“數據結構課程建設”、“數據結構教材”、“高等學校高級語言程序設計課程教學改革與實踐”、“開放式實驗教學改革與實踐”等十多項教學成果獲得校級以上教學成果獎。
3.4重視教學資源建設
搭建數據結構課程資源平臺,為學生提供更多更好的學習途徑。我們除了在清華大學出版社網站和中國水利水電出版社網站掛出電子教案和多媒體課件外,還專門建立了數據結構精品課程網站,提供教學方法、教學管理、教學計劃、教學大綱、多媒體課件、習題、教案、講稿和授課錄象等網上資源。這些教學資源有效地改善了學生的學習條件,方便了學生的學習需要。
3.5重視師資隊伍建設
課程組一直都很重視教學梯隊建設,目前已形成有3位教授、3位副教授、3位講師的具有較高學術水平的課程教學團隊。團隊中有3位博士(含1位在讀博士生),省級優秀中青年骨干教師1名,1人入選省百千萬人才工程,多人主持或承擔省級以上科研項目,發表具有較高學術水平的學術論文(SCI/EI收錄)30多篇,多人參加國內外主辦的國際學術會議報告交流學術論文。師資隊伍科研水平的提高,有效地保證和促進了課程教學水平的提高,對提高教學質量和效果產生了積極的作用。
4結語
應用型本科承擔著社會各種各樣人才的培養任務,招生量大、影響面廣,應當引起社會各界尤其是各級教育管理部門的重視。應用型本科課程建設在質量工程中被忽視或弱化,是一個應當盡快引起教育界重視的重大問題。數據結構課程在計算機科學課程體系中占據著十分重要的核心位置,應用型本科數據結構課程的建設任務任重而道遠。
參考文獻
[關鍵詞]數據結構;課堂教學;教學設計
[中圖分類號] G642 [文獻標識碼] A [文章編號] 2095-3437(2017)03-0029-02
數據結構課程是計算機類專業的核心必修課程,在整個專業教學體系中占有重要地位。數據結構課程的教學內容涉及構筑計算機求解問題的兩大基石:刻畫實際問題中信息及其關系的數據結構,描述問題解決方案的算法。[1]數據結構課程的教學目標是培養學生縝密的邏輯思維能力和數據抽象能力,把數據結構和算法理論與編程實踐相結合,并在軟件系統開發過程中靈活運用。學好數據結構課程對操作系統、編譯原理、計算機網絡等后續課程的學習以及培養學生分析問題、解決問題的能力等方面起著至關重要的作用。如何講好數據結構課程,一直是各高校計算機教師研究探索的熱門課題。俗話說“好的開端是成功的一半”,第一堂課的教學設計至關重要。好的開端能激發學生對課程的興趣,調動學生的學習積極性,使其產生強烈的求知欲,從“要我學”變為“我要學”,從而為教師有序、有效展開課程教學奠定良好的基礎。[2]
本文從以下幾個方面具體討論如何上好數據結構第一堂課。
一、教師自我介紹
教師給學生的第一印象很重要。第一堂課教師第一次接觸學生,自我介紹必不可少。自我介紹的內容主要包括介紹教師的姓名、學院、辦公地點、移動電話等,可以把微信、QQ或E?鄄mail等其他聯系方式告訴學生,還可以組建數據結構課程學習的QQ群或微信群,學生遇到問題后可以在群里討論,也可以通過電話、E?鄄mail等與教師單獨聯系。教師愿意做學生的朋友,學生在學習上、生活上、思想上需要教師幫助時,可及時與教師聯系。教師的積極態度能夠對學生產生積極的影響,有助于與學生建立良好的師生關系,促進學生學習的自覺性。
二、課程介紹
(一)課程定位
數據結構課程是計算機類專業的核心必修課程,美國ACM/IEEE CC-2005課程體系將數據結構與算法類課程列為核心課程之首。我國教育部計算機教育指導委員會“計算機科學與技術專業規范”2006中明確把數據結構與算法列入計算機及信息技術相關學科專業的本科必修基礎課程。
數據結構課程是對前導課程(如C語言程序設計、程序設計基礎等)的深入和擴展,能為進一步學習其他專業課程打下基礎。課程中的排序算法及基本的樹、圖等非線性結構是計算機科學的基本功,B+樹、散列(Hash)等高級數據結構是后續如操作系統、數據庫、編譯原理、圖形圖像等專業課程的基礎。
(二)主要內容
數據結構課程描述的是按照一定邏輯關系組織起來的待處理數據元素的表示及相關操作,涉及數據的邏輯結構、數據的存儲結構和數據的運算,內容非常豐富。
常見的邏輯關系包括線性結構、樹形結構、圖結構和文件結構。常見的存儲方法有順序方法、鏈式方法、索引方法和散列方法。建立在數據結構之上的有效運算是問題求解的核心,如排序、檢索等。在介紹課程內容時,應把相應章節的學時分配一并列表展示,并簡明扼要地向學生介紹課程的重點難點,借助多媒體課件以動畫的形式給學生演示鏈表、棧、隊列以及排序等操作,幫助學生理解,激發學生的學習興趣。
(三)學習目標
數據結構課程的教學目標是讓學生學會分析數據對象的特征,掌握數據組織方法和計算機的表示方法,初步掌握算法時間、空間分析的技巧,培養學生針對問題的應用背景進行分析,選擇合適的數據結構,從而培養高級程序設計技能。學生的學習目標明確了,才會不懈努力,朝著目標一直前行。
(四)教材及參考書
教材是供教學用的資料,如課本、講義等。第一堂課應明確數據結構課程的教材,簡要介紹教材的特點、作者信息等,比如我們采用的是嚴蔚編、清華大學出版社出版的《數據結構》。同時給學生們列出一些必要的參考書籍,這對課程學習能起到補充拓展的作用。
三、學習方法指導
在學生了解數據結構課程的重要性、所用教材及參考資料后,就要告訴學生如何去做才能學好這門課程。數據結構課程要培養學生結合實際應用設計有效算法和數據結構的能力,學習數據結構必須經過大量的踐,在實踐中體會構造性思維方法,掌握數據組織與程序設計的技術。通過扎實的、大量的基礎訓練,學生才能靈活地運用問題抽象、數據抽象、算法抽象來分析問題,應用數據結構和算法來設計、實現相應的程序,完成創新能力和實踐能力的訓練。[3]
(一)課前預習,課后總結,吃透教材
課程內容主要包含數據結構和算法設計與分析的基本知識,各種基本數據結構的定義、存儲結構、相應的算法以及應用等。理解掌握基本的數據結構與算法的關系很重要。程序的時間和空間效率,不僅與數據的組織方式有關系,也跟算法設計的巧妙程度有關系。在學習中要把握好預習、聽課、實驗、復習、總結五個環節,吃透教材,把握住算法的本質。通過預習,可以提高學生的主體意識,培養學生的獨立思考能力,進而提高課堂學習效率。課后的總結則能讓學生自覺地回顧課堂內容,深入地學習和領會課程的重點和難點,完成課后作業或練習題,從而提高數據結構課程的教學效果。
(二)多讀代碼,實現算法,理解思路
教育部計算機專業教育指導委員會“中國計算機本科專業發展戰略研究報告”、“計算機科學與技術專業規范”等都明確地強調了實踐教學和學生動手能力培養的重要性。程序設計解決問題往往有多種方法,且不同方法之間的效率可能相差甚遠。在學習過程中要讓學生擺脫畏難情緒,不怕有問題,多讀、多寫、多調試,及時總結。學生只有通過豐富的練習題和應用案例才能增強對理論的感性認識,從而明白這些數據結構為什么存在以及在什么情況下可以最好地解決什么樣的問題。
(三)充分利用網絡資源進行課外拓展
1.圖書館資源
圖書館擁有豐富的文獻資源,是學校的文獻信息資源中心,也是學生的第二課堂。學校圖書館有豐富的藏書,通過網上書目查詢系統可以檢索到與數據結構課程有關的圖書,如《數據結構典型題解》、《數據結構上機實驗指導》等。圖書館還有各種文獻數據庫,如超星數字圖書館,可以在線閱讀電子圖書;有萬方、中國知網(CNKI)、維普等數據庫,可以查閱期刊、會議等學術論文。在課堂上教師可以演示利用圖書館中的中國知網(CNKI)檢索系統檢索相關論文,讓學生學會檢索查找文獻資源,這樣可以拓展學習資料,避免課程學習僅限教材的情況。多讀書,可以讓學生擴大視野,打開思路,培養和鍛煉學生自主學習的能力。
2.課程資料及論壇
互聯網是信息和傳播的重要平臺。網絡資源包羅萬象且更新及時,使用方便,不受時間的限制,其中涉及數據結構的教學資料、技術論壇等數不勝數。課程資源主要有國家精品課程資源網、MOOC學院、中國大學MOOC、學堂在線,以及國外MIT等開設的數據結構相關課程。而與數據結構相關的論壇則更多,比較突出的如CSDN論壇的數據結構與算法版塊、ITeye綜合技術論壇的數據結構版塊等。[4][5]在介紹課程資源及論壇的同時,教師可以簡單介紹百度或必應搜索引擎的用法,讓學生掌握利用搜索引擎查找相關資料的技能。
四、結語
在高校的課堂里,大學生要接觸不同門類的學科。教師在引導學生學習過程中能起到關鍵的作用。第一堂課既是師生之間的初次見面,也是大學生對教師及課程的初步了解與把握。良好的開端是課程成功的基礎,上好第一堂課,意義重大。對教師而言,上好第一堂課,會使學生對該門課程產生首因效應,在課程的興趣、理解、運用等方面產生積極影響,可以使教師對學生加深了解認識,有助于教師對教學安排進行合理配置,為今后的課程教學奠定良好的基礎。對學生而言,上好第一堂課可以使學生對課程內容有一個全面的認識,提升學生對課程的認同感,提高學生的學習積極性。
[ 參 考 文 獻 ]
[1] 張銘,耿國華,陳衛衛,等.數據結構與算法課程教學實施方案[J].中國大學教學,2011(3):56-60.
[2] 張永翊.上好大學里的第一堂課[J].中國成人教育,2008(20):131-132.
[3] 劉合兵,尚俊平.《數據結構》課程的教學研究與實踐[J].內江科技,2008(12):72,49.
關鍵詞:數據結構;索引;二叉搜索樹;伸展樹
1.在數據結構與算法課程中的定位和前測知識點
數據結構涉及邏輯、存儲和運算3個維度。數據的存儲結構主要有順序、鏈接、索引和散列4種方法。數據的運算主要是對單個數據的增、刪、查、改,或對整體數據的排序、索引和檢索。有效的索引可以加快運算速度,可以說索引是數據結構與算法的重要內容Ⅲ。
二叉搜索樹是一種非常有效的內存索引,但可能面臨退化為線性結構的情況。改進二叉搜索樹比普通二叉樹更能提高檢索效率,在現實中有廣泛的應用。以往的數據結構教材更多地介紹AVL平衡二叉樹,目前有不少教材開始介紹更易于實現應用的、更廣泛的紅黑樹。
圖靈獎獲得者Tarjan和他的學生在1985年發明的伸展樹(Splay Tree),作為一種自組織的數據結構,其操作簡便,易于編寫,統計性能高效,有良好的運用前景。
伸展樹是用于索引的一種特殊二叉搜索樹,只是改進BST性能的一組規則,而不是一種全新的數據結構。在伸展樹中,數據隨檢索而采用這些操作規則來調整位置,目標是把剛檢索的結點調整到根。
伸展樹是一種自組織的數據結構,即它能隨著檢索等操作而發生結構的變化。伸展樹中基本操作的均攤代價是O(logn)。
前測知識點要求如下,可以根據需要給學生補充:
(1)二叉搜索樹BST的性質:中序遍歷下結點關鍵碼有序,左旋、右旋基本操作;
(2)二叉搜索樹BST的插入、刪除、查找算法;
(3)AVL樹、紅黑樹的簡單定義。
2.學習目標
(1)掌握伸展樹的概念;
(2)伸展樹的索引作用;
(3)伸展樹的實現和簡單應用;
(4)伸展樹的均攤時間效率。
3.知識點和學時分配
理論授課0.5學時。
主講教師可以根據學生的狀況、教師的科研背景等對某些方面進行擴展并引導學生,以適當擴大學生的涉獵面。
4.重點和難點
(1)伸展樹的旋轉。伸展樹旋轉分為單旋轉(zig右旋、zag左旋)、一字形雙旋(zig-zig、zag-zag)和之字形雙旋轉(zig-zag、zag-zig)。
(2)伸展樹的實現。伸展樹的實現很簡單,最基礎的是Splay(x,f)函數,即將一個結點x旋轉到其某個祖先f的下面。就是從x結點向上看兩個結點(父親、祖父),如果沒有祖父則單旋轉,如果有祖父則根據x與父親、祖父的方向,來判斷是一字形還是之字形雙旋轉。
(3)伸展樹的應用。一個簡單的應用是求x的前驅y,可以先把x旋轉到根,然后順著根的左子孩子的右鏈,一直向右走到頭,最后那個結點就是所求的y。伸展樹可以作為各種線性序列的索引組織方法。
5.授課提示
開展研究型教學,挖掘知識背后的內容,通過提出問題、探討方法、研究思想和比較性能,培養學生的創新意識和創新能力。
伸展樹在搜索過程中自動調整結構,但是不能保證樹的高度。伸展樹旋轉的目的是使訪問最頻繁的結點靠近樹結構的根,從而減少訪問代價。教師可結合動畫進行講解,并介紹一些實例體現伸展樹的特點和用途。
6.練習與擴展
融合經典的理論教學內容與學科的前沿新技術和發展方向,設計驗證型、探索型、綜合應用型的習題和上機題,幫助學生更好地掌握排序算法的基本原理,訓練學生的創新思維能力訓練、工程實踐能力。
本講可以安排2道算法類作業題和1道小型綜合設計型實習題。
算法類作業有:
(1)通過二叉搜索樹的找最大最小操作實現雙端隊列(http:///problem?id=3481);
(2)用伸展樹實現add,insert,delete,min等操作(http:///problem?id=3580)。
利用伸展樹存儲文件中單詞詞頻可以作為一個小型綜合設計題布置給學生。
圖1顯示了一個短文件的結點樹。掃描一個文本文件,并計算出這一文件中每個詞的詞頻。為簡化起見,略去標點符號,按照字典排列的順序對單詞排序,并忽略大小寫,如man’s將被當成man和s。類似地,分隔符也被忽略,如pre-existence被當做pre和existence。用一棵BST作為一個文件中單詞的存儲結構,并用伸展技術對這棵樹進行輔助維護,以使輸入流中的下一個單詞出現在樹中接近于根的位置的幾率較大。
對于半伸展樹、動態伸展樹等變種,我們給出如下擴展閱讀建議:
(1)Daniel Sleator和Robert Tarian的文章《Self-Adjusting Binary Search Trees》,ACM,1985,32(3):652-686。
(2)Daniel Sleator和Robe~Tarjan的文章《A Data Structure for Dynamic Trees》,Computre and System Science,1983,26(3):362-391。
(3)Wiki的伸展樹詞條(http://en,wikipedia,org/wiki/Splay tree)。
【關鍵詞】數據結構,教學方法
【摘要】由于數據結構是計算機專業的骨干核心課程,因此,對于該課程的教學不僅要從理論上進行探討,還要從內容、方法上進行研究。根據自己的教學經驗和體會,本文從教學的各個環節闡述了探究數據結構課程教學的策略,并在教學中進行了實施。教學效果較原來有了很大的提高。隨著計算機科學技術的發展和培養人才的需要,數據結構課程在高職中的教學模式、教學內容和教學方法必將不斷發展完善。
數據結構是計算機及相關專業中一門重要的專業基礎課程,其研究思想和研究方法將為學生今后從事理論研究、應用開發、技術管理工作提供堅實的理論基礎。針對該課程在教學過程中存在的問題,提出了改進的方法。
一、數據結構課程教學中存在的主要問題
1.程序設計語言能力的不足。數據結構是一門研究現實世界中數據與數據之間關系的學科,而表達這些關系時必須借助于計算機所能理解的語言程序設計語言來表達,所以學習數據結構之前,必須熟悉一門或多門程序設計語言,如c、c++、JAVA等。以c語言為例,c語言是高職學生入學來的第一門專業課,學生對大學的教學模式還處于一個適應的階段,所以入門相當困難,教學難度比較大。老師費盡口舌,學生仍然模糊不清,學的較差,從而使得學生在數據結構課程上的學習不能得心應手。2.教學模式存在問題。對數據結構的教學,教師一般以理論教學為重,將授課重點放在數據的基本結構上,所選的實例大多用于數據結構算法的驗證和說明。這種教學模式就事論事,僅從基本結構這個單一的角度進行教學,使得大多數學生在學習過程中,一旦遇到了難以解決的問題,就會產生畏難情緒,學習興趣下降。另外,數據結構中有些算法的演示利用傳統的粉筆加黑板的教學方式,缺乏直觀效果,難以充分展示算法的動態變化過程,學生難以想象數據之間的復雜關系。近年來,雖然數據結構的教學已經大部分采用多媒體教學,但是大都只是采用簡單的PPT,仍然不能很好地解決這樣的問題,嚴重影響了教學效果。3.理論教學與實際應用脫節。數據結構課程內容抽象、瑣碎、龐雜,涉及很多概念和技術。所有這些內容均自成體系,相互之間的銜接線索很少,總體感覺內容零散,沒有整體的知識框架體系。這些內容在實際應用中又都很重要,而現行的教學計劃實踐課時普遍不足,實驗課安排的實驗項目很難涵蓋課程的所有知識點。同時實驗內容的設置,往往都是大量的驗證性實驗,缺乏對實際問題的解決,學生在實驗之后仍然不知道學習數據結構在解決實際問題的時候能對編程有什么指導意義。4.學生學習難度較大。由于本課程內容涉及的技術和方法較多,顯得抽象、枯燥,再加上學生的程序設計基礎不是很扎實,就感到算法的理解特別困難,前面的基礎理論一知半解,隨之而來的理論與應用不斷結合,理解這些知識就愈來愈困難,更談不上學習之后的靈活運用了。并且高職學生的基礎相對較差,水平參差不齊,有的為對口生,有的為理科生,甚至還有文科生。在目前的教學中沒有體現個性教學,也不能真正按照每個學習者實際情況進行教學。
二、教學方法的改進
1.調動學生學習興趣,上好第一堂課。興趣是最好的老師。因此,在剛接觸本課程時,不要急于介紹理論,而是強調應用,通過介紹數據結構在一些典型軟件中的應用或者貼近實際生活中的例子來激發學生的學習興趣。如可引入如下問題:學校學生基本信息管理中的表,各表項之間是什么關系?教學計劃編排問題中,如何表示課程之間的先修關系?假如你想去大理、昆明、麗江旅游,如何安排路線時間最省?通過這些學生非常熟悉的案例引入數據結構的概念,生動直接,讓學生輕松地理解數據結構的概念及其應用,能夠提高學生的學習興趣。使教學有了一個良好的開端。其實上述例子就已經囊括了本門課中涉及的幾大類的數據結構線性表、樹和圖,這樣教師就可以水到渠成的歸結出數據結構的概念以及本課程涉及的幾種數據結構的類型,為后續章節的講解打下了良好的基礎。2.問題驅動法教學,培養學生創造性思維。對于數據結構教學過程中的許多抽象的概念、算法和思想,以教師為中心的教學模式起不到很好的效果。那么授課教師在教學過程中采用什么教學方法,對學生學習興趣的培養至關重要。在教學過程中,自始至終都圍繞問題而展開教學活動,引導學生不斷發現問題、提出問題、分析問題并最終解決問題,這樣能激發學生的學習興趣,充分調動學生的求知欲,同時也培養了學生的創造性思維。例如,在講述每種線性結構和非線性結構之前,我們應該提出一個應用的實例。通過實例進行課前導學,讓學生明白為什么要學習它,它有什么用處。譬如,在講述隊列結構前通過火車的進站出站這個形象例子引出隊列理論;在講述樹形結構前,可以引出在網站和信息系統中經常見到的樹形目錄結構的實例,給出應該怎樣實現和操作樹形的目錄,通過實例逐步引出理論。通過充分的實例讓學生真正理解這些常用結構的實用之處,讓學生在分析解決具體問題的時候能夠很自然地想到去用自己所學的數據結構。3.用多媒體教學技術,使教學過程形象化。在課堂教學中選用多媒體教學技術,引入計算機綜合處理聲、文、圖信息功能,集講課、習題、演示算法為一體。將算法與數據處理過程同步演示,增加交互功能,使教學過程更形象化。可以先給學生講解算法,然后給出數據來執行算法,學生一邊對照著語句一邊執行觀察數據的變化,或用動畫演示執行過程。如在講解二叉樹的三種遍歷方法,可以做一個flash動畫演示幾種遍歷的過程。這種方式生動、直觀、易懂,能提高學生的學習興趣。4.注重理論聯系實際,加強實踐環節。為使學生真正學好數據結構,除了在課堂上要采用行之有效的教學方法外,還要讓學生勤動手,多實踐。只有通過實踐才能發現教與學中存在的問題。實踐的首要環節首先是要多做習題。要學好數據結構,只看不練肯定是不行的,學生不僅要做,而且要求交作業,教師則要進行全面檢查與批改,對出現的問題要及時進行總結、歸納、講評。其次要多上機實驗。上機實驗不僅能進一步鞏固對有關內容的理解,同時還能提高學生靈活運用數據結構和算法的能力,使學生在編程、上機操作、程序調試與正確性驗證等基本技能方面受到嚴格的訓練。在安排實驗內容、布置實驗任務時,可以遵循由易到難、由簡單到復雜的原則,在課程大綱的指導下,在整個教學過程中,實驗過程要結合教學進度與學生的實際情況.制定實驗的內容。上機結束后要求學生完成實習報告,寫出自己調試過程中遇到的問題是如何解決的,以及對設計與實現的回顧討論和分析,即測試結果與經驗體會,并附上源程序代碼,從而寫出完整的實習報告。批改學生實習報告后,對學生的上機實習情況做及時總結,指出他們成功之處與不足之處。
【參考文獻】[1]嚴尉敏,吳偉民%數據結構&[M].北京:清華大學出版社,1997.
關鍵詞:數據結構;實驗;編程;教學
中圖分類號:TP3-4 文獻標識碼:A文章編號:1007-9599 (2011) 06-0000-01
Teaching Research on Data Structure Experiment
Zhang Xiujian
(Guangzhou University Sontan Collehe,Guangzhou 511370,China)
Abstract:Data structure is a course that emphasizes that exercise of logical thinking and programming ideas.In this paper,we argue that the appropriate experimental program and integration of software engineering can improve student’s innovative ability.
Keyword:Data Structure;Experiment;Programming;Teaching
《數據結構》,是一門重要的理論學科。通過調研看出,該科目在各個院校的實驗教學情況存在較大差異。學生學習理解過程緩慢,教師教學也不能得心應手,尤其是實驗課,由于部分學生對編程語言掌握不熟練,實驗內容抽象,而有較大畏難情緒,甚至不參加實驗課。雖然曾經有些教師參考了任務驅動、實例教學等方法,但過于強調某種教法,也會影響教學效果。所以,該課程宜結合課程特點設計教學,切實通過貼近于實際的方法傳道授業,結合實驗落實教學效果是非常重要的。
一、數據結構課程實驗教學中問題所在
(一)實驗課時欠缺。有的學校壓縮實驗時間,讓位于理論教學,這對學習效果的落實來說是本末倒置。沒有足夠的實驗課時,學生就無法把理論知識加以系統地整理,進而在實驗中消化吸收。
(二)綜合性、創新性實驗科目欠缺,系統性不強。開設的數據結構的實驗課程中,雖然安排了相關知識點的實例,但是對設計的創新性和綜合性上有待提高,要加強知識點的綜合運作。
(三)沒有很好地結合課堂教學和實驗教學。作為一門比較抽象的理論教學課,尤其要重視課堂和實驗教學相結合。實驗中要突出該課程的實踐性,教學中要注重理論和實踐的結合。現在,不少教師只重視知識的灌輸,在實驗中任務不明確,要求不明晰,讓學生在實驗中迷失了對理論的進一步實踐的方向。
二、實驗教學的改革探索
(一)教學模式的改變。基于數據結構課程理論難于理解的特點,要突出實驗課的效果,要注重“課堂.一章的基礎性實驗.綜合實驗”相結合的框架。注意從邏輯機構到存儲結構,再到實現基本算法,繼而具體應用的方法,一以貫之地落實到數據結構教學中去。算法的講授要先分析算法,再運用編程語言演練算法,最后進一步分析算法。如能采用多媒體演示算法的步驟,會使學生更加清晰地理解。課堂教學始終要把應用的要求作為做種目標,輔以實驗訓練,加強學生動手編程和自我創新的能力。
(二)基礎實驗環節要重視。實驗環節要讓學生進一步理解數據結構的特點,明確相關概念,熟練各種基本算法的實現。枯燥的理論講述的再多,也不如配合實驗讓學生一練,所以教學要重視基礎實驗環節。要想獲得扎實的教學效果,教師要提供實驗編程語言,Turbo C、Visual C++、Delphi等都可以。根據教材確定實驗方案,明確實驗目的、內容、要點和必備注意事項,最后安排幾個演練題目,比如矩陣的遍歷、數據的折半查找等。實驗課程要貼近學生的編程水平,不可偏離太過。實驗中,學生有章可循,對要點有較強的針對性,實驗效率就會大大提高,使學生真正能舉一反三。
(三)課程實驗要理論應用相結合。實驗要注意結合原理和應用,讓學生在解決實際問題時學會調用學過的知識點,養成動手練習語言編程的習慣,所以,這個層面的綜合實驗要求要高于普通的課下練習和基礎實驗,更貼近于應用。平時雖然側重練習簡單的算法程序,但綜合實驗課是軟件設計的高級訓練階段,融合了問題的分析,系統結構設計、操作界面設計、編程技能技巧,是軟件設計的系統工程。教師分階段擬定數據機構在實踐中的各種應用,比如:漢諾塔問題、約澀夫環問題、Huffman Coding方式、班級信息管理系統等,把任務分配給學生,讓學生組織課題公關。課題的結題要提供課題表述、基本要求、實驗數據、實現結果和關鍵實現步驟等內容,這能協助學生破題解題,以免形成錯誤的認識,同時也講解了程序設計的基本路線,確保實驗目標的實現。最后每個課題組都集中展示實驗過程接結果。試試證明,這樣的實驗環節,綜合了數據結構知識、編程語言技能和軟件工程思想,讓學生系統地理解各門課程的聯系,融合相關專業課的精髓,鍛煉了學生的團隊合作互助精神,提高了組織能力和管理水平
三、重點組織好教學實驗的各個環節
(一)實驗題目的設計。鑒于實驗環節教學時間的限制,學生的編程基礎和技能較為薄弱,所以,設計和擬定合適的實驗題目尤為重要。實踐題目應該由易到難循序漸進:
1.常用算法練習。主要講解各章節知識點,深入貫徹算法理論的理解;2.基礎性應用練習。主要讓學生針對單一的數據結構解決應用難題,其難度中等;3.綜合應用題目練習。要涵蓋多個章節的內容,系統性強,難度較高,可以組織學生成立課題組,在課外實驗環節共同研討解決,再集中展示。課題的設計要注意:(1)常用算法的練習要有一定代表性,重點練習各個章節的知識點,難度較小,目的在于理論知識的掌握。課堂教學要和實驗環節對應,學生在試驗中重點演練課上講授的內容。(2)基礎性應用練習難度要適中,既要帶動基礎薄弱的學生,又要注意發揮基礎好的學生的能動性,可以加以延伸,或是鼓勵提供多種解決方法,進行不同思路的性能的比較,讓各個層面的學生都能參與實驗。(3)綜合應用練習題不宜太難,但要引起學生的興趣,宜于結合實際中的事物或應用系統,讓學生宜于接受和理解,這樣才能促進學生的積極性。
(二)實驗環境的搭建。現在很多學校選取譚浩強教授出版的《數據結構(c語言版)》作為教材,應用C語言進行數據結構的設計語言,用TC搭建實驗環境。而在實際教學中,應用C語言講解數據結構常常對算法設計和實現上較為突出,對數據結構的系統性容易忽視。如果用C++進行數據結構的實驗練習,可以注重其整體性和系統性,先定義數據結構的類,再分析其邏輯特性,然后把存儲結構延伸到算法的實現中去,能幫助學生構建數據機構的概念。
(三)實驗過程的組織與實施。實驗中可以采取學生分組、一人負責的機制進行實驗。提倡互動探討和交流,既能讓學生接觸更多的實驗題目,也能提高學生的團隊合作精神。
(四)實驗結果的檢驗和考核。對實驗結果,教師要輔以必備的檢查來進行督導。對于實驗報告的書面匯報,要設計題目、要求、步驟、結構、程序代碼和改進方法,以及最后的體會等。教師通過實驗報告書可以詳細了解學生的實驗情況,進而發現共性的問題集中解決。
(五)實驗問題的總結與彌補。通過實驗,教師對于學生學習中存在的問題要進行系統總結和分析加以更正,有些不良的編程習慣,教師要著重強調。
四、結束語
《數據結構》的實驗課注重學生動手能力的培養,強調創新思維的養成,通過實驗,結合應用案例,能夠進一步提高該課程的教學質量,加深學生對知識點的理解,具有積極的現實意義。
參考文獻:
摘要:“數據結構”是計算機專業課程體系中的一門較重要的必修課程,但因其理論性強、思維抽象、理解難度較大等特點,實際教學效果往往不夠理想,因此,本文對“數據結構”課程教學過程中存在的問題進行了分析,并就如何提高“數據結構”課程的教學效果,提出在教學改革方面的一些設計。
關鍵詞:高等職業教育;數據結構;教學方法
中圖分類號:G642
文獻標識碼:B
1引言
“數據結構”是計算機專業一門重要的必修課,是高職專升本、本科考研的必考課程之一,在整個課程體系中處于承上啟下的核心地位。一方面擴展和深化在“離散數學”、“程序設計語言”(目前以C、C++語言居多)等課程學到的基本技術和方法,另一方面為進一步學習“操作系統”、“數據庫原理”、“軟件工程”、“編譯原理”等專業課奠定堅實的理論基礎,可以說,對“數據結構”課程的掌握程度直接影響到學生對計算機專業知識的學習。因此,我們有必要探討“數據結構”課程教學中存在的問題,并且結合高職學生的實際情況,總結設計出一套有效的教學方法。
2 “數據結構”課程教學中存在的問題
學生在學習“數據結構”這門課程時,普遍對課本內容理解困難,對算法設計題感到無從下手,上機調試程序時更不知如何操作。對此情況我們進行了認真分析,得出如下結論:
(1) 學生對本門課程的誤解,造成學習積極性不高。“數據結構”課程是專業基礎課,但是它既不像網頁設計那樣生動有趣,又不像Visual Foxpro等課程直接可以應用于將來的工作中。在學習過程中,學生感到“數據結構”不過是一些理論和程序的堆砌,常常問老師:“‘數據結構’學完后有什么用?”,由于學生不能正確認識該課程的作用,故學習的積極性不高。
(2)“C語言”(或其它程序設計語言)課程開設不足,為“數據結構”課程教學埋下隱患。“C語言”(或其它程序設計語言)為“數據結構”的前導課程之一,學生對它的熟悉及掌握程度直接關系到“數據結構”課程的教學效果。
特別是對“數據結構”中使用頻率最高的C語言中的結構體、指針的認識和理解不深,對函數參數、函數調用的知識點不熟練。這些內容在“數據結構”的教學過程中,盡管老師費勁唇舌,學生仍然模糊不清,致使教學效果不理想,部分學生還產生畏難和厭學情緒,甚至喪失對該課程學習的興趣和信心。
(3) 課程自身問題,導致教學效果不佳。“數據結構”的邏輯性強、內容抽象、瑣碎、概念多,所有內容均自成體系,相互之間的銜接線索很少,總體感覺內容零散,沒有一個整體的知識框架體系,特別是部分知識點和算法難于理解,大部分學生常常覺得教科書中的內容與具體的算法相距甚遠,無從下手,甚至在課程學習結束以后,都不知道自己到底學了些什么。
(4) 實踐教學課時少,導致學生動手能力差。“數據結構”是一門理論與實踐并重的課程,現在的上機課時僅為20課時,實踐教學嚴重不足。還有些教師往往只注重理論教學,把實踐教學的課時全部變為了理論教學,這樣學生學起來更是枯燥乏味,對程序與算法之間的轉換就更難以實現。
3教學改革設計的實施
通過對上述存在的問題總結分析后,我們從以下幾個方面對“數據結構”課程進行了改革設計。
(1) 運用聯系的觀點闡述課程作用,激發學生學習的興趣。“數據結構”課程是計算機體系中不可或缺的一個重要環節。在教學中我們采用聯系的觀點,把“數據結構”課程納入整個計算機體系教學,學生就能認識到課程的重要性,從而激發學習興趣。例如我們講到鏈表時,可以有意把內容延伸到操作系統中計算機內存分配;講樹型結構時,可以與文件夾結構聯系在一起;講圖結構的最小生成樹,可以聯系局域網的設計;講查找技術,可以涉及網絡的搜索引擎等等。這樣不僅講課活潑生動,而且還能引起學生聯想,刺激學生學習的興趣,收到良好的教學效果。
(2) 解決C語言的不足。“數據結構”課程教學過程中主要運用的是C語言的指針、函數、數組作為函數參數以及結構體類型來分析和解決問題。對于大部分學生來說,C語言運用能力不是很強,如果在上課時直接切入主題,就會使學生有云山霧罩的感覺。要解決這個問題,應該在教學中注意做到以下兩點:一是與“C語言”的授課教師做好教學的溝通工作,統籌安排各部分的授課時間,保證指針、函數、及結構體等內容有足夠的時間,并將其作為重點講授并加強上機實踐,讓學生掌握C語言的精華。二是在學習“數據結構”課程初期,指導學生有針對性地復習指針、函數、及結構體等知識點,并強調它們在數據結構課程中的重要性。例如在課堂上以一個實例的形式對這些知識點進行復習,尤其指出學生難理解、易混淆和犯錯誤的地方,另外布置大量涉及這些知識點的作業,通過批改作業發現存在的問題然后反復進行講解。
(3) 注意課堂語言的藝術性、趣味性,以激發學生的求知欲。“數據結構”是一門理論性很強的課程,其概念特別抽象。高職學生的理論基礎普遍較弱,所以如果像本科教學一樣,單純地用課堂語言教學,高職學生理解起來有一定難度,而且會感到枯燥,因此,教師在授課時要講究語言的藝術性,結合學生的實際,使用更加通俗、形象、生動、直觀的教學語言進行講授。例如堆棧的結構和運算可以和生活中的洗碗結合起來;隊列可以和學生去食堂排隊買飯結合起來;無向圖可以和城市的公路交通網(若無單行道)結合起來,有向圖可以和來水主管網結合起來。通過這樣的比喻說明,學生不僅聽起來有興趣,易于理解,而且效果也比只單純地“照本宣科”講定義要強的多,能夠達到事半功倍的效果。
(4) 抓好實踐環節,提高算法設計能力。“數據結構”是實踐很強的一門課程,不僅要學習理論知識,更要注重上機實踐。通過上機實踐來驗證理論內容并加深對各種算法的透徹理解,結合高職學生學習能力不足的實際情況,我們從以下三個方面加強和改進了實踐教學:一是學期初兩周內給出適當的上機實驗題目復習C程序語言中的指針、結構體和函數等知識點,并根據上機實驗的情況對數據結構中常用及易出錯的地方進行集體重點講解,為后面算法的上機實驗打好編程語言基礎。二是為打消學生實現類C語言算法描述和C語言源程序的轉換的畏難情緒,前兩次上機實驗時,教師可以先給出完整的源程序,讓學生在主函數中添加語句來體驗數據結構的基本操作的執行,再逐步過渡到自己編寫完整的源程序。三是精心設計上機習題同時注意進行分層次的個性化教學。從不同學生的實際水平、基礎出發,來設計不同難度的實驗題目,給出不同的實驗條件和要求,盡量讓所有學生通過自己的努力獲得實驗的成功并掌握基本知識,從而最大程度地提高學生實驗的積極性。例如,對堆棧可以設計建棧、出棧、入棧和后綴表達式求值實驗;關于樹可以設計二叉樹的建立和遍歷及給定一棵二叉樹,打印指定結點的雙親和所有的孩子結點實驗。基本操作實驗學生可以根據自己的實際情況來選擇完成。另外對于難度小的實驗要求每個學生獨立完成,而對實驗難度稍大的允許以2到3人以小組形式完成或給出部分代碼或提示。
(5) 對教學內容進行優化和歸納提煉。由于高職學生自學能力薄弱,再加上“數據結構”課程內容繁多、零散,不具備一個整體性,因此在教學中要求做到如下兩點:一是教師要分析清楚數據結構的知識體系結構,在授課時始終貫穿“一中心、四結構、兩存儲”的原則。“一中心”是算法設計建立于邏輯結構,算法實現依賴與邏輯結構。“四結構”是指集合結構、線性結構、樹型結構、圖形結構。“兩存儲”是指順序存儲、鏈接存儲。二是把握重點。在貫穿“一中心、四結構、兩存儲”的原則講授內容時,要把握好重點,有選擇有層次地教學。例如,線性表是最常用且最簡單的一種數據結構,棧和隊列是操作受限的線性表,樹和圖往往要做線性化處理,因此要把線性表作為重中之重的內容進行透徹的剖析。對于線性表的兩種存儲結構順序表和單鏈表,把單鏈表作為重點和難點來講授和上機實驗。再如,二叉樹的遍歷操作為重點來講授和上機實驗,而哈夫曼算法作為可選的上機實驗內容。
4結束語
由于“數據結構”是計算機專業的核心課程,以理論為主,而高職教學是以實踐教學為主的教學。因此,如何將這門理論性很強的課程同高職的實踐性教學相結合,值得我們進一步研究。在高職課程改革進行的如火如荼的今天,可以相信,只要我們從思想上重視“數據結構”課程改革與設計,不斷提高自身的教學能力,采用合理的教學方法,“數據結構”課程的教學必將取得良好的效果。
參考文獻:
[1] 嚴蔚敏,吳偉民.《數據結構(C語言版)》[M]. 北京:清華大學出版社,2001.
[2] 顧翔. 數據結構實踐教學探討[J]. 信息技術,2005,(30):110-112.
關鍵詞:數據結構;算法;教學方法;教學實踐;創新
中圖分類號:G642 文獻標識碼:A 文章編號:1002-7661(2012)12-008-03
《數據結構》是一門重要的綜合性專業基礎課程,數據結構是對計算機內存中的數據的安排,它涉及現實世界數據在計算機中的存儲、表示、組織和處理,以及算法對這些數據結構進行各種處理的初步性能分析技術。
數據結構研究思想和研究方法在計算機科學深度研究領域有著廣泛應用,它是計算機專業人員從事理論研究、應用開發、技術管理工作而必需學習的重要理論基礎。通過各種基本數據結構及相應算法學習,使學生掌握把現實世界的客觀問題轉換為計算機內在表現形式,理解數據結構內在的邏輯關系,數據與關系在計算機中存儲表示,以及在這些數據結構上的運算和算法執行。該課程具有相當的抽象性和動態性,如何學好《數據結構》這門課,讓學生理解教材的理論結構體系需不斷積累教學的經驗,總結科學教學方法,以達到良好的教學效果。
《數據結構》的學習也是程序設計的學習過
程,通過對學生數據抽象能力的培養,使學生掌握軟件工程的規范,能夠編寫正確易讀,結構清楚的程序,具備一定的程序設計能力。本文將從教學方法,教學手段,啟發式案例式教學研究,理論教學和實踐教學的整合幾個方面進行討論。
一、明確數據結構課程的知識體系與教學目標
數據結構的研究涉及到計算機軟、硬件方面,對于編譯程序和操作系統都涉及到數據元素在存儲中的分配問題,硬件的研究的方面涉及到編碼理論、存儲裝置和存取方法,它是介于軟硬件和數學三者之間的核心課程,是設計實現編譯程序、操作系統和數據庫系統等系統程序和大型應用程序的基礎。數據結構作為主要研究數據的各種邏輯結構和存儲結構以及對致據的各種操作的學科,對數據結構的教學應靈活運用與把握數據結構間縱向聯系和縱橫聯系之中。從根本上掌握數據結構理論體系,這是數據結構教學工作做好的必備條件。數據結構課程的教學目標,是使學生學會分析計算機所加工數據的數據結構特性,為程序設計涉及的數據選擇適當的邏輯結構、存儲結構及相應的算法,并初步掌握算法的時間效率分析和空間效率分析的技術。
1、數據結構課程的基本知識體系
一批具有某種邏輯關系的相關數據,按一定的存儲方法被存儲組織于計算機中,并在這些數據上定義了一個運算的集合,即是數據結構,它包括三個方面:邏輯結構、存儲結構和數據的操作運算。數據結構的研究首先應對這三方面有一個清晰的探討,針對每種數據結構均從邏輯結構、存儲結構和操作運算等方面進行研究,是貫穿數據結構研究始終的主線。課程的基本知識模塊是以數據的邏輯結構為主線,介紹線性結構、樹形結構、圖結構和文件結構,在介紹每種數據結構時,再討論其存儲方法以及相關的算法,存儲方法有:順序方法、鏈接方法、索引方法、散列方法。
數據結構課程的基本知識模塊是以數據的邏輯結構為主線,順序介紹線性結構、樹形結構、圖結構和文件結構。在介紹每種數據結構時,再討論其存儲結構以及相關的算法。基本模塊教學,從以下幾方面探討:
(1)邏輯結構、存儲結構、操作運算是數據結構間的橫向聯系。邏輯結構的定義、存儲結構的實現、操作運算的實現是對數據結構研究的基本思想,研究數據結構首先應對這三方面進行詳細清晰的探討。
(2)數據結構間的縱向聯系。以簡單數據結構為基礎實現對較復雜數據結構的研究,教學中讓學生知道遍歷操作對樹、圖結構是非常重要的運算。雖然從樹、圖的遞歸定義能設計出樹、圖遍歷的遞歸算法,但從線性結構到樹、圖的發展是數據結構從簡單到復雜的逐步發展過程。對于較復雜的數據結構樹、圖的遍歷可用較簡單的線性結構棧和隊列來實現,這體現了數據結構間的縱向聯系。
(3)數據結構間縱橫聯系。運用把握這種縱橫聯系,對從抽象數據類型(ADT)的角度進行數據結構的學習與研究有著重要的意義。ADT的操作就是實現對象的封裝,把ADT和面向對象技術和抽象數據類型結合起來,更容易理解一些。和面向對象結合起來講, ADT繼續發展就是Object, ADT的操作就是對象的方法, STL(C++ Standard Template Library)是ADT的經典實現,介紹STL的實現讓學生知道ADT究竟是如何作使用實現的。
2、課程教學目標
通過學習數據結構的概念、各種數據結構與算法的實現方式,不同數據結構和算法的特點比較。使學生能夠提高用計算機解決實際問題的能力。
基本數據結構和基本算法分析技術部分,對常用基本數據結構的ADT 及其應用介紹,包括線性結構(線性表、串、棧和隊列)、二叉樹、樹、圖等;針對遍歷二叉樹這一教學內容,首先從遍歷的概念講起,引導學生掌握概念并理解遍歷的本質就是非線性結構的線性化。
同時基于各種數據結構所實施的運算討論算法分析的基本技術,掌握時間和空間權衡的原則。排序、檢索和索引技術部分主要討論插入排序、Shell 排序、堆排序、快速排序、歸并排序、基數排序等常用的各種排序算法及其時間和空間開銷,并介紹文件管理(數據在外存中的組織形式)和外排序技術,以及自組織線性表、散列表、倒排文件、B/B+樹等常見的檢索和索引技術,及其各自相應的時間和空間開銷。
本課程的學習將使學生基本掌握數據結構和算法的設計分析技術,提高程序設計的能力;根據所求解問題的性質,選擇合理的數據結構并對時間空間復雜性進行必要的控制。
二、創新課堂教學方法,培養學生學習興趣
1、基于任務問題教學,實施啟發式教學
主要數據結構包括棧、隊列、列表、字符串、表、樹、圖、排序、查找等; 在數據結構的討論中滲透典型的算法策略: 分治法、回溯法、貪心法、遞歸技術等; 使用典型的分析方法: 漸進分析法、緩沖分析技術等進行算法分析。數據結構課堂教學應以問題求解為導向,培養和提高學生理論、抽象、設計的能力。例如XMLDOM 樹解析器、后綴樹、搜索引擎等。激發學生的學習興趣,培養學生的創新思維能力。
通過新的教學方法訓練學生的數據結構思維,使其認識到數據結構的內在有趣,問題驅動的教學方法體現如下:掌握結構化問題解決技術和數據抽象原則;從架構師和設計師兩個角度解決具體與抽象之間的難度;教授精巧數據結構給程序所帶來的巨大改善;概括性地評價一個數據結構和程序的成本方法;數據結構來解決實際問具體應用。例如,搜索引擎問題詢問,通過程序設計來實現搜索引擎會用到哪些數據結構,使用何種數據結構更有效。我們先嘗試不用任何數據結構,發現無法構建搜索引擎;在用了簡單的數組結構后可以構建搜索引擎,但效率很低;因此我們需要一步步引入構建更為精巧的矢量結構、樹結構、索引表、哈希表結構等。再如教材管理問題,首先要考慮教材的各種信息,一般的方法是建立一個表,如表1所示,實際上,它就是1種稱為線性表的數據結構。借助一個問題,圍繞搜索引擎程序設計的實現,串起一系列的數據結構,學生看到了各種數據結構不是抽象的空的,而是因實際問題驅動、經過邏輯上的逐次演進推理而出現,從而幫助學生更加有趣地學習數據結構。邏輯上的數據結構反映數據成分之間的邏輯關系,物理上的數據結構反映數據成分在計算機內的存儲安排。數據結構是數據存在的形式,以問題為驅動,以應用為軸線,對每一種數據結構的出現動機、發展邏輯、表示方式進行演繹,闡述如何從一種想法轉換為一種設計,又如何從設計轉化為具體程序,對每種數據結構都輔以程序設計中的實際應用,從而化抽象為具體,幫助學生利用數據結構思維解決實際問題。
2、結合實際問題,加強課堂互動
數據結構是反映數據的內部構成,即由哪些數據成分構成,構成方式,呈什么結構,也就是指相互之間存在一種或多種特定關系的數據元素的集合,數據結構是數據存在的形式。數據結構有邏輯上的數據結構和物理上的數據結構之分。目前國內較好的教材有清華大學出版社的嚴尉敏著《數據結構- C 語言描述》及其配套的《數據結構題集- C 語言描述》,殷人昆編著清華大學出版社出版的《數據結構( 用面向對象方法的C++ 描述)》等,Preiss 著《數據結構與算法- 面向對象的C+ + 設計模式》以及電子工業出版社的Clifford A. Shaffer著《數據結構與算法分析》都是很好的教學參考書。
課堂教學是教學有效的關鍵,課堂教學
中結合許多實際的講解,如棧和車庫停車、隊列和火車站等地方的順序服務; 樹和人類的族譜、各種社會組織機構; 圖和哥德斯堡七橋問題、四色定理等。結合現實問題,可以一定程度地提升教學效果。同時要充分進行課堂互動。講解一個知識點時,而是要加強啟發式引導,讓學生接話,之后再重復強調如何理解。這樣既能促進學生的思考,又能使學生加深理解課堂授課內容。
三、選擇合適經典算法,科學講授基本原理
1、選取經典算法算例
表1
計算機科學家N.沃斯提出“程序=數據結構+算法”,說明算法是對合理數據結構的操作(運算),是數據處理的核心。《數據結構》課程中介紹的基本數據結構有線性表、堆棧、隊列、數組、樹、二叉樹、圖以及相應的算法。一個算法是建立在某種數據結構的基礎上,一個算法不可能脫離數據結構而孤立存在。只有通過學習算法,才能真正掌握某種數據結構。學習《數據結構》的過程基本上是學習各種算法的過程,典型算法見表1。
在眾多的算法中如何選擇少量的典型算法進行分析講解,往往能起到以點帶面的關鍵作用。通過典型算法的分析,一方面讓學生加深對數據結構基本理論的理解,另一方面讓學生學習程序設計方法。例如在講授線性表順序存儲教學內容時,可利用典型算法說明其存儲特征,線性表的優點能對每個數據元素隨機訪問,其存儲密度高,其缺點是插人、刪除操作時需要移動大量的數據元素,操作效率低。可利用“向有序(由小到大或由大到小)的線性表(順序存儲)插人一個新的數據元素”,這一典型算法反映線性表順序存儲的特點。
算例:將一個值為X的數據元素插人到有序(由小到大或由大到小)的線性表(順序存儲)中,可以分兩步進行,首先查找到值為X的數據元素在線性表中應有的位置,采用從頭到尾循環比較的方法確定其位置I,然后,將第I個以后的全部數據元素向后移動一個存儲單元,最后將值為X的數據元素存放到第I個位置上,線性表元素個數增1。線性表的元素插人(對數據的操作或算法)在線性表中進行元素插人,其示意圖見圖1所示:
圖1
L= (a1,…a i-1,a i , ai+1,…,an) 中的第i(1≤i≤n)個位置上插入一個新數據元素e,使其成為線性表 : L=( a1,…a i-1, e, a i , ai+1,…,an),除非i=n+1,否則必須將第i個到第n個數據元素均向后移動1個位置,然后將e存人第I個位置。
算法1
PROCEDURE INSERT(V,m,n,X)
//將值為X的數據元素插人到V數組中,(線性表順序存貯在V中)m為最多元素個數,n為當前實際元素個數
IF (m = n)
T HEN( "OVERFLOW";RETURN}
FOR I =1TO n DO
IF ( X (V (D) THEN BREAK
FOR J=nTO I BY-1 DO V(J+1)=V(J)
V(I)=X
n= n + 1
RETURN
該算法的優點是簡單,便于理解,缺點是循環體內有提前退出語句,不利于結構化程序設計;確定新數據元素位置和移動數據元素分兩步進行,有重復操作,那么可將兩步合并一步以改進,即將循環比較與移動數據元素同時進行。從線性表的尾部開始向前循環比較,比新數據元素大者后移,直到小于等于時停止。
[算法2]
PROCEDURE INSERT(V,m,n,X)
IF(m= n) THEN( "OVERFLOW";RETURN}
I= n
WHILE(I)=1)AND(V(I))X)DO (V(I+1)=V(I);I=I-1}
V (I+1)=X
n= n + l
RETURN
算法2中循環條件,當循環結束后I=0或V(I)(=X,新數據元素的位置為I+l,C算法1的時間復雜度為0(2n),而算法2的時間復雜度為0(n),循環結構采用結構化程序設計,該算法要歸納循環條件是關鍵,可改進推廣應用。
[類C插人算法(數組的下標從0開始的)]
#define MAXLEN線性表可能達到的最大長度
Typedef struct
Elem type elem[MAXLEN]; Int length;
}Sqlist;
Sta tus Listin sert(Sqlist&L,inti, Elemtype e )
{//在線性表L中第i個元素之前插人新的元素e
//i的合法值為0≤i≤List Length(L )
if ( i< 0 I {i>L..lengthL .length>=
MAX LEN) return ERROR;
for (q=L.length-1;q≧i;q--)L.elem[q+1〕=L.elem[q];
//將第i個元素及其后的元素后移
L.elem [i-1〕二e;//插人元素
L.le ngth++;//線性表長度增1
return OK;
通過對算法的分析要有助于程序設計能力的提高,有助于學生理解線性表的數據結構。還可使用流程圖描述算法,進一步幫助學生更好地直觀地理解算法。
3.2 優化實踐教學,培養創新能力
數據結構課程,上機實習題的設計、學生的實習訓練的數量和質量對學習效果都非常重要。通過適當的實習訓練,使得學生深刻理解和掌握課程知識體系中的理論和抽象概念,以及各類設計實現方法,提高在復雜軟件系統中的實踐能力。以學生自主探究和開發活動為主體,培養學生學習的興趣和能力。強化創新意識和創新能力,相應地提高理論聯系實際能力、實踐動手能力和科研能力,也能提高學生的學習和研究積極性,學生通過文獻調研、開題、項目分析、項目設計、成果匯報、總結評價展開設計訓練,可以把理論課上的很多算法得以實現,并且進行深入的數據結構和算法時間、空間效率討論,達到理論與實踐水平共同提高目的。
四、結語
本文針對數據結構課程進行了教學方法上的探討,從廣度和深度上把握課程的知識體系,了解基本數據結構和經典算法,掌握理論、抽象和設計方法進行探討。以期為本課程的教學提供借鑒。文中討論選取實際問題,選擇合適的數據模型,選擇經典算法,剖析重要數據結構與算法思想方法,突破常規教學方法,研究設計教學案例,通過這些例題讓學生知道利用所學知識的對實際問題問題求解,助學生理解數據結構原理和算法技術,這樣才能充分培養學生學習本課程的興趣。
參考文獻
[1] 嚴蔚敏,吳偉民. 數據結構(C語言版)[M] 北京:清華大學出版社,2006:156-163.
[2] 陳雪剛. 數據結構課程教學改革與實踐[J] 計算機教育,2011 (4):34-37.
[3] 楊利英. 數據結構課程的教學方法探討,2011 6 (24):131-133.
[4] Shaffer,A.數據結構與算法分析(C + + 版)[M] 2 版.北京:電子工業出版社,2010.
[5] 龐曉瓊. 案例驅動的《數據結構》課程設計教學改革實踐.計算機教育[J],2009.1:53~64.
[6] 沙宗堯,邊馥苓. 圖示教學法在數據結構與算法教學中的應用[J].計算機教育,2009(18):80-82.
關鍵詞:微課;案例教學法;數據結構;教學模式;主動性
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2016)13-0110-02
Abstract: Firstly, this paper analyzes the problems of Data Structure course teaching in traditional teaching mode, discusses the case-making by using micro-lecture as a technical means, and the case is applied to blended teaching and learning model of Data Structure teaching. The practice shows that it can be able to mobilize students' initiative, realize the interaction and feedback between teachers and students better and improve the teaching effect.
Key words: micro-lesson; case teaching method; data structures; teaching model; initiative
1 概述
近年來,基于互聯網的信息技術在教育領域得到了廣泛應用,其中最主要的形式是微課、翻轉課堂和慕課。全國高校相繼進行了數字校園建設,推動新教學技術在教學中的應用,促進教學改革和創新,新的教學模式相繼得到應用,提高了課堂教學效果[1]。在這樣的背景下,微課成為當前教學信息化中備受關注的應用形式之一。
微課是以混合式學習為指導思想,基于學科的核心知識點設計,適用于微型化學習的新型課件設計形式。課件通常以視頻形式為主,時間長度一般為5-8分鐘,內容精簡。特別是近幾年,微課等教育技術受到廣泛關注,但只有將微課與傳統教學模式相結合,才能真正在實際教學中發揮其作用[1]。因此,本文討論將微課與傳統的基于案例教學法的數據結構教學相結合的混合式教學模式。
2 數據結構教學中存在的問題及案例教學法應用
《數據結構》課程是計算機科學中一門綜合性的專業基礎課,是一門承上啟下的課程。它不僅僅是一般程序設計的基礎,而且是設計和實現編譯原理、操作系統、數據庫系統及其他系統程序和大型應用程序的重要基礎。
但是,當前數據結構教學中存在以下問題:1)以教師講授知識和學生被動接受知識的傳統教學模式為主,不能以學生為主體,無法調動學生學習的自主性;2)數據結構基本知識和算法邏輯性強,內容抽象,對于學生來說,學習比較枯燥。特別是當前導課程離散數學和C語言程序設計沒有很好掌握的情況下,不僅沒有學習興趣,也因無從下手而對學習沒有信心,學習效果差,更談不上達到根據實際問題設計數據結構和算法的學習要求[2]。
針對數據結構教學中存在的問題,許多學者在教學方法上進行改變,將案例教學法應用在《數據結構》教學中[2-3]。
案例教學法起源于1920年代,由美國哈佛商學院所倡導,有助于培養和發展學生主動參與課堂討論。而國內教育界開始探究案例教學法,則是在上世紀九十年代后[3]。
案例教學法是一種以案例為基礎的教學法,案例本質上是提出一種教育的兩難情境,沒有特定的解決之道,而教師于教學中扮演著設計者和激勵者的角色,鼓勵學生積極參與討論,作為一種具有明確目的、以行動為導向的訓練方法有助于提高學生綜合素質,避免了傳統的教學方法中教師始終扮演著傳授知識者角色,學生始終扮演知識接受者角色的問題。
案例教學法在數據結構教學中的應用,對提高教學效果起到了積極的促進作用,但是教學模式仍然屬于傳統教學模式。信息技術的不斷發展,推動教學模式不斷改變以適應教學需要[4-5]。由于數據結構及其算法的教學難點在于他們的抽象性和動態性。如何變抽象為直觀,將知識點與生活場景結合,理論與實踐相結合,是作為教學工作者始終要關注和解決的問題。因此,本課題組成員以教改項目為依托,根據本院的教學特點,將以微課為基礎的案例教學法應用于數據結構的教學中[6-7]。
3 基于微課的案例選擇、設計與制作
3.1案例的選擇
應用案例教學法,案例就是教學的核心,教師必須精心選擇和準備案例。案例的選擇通常遵循以下幾點:1)案例的難度適中;2)案例內容具有真實性和典型性;3)案例與專業相關,貼近學生興趣。
本文作者在教學中使用的教材是嚴蔚敏教授主編的《數據結構(C語言版)》[8],根據書中的章節和內容,選擇設計合適的案例。如第二章線性表選擇的案例是圖書館書目檢索系統。第三章棧和隊列,選擇停車場管理系統和銀行叫號排隊系統作為案例。
3.2 案例的設計與制作
案例的設計是實施案例教學的基礎和前提。將微課作為技術手段進行案例的設計和制作,是以微課為基礎的案例教學法在數據結構中應用的核心和關鍵。以線性表這一章為例,案例選擇圖書館書目檢索與借閱系統。
利用微課相關技術易于錄制視頻多媒體的特點,首先錄制和制作關于圖書館借書、學生期末成績公布、職工工資分配三個場景,然后加入動畫和卡通形象制作提出疑問,它們涉及的數據的共同特點是什么?解決問題的思路如何?由此引入線性表的邏輯結構的講解,然后把圖書館書目查詢系統作為具體案例進行內容設計。在微課中展示了學生經常使用的本校圖書館書目檢索和借閱系統。從而引入線性表的操作及其實現。在微課設計中,演示了線性表數據結構的瞬間動態特性,不同存儲結構下查找、插入和刪除等算法的作用過程,使知識直觀化。
4基于微課的案例教學法的具體實施
在實施案例過程中,結合目前本人所在學院基于E-learning的云課堂,采取如下三個步驟進行教學的組織。
4.1案例的導入
在課前兩天將制作的微課內容上傳至學院云課堂,要求學生進行學習,分析思考,同時完成對知識點的預習。
4.2案例的討論
在課堂上,注意將“圖書館書目檢索和借閱系統”教學案例貫穿整個教學過程,將案例內容作為知識點的依托,對知識點進行講解,然后組織學生以小組為單位,討論案例相關的基本知識和解決問題的方案,同時教師加以恰當引導,通過師生的互動,發揮學生的主動性。
4.3案例的總結
方案的實現則在實踐環節完成,實驗課程通常安排在理論課程當天下午或第二天,以任務驅動的方式下達實驗要求,使學生通過完成任務實現對知識的理解、掌握和運用,同時實驗課上加強對學生的具體輔導,最后作案例的總結。從而真正實現了在教師的指導下,以學生為中心的“自主學習”,提高了學生分析和解決問題的能力,提高了教學效率。
5 結論
數據結構課程的教學要求之一是訓練學生進行復雜程序設計的技能和培養良好程序設計的習慣,其重要程度絕不亞于知識傳授。因此,在數據結構的整個教學過程中,學生主動參與學習、認真完成習題作業和上機實習是保證學習質量的重要環節。將以微課為基礎的案例教學法應用于數據結構,能實現上述環節的兼顧,教學符合從感性認識到理性認識的認知規律,從而幫助學生完成知識的學習和能力的提升,改善了教學質量,切實提高了學生分析問題和解決問題的能力。實踐證明學生學習興趣明顯提高,教學效果良好。
參考文獻:
[1] 趙國棟. 微課、翻轉課堂與慕課實操教程[M].北京:北京大學出版社,2015:15-40.
[2] 宗瑜,金萍. 案例教學法與數據結構教學改革[J]. 皖西學院學報,2009,25(2):30-31.
[3] 楊業娟. 案例教學法在高職數據結構課程中的應用研究[J].電腦知識與技術, 2012, 8(27):6553-6554.
[4] 張瑞霞,文益民,周婭等. 數據結構課程微課設計與應用研究[J]. 計算機教育, 2015(16):59-62.
[5] 唐翠芳,張仁津. 用案例教學法指導數據結構與算法教學[J]. 計算機教育, 2011(8):91-95.
[6] 王靜婷,王艷麗,張敏.微課教學模式在Oracle數據庫課程中的應用[J].電腦知識與技術, 2016, 12(1):21-24.
關鍵詞:數據結構;教學改革;教學手段
中圖分類號:G642 文獻標識碼:B 文章編號:1672-5913(2009)04-0050-02
1 引言
數據結構是計算機專業課程體系中一門重要的專業基礎課程,ACM/IEEE CC-2004將它列為核心課程之首。數據結構前承高級語言程序設計和離散數學,后接操作系統、編譯原理、數據庫原理等專業課程,為研制開發各種系統和應用軟件奠定理論和實踐基礎。因此數據結構教學與計算機專業人才培養計劃的成敗有著非常大的關系。然而在該課程的教學過程中,學生普遍反映學習起來非常困難,教師也感覺教學效果不盡如人意。如何教好這門課程是擺在我們面前的一個研究課題。
筆者作為該課程的主講教師,深感責任之重大,所以一直密切關注該課程教改理念與經驗,以期借鑒過來最大限度提高教學效果。目前關于該課程教改方面文章很多,包含了教學各部分:有關于教材的,有關于課堂教學的,有關于實驗教學的,有關于課程輔導的,有關于教學效果評價的等等。特別是課堂教學方面,提出了很多新的教學方法和教學手段。下面筆者結合自己在數據結構教學中的一些體會,談談自己對目前教改的認識。
2 教材選擇
教材選擇是實施該課程教學的第一步。目前《數據結構》教材有采用C語言描述的,也有采用C++或Java描述的。選擇什么語言描述,主要看學生都學過哪些編程語言。在很多院校里學生學習《數據結構》之前只學習過C語言,如果非要趕潮流,選擇面向對象語言,無疑會加大學習的難度。有些學校使用自己編寫的教材,這是好事。但各學校師資水平參差不齊,并不適合推廣。編制的教材質量到底怎么樣,應組織同行專家進行科學論證,如果草率拿學生做試驗,是不負責任的行為。目前國內《數據結構》教材數不勝數,但鮮有出清華嚴蔚敏、北大許卓群之在者。大多教材只是對內容的順序作一些調整,刪去一些不講的內容,再增加一些數據結構新技術。筆者認為,數據結構重在培養學生堅實的基礎理論知識、良好的抽象思維能力和良好的編程風格,沒有必要非得接觸最前沿的技術,即使需要,只要基礎知識扎實,自學這些新技術也不是什么困難的事。教師應注重通過基本理論的教學,教會學生學習的方法,而不應企圖把所有內容全部教給學生,這就是“授人以漁”的道理。將數據結構和程序設計兩門課進行融合,也是一條值得研究的思路。
3 課堂教學
3.1 充分利用第一次課
第一次課至關重要,教師應通過第一節課對學生的程序設計基礎有個大致了解,在培養學習興趣的同時,還要給學生留下良好的第一印象,因為學生對教師的喜惡往往也影響著學生對該課程的喜惡。第一節課要盡量向學生解釋清楚為什么學習程序設計語言后還要學習數據結構,數據結構的重要性,數據結構主要研究內容是什么;告訴學生一開始學習數據結構感覺有些困難是正常的,鼓勵他們努力克服困難;公開教師的聯系方式,告訴學生老師喜歡而不是討厭他們提問題。接下來通過幾個例子,帶學生簡要回顧一下C程序設計中的一些重要概念,如數組、結構體、指針、函數和遞歸。這些內容是數據結構的重要基礎,但往往正是學生的薄弱之處。如果發現學生以上知識比較薄弱,以后在講解數據的存儲結構和訪問方式時就要盡可能地詳細一點。最后要求學生利用課余時間重點復習這些內容。
3.2 課前準備
在這門課程中,有一些概念比較抽象,而算法正確選擇的前提在于對基本概念的把握,因此概念的講解一定要清楚、準確。這就要求教師必須認真備課,查閱大量的參考資料。教師只有先對每個概念、原理進行深刻理解,然后才有可能用學生易于接受的方式、簡潔明了的語言去講解,并有目的地分散難點、化難為易。除了查閱資料,我還下載了好幾個大學的教學視頻,通過觀看這些視頻,學習他們教學中的長處,感覺頗有收獲。
3.3 教學方法
教改先驅們提出了很多好的教學方法,具有重要的借鑒價值,如發現型教學法、啟發式教學法、任務驅動型教學法、討論式教學法、案例教學法等等。但有些文章片面強調某一種教學方法,還有些文章認為傳統的教學方法就是滿堂灌、填鴨式,給人感覺教改前就沒有數據結構講得好的教師,這都是有失偏頗的。比如案例教學法雖然效果好但比較費時,由于數據結構課時有限,因此并不適合經常使用。美國的數據結構教學也是以教師講授為主,而不是以課堂討論為主。“教學有法,教無定法”,每種方法只適合應用于某些特定的情形,教師應該根據教學內容和教學對象的不同,靈活采取適當的教學方法。
3.4 教學手段
許多老師利用多媒體課件等現代化教學手段極大提高了課程的教學效果。但我發現,有的老師過于依賴這些手段,一說起黑板加粉筆的傳統教學手段就覺得必定呆板、沉悶、被動,并加以排斥。盡管多媒體教學具有知識信息量大、內容豐富生動的特點,但不利于教師的即興發揮,而這恰是黑板加粉筆的長處。此外數據結構中絕大部分算法長度都超過一個頁面,在教學中需要反復切換,影響了知識的聯結。因此我們在教學過程中應該把現代化教學手段和傳統教學手段有機地結合起來。例如在講二叉樹遞歸遍歷算法時,為了消除學生對遞歸算法的神秘感,可以先結合一個簡單的例子,將遞歸算法在黑板上層層展開,然后再使用計算機演示遞歸過程,這比直接演示更易于理解,因為很多學生即使看著遞歸的執行流程也難以理解為什么會這樣執行。還有些老師在教學中過于追求形象化,我認為沒有必要。對于本身并不復雜的算法,如果非要形象化,反而不利于培養學生的抽象思維能力,進而淪落為著名計算學科專家Dijkstra所批評的幼稚化。教師在制作CAI課件時應謹記它只是起輔助作用,不應該也不可能完全替代傳統教學手段。馮搏琴教授在文獻中詳細說明了運用多媒體課件授課的六元素和四大忌,具有極大的指導意義。
4 實驗教學
實驗教學是課堂教學的一種延伸,通過實驗教學,學生不僅對所學知識加深了理解,更重要的是培養了學生分析問題、解決問題的能力。實驗題目應精心選擇,對于必做題,難度不能太大,要讓絕大多數學生通過自己的努力,或在指導教師稍許指點下就可以完成,如果難度太大,學生上機實踐的興趣必然急劇下降。對于編程能力較好的學生,可以鼓勵他們去嘗試難度稍大的選做題。數據結構中用類C語言來描述算法,并且只描述出其主體部分,其它部分則不做重要介紹,甚至忽略掉,這對于剛剛接觸這門課的學生來說,總有一種不知所措的感覺,所以我在前幾個算法講解中,盡量將其以程序形式給出,然后再與算法進行對比,這樣上機時就不會有學生將算法照抄一遍,然后委屈地問為什么不能運行了。前幾次主要是驗證型實驗,等學生適應數據結構編程后,再做一些設計型實驗。實驗教學課時較少,應要求學生在課下做好準備,上機時主要讓教師驗收程序或問一些自己解決不好的問題,這一點大部分學生都可以做到。由于高校擴招,每批上機學生數較多,還是有些學生的問題不能得到及時解決,可通過電子郵件等方式給他們提供幫助。
5 作業及講解
很多學生反映上課能聽懂,但一旦讓他們自己設計算法時就不知所措了。經過了解,我覺得他們大多心里知道如何去解決問題,但就是不知道如何用類C語言表達出來。我一開始布置的作業題一般都是對課本算法的變形,這個難度要小一些。比如在學完“將兩個非遞減的有序表合并成一個非遞減的有序表”后,我就讓他們設法修改課本算法,實現將兩個非遞減有序表合并成一個非遞增的有序表(順序實現和鏈式實現)。對于難度大一些的習題,適當給一些提示。講解作業時,應盡量采取“現場編寫算法”的形式,將自己的思想表達成類C語言的每一個過程展現給學生,并讓學生參與其中。
關鍵詞:研究型教學;數據結構;創新能力
中圖分類號:TP391 文獻標識碼:B
文章編號:1672-5913(2007)02-0055-03
研究型教學,就是以素質教育為主,通過研究型課程的建設和教學,使學生提高基本素質、夯實基本知識、培養基本能力、提高基本技能;教學方法由傳統的“注入式知識教育”,轉變為適應知識經濟要求的“研究式素質教育”;授課方式要由“連續型細節式授課”,轉變為“跳躍型平臺式授課”;教學形式要由“單一的課堂教學”,轉化為“多形式的互動交流”;教學氛圍要有濃烈的研究氣氛。
數據結構課程是一門計算機專業的核心課程,它在整個計算機專業教學體系中處于舉足輕重的地位。數據結構課程的學習過程不僅是訓練學生研究和設計算法以及編寫復雜程序的過程,同時也是培養學生的數據抽象能力從而提高學生的研究水平和創新能力的過程。因此在數據結構課程中實施研究型教學法是非常必要的。
1開展研究型教學法的原則
研究型教學法,是相對于以單向知識傳授為主的教學型教學法提出的一種融合教學與研究為一體的新型教學法。研究型教學法認為教育者應建立一種合適的體系,采用一種合適的模式,激勵、引導和幫助學生去主動發現問題、分析問題和解決問題,并在這樣的“探究”過程中獲取知識、訓練技能、培養能力、發展個性。研究型教學法以學生及其探究式學習為主體,以培養和提高他們的研究和創新能力為目標,很好地體現了指導與自主、規定與開放、統一與多樣、理論與實踐有機結合和辨證統一的教育指導思想。蘇霍姆林斯基的研究型教學法認為,應該遵循教師的主導作用與學生主體作用對立統一、相互制約的規律,體現啟發發現式教學的指導思想,實現教學的民主化原則和主體性原則,充分體現學生的主體地位,極大地激發學生學習的內在興趣和成就動機,調動學生學習的積極性、主動性和創造性,使學生真正成為一個學習者、思考者和發現者,從而能夠生動、活潑地全面發展。教師的任務就是指導學生的腦力勞動,讓學生學會思考,進行研究性的活動。研究型教學是高等教育發展的必然趨勢。
2數據結構課程中研究型教學法的實踐
2.1 轉變教學模式
研究型教學模式是將過去傳授式教學轉化為交互式的教學,使教師成為課程教學中的引導者,學生成為主動的思考者和積極的參與者,充分體現教師的主導地位和學生的主體地位,改變過去“什么是什么”式的教學。在研究型教學中,被強調的是教學的過程而不是結果。即通過問題,并且以動態的、遞進的問題去引導學生思考和參與。例如在學習深度優先遍歷算法之后,引導學生自主思考什么是廣度優先遍歷算法,比較圖的深度優先遍歷算法與廣度優先算法的異同,設問應采用何種數據結構可以實現廣度優先遍歷算法中鄰接點的依次訪問,等等。通過這些啟發性問題,引導學生積極思考和探究,讓學生自覺地將獨立的問題串起來,尋找并建立它們的聯系,從而加深對算法的理解,培養分析問題和綜合問題的能力。
2.2 豐富已有的教學方法和手段
以多媒體技術和網絡技術為依托,采用現代教學方法和實現手段,制作高質量的多媒體課件、算法動態演示系統和交互式的教學網站,豐富已有的教學方法和手段。教師和學生之間除了課堂交流外,可以充分利用Internet等條件進行交流與溝通。教師將備課筆記、作業、參考資料等放在教學網站上供學生隨時查閱,也可以將研究心得和教學體會于網站,而學生則可以通過BBS提出問題或建議,各抒己見,形成一個輕松活潑的研究型學習氛圍。例如某學生在網站論壇上發表《最小生成樹的算法與單源最短路徑問題算法之比較》的帖子之后,一周內就有一百多條跟帖。
2.3 注重實驗教學
數據結構課程是一門實踐性很強的課程,數據結構實驗集中反映了課程的典型方法和基本技術。我們在數據結構課程的實踐環節教學方面,除了加大實驗課教學時數外,還根據實驗內容以及學生的學習進程,設置了驗證型、設計型和綜合型三個層次的實驗。驗證型實驗,即根據已有的算法進行實現,驗證算法的有效性和可行性。例如線性鏈表的刪除與插入操作、Prim算法實現最小生成樹等。設計型實驗則要求學生根據問題提出算法和采用的數據結構并實現。例如判定某有向圖是否有回路、游覽公園的每個景點問題等。而綜合性實驗給定的問題更加注重綜合性,涉及更多的算法和更多的數據結構。將三個層次實驗的難易程度進行合理設置,不僅可以鍛煉學生的動手能力,而且還培養了學生的創新能力和綜合分析能力。
2.4 以研究促進教學
研究型教學要求教學和研究有機的結合,以研究促進教學,堅持用高水平研究帶動高質量教學。因此教師不能只滿足于依照一成不變的教材“完成”教學任務,而要通過繼續學習、終身學習的途徑不斷更新自己的知識結構,使自己處于學科的前沿。首先是要對課程進行研究,通過對課程和教材的研究來提高教學水平和質量,注重跟蹤和學習國內外數據結構課程的最新教學和教材成果;其次要擔負具有一定創新性的研究課題,力爭成為本學科的學術骨干乃至學術帶頭人,使研究與教學真正地結合起來,從而在向學生傳授基本知識和新知識的同時,提高學生的綜合素質。
2.5 協同學習
研究型教學鼓勵學生間的協同學習、合作研究。強調通過小組學習的方式,加強合作交流,共同學習,達到教學相長、學學相長的目的。把學生劃分為學習小組,參與一些課堂討論、綜合性實驗甚至是研究課題。小組內學生一起學習,共同研究,各盡其責,協同合作,培養學生團隊協作精神。學習小組的協作同時還可以擴展學生的思維方法,使學生有了更多的主動學習的機會。
2.6 建設開放式、立體化的教材體系
開展研究型教學離不開教材體系的建設,教材體系的建設應該摒棄封閉式的“一本教科書”傳統,提倡開放式教材。開放式教材應該是在采用最新的優秀中文教材的同時,精選全球范圍內權威機構出版的或知名大學選用數據結構教科書為參考教材。同時開放式教材要求應該方便更新。比如國內外大學數據結構課程的聯機電子教學素材,這些電子素材本身都是經過教師精心選擇并統一編碼,內容上體現基礎性、先進性和前瞻性。同時力求反映多家學術流派,內容體現“開放性”,可以隨技術的發展和進步及時得到更新擴充。還應注重技術的時新性,例如C++描述的數據結構教材,將C++提供的面向對象編程和泛型編程等功能強大的抽象方法引入到數據結構課程中,可使教學和現代計算機技術緊密結合,從而增強傳統課程的實用性。
另外一方面,教材體系的建設還應改變傳統上局限于“紙介質知識”和“課堂教學”的做法,建設立體化的教材體系。例如,教材體系除了教科書、實驗習題用書以及參考教材之外,同時還應配有數據結構課程的教學網站和多媒體資料等。這些立體化的教材可以從不同視角,在任何空間和時間內,利用不同媒體為授課者提供教學依據,為不同學習者提供最佳學習環境,以此激發學生內在的學習動力,使教學發揮最大的效能。
2.7 建立多元評價體系
教學評價體系是整個研究型教學環節的重要組成部分。如何全面、科學地評價教學對教師與學生都會產生極大的影響。研究型教學的實施必須建立多元化的教學評價體系,使之成為提高教學質量的有效手段。以前,我們絕大多數都用一次期終考試決定學生一個學期的學習成績。事實上,這種單一的終結性評價是不全面、不客觀的,甚至會挫傷學生的學習積極性。因此,我們應該對學生整個學期的學習過程進行全面考察,綜合評估。如學生的學習態度、課堂表現、自主學習、實踐能力、創新能力以及團隊協作精神等。然后,將這些過程性的評價與期終評價結合在一起,確定學生一個學期的學習質量。例如學習態度是根據出勤率和作業的態度進行評價的,權值設為10%;課堂表現和自主學習主要反映在課堂上對問題的回答以及主動提問等,占10%;實踐能力主要依據實驗的每個環節來評定的,由驗證性實驗、設計性實驗和綜合性實驗按權求和而得,在最終成績中占40%;期終考試的成績占40%;創新能力和團隊精神貫穿于每個環節的評價過程中。
3結束語
在數據結構課程中應用研究型教學法不僅可以使學生掌握數據結構基礎知識、主要的算法思想,而且培養了學生的知識遷移能力,獲取新知識的方法,培養了學生的探索精神、團隊協作精神與創新能力。教師不僅是對學生授之以“魚”,更應授之以“漁”。通過研究型教學,激發學生的求知欲、創新欲和探索精神。
參考文獻:
[1] 廖明宏, 張巖, 李秀坤,等. 哈爾濱工業大學數據結構與算法精品課程介紹[J]. 計算機教育, 2006,(5):21-24.
[2] 丁桂芝. 立體化教材為課程計劃的有效實施提供保障[J]. 計算機教育, 2005,(7):53-56.
論文關鍵詞:數據結構 雙語 教學 師資 方法
論文摘要:我校(包頭師范學院)目前還未實施雙語教學,文章提出在我校開展數據結構課程雙語教學在師資、學生水平等方面存在的問題,進而給出了在培養師資、教學實施等方面解決問題的思路和辦法。
關于雙語教學的重要性,國家教育部早在2001年《關于加強高等學校本科教學提高教學質量的若干意見》中就提到本科教育要創造條件使用英語等外語進行公共課和專業課教學,使外語教學課程達到所開課程的5%~10%。2007年《關于進一步深化本科教學改革全面提高教學質量的若干意見》中再次提及要“鼓勵開展雙語教學工作,提高大學生的專業英語水平和能力”。
數據結構是計算機相關專業的核心課程,主要討論各種數據的邏輯結構、存儲結構及相關運算。做為一門活躍的學科,我國與發達國家相比有較大差距,新內容、新成果往往會在英文原版教材中率先得到反映,以該課程做為切入點開展雙語教學,對提高學生的專業素質和英語應用能力更有裨益。
1 目前存在的主要問題
1.1 雙語師資方面
承擔雙語教學課程的教師需要具備深厚的專業功底還要有較好的英語口語表達和交流能力,能熟練應用兩種語言進行教學。從全國來看,完全符合雙語教學標準的老師不多。就我校的情況來看,目前,在我校擔任“數據結構”課程教學的老師還是中文教學,英語整體水平不高。同其它一類學校相比,無論從雙語教學的師資水平、師資培養和師資引進方面,我校還有較大的差距。
1.2 學生方面
近年來,由于高校擴招和錄取率的提高導致學生素質整體下滑,學生的外語水平參差不齊,我校做為西部的二類院校,情況更是如此。此外,習慣母語授課、長期以來我國外語教育體制下培養出來的學生聽說能力差等問題都是實施雙語教學前需要思考的。
1.3 相關配套
雙語教學的實施是一個周密細致的工程。根據我校計算機相關專業人才培養方案和數據結構課程教學要求及雙語教學的特定要求,在充分調查了解師資和學生的情況下,要制定符合教學要求的數據結構課程的雙語教學大綱、雙語教學計劃,選定適合的雙語教材、制作或選用適合的英文課件等。英文習題、英文實踐題目、英文試卷等相關教學資源都未做好充分的準備。
此外,在教學方式、考試方式、實驗指導、教學評價等方面都要根據教學大綱制定詳盡的規范和要求。
2 解決的問題的思路
2.1 雙語師資的培養
雙語教學成敗的關鍵在師資,雙語教學的師資來源主要有以下幾種途徑:① 如華南理工大學國家示范性軟件學院等一類大學,聘請國外專家或歸國華人等國內外優秀人才擔任雙語教師,這些具有較高學術造詣和國外背景,又體現工業化背景師資隊伍對雙語教學的成功起了決定性的作用。就我校目前的發展水平來看,這個途徑行不通;② 校內選拔,自己培養。選拔專業水平高、責任心強、教學效果好、英語口語表達能力強的教師但任雙語課程的主講教師,定期在校內及在相關院校交流學習,定期輸送教師到國外進行雙語教學的培訓。做好這一點,經過一個時期,我校會培養出自己的合格的雙語教師。
2.2 學生方面
雙語教學的過程中必須要重視學生的個體差異,針對學生英語水平參差不齊的情況,可采取以下措施:① 注意培養學生的學習興趣,興趣是最好的老師。如果學生對一門課程建立了濃厚的學習興趣,就會具有主動學習的精神和學好這門課程的動力。教師的個人魅力和專業素養是影響學生學習興趣的重要因素之一,這就要求教師不僅專業素養高,而且愿意為雙語教學作出更多努力,深刻領會概念實質,深入淺出地講解教學內容,關注學生的學習基礎和對課程學習的反饋,使學生能感受到學習的樂趣。此外,數據結構課程內容眾多,許多成果源于世界著名計算機科學大師的創新。教師在教學中注意引導,讓學生感受到經典的分析問題和解決問題的邏輯思維,引導學生在理解的基礎上積極創新,也會提升學生對課程的學習興趣。② 采用分級教學。數據結構課程本身比較難學,再加入雙語教學,對于一些學生一定吃不消,可考慮分級教學。根據考核學生的英語水平、根據教學要求等分漢授和雙語授課兩個班。
2.3 教材方面
雙語教學的學校、師資、學生的整體水平決定了在雙語教材的選擇上會有很大的差異。一類大學多數采用的是英文原版教材,如華南理工大學計算機科學與工程學院采用Clifford A. Shaffer:A Practical Induction to Data Structures and Algorithm Analysis, Publishing House of Electronics Industry;東南大學的計算機科學與工程系采用Computer Science Express 版的國際著名原版英文教材Fundamentals of Data Structure in C++。根據我校的實際情況,適合的教材策略應該是選用中英文雙語經典教材配合使用,如國家教育部推薦的信息類專業雙語教學國外經典原版教材Robert L. Kruse Data Structures and Program Design in C++,這樣的對照教材,便于學生理解,特別是在雙語教學啟動階段。 轉貼于 2.4 其它幾個關鍵點
2.4.1 客觀科學制定課程大綱
要在充分調研數據結構課程教學要求的基礎上, 根據我校計算機相關專業人才培養方案及本課程在整個專業課程體系中的作用,并考慮雙語教學的特定要求, 制定數據結構課程雙語教學大綱, 大綱應強調學生對基本概念與方法的理解, 注重培養學生的獨立思考解決問題的能力。
2.4.2 加強多媒體教學
面對數據結構課程中大量的經典、難理解的算法,加之雙語教學,必定會增加學生學習理解的難度。可以試想這樣一種教學情境:在講授新算法之前,先播放相關動畫及相關媒體資源,使學生對此算法先有感性認識,然后教師提出問題,使學生帶著問題聽課,這樣的親近的教學手段,有利于減少對陌生算法的排斥,加深加快對算法的理解。目前,要做的工作一是對自做的好的中文多媒體課件做翻譯,二是下載最新的國內外優秀的多媒體課件。
2.4.3 雙語并用
雙語教學并非只能用英語教學,在講授課程內容時,考慮到我校學生的外語水平,對于課程中涉及到的重要概念、術語,做到使用英語講授,使學生在學習過程中逐步具備計算機專業術語的語言優勢。對于較難的算法可穿插使用漢語,注意使用簡單句和專業詞匯,避免使用過多的定語和復雜的從句,教師可充分利用非語言行為,直觀、形象地提示和幫助學生理解教學內容,降低學生在英語理解上的難度。同時還要隨時根據學生掌握的程度,調整英文和中文的授課比例。
2.4.4 注重實踐環節
數據結構是一門實踐性很強的課程,實踐環節必不可少。雙語環境下的實踐還要做到:用英語描述實踐的作業、全英文的實驗軟件環境、學生分組協作完成、英語提交實驗報告,如此,一是鍛煉學生的動手實踐、團隊協作能力,二是鍛煉學生的英語表述能力。考慮到學生不同的層次水平,在實驗題目上也可分難易層次,使全部學生都可在實踐中得到適合的鍛煉。
3 結論
雙語教學是專業教學發展的趨勢,無論對教師還是學生都需要一個逐步適應的過程。就我校的目前的情況來看,開展數據結構課程的雙語教學,要充分認識以上需要著手解決的問題,待各方面條件成熟,可以考慮開設數據結構的雙語教學。
參考文獻
[1] 楊捷,霍黨澤.“數據結構”課程雙語教學的研究與實現[J]. 北京大學學報(哲學社會科學版), 2007(5).
[2] 蔡英. 數據結構雙語教學的探索性實踐[J]. 實驗室研究與探索, 2007(12).
[3] 金遠平,王茜,徐冬梅. “數據結構”課程雙語教學的研究與實踐[J]. 電氣電子教學學報2005(8).