何受倩
(廣東科貿(mào)職業(yè)學(xué)院,廣東 廣州 510640)
程序設(shè)計(jì)是軟件開(kāi)發(fā)的基礎(chǔ),數(shù)據(jù)結(jié)構(gòu)和算法則是程序主要的兩大組成部分。所以說(shuō)數(shù)據(jù)結(jié)構(gòu)既是軟件專業(yè)的一門(mén)基礎(chǔ)課程,也是一門(mén)專業(yè)核心課程。
數(shù)據(jù)結(jié)構(gòu)旨在培養(yǎng)學(xué)生的邏輯思維能力,作為計(jì)算機(jī)軟件專業(yè)的學(xué)生,不苛求你有多聰明、數(shù)學(xué)基礎(chǔ)有多好。但是,至少你要有較清晰的思維。數(shù)據(jù)結(jié)構(gòu)課程涉及到很多常用的算法,通過(guò)大量的算法設(shè)計(jì)與上機(jī)實(shí)踐,學(xué)生的邏輯思維和程序設(shè)計(jì)能力得到提高。
數(shù)據(jù)結(jié)構(gòu)傳統(tǒng)的教學(xué)重理論輕實(shí)踐,這種教學(xué)模式更適用于本科院校。而在我們這類高職高專院校,開(kāi)設(shè)這門(mén)課程時(shí),已加大了實(shí)踐比例。但是,不管從實(shí)踐課時(shí)、教學(xué)內(nèi)容設(shè)置,還是教學(xué)方法來(lái)看,原教學(xué)模式存在一定問(wèn)題。具體問(wèn)題及改革措施如下:
問(wèn)題一:理論和實(shí)踐課時(shí)比例分配不合理。
原理論課時(shí)和實(shí)踐課時(shí)比例為3:1,這和高職高專培養(yǎng)實(shí)踐型、技能型人才的人才培養(yǎng)目標(biāo)不相吻合。
改革措施一:針對(duì)理論和實(shí)踐課時(shí)比例分配不合理,重新調(diào)整比例,加大實(shí)踐課時(shí)數(shù),將實(shí)踐、理論課時(shí)調(diào)整至1:1。
問(wèn)題二:實(shí)踐時(shí)間安排不合理。
前半學(xué)期先上理論,后半學(xué)期再上實(shí)踐,同學(xué)們?cè)诤竺鎸?shí)踐環(huán)節(jié)往往已將前面的理論知識(shí)忘得差不多。
改革措施二:將數(shù)據(jù)結(jié)構(gòu)改到一體化教室上,即一次課包含理論和實(shí)踐,教學(xué)分三步走。第一步,教師介紹基本概念、術(shù)語(yǔ)和原理。第二步,教師介紹算法。先選定數(shù)據(jù)結(jié)構(gòu),在介紹算法前先給學(xué)生講做法,讓學(xué)生明白解題的思路。第三步,由學(xué)生自己上機(jī)實(shí)踐,實(shí)現(xiàn)程序功能。
問(wèn)題三:在介紹各種概念、術(shù)語(yǔ)上花費(fèi)過(guò)多的時(shí)間。
改革措施三:應(yīng)選擇性并用簡(jiǎn)單易懂的語(yǔ)言來(lái)介紹基本的概念、術(shù)語(yǔ),遵從理論夠用就好的原則,力求簡(jiǎn)潔、易懂。
問(wèn)題四:采用多媒體教學(xué)帶來(lái)的弊端。
多媒體教學(xué)有著圖文并茂,可加入聲音、動(dòng)畫(huà)等多種元素到課件中,雖然能更好地吸引學(xué)生的注意力,但缺點(diǎn)是,課件是課前準(zhǔn)備好的,在教學(xué)課程中,教師很容易陷入整節(jié)課都在連續(xù)講,讓學(xué)生大腦陷入疲憊狀態(tài)。傳統(tǒng)版書(shū)教學(xué)方式,教師在版書(shū)時(shí),能留給學(xué)生更多的停頓、思考和接收時(shí)間。
改革措施四:利用多媒體或一體化教室教學(xué)時(shí),要注意適當(dāng)?shù)耐nD,提醒學(xué)生適當(dāng)做一些筆記。教師不要一味地坐在電腦旁邊講,要適當(dāng)走到臺(tái)下,適當(dāng)提一些問(wèn)題,和學(xué)生要有交互。
問(wèn)題五:?jiǎn)我坏慕虒W(xué)方法和手段。
教師若從開(kāi)學(xué)初至學(xué)期末均采用單一的教學(xué)模式,不利于激發(fā)學(xué)生的積極性。
改革措施五:在教學(xué)過(guò)程中,采用多種教學(xué)方法和手段。如案例教學(xué)、項(xiàng)目教學(xué)、引導(dǎo)文教學(xué)等。
例如,在講到順序查找算法時(shí),要完成電話簿的查找功能,查找成功則輸出“查找成功”提示,并輸出查詢結(jié)果;若查找失敗,則輸出“對(duì)不起,沒(méi)有您要查詢的號(hào)碼信息”。本次內(nèi)容,我沒(méi)有具體講該如何實(shí)現(xiàn)算法,而是引入了引導(dǎo)文教學(xué)法,設(shè)計(jì)了系列引導(dǎo)問(wèn)題,讓學(xué)生根據(jù)問(wèn)題獨(dú)立完成程序功能。設(shè)計(jì)的引導(dǎo)問(wèn)題如下:
(1)你打算選擇何種存儲(chǔ)結(jié)構(gòu)?
(2)你打算采用原子類型還是結(jié)構(gòu)類型?如果采用結(jié)構(gòu)類型,你準(zhǔn)備定義含幾個(gè)分量的結(jié)構(gòu)類型呢?
(3)你打算利用一個(gè)函數(shù)實(shí)現(xiàn)所有功能,還是分解成模塊,利用函數(shù)調(diào)用來(lái)完成功能呢?
(4)如果使用函數(shù)調(diào)用,你準(zhǔn)備在被調(diào)函數(shù)中使用幾個(gè)何種類型的形參呢?
(5)在實(shí)現(xiàn)算法時(shí),你打算如何獲取線性表的長(zhǎng)度(元素總數(shù))呢?
又如,在應(yīng)用案例教學(xué)時(shí),如何選擇實(shí)用且讓學(xué)生印象深刻的例子很重要。比如,在講到隊(duì)列的插入和刪除元素算法時(shí),舉接近生活的排隊(duì)打飯的例子,先來(lái)先服務(wù),隊(duì)頭同學(xué)得到服務(wù)后出隊(duì)(即在隊(duì)頭刪除元素),要打飯的同學(xué)只能從隊(duì)尾加入到隊(duì)中(即在隊(duì)尾插入元素)。
再如,排序算法是數(shù)據(jù)結(jié)構(gòu)學(xué)科經(jīng)典的內(nèi)容,其中內(nèi)部排序方法有很多(如冒泡排序,直接插入排序,選擇排序,快速排序等),怎樣才能讓學(xué)生掌握多種排序算法呢?請(qǐng)一部分同學(xué)上來(lái)扮演待排序結(jié)點(diǎn),然后再請(qǐng)同學(xué)上來(lái)將其按升序或降序排好序。先通過(guò)類比的方法,讓學(xué)生更好地理解做法,然后再講解對(duì)應(yīng)的算法,通過(guò)生活中的例子來(lái)激活學(xué)生的興趣。
問(wèn)題六:沒(méi)能給學(xué)生呈現(xiàn)聯(lián)貫的思路。
有些同學(xué)在學(xué)完數(shù)據(jù)結(jié)構(gòu)課程后,還不知道究竟數(shù)據(jù)結(jié)構(gòu)是學(xué)什么的以及數(shù)據(jù)結(jié)構(gòu)有什么用。
改革措施六:在第一次課就應(yīng)該讓學(xué)生知道數(shù)據(jù)結(jié)構(gòu)是一種思想,是一種工具,當(dāng)要保存一些非基本數(shù)據(jù)類型的數(shù)據(jù)時(shí),必須得自己定義一種新型的數(shù)據(jù)結(jié)構(gòu)。再者,將圖1的數(shù)據(jù)結(jié)構(gòu)關(guān)系示意圖呈現(xiàn)給學(xué)生,讓他們明白數(shù)據(jù)結(jié)構(gòu)是學(xué)習(xí)什么的,以及這些知識(shí)之間的關(guān)系。
圖1 數(shù)據(jù)結(jié)構(gòu)關(guān)系示意圖
數(shù)據(jù)結(jié)構(gòu)課程是計(jì)算機(jī)軟件專業(yè)的一門(mén)核心課,存在一定的難度和抽象性。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),能讓學(xué)生理解內(nèi)存分配和處理機(jī)制,數(shù)據(jù)的邏輯關(guān)系和物理關(guān)系,以及它們之間的對(duì)應(yīng)關(guān)系,同時(shí),還能讓學(xué)生們的邏輯思維能力和算法設(shè)計(jì)水平得到提高。
[1]李筠.數(shù)據(jù)結(jié)構(gòu)(高職高專精品課程規(guī)劃教材)[M].北京:清華大學(xué)出版社,2008.
[2]王宇川.數(shù)據(jù)結(jié)構(gòu)用C語(yǔ)言描述[M].北京:中國(guó)水利水電出版社,2008.
[3]馬秋菊.數(shù)據(jù)結(jié)構(gòu)(21世紀(jì)高職高專新概念教材)[M].北京:中國(guó)水利水電出版社,2006.