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