鮑愛(ài)華,陳衛(wèi)衛(wèi),王 真,唐艷琴,李志剛
(陸軍工程大學(xué) 指揮信息系統(tǒng)學(xué)院,江蘇 南京 210007)
數(shù)據(jù)結(jié)構(gòu)是一門(mén)兼具理論性與實(shí)踐性的計(jì)算機(jī)基礎(chǔ)課程,其實(shí)踐教學(xué)的科學(xué)性和有效性,在某種程度上決定著教學(xué)效果的優(yōu)劣,也是課程教學(xué)改革經(jīng)常涉及的內(nèi)容之一。
數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)通常采用“小+大”的實(shí)驗(yàn)設(shè)置模式:采用“小”的驗(yàn)證性題目覆蓋理論教學(xué)的主要知識(shí)點(diǎn);采用“大”的綜合(設(shè)計(jì))性課程項(xiàng)目,讓學(xué)生綜合運(yùn)用所學(xué)知識(shí)解決問(wèn)題,提升學(xué)生的實(shí)踐能力和知識(shí)運(yùn)用能力。
在教學(xué)實(shí)踐中我們觀察到,“小”實(shí)驗(yàn)點(diǎn)多面窄,是知識(shí)孤島;“大”項(xiàng)目覆蓋面較廣,但每個(gè)項(xiàng)目自成一體,沒(méi)有貫通課程教學(xué)內(nèi)容的始終,沒(méi)有可比性,通常在課程后半段才能有效展開(kāi)。在教學(xué)過(guò)程中,如何讓學(xué)生自覺(jué)地將知識(shí)點(diǎn)連接起來(lái),形成整體性思維并進(jìn)行批判性運(yùn)用,是教學(xué)改革中需要重點(diǎn)關(guān)注和研究的課題。
瑞士認(rèn)知心理學(xué)家皮亞杰指出,教育的目標(biāo)是造就具備批判性思維的頭腦、敢于驗(yàn)證問(wèn)題的頭腦,而不是人云亦云的頭腦;是培養(yǎng)有創(chuàng)造力、有發(fā)現(xiàn)和發(fā)明能力的人,而不是只懂得單純地重復(fù)上幾代人工作的人?!耙活}多解”的數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)模式,就是要突破以往機(jī)械重復(fù)的實(shí)驗(yàn)?zāi)J?,讓學(xué)生在學(xué)習(xí)理論知識(shí)的過(guò)程中,持續(xù)運(yùn)用不同的知識(shí)解決相同的問(wèn)題,使學(xué)生不斷對(duì)已經(jīng)掌握的知識(shí)進(jìn)行批判接受,進(jìn)而改造創(chuàng)新,讓學(xué)生的探究能力能夠在堅(jiān)實(shí)的基礎(chǔ)之上得到持續(xù)發(fā)展。
“一題多解”實(shí)踐教學(xué)是一種持續(xù)創(chuàng)造性的教學(xué)過(guò)程,其教學(xué)設(shè)計(jì)在遵循一般教學(xué)規(guī)律的基礎(chǔ)上,還需要考慮其特殊性,因此,筆者在教學(xué)改革中,特別考慮了以下基本原則。
選題的合理性是“一題多解”實(shí)踐教學(xué)能否成功實(shí)施的關(guān)鍵因素。選題應(yīng)當(dāng)考慮選取具有一定應(yīng)用背景,并能夠采用不同章節(jié)理論知識(shí)進(jìn)行求解的綜合性項(xiàng)目;選題應(yīng)當(dāng)具有可擴(kuò)展性,既要能夠讓學(xué)生從小處入手迅速進(jìn)入狀態(tài),也要能夠讓學(xué)生在題目范圍內(nèi)深挖探究、持續(xù)進(jìn)行改進(jìn)。
維果茨基在“最近發(fā)展區(qū)理論”(ZPD)中指出,教學(xué)應(yīng)著眼于學(xué)生的“最近發(fā)展區(qū)”,為學(xué)生提供帶有難度的內(nèi)容,調(diào)動(dòng)學(xué)生的積極性,發(fā)揮其潛能,超越其最近發(fā)展區(qū)而達(dá)到下一發(fā)展階段的水平,然后在此基礎(chǔ)上進(jìn)行下一個(gè)發(fā)展區(qū)的發(fā)展[1-2]。在進(jìn)行“一題多解”實(shí)踐教學(xué)設(shè)計(jì)時(shí),教師應(yīng)當(dāng)為學(xué)生制定層次化的實(shí)踐目標(biāo),如算法效率目標(biāo)、問(wèn)題規(guī)模目標(biāo),并設(shè)定難度等級(jí),必要時(shí)可以放棄算法效率目標(biāo)而只要求問(wèn)題規(guī)模目標(biāo),使學(xué)生快速進(jìn)入“最近發(fā)展區(qū)”,獲得成就感,進(jìn)而逐步發(fā)展。
實(shí)踐教學(xué)過(guò)程中,教師有時(shí)會(huì)存在“掩蓋或忽視思維過(guò)程”的情況,即唯結(jié)果論。在“一題多解”實(shí)踐教學(xué)中,盡管實(shí)驗(yàn)結(jié)果比較重要,但更重要的是讓學(xué)生展示其思維過(guò)程,即如何從“最近發(fā)展區(qū)”演化到下一個(gè)“最近發(fā)展區(qū)”的過(guò)程。在教學(xué)過(guò)程中,應(yīng)當(dāng)全面暴露這個(gè)思維過(guò)程,進(jìn)而進(jìn)行知識(shí)內(nèi)化、深化探索和總結(jié)升華。
“一題多解”實(shí)踐教學(xué)應(yīng)當(dāng)以學(xué)生為中心,采取全員參與、合作學(xué)習(xí)的實(shí)踐方法,激發(fā)學(xué)生自主學(xué)習(xí)熱情,提高學(xué)生持續(xù)求知欲望,增強(qiáng)學(xué)生探究創(chuàng)新意識(shí)。在教學(xué)過(guò)程中,教師可以采用啟發(fā)、鼓勵(lì)、引導(dǎo)、評(píng)價(jià)以及總結(jié)的流程,幫助學(xué)生發(fā)掘題目的新意,不提供“權(quán)威”“正確”答案,營(yíng)造民主、幽默、開(kāi)放、互助、溫暖的創(chuàng)新教學(xué)氛圍,鼓勵(lì)學(xué)生拋開(kāi)固有模式,自主創(chuàng)新,敢于質(zhì)疑問(wèn)難,不斷探索求解問(wèn)題的新方法、新思路。
現(xiàn)代教學(xué)理論認(rèn)為,教育工作要以學(xué)生為中心,在學(xué)生自主創(chuàng)新學(xué)習(xí)的基礎(chǔ)上,通過(guò)學(xué)生的觀察、實(shí)踐、思考、合作和遷移,培養(yǎng)學(xué)生良好的思維習(xí)慣。在“一題多解”實(shí)踐教學(xué)過(guò)程中,也應(yīng)當(dāng)秉承這一思路,貫徹以學(xué)生為中心的核心理念,采用合理的教學(xué)模式開(kāi)展實(shí)施。在教學(xué)改革過(guò)程中,我們采用的“一題多解”實(shí)踐教學(xué)模式的主要環(huán)節(jié)如圖1所示。
圖1 “一題多解”實(shí)踐教學(xué)的主要環(huán)節(jié)
總體而言,“一題多解”實(shí)踐教學(xué)環(huán)節(jié)可以分為3個(gè)部分,即項(xiàng)目設(shè)置環(huán)節(jié)、項(xiàng)目迭代環(huán)節(jié)和總結(jié)匯報(bào)環(huán)節(jié)。
項(xiàng)目設(shè)置是“一題多解”實(shí)踐教學(xué)的先導(dǎo)環(huán)節(jié),主要任務(wù)是針對(duì)課程內(nèi)容,為學(xué)生選擇合適的實(shí)踐項(xiàng)目。選擇實(shí)踐項(xiàng)目時(shí),應(yīng)當(dāng)著重考慮以下4個(gè)要素。
1)針對(duì)哪些課程內(nèi)容實(shí)施“一題多解”實(shí)踐教學(xué)。
如數(shù)據(jù)結(jié)構(gòu)課程可以選定表結(jié)構(gòu)、樹(shù)結(jié)構(gòu)、散列表、排序等知識(shí)點(diǎn)作為“一題多解”實(shí)踐教學(xué)內(nèi)容,并且使設(shè)計(jì)的實(shí)踐項(xiàng)目能夠?qū)⑦@些知識(shí)點(diǎn)串連起來(lái)。
2)針對(duì)實(shí)踐項(xiàng)目制定哪些梯度化階段目標(biāo)。
選定實(shí)踐項(xiàng)目后,教師需要按照“結(jié)構(gòu)層次梯度化原則”,結(jié)合理論授課進(jìn)程和學(xué)生實(shí)際情況,預(yù)先劃分不同的實(shí)驗(yàn)階段,并為不同階段設(shè)置梯度化實(shí)驗(yàn)?zāi)繕?biāo),如學(xué)生從哪種結(jié)構(gòu)開(kāi)始起步;在初始幾個(gè)階段內(nèi)應(yīng)當(dāng)達(dá)到何種算法執(zhí)行效率;如何定制不同階段應(yīng)當(dāng)求解問(wèn)題的復(fù)雜性(如測(cè)試樣本數(shù)據(jù)量)等。確定目標(biāo)后,教師就能夠在教學(xué)過(guò)程中引導(dǎo)學(xué)生探索采用不同方法求解相同的實(shí)踐項(xiàng)目。
3)如何評(píng)價(jià)學(xué)生階段性實(shí)驗(yàn)結(jié)果。
在項(xiàng)目設(shè)置環(huán)節(jié),教師應(yīng)當(dāng)考慮階段性工作完成后如何進(jìn)行評(píng)價(jià)??傮w而言,可以從兩個(gè)方面進(jìn)行考慮:一方面,橫向比較不同小組的解決方案,從性能、復(fù)雜性等方面進(jìn)行評(píng)價(jià);另一方面,縱向比較學(xué)生在不同階段提出的解決方案,衡量學(xué)生對(duì)相應(yīng)方案的改進(jìn)情況。
4)如何引導(dǎo)學(xué)生突破思維定勢(shì),尋找開(kāi)放創(chuàng)新的解決方案。
“一題多解”實(shí)踐教學(xué)本質(zhì)上是引導(dǎo)學(xué)生自行發(fā)掘新的解決方案,在學(xué)生實(shí)踐過(guò)程中,應(yīng)當(dāng)避免讓學(xué)生落入教師的思維定勢(shì)中,否則會(huì)影響學(xué)生的創(chuàng)新。在項(xiàng)目設(shè)置時(shí),應(yīng)當(dāng)考慮項(xiàng)目突破數(shù)據(jù)結(jié)構(gòu)課本范圍后的發(fā)展情況,項(xiàng)目本身應(yīng)當(dāng)具有開(kāi)放性和可擴(kuò)展性,如數(shù)據(jù)結(jié)構(gòu)課程的算法通常不會(huì)涉及分布式或并行范疇,但在實(shí)際項(xiàng)目中,如果需要進(jìn)一步提高算法實(shí)踐效率和問(wèn)題求解規(guī)模,則可以引導(dǎo)學(xué)生往分布式或并行計(jì)算方向發(fā)展,以取得更好的教學(xué)效果。
項(xiàng)目迭代環(huán)節(jié)是“一題多解”實(shí)踐教學(xué)的主要環(huán)節(jié),貫穿理論教學(xué)的始終。在該環(huán)節(jié)中,學(xué)生采用分組合作的方式,劃分為多個(gè)不同的實(shí)驗(yàn)小組,按照教師給定的實(shí)施階段和梯度目標(biāo),自行選擇合理的解決方案完成實(shí)驗(yàn)。與以往綜合實(shí)踐項(xiàng)目不同,“一題多解”實(shí)踐教學(xué)中,學(xué)生在每個(gè)迭代階段都必須提出完整的項(xiàng)目解決方案,并給出實(shí)驗(yàn)結(jié)果。
1)啟發(fā)探究。
美國(guó)教育家布魯納說(shuō)過(guò),“使學(xué)生對(duì)一門(mén)學(xué)科有興趣的最好辦法是使其知道這門(mén)學(xué)科是值得學(xué)習(xí)的”[3]。啟發(fā)探究的目的在于讓學(xué)生逐步理解所學(xué)知識(shí)對(duì)實(shí)踐項(xiàng)目的積極意義。在階段性實(shí)驗(yàn)開(kāi)始之前,教師應(yīng)當(dāng)根據(jù)理論教學(xué)進(jìn)度和前期實(shí)踐情況,引導(dǎo)學(xué)生思考當(dāng)前所學(xué)內(nèi)容對(duì)實(shí)踐項(xiàng)目的作用,分析前一階段實(shí)驗(yàn)結(jié)果存在的缺點(diǎn),進(jìn)一步提高算法時(shí)空效率要求和問(wèn)題復(fù)雜性規(guī)模,啟發(fā)學(xué)生思考解決此問(wèn)題可能的突破口,讓學(xué)生帶著問(wèn)題學(xué)習(xí)理論知識(shí),思考解決方案。
2)合作求解、匯報(bào)演示。
“一題多解”實(shí)踐環(huán)節(jié)由學(xué)生分組組織實(shí)施,特點(diǎn)是既能培養(yǎng)學(xué)生的團(tuán)隊(duì)合作精神,又能在不同小組之間形成激烈的競(jìng)爭(zhēng)關(guān)系,增強(qiáng)學(xué)生的學(xué)習(xí)緊迫感,進(jìn)而激發(fā)學(xué)生的創(chuàng)新意識(shí)。匯報(bào)演示階段應(yīng)當(dāng)要求學(xué)生在給出實(shí)驗(yàn)結(jié)果的同時(shí),按照“過(guò)程暴露原則”,具體講解實(shí)現(xiàn)思路和思維轉(zhuǎn)換過(guò)程,使其他小組的學(xué)生不但知其然,也知其所以然,進(jìn)而達(dá)到共同提高的效果。
3)點(diǎn)評(píng)分析。
學(xué)生分組匯報(bào)演示結(jié)束后,教師針對(duì)各組的點(diǎn)評(píng)分析是必不可少的環(huán)節(jié),能夠起到畫(huà)龍點(diǎn)睛的效果。教師在點(diǎn)評(píng)時(shí),應(yīng)當(dāng)著眼于小組求解問(wèn)題的思維轉(zhuǎn)換過(guò)程,分析其合理性以及相比于前續(xù)階段的進(jìn)步性,同時(shí)明確提出可能存在的問(wèn)題,引導(dǎo)學(xué)生持續(xù)思考,為下一個(gè)迭代做好準(zhǔn)備。
總結(jié)匯報(bào)環(huán)節(jié)位于“一題多解”實(shí)踐環(huán)節(jié)的結(jié)束階段,主要有3項(xiàng)任務(wù)。
1)縱向分析。
進(jìn)行小組總結(jié)匯報(bào)時(shí),各小組應(yīng)當(dāng)分析自身在所有迭代階段提出的不同解決方案,對(duì)不同階段取得的算法效率和求解的問(wèn)題規(guī)模進(jìn)行比較,重點(diǎn)說(shuō)明自身對(duì)實(shí)踐項(xiàng)目認(rèn)知的轉(zhuǎn)變,闡明思維演化過(guò)程。
2)橫向比較。
橫向比較的主要目的在于分析不同實(shí)驗(yàn)小組對(duì)實(shí)踐項(xiàng)目采取的最終解決方案,比較各自的算法效率和問(wèn)題求解規(guī)模,分析不同方案的優(yōu)劣。在比較過(guò)程中,教師應(yīng)當(dāng)啟發(fā)學(xué)生從實(shí)踐結(jié)果優(yōu)劣的比較中建構(gòu)牢固的知識(shí)體系,培養(yǎng)學(xué)生的計(jì)算思維。
3)總結(jié)拓展。
在“一題多解”項(xiàng)目實(shí)踐結(jié)束階段,教師應(yīng)當(dāng)就整個(gè)項(xiàng)目迭代過(guò)程進(jìn)行總結(jié)講評(píng),逐一分析各小組學(xué)生解決方案和思維轉(zhuǎn)換中的創(chuàng)新點(diǎn),起到從“發(fā)散”到“聚焦”的作用,通過(guò)歸納總結(jié)幫助學(xué)生拓展思維。此外,按照“探究創(chuàng)新原則”,創(chuàng)設(shè)更深的應(yīng)用場(chǎng)景,引導(dǎo)學(xué)生在課程結(jié)束后繼續(xù)思考,深化鞏固課程學(xué)習(xí)成果。
教學(xué)改革中,我們結(jié)合工程實(shí)踐經(jīng)驗(yàn),精心設(shè)計(jì)了規(guī)模大小適中的多個(gè)“一題多解”實(shí)踐項(xiàng)目(項(xiàng)目案例設(shè)計(jì)以教材《數(shù)據(jù)結(jié)構(gòu)與算法》[4]為基礎(chǔ)),依托這些項(xiàng)目踐行上述理念。以“垃圾郵件地址過(guò)濾系統(tǒng)”項(xiàng)目為例,重點(diǎn)說(shuō)明項(xiàng)目涉及的知識(shí)點(diǎn)、“一題多解”分層階段目標(biāo)和項(xiàng)目拓展情況,項(xiàng)目描述見(jiàn)表1。
表1所示項(xiàng)目,是以垃圾郵件地址過(guò)濾問(wèn)題為背景,核心是從“垃圾郵件發(fā)件人地址庫(kù)”中查找“待判斷郵件地址樣本”的問(wèn)題,本質(zhì)是一個(gè)查找問(wèn)題。在數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中,查找問(wèn)題是非常重要的基礎(chǔ)問(wèn)題,對(duì)查找需求的高效實(shí)現(xiàn),產(chǎn)生了對(duì)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的選擇問(wèn)題,采用“一題多解”方法實(shí)施教學(xué),能夠伴隨理論教學(xué)的推進(jìn)不斷深化解讀“不同需求導(dǎo)致了選擇不同的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)并非一定是自然關(guān)系的描述”內(nèi)涵。具體而言,本項(xiàng)目可能涉及的知識(shí)點(diǎn)包括順序表、鏈表、檢索樹(shù)、AVL樹(shù)、B樹(shù)、Trie樹(shù)、散列表、排序等。
在教學(xué)實(shí)踐中,結(jié)合理論教學(xué)進(jìn)程,將該項(xiàng)目劃分為3個(gè)迭代周期,見(jiàn)表2。
通過(guò)“一題多解”項(xiàng)目的實(shí)踐訓(xùn)練,學(xué)生能夠?qū)⒈斫Y(jié)構(gòu)、樹(shù)結(jié)構(gòu)、散列表、排序算法等知識(shí)點(diǎn)前后貫穿,形成有機(jī)的知識(shí)體系。對(duì)于教師而言,還應(yīng)當(dāng)為“一題多解”實(shí)踐項(xiàng)目設(shè)置更為開(kāi)放的應(yīng)用場(chǎng)景,讓學(xué)生有進(jìn)一步拓展的空間。在教學(xué)實(shí)踐中,我們主要從兩個(gè)方面進(jìn)行拓展。
通過(guò)實(shí)踐學(xué)生能夠發(fā)現(xiàn),隨著問(wèn)題規(guī)模的持續(xù)加大,單線(xiàn)程已經(jīng)難以繼續(xù)進(jìn)行優(yōu)化提高,那么能否使用多線(xiàn)程進(jìn)行計(jì)算;利用CPU的多核是否能夠加快速度;在多線(xiàn)程的模式下,線(xiàn)程之間的數(shù)據(jù)如何共享;是否會(huì)存在沖突等。通過(guò)這些引導(dǎo),能夠讓學(xué)生進(jìn)一步思考利用并行計(jì)算解決問(wèn)題。
如果垃圾郵件地址庫(kù)的大小進(jìn)一步增加會(huì)發(fā)生什么情況,如增加到1PB;如果單臺(tái)計(jì)算機(jī)已經(jīng)無(wú)法存儲(chǔ),那么文件該如何存儲(chǔ);算法需要發(fā)生什么改變等。通過(guò)這些引導(dǎo),可以讓學(xué)生向分布式存儲(chǔ)以及分布式計(jì)算方面拓展,進(jìn)而引出云計(jì)算的相關(guān)內(nèi)容,為學(xué)生后續(xù)學(xué)習(xí)做好鋪墊。
表1 垃圾郵件地址過(guò)濾系統(tǒng)
表2 “一題多解”實(shí)踐項(xiàng)目迭代周期
建構(gòu)主義者認(rèn)為,學(xué)習(xí)是學(xué)習(xí)者主動(dòng)的建構(gòu)活動(dòng),而不是對(duì)知識(shí)的被動(dòng)接受,教師僅僅是“助產(chǎn)士”的身份,學(xué)生才是教學(xué)過(guò)程的主體,教師只能為學(xué)生的發(fā)展搭建“腳手架”。在數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)改革中,我們嘗試使用“一題多解”的多階段實(shí)踐教學(xué)模式,通過(guò)層層推進(jìn)實(shí)踐目標(biāo),讓學(xué)生自主學(xué)習(xí)創(chuàng)新,為學(xué)生搭建“腳手架”。實(shí)踐表明,“一題多解”式數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)模式能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,把學(xué)生從零散的知識(shí)點(diǎn)學(xué)習(xí)和實(shí)驗(yàn)驗(yàn)證中解脫出來(lái),一邊學(xué)習(xí)一邊應(yīng)用,在自然動(dòng)態(tài)的過(guò)程中歸納小結(jié),形成有機(jī)的知識(shí)體系,達(dá)到再創(chuàng)造、再發(fā)現(xiàn)的教學(xué)效果。
需要注意的是,教師應(yīng)當(dāng)把握好“一題多解”的“度”,即難度要適中,要將綜合實(shí)驗(yàn)項(xiàng)目設(shè)置在學(xué)生“最近發(fā)展區(qū)”(ZPD)附近,便于學(xué)生進(jìn)入學(xué)習(xí)狀態(tài),以免打擊積極性;梯度要合理,要為學(xué)生設(shè)置合理的層次化迭代階段和目標(biāo),便于學(xué)生在學(xué)習(xí)過(guò)程中穩(wěn)步攀升;參與度要高,要堅(jiān)持以學(xué)生為中心的教學(xué)理念,讓學(xué)生自主創(chuàng)新,避免影響或主導(dǎo)學(xué)生的思維。此外,“一題多解”綜合實(shí)驗(yàn)項(xiàng)目的設(shè)置也應(yīng)當(dāng)具有可拓展的深度和廣度,為學(xué)生的后續(xù)課程學(xué)習(xí)和發(fā)展打下良好的基礎(chǔ)。
[1]麻彥坤, 葉浩生. 維果茨基最近發(fā)展區(qū)思想的當(dāng)代發(fā)展[J]. 心理發(fā)展與教育, 2004(2): 89-93.
[2]張興. 維果茨基關(guān)于教學(xué)與發(fā)展關(guān)系的研究[J]. 外國(guó)教育研究, 1998(6): 11-13.
[3]布魯納. 教學(xué)論探討[M]. 張渭城, 譯. 北京: 人民教育出版社, 1989: 10.
[4]陳衛(wèi)衛(wèi), 王慶瑞. 數(shù)據(jù)結(jié)構(gòu)與算法[M]. 2版. 北京: 高等教育出版社, 2015: 1-3.