米文麗
(甘肅省隴東學(xué)院信息工程學(xué)院 甘肅慶陽 745000)
啟發(fā)式教學(xué)在《數(shù)據(jù)結(jié)構(gòu)》課程中的應(yīng)用
米文麗
(甘肅省隴東學(xué)院信息工程學(xué)院 甘肅慶陽 745000)
數(shù)據(jù)結(jié)構(gòu)是計算機及其相關(guān)專業(yè)的核心課程之一,由于內(nèi)容多、概念多、算法復(fù)雜、邏輯性強等特點,目前在課堂理論教學(xué)過程中學(xué)生學(xué)習(xí)興趣不高,普遍反映數(shù)據(jù)結(jié)構(gòu)難學(xué)難懂,為了提高數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)效果,在教學(xué)過程中采用啟發(fā)式教學(xué),激發(fā)學(xué)生內(nèi)在的學(xué)習(xí)動力,鼓勵學(xué)生積極思維,自己尋找解答,把書本知識轉(zhuǎn)化具體知識,再進一步把具體知識轉(zhuǎn)化為能力,促進學(xué)生的全面發(fā)展。
數(shù)據(jù)結(jié)構(gòu);啟發(fā)式教學(xué);教學(xué)實施
數(shù)據(jù)結(jié)構(gòu)課程是計算機及其相關(guān)專業(yè)的必修專業(yè)基礎(chǔ),主要討論現(xiàn)實世界中數(shù)據(jù)的各種邏輯結(jié)構(gòu)、在計算機中的存儲結(jié)構(gòu)以及各種算法的設(shè)計問題。教學(xué)目的是使學(xué)生掌握如何組織數(shù)據(jù)、如何存儲數(shù)據(jù)、如何處理數(shù)據(jù)的基本概念和軟件設(shè)計的基本方法,從而為進一步學(xué)習(xí)后續(xù)專業(yè)課程打下堅實的基礎(chǔ)。
數(shù)據(jù)結(jié)構(gòu)課程具有內(nèi)容多、概念多、算法復(fù)雜、邏輯性強等特點,目前在課堂理論教學(xué)過程中學(xué)生學(xué)習(xí)興趣不高,普遍反映數(shù)據(jù)結(jié)構(gòu)課程抽象、難學(xué),在學(xué)習(xí)和實際應(yīng)用中問題比較多,學(xué)習(xí)過程中成就感不強,學(xué)完之后還是不知道如何應(yīng)用。為提高數(shù)據(jù)結(jié)構(gòu)課程教學(xué)質(zhì)量,在教學(xué)過程中使用啟發(fā)式教學(xué),并付諸實踐。
所謂啟發(fā)式教學(xué),就是教師根據(jù)教學(xué)目的、內(nèi)容、學(xué)生的知識水平和知識規(guī)律,運用多種教學(xué)手段,采用啟發(fā)誘導(dǎo)辦法傳授知識、培養(yǎng)能力,使學(xué)生積極主動地學(xué)習(xí),以促進身心發(fā)展。啟發(fā)式教學(xué)思想的特點是:強調(diào)學(xué)習(xí)者是學(xué)習(xí)的主體,教師要調(diào)動學(xué)習(xí)者的學(xué)習(xí)積極性,實現(xiàn)教師主導(dǎo)作用與學(xué)習(xí)者積極性相結(jié)合;強調(diào)激發(fā)學(xué)生內(nèi)在的學(xué)習(xí)動力,實現(xiàn)內(nèi)在動力與學(xué)習(xí)的責任感相結(jié)合;強調(diào)理論與實踐聯(lián)系,實現(xiàn)書本知識與直接經(jīng)驗相結(jié)合。要求教師善于引導(dǎo)轉(zhuǎn)化,運用一定的手段和方法,啟發(fā)學(xué)生的思想,引導(dǎo)學(xué)生去思考問題,運用科學(xué)的思維方法,去分析問題、解決問題,鼓勵學(xué)生積極思維,自己尋找解答,把學(xué)生的書本知識轉(zhuǎn)化為學(xué)生的具體知識,再進一步把學(xué)生的具體知識轉(zhuǎn)化為學(xué)生的能力。
啟發(fā)式教學(xué)的特征:(1)客觀性:是指教學(xué)內(nèi)容、方法的設(shè)計和實施符合學(xué)生的客觀實際。這個實際內(nèi)容包括學(xué)生實際的需求、水平、特點等。教師備課“要了解學(xué)生”是客觀性的體現(xiàn)。(2)主動性:指在教學(xué)活動中,學(xué)生學(xué)習(xí)的自覺性、積極性、創(chuàng)造性得到了較好的發(fā)揮。它體現(xiàn)在學(xué)生對學(xué)習(xí)的意義有明確的認識,采取主動進取的態(tài)度,有克服困難的毅力,有較濃厚的學(xué)習(xí)興趣,掌握科學(xué)的學(xué)習(xí)方法,在學(xué)習(xí)中發(fā)揮獨創(chuàng)性。(3)互動性:指在教學(xué)過程中師生之間的相互配合和相互作用。一方面是針對學(xué)生問題、需要等所進行的雙向信息交流;另一方面是教師指點方法,引導(dǎo)學(xué)生思考和解決問題,而不是將問題的答案簡單地告訴給學(xué)生。教師的作用在于有針對性地點化、引導(dǎo),啟發(fā)學(xué)生的積極性,教給學(xué)生學(xué)習(xí)與思維的方法。(4)發(fā)展性:是指在教學(xué)過程中,教師的教能有效地促進學(xué)習(xí)者的學(xué),促進學(xué)習(xí)者的全面發(fā)展,使教學(xué)活動富有成效。啟發(fā)式教學(xué)各個特點之間各有側(cè)重,它們之間是互相依存和互相促進的。
1.課前準備
(1)教學(xué)目標。掌握單鏈表的操作和模式匹配算法思想,練習(xí)在采用單鏈表存儲的線性序列中如何進行模式匹配。
(2)教學(xué)難點。在單鏈表中進行模式匹配時指針如何移動。
(3)實踐目的。使學(xué)生進一步掌握單鏈表的操作,熟悉模式匹配算法,實現(xiàn)用單鏈表存儲的線性序列的模式匹配。激發(fā)學(xué)生內(nèi)在的求知欲望和學(xué)習(xí)熱情,調(diào)動學(xué)習(xí)的積極性,幫助學(xué)生完成知識的意義建構(gòu)。
(4)內(nèi)容分析。我校目前使用的教材是徐鳳生主編的《數(shù)據(jù)結(jié)構(gòu)與算法》,該書語言通俗易懂,重點突出,算法豐富。在本課程之前,學(xué)生已經(jīng)學(xué)習(xí)了《C語言程序設(shè)計》課程,具有一定的編程能力,并學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)課程中的單鏈表和串的模式匹配。本次的內(nèi)容是單鏈表和模式匹配這兩部分的結(jié)合,目的是培養(yǎng)學(xué)生分析和解決問題的能力。
(5)對象分析。數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí)對象為大一或大二的學(xué)生,他們在之前已經(jīng)學(xué)過計算機程序設(shè)計語言課程(C語言),因此有了一定的分析問題、解決問題和編寫程序的能力。
2.教學(xué)實施
(1)創(chuàng)設(shè)情境。教師:在《數(shù)據(jù)結(jié)構(gòu)》課程第四章中學(xué)習(xí)了串的表示和實現(xiàn)以及串的模式匹配(子串的定位操作),串的存儲分為兩種類型:順序(定長順序存儲、堆分配存儲)和鏈式(塊鏈存儲),而串的模式匹配是在串的順序存儲結(jié)構(gòu)上實現(xiàn)的。那么現(xiàn)在要求大家利用串的匹配思想,編寫程序?qū)崿F(xiàn):兩個整數(shù)序列A=a1,a2,a3,…,am和B=b1,b2,b3,…,bn已經(jīng)存入兩個單鏈表中,設(shè)計一個算法,判斷序列B是否是序列A的子序列。教師利用《數(shù)據(jù)結(jié)構(gòu)》網(wǎng)絡(luò)課程中的社區(qū)論壇發(fā)布題目要求。
學(xué)生:帶著給定的問題復(fù)習(xí)以前學(xué)過的知識,如單鏈表的操作,線性序列的存儲,模式匹配算法等。如何將單鏈表的操作和模式匹配操作結(jié)合起來,這就激發(fā)了學(xué)習(xí)者學(xué)習(xí)的興趣。學(xué)生在論壇中討論實現(xiàn)這個功能的算法中所要包含的一些操作以及如何實現(xiàn),學(xué)生之間進行實時或非實時的交流,接受教師指導(dǎo),形成實現(xiàn)功能的一個思想,然后利用C語言編寫程序。
(2)抽取啟發(fā)原型。這個題目的原型就是串的模式匹配。串的模式匹配即子串定位是一種重要的串運算。設(shè)s(主串)和t(子串)是給定的兩個串,在主串s中找到等于子串t的過程稱為模式匹配,如果在s中找到等于t的子串,則稱匹配成功,函數(shù)返回t在s中的首次出現(xiàn)的存儲位置(或序號),否則匹配失敗,返回-1。t也稱為模式。在這個題中采用簡單的模式匹配算法,算法思想是:首先將s中的第一個字符與t中第一個字符進行比較,若不同,就將s中的第二個字符與t中第一個字符進行比較,...,直到s的某一個字符si和t1相同,再將它們之后的字符進行比較,若也相同,則如此繼續(xù)往下比較,當s的某一個字符si與t的字符tj不同時,則s返回到本趟開始字符的下一個字符,即si-j+2,t返回到t1,繼續(xù)開始下一趟的比較,重復(fù)上述過程。若t中的字符全部比完,則說明本趟匹配成功,否則,匹配失敗。
(3)總結(jié)討論。串的特點是有零個或多個字符組成的有限序列,即串中的每個元素是字符,而這個題目中給定的序列是整數(shù),所以數(shù)據(jù)類型發(fā)生變化,另外串的模式匹配是在順序存儲的結(jié)構(gòu)上實現(xiàn)的,而題目要求是單鏈表。因此,可以先將數(shù)據(jù)序列用單鏈表來存儲,再按照串的模式匹配來思考如何實現(xiàn),然后對串的模式匹配算法進行改寫。
經(jīng)過討論后得到解決上述問題的算法思想為:將兩個整數(shù)序列用單鏈表存儲,然后從兩鏈表的第一個結(jié)點開始,若對應(yīng)數(shù)據(jù)相等,則后移指針;若對應(yīng)數(shù)據(jù)不等,則A鏈表從上次開始比較結(jié)點的后繼開始,B鏈表仍從第一結(jié)點開始比較,直到B鏈表到尾表示匹配成功。A鏈表到尾B鏈表未到尾表示失敗。操作中應(yīng)記住A鏈表每次的開始結(jié)點,以便下趟匹配時好從其后繼開始。
數(shù)據(jù)結(jié)構(gòu)是一門實踐性很強的課程,通過啟發(fā)式教學(xué),引導(dǎo)學(xué)生運用科學(xué)的思維方法思考問題,分析問題、解決問題,鼓勵學(xué)生積極思維,尋找解答,把書本知識轉(zhuǎn)化為具體知識,再進一步把具體知識轉(zhuǎn)化為能力,希望能夠?qū)μ岣邤?shù)據(jù)結(jié)構(gòu)課程的教學(xué)質(zhì)量有所幫助。
[1]徐鳳生.《數(shù)據(jù)結(jié)構(gòu)與算法》(C語言版)[M].機械工業(yè)出版社,2012.
[2]嚴蔚敏,吳偉民.《數(shù)據(jù)結(jié)構(gòu)與算法》(C語言版)[M].清華大學(xué)出版社,2010.
[3]鐘祖榮.啟發(fā)式教學(xué)的特征及實施要領(lǐng)[J].中國教育學(xué)刊,1996(4).
[4]劉光然.啟發(fā)式教學(xué)在《數(shù)據(jù)結(jié)構(gòu)》課堂教學(xué)中的嘗試[J].職業(yè)教育研究,2010(5).
[5]趙爽,林永民.“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)方法研究[J].福建電腦,2013(3).
[6]張彬連,徐洪智,覃遵躍.數(shù)據(jù)結(jié)構(gòu)課程教學(xué)研究與改革.計算機教育,2013(4).
Application of heuristic teaching in "data structure" course
Mi Wen-li
(School of Information Engineering, Gansu Longdong University, Qingyang Gansu, 745000, China)
Data structure is one of the core courses of computer and related professional, due to the characteristics of the content, concepts, algorithm complexity, strong logic, the students’ learning interest is not high, generally reflect the data structure is difficult to understand, in order to improve the teaching effect of data structure course, the heuristic teaching method is used in the process of teaching, to stimulate students' intrinsic motivation to learn, to encourage students to active thinking, to find their own answers, to specific knowledge transformation, knowledge of books, to further take the knowledge into ability, promote the comprehensive development of students.
data structure; heuristic teaching; teaching practice
TP312
A
1000-9795(2014)05-0156-01
[責任編輯:劉麗杰]
2014-03-13
米文麗(1980-),女,講師,碩士,從事計算機軟件與理論方向的研究。