《數(shù)據(jù)結(jié)構(gòu)》課程脫胎于《離散數(shù)學(xué)結(jié)構(gòu)》,它涉及各種離散結(jié)構(gòu)在計(jì)算機(jī)上如何存儲(chǔ)和處理,這是從事計(jì)算機(jī)硬、軟件科研與開發(fā)的人們必須了解的。特別是引入抽象數(shù)據(jù)類型的概念和面向?qū)ο竽J剑苓m應(yīng)軟件開發(fā)人員的需要。本文就《數(shù)據(jù)結(jié)構(gòu)》這門課程的最終目標(biāo)、傳統(tǒng)教學(xué)存在的問題、現(xiàn)有教學(xué)模式改革的必要性幾方面展開論述,解決了當(dāng)前《數(shù)據(jù)結(jié)構(gòu)》教學(xué)的疑難問題,給當(dāng)前高職階段《數(shù)據(jù)結(jié)構(gòu)》的學(xué)習(xí)指明了一條可行道路。“數(shù)據(jù)結(jié)構(gòu)”是一門計(jì)算機(jī)專業(yè)技術(shù)基礎(chǔ)課。通過本課程的學(xué)習(xí),使學(xué)生學(xué)會(huì)分析研究計(jì)算機(jī)加工的數(shù)據(jù)特性,以便在今后的工作實(shí)踐中,能夠針對(duì)具體問題選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)以及相應(yīng)的算法,并在此基礎(chǔ)上,培養(yǎng)學(xué)生編寫出結(jié)構(gòu)清晰、正確易讀、符合軟件工程規(guī)范的程序,從而為進(jìn)一步學(xué)習(xí)后續(xù)專業(yè)課程和軟件的開發(fā)打下基礎(chǔ)。
一、 課程最終目標(biāo)
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程等專業(yè)的一門重要專業(yè)基礎(chǔ)課,是非數(shù)值計(jì)算程序設(shè)計(jì)的基礎(chǔ),也是各種應(yīng)用軟件設(shè)計(jì)和實(shí)現(xiàn)的重要基礎(chǔ)。這門課程的主要教學(xué)目的是研究常用數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及其所支持的運(yùn)算操作,比較不同數(shù)據(jù)結(jié)構(gòu)和算法的特點(diǎn),使學(xué)生全面地理解數(shù)據(jù)結(jié)構(gòu)和算法的概念,掌握設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)與算法的主要原理和方法;研究解決常用問題的經(jīng)典算法,提高學(xué)生使用計(jì)算機(jī)解決問題的能力。
二、 傳統(tǒng)課程教學(xué)存在的問題
(1)學(xué)生方面。學(xué)生剛剛開始接觸程序語言,學(xué)過后也只是掌握這門語言的基本語法規(guī)則,還不具備應(yīng)用程序設(shè)計(jì)語言編制程序解決實(shí)際問題的能力。
(2)課程方面。“數(shù)據(jù)結(jié)構(gòu)”理論教學(xué)多數(shù)偏重算法思想形成過程的分析,算法的描述可以用一種程序設(shè)計(jì)語言,也可以用偽碼,重在算法思想的描述。在實(shí)驗(yàn)中,有些學(xué)生甚至有了現(xiàn)存的算法,也不知道如何將算法改換成計(jì)算機(jī)能接受的程序。
(3)原則方面。《數(shù)據(jù)結(jié)構(gòu)》的教學(xué)在很大程度上仍然沿襲著“以教師為主體”“以課程為中心”的傳統(tǒng)教學(xué)觀念。
(4)內(nèi)容方面。《數(shù)據(jù)結(jié)構(gòu)》課程內(nèi)容抽象、瑣碎、龐雜,涉及很多概念和技術(shù)。所有這些內(nèi)容均自成體系,相互之間的銜接線索很少,總體感覺內(nèi)容零散,沒有一個(gè)整體的知識(shí)框架體系。同時(shí),因教學(xué)內(nèi)容多,知識(shí)量大,很難取舍,所以不免在教學(xué)過程中變得面面俱到,重點(diǎn)、難點(diǎn)不突出,學(xué)生理解困難,教學(xué)效果不理想。
(5)模式方面。傳統(tǒng)的教學(xué)方法單一、僵化,教師習(xí)慣于“一言堂”“滿堂灌”。現(xiàn)在有些教師仍然一成不變地沿用老一套,在教學(xué)的各個(gè)環(huán)節(jié),都只從教師的角度出發(fā),從組織內(nèi)容、備課到講授,很少關(guān)注學(xué)生的反應(yīng),課堂缺乏互動(dòng),更談不到學(xué)生參與其中,變被動(dòng)學(xué)習(xí)為主動(dòng)學(xué)習(xí)。
三、 教學(xué)模式改革的必要性
教學(xué)原則的改變。要培養(yǎng)合格的開發(fā)型、創(chuàng)造型人才,教師首先必須樹立現(xiàn)代化的教育觀,把“以教師為主體”“以課程為中心”的傳統(tǒng)教育觀轉(zhuǎn)變?yōu)椤耙詫W(xué)生為主體”“以能力為中心”的新的教育觀。教師的職責(zé)不僅要“授人以魚”,更重要的是“授人以漁”,把學(xué)生創(chuàng)新能力的培養(yǎng)放在重要的地位,在教學(xué)的各個(gè)環(huán)節(jié),充分體現(xiàn)“以教為主導(dǎo)”“以學(xué)為主體”的教學(xué)原則。理論課教學(xué)模式改革的探索與實(shí)踐,包括理論課課堂教學(xué)方案設(shè)計(jì)、理論課教學(xué)方法改革探索。《數(shù)據(jù)結(jié)構(gòu)》是實(shí)踐性很強(qiáng)的課程,培養(yǎng)學(xué)生的實(shí)踐能力是教學(xué)的首要目的。實(shí)踐課教學(xué)模式的改革與創(chuàng)新勢(shì)在必行。我們主要在以下幾個(gè)方面進(jìn)行了探索實(shí)踐:
(1)實(shí)踐教學(xué)內(nèi)容“問題”化。實(shí)踐內(nèi)容的設(shè)計(jì)必須以問題求解為主線索,體現(xiàn)分析、設(shè)計(jì)能力的培養(yǎng)。針對(duì)每個(gè)教學(xué)單元的重要知識(shí)點(diǎn),選擇有代表性、難度適中、綜合性的典型算法,合理設(shè)計(jì)“問題”作為實(shí)驗(yàn)項(xiàng)目,以點(diǎn)帶面,使學(xué)生在面對(duì)實(shí)際問題中學(xué)會(huì)分析問題、設(shè)計(jì)解決問題的方案。
(2)實(shí)驗(yàn)教學(xué)體系層次化。針對(duì)數(shù)據(jù)結(jié)構(gòu)課程抽象性強(qiáng)、難度大的特點(diǎn),構(gòu)建一個(gè)漸進(jìn)式、層次化的實(shí)踐教學(xué)體系勢(shì)在必行。我們嘗試著按基礎(chǔ)性、綜合性、實(shí)用性和創(chuàng)新性四個(gè)層次構(gòu)建“數(shù)據(jù)結(jié)構(gòu)”課程的實(shí)驗(yàn)教學(xué)體系。第一層次,基礎(chǔ)性實(shí)驗(yàn)。其目的是讓學(xué)生掌握基本概念基礎(chǔ)知識(shí)和基本操作,通過實(shí)驗(yàn)學(xué)會(huì)如何從算法轉(zhuǎn)變?yōu)槌绦颉H珀?duì)列結(jié)構(gòu)的基礎(chǔ)實(shí)驗(yàn)可以是隊(duì)列的插入(入隊(duì)算法)或刪除運(yùn)算(出隊(duì)算法);第二層次,綜合性實(shí)驗(yàn)。在一個(gè)實(shí)驗(yàn)項(xiàng)目中整合某種數(shù)據(jù)結(jié)構(gòu)的一些基本運(yùn)算算法,提高學(xué)生分析問題、解決問題和綜合運(yùn)用知識(shí)的能力。如隊(duì)列結(jié)構(gòu)的綜合實(shí)驗(yàn)包括隊(duì)列的創(chuàng)建、入隊(duì)、出隊(duì)、查詢、輸出等算法;第三層次,實(shí)用性實(shí)驗(yàn)。實(shí)驗(yàn)項(xiàng)目是解決一些實(shí)際有意義的問題,進(jìn)行實(shí)戰(zhàn)訓(xùn)練,提升學(xué)生的興趣和自信心,提高實(shí)踐能力。第四層次,創(chuàng)新性實(shí)驗(yàn)。給學(xué)生自主設(shè)計(jì)自主選擇的空間,引導(dǎo)學(xué)生深化問題。鼓勵(lì)學(xué)生提出新的問題,分析新問題,解決新問題,通過實(shí)驗(yàn)解決自己想解決的問題。
(3)實(shí)踐教學(xué)形式多樣化。實(shí)驗(yàn)課是數(shù)據(jù)結(jié)構(gòu)實(shí)踐的一個(gè)基礎(chǔ)訓(xùn)練。通過單個(gè)實(shí)驗(yàn)項(xiàng)目,了解掌握基本數(shù)據(jù)結(jié)構(gòu)的應(yīng)用,掌握從算法到程序的轉(zhuǎn)換,并學(xué)會(huì)調(diào)試、測(cè)試程序能力。
項(xiàng)目設(shè)計(jì)是在學(xué)生完成實(shí)驗(yàn)的同時(shí),以小組為單位開始涉足項(xiàng)目的設(shè)計(jì),體會(huì)項(xiàng)目需求分析、邏輯設(shè)計(jì)、詳細(xì)設(shè)計(jì)以及編碼實(shí)現(xiàn)、測(cè)試維護(hù)等項(xiàng)目開發(fā)的過程。在數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中,我們?cè)O(shè)計(jì)了兩個(gè)項(xiàng)目,一個(gè)是“多項(xiàng)式計(jì)數(shù)器”的開發(fā)設(shè)計(jì),另一個(gè)是“文本編輯器”的開發(fā)設(shè)計(jì)。學(xué)生分組按流程實(shí)施,軟件驗(yàn)收后,以組為單位書寫設(shè)計(jì)說明書,然后進(jìn)行答辯、討論。課程設(shè)計(jì)又是一個(gè)必修環(huán)節(jié),是學(xué)生綜合應(yīng)用數(shù)據(jù)結(jié)構(gòu)的訓(xùn)練。每個(gè)學(xué)生必須獨(dú)立完成一個(gè)綜合項(xiàng)目的問題描述、需求分析、邏輯設(shè)計(jì)、詳細(xì)設(shè)計(jì)和編碼實(shí)現(xiàn)到測(cè)試的過程,訓(xùn)練學(xué)生分析問題、描述問題(數(shù)學(xué)建模)、解決問題(設(shè)計(jì)與實(shí)現(xiàn))的能力。
教學(xué)改革是一項(xiàng)長(zhǎng)期而艱巨的任務(wù),既要重視基礎(chǔ)理論知識(shí)的學(xué)習(xí),又要重視實(shí)踐教學(xué)環(huán)節(jié)。教師是傳授知識(shí)的載體,是事物變化的外因;學(xué)生是接受知識(shí)的主體,是事物變化的內(nèi)因。教師應(yīng)想方設(shè)法調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性,使學(xué)生產(chǎn)生學(xué)習(xí)的動(dòng)力,這樣,教與學(xué)共同努力、共同提高,才能達(dá)到教與學(xué)的辯證統(tǒng)一,取得理想的教學(xué)效果。
(宜興中等專業(yè)學(xué)校)