楊永斌 朱超平
摘要:為了讓學(xué)生能夠在解決實際問題中融會貫通地運(yùn)用所學(xué)理論知識、學(xué)以致用、培養(yǎng)學(xué)生的實踐動手能力、創(chuàng)新創(chuàng)造能力等,改善、解決目前《數(shù)據(jù)結(jié)構(gòu)》教學(xué)中存在的問題以及一些不利于學(xué)生發(fā)展的狀況,在《數(shù)據(jù)結(jié)構(gòu)》實驗教學(xué)中進(jìn)行了教學(xué)模式的改革與實踐,提出了“一題多解”與“多題一解”的案例教學(xué)模式,目的在于突破以往重復(fù)機(jī)械式的實驗?zāi)J?。通過線性表的具體教學(xué)改革實踐,以期能夠?qū)υ撜n程的教師起到一定的引導(dǎo)作用,共同探討《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)改革與實踐,提高《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)質(zhì)量和教學(xué)效果。
關(guān)鍵詞:一題多解;多題一解;數(shù)據(jù)結(jié)構(gòu);實驗;案例教學(xué);算法
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)33-0113-04
1《數(shù)據(jù)結(jié)構(gòu)》課程性質(zhì)
《數(shù)據(jù)結(jié)構(gòu)》是計算機(jī)類專業(yè)的一門實踐性非常強(qiáng)的專業(yè)核心課程,該課程學(xué)習(xí)的好壞將直接影響后續(xù)課程的學(xué)習(xí)狀況,同時在一定程度上影響學(xué)生的軟件設(shè)計水平。該課程全面地講解了在軟件開發(fā)過程經(jīng)常使用的數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及相應(yīng)的實現(xiàn)算法,還介紹了各種查找和排序算法以及相關(guān)算法的性能比較。該課程內(nèi)容很多,各種數(shù)據(jù)結(jié)構(gòu)算法較抽象,因此理解和掌握其中的原理和相關(guān)算法具有一定的難度,所以通過實驗使理論與應(yīng)用相結(jié)合,將會帶來更好的學(xué)習(xí)效果。
通過《數(shù)據(jù)結(jié)構(gòu)》課程的學(xué)習(xí),使學(xué)生能夠在解決實際問題中融會貫通地運(yùn)用所學(xué)將理論知識、學(xué)以致用,養(yǎng)學(xué)生的實踐動手能力、創(chuàng)新能力,因此實踐教學(xué)是該課程教學(xué)過程中不可缺少的、非常關(guān)鍵和重要的環(huán)節(jié)。通過實踐便于學(xué)生掌握基本知識,提高學(xué)習(xí)興趣,使學(xué)生能夠應(yīng)用所學(xué)知識對實踐任務(wù)進(jìn)行充分分析、抽象,建立與之相適應(yīng)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)及算法解決方案,并最終在計算機(jī)上實現(xiàn)算法,從而解決問題。通過實踐,學(xué)生不僅能夠加深理解所學(xué)理論知識,更重要的是培養(yǎng)了學(xué)生發(fā)現(xiàn)問題、分析問題、解決問題及程序設(shè)計等能力,這對進(jìn)一步培養(yǎng)學(xué)生的學(xué)習(xí)興趣、充分發(fā)揮、激發(fā)學(xué)生的創(chuàng)新創(chuàng)造能力起著重要的作用,同時也能培養(yǎng)學(xué)生良好的科學(xué)作風(fēng)。
我校數(shù)據(jù)結(jié)構(gòu)實踐主要通過課程實驗和綜合課程設(shè)計兩個環(huán)節(jié)實現(xiàn)。課程實驗為32學(xué)時,獨(dú)立成課,課程實驗(包括驗證和設(shè)計實驗)主要較偏重于對課程內(nèi)容的理解和掌握,我校計算機(jī)類專業(yè)的。同時專門設(shè)置《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計綜合訓(xùn)練實踐教學(xué)環(huán)節(jié),單獨(dú)2周完成,2個學(xué)分。通過2周的課程設(shè)計,讓學(xué)生獨(dú)立或團(tuán)隊合作完成一個較復(fù)雜的問題,充分彌補(bǔ)課堂教學(xué)和課程實驗中的不足,從而實現(xiàn)學(xué)生綜合應(yīng)用所學(xué)理論知識開發(fā)較大程序的一次良好鍛煉,培養(yǎng)學(xué)生舉一反三、融會貫通所學(xué)知識的能力、提高學(xué)生軟件開發(fā)和軟件調(diào)試的能力、培養(yǎng)學(xué)生團(tuán)隊合作的精神、培養(yǎng)學(xué)生針對具體問題進(jìn)行文字論述與表達(dá)的能力等等。
2《數(shù)據(jù)結(jié)構(gòu)》實驗課程教學(xué)目的與要求
2.1教學(xué)目的
數(shù)據(jù)結(jié)構(gòu)實驗課程著眼于原理和應(yīng)用的結(jié)合點,培養(yǎng)學(xué)生針對實際問題在數(shù)據(jù)結(jié)構(gòu)的選擇和應(yīng)用,讓學(xué)生能將所學(xué)知識應(yīng)用于實際問題的求解中,培養(yǎng)學(xué)生的實際動手能力,加深對概念及相關(guān)算法的理解,靈活、牢固掌握教材內(nèi)容,逐步培養(yǎng)和提高學(xué)生的專業(yè)修養(yǎng)和專業(yè)素質(zhì)。
2.2基本要求
學(xué)生在上機(jī)做實驗前,應(yīng)事先將程序、調(diào)試數(shù)據(jù)、上機(jī)操作順序準(zhǔn)備好,并提前使用這些調(diào)試數(shù)據(jù)人工執(zhí)行過。目的是提高上機(jī)的效率和成功率,嚴(yán)禁抄襲或拷貝他人的成果,自覺培養(yǎng)科學(xué)、嚴(yán)肅的作風(fēng)。
3“一題多解”與“多題一解”案例教學(xué)模式
瑞士著名認(rèn)知心理學(xué)家讓.皮亞杰指出:教育的目標(biāo)是造就批判性思維的頭腦、敢于驗證問題的頭腦,而不是人云亦云的頭腦;是培養(yǎng)有創(chuàng)造力、有發(fā)現(xiàn)和發(fā)明能力的人,而不是只懂得單純地重復(fù)上幾代人工作的人。教育部自2017年2月以來就積極推進(jìn)新工科建設(shè),先后形成了“復(fù)旦共識”“天大行動”和“北京指南”,從而開啟了工程教育改革新路徑?!靶鹿た啤备鼜?qiáng)調(diào)學(xué)科的實用性、交叉性與綜合性,作為一線高校教師,應(yīng)當(dāng)結(jié)合社會人才需求、課程特點及學(xué)生實際等積極地開展“新工科”背景下的課程教學(xué)改革研究與實踐。
在《數(shù)據(jù)結(jié)構(gòu)》實踐教學(xué)中應(yīng)用“一題多解”與“多題一解”的案例教學(xué)模式,目的是要適應(yīng)“新工科”建設(shè)下人才培養(yǎng),突破以往重復(fù)機(jī)械式的實驗?zāi)J?,讓學(xué)生在學(xué)習(xí)理論知識的過程中,持續(xù)運(yùn)用不同的知識解決相似問題,使學(xué)生不斷對已經(jīng)掌握的知識進(jìn)行批判接受,進(jìn)而改造創(chuàng)新,讓學(xué)生的探究能力能夠得到持續(xù)發(fā)展。通過“一題多解”與“多題一解”的教學(xué)模式,改善、解決目前《數(shù)據(jù)結(jié)構(gòu)》教學(xué)中存在的問題以及一些不利于學(xué)生發(fā)展的狀況。
數(shù)據(jù)結(jié)構(gòu)的教學(xué)目標(biāo)之一就是讓學(xué)生會寫高效的程序、會設(shè)計算法甚至?xí)l(fā)明、發(fā)現(xiàn)算法?!耙活}多解”就是讓學(xué)生針對同一問題,采用多種算法實現(xiàn),并從中分析其中的優(yōu)劣。在一些實際問題的解決過程中,常常發(fā)現(xiàn)他們具有一些共性或相似性,就可以嘗試著尋求解決這些問題的相似算法,通過思考與實踐,歸納出相應(yīng)算法思想和算法實現(xiàn),甚至尋求這類問題的通用算法思路及實現(xiàn),最后再將此解法進(jìn)一步投入到實踐中,這就是“多題一解”真正意義所在。通過“一題多解”可以使基礎(chǔ)知識的應(yīng)用更加豐富,通過“多題一解”可以讓學(xué)生尋根溯、有效引發(fā)學(xué)生思維。在《數(shù)據(jù)結(jié)構(gòu)》教學(xué)中應(yīng)用“一題多解”和“多題一解”案例教學(xué)能夠有效激發(fā)學(xué)生自主學(xué)習(xí)熱情,提高學(xué)生持續(xù)求知欲望,增強(qiáng)學(xué)生探究創(chuàng)新意識。
4“一題多解”與“多題一解”案例教學(xué)模式的應(yīng)用實踐
《數(shù)據(jù)結(jié)構(gòu)》課程的重點是線性表、樹、查找和排序等。線性表是最常用最基本的一種數(shù)據(jù)結(jié)構(gòu),線性表基礎(chǔ)打好了、打牢了將有利于樹和二叉樹、圖、查找和排序等后繼知識的學(xué)習(xí)。線性表的邏輯結(jié)構(gòu)特征是一對一,即數(shù)據(jù)元素之間存在一對一的關(guān)系,除第一個和最后一個元素外每個元素只有唯一的一個直接前驅(qū)和直接后繼。存儲結(jié)構(gòu)主要采用順序存儲和鏈?zhǔn)酱鎯?,即順序表和鏈表。在此以順序表的實踐教學(xué)為例探討“一題多解”與“多題一解”案例教學(xué)模式的應(yīng)用實踐。
順序表的存儲特點是用一片連續(xù)存儲空間依次存儲線性表的每個元素,邏輯上相鄰物理上一定相鄰。順序表類型描述如下:
5結(jié)束語
從事《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)20多年,一直在探索課程的教學(xué)改革與應(yīng)用,在《數(shù)據(jù)結(jié)構(gòu)》實驗教學(xué)中探索“一題多解”和“多題一解”案例教學(xué)模式的改革應(yīng)用,目的在于提高學(xué)習(xí)的學(xué)習(xí)能動性,激發(fā)學(xué)生的學(xué)習(xí)興趣,挖掘?qū)W生的學(xué)習(xí)潛能,提高學(xué)生綜合應(yīng)用知識的能力及分析問題、解決問題的能力,培養(yǎng)學(xué)生的創(chuàng)新創(chuàng)造能力等等,真正提高課程教學(xué)質(zhì)量、教學(xué)效果。
在實施“一題多解”和“多題一解”案例教學(xué)模式中的案例選擇上,更多地選擇一些企業(yè)的真實面試題目,包括一些知名企業(yè)如華為、百度、微軟、騰訊等,這可以有效地激發(fā)學(xué)生的興趣與熱情,但在案例的選擇上需要把握好案例的難度,應(yīng)根據(jù)學(xué)生的實際情況,采用層次化的難度系數(shù)以適應(yīng)不同層次的學(xué)生,既要避免簡單案例不能激發(fā)學(xué)生的“斗志”,也要避免太難而打擊學(xué)生的積極性與熱情,讓學(xué)生在學(xué)習(xí)過程中逐步攀升、穩(wěn)步提高。簡單的有,難度大的也有,更多的是難度適中的,在實施中堅持以學(xué)生為中心的理念。經(jīng)過實踐證明,在《數(shù)據(jù)結(jié)構(gòu)》實驗教學(xué)中應(yīng)用“一題多解”和“多題一解”案例教學(xué)模式是切實可行的,學(xué)生完成實驗任務(wù)的積極性、熱情明顯提高,完成任務(wù)的質(zhì)量也逐步提高。