容 青 熊冬春 李廣原 鄧育林
廣西師范學(xué)院計算機與信息工程學(xué)院 廣西南寧 530200
創(chuàng)新創(chuàng)業(yè)是指基于技術(shù)創(chuàng)新、產(chǎn)品創(chuàng)新、品牌創(chuàng)新、服務(wù)創(chuàng)新、商業(yè)模式創(chuàng)新、管理創(chuàng)新、組織創(chuàng)新、市場創(chuàng)新、渠道創(chuàng)新等方面的某一點或幾點創(chuàng)新而進行的創(chuàng)業(yè)活動?!盎ヂ?lián)網(wǎng)+”時代為計算機專業(yè)學(xué)生的創(chuàng)新創(chuàng)業(yè)開拓了廣闊天地,計算機專業(yè)學(xué)生的創(chuàng)新創(chuàng)業(yè)主要以技術(shù)為主,而軟件技術(shù)創(chuàng)新創(chuàng)業(yè)是最重要和最常見的創(chuàng)新創(chuàng)業(yè)活動。
數(shù)據(jù)結(jié)構(gòu)課程在計算機學(xué)科體系中是最重要、最基礎(chǔ)的專業(yè)課程之一,課程以培養(yǎng)學(xué)生的算法設(shè)計思維作為主要目的。軟件技術(shù)創(chuàng)新主要是從算法設(shè)計方面進行創(chuàng)新,所以,學(xué)生掌握數(shù)據(jù)結(jié)構(gòu)課程知識是軟件技術(shù)創(chuàng)新創(chuàng)業(yè)的基礎(chǔ)。但數(shù)據(jù)結(jié)構(gòu)課程的傳統(tǒng)教學(xué)模式在培養(yǎng)和提高學(xué)生創(chuàng)新創(chuàng)業(yè)能力方面存在不少問題。
本文從筆者自身的教學(xué)實踐出發(fā),結(jié)合創(chuàng)新創(chuàng)業(yè)的需求,就數(shù)據(jù)結(jié)構(gòu)課程教學(xué)存在的問題進行分析,并探討了解決問題的辦法。
數(shù)據(jù)結(jié)構(gòu)課程理論內(nèi)容多,概念抽象、枯燥,講課時如果不能采用合適的方法、手段進行解釋,學(xué)生不容易理解,會打擊學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)積極性,從而影響創(chuàng)新基礎(chǔ)的培養(yǎng)。而且數(shù)據(jù)結(jié)構(gòu)課程的理論概念都是從英語翻譯過來,命名專業(yè)性強[1],要解釋清楚不容易,有的教師機械地按書本解釋進行講授,學(xué)生理解很吃力。
數(shù)據(jù)結(jié)構(gòu)課程知識點多,傳統(tǒng)教學(xué)一般是按書本內(nèi)容順序講授,沒有明確主線,學(xué)生學(xué)習(xí)起來感覺亂,越往下學(xué)習(xí),內(nèi)容越多,頭緒越亂,對課程學(xué)習(xí)容易產(chǎn)生懼怕心理。
因為數(shù)據(jù)結(jié)構(gòu)課程理論內(nèi)容多,有的教師在該門課程的教學(xué)過程中,簡單機械地采用理論課程的教學(xué)方法授課,最常用的就是講授法:教師運用語言方式向?qū)W生進行講解。單純的講授法會限制學(xué)生的創(chuàng)新思維,會使教學(xué)效果非常糟糕。
因為數(shù)據(jù)結(jié)構(gòu)課程的知識點多,很多數(shù)據(jù)結(jié)構(gòu)課程的教材限于篇幅,在內(nèi)容編寫方面與實際應(yīng)用結(jié)合較少。教師在教學(xué)時也沒有進行拓展。學(xué)生在學(xué)習(xí)過程中,沒有把所學(xué)內(nèi)容與實際應(yīng)用進行聯(lián)系,不利于培養(yǎng)學(xué)生的創(chuàng)新創(chuàng)業(yè)意識。
有些任課教師錯誤地認(rèn)為數(shù)據(jù)結(jié)構(gòu)課程是理論課,只重視理論內(nèi)容的教學(xué),不重視上機實驗,只安排少量的上機課時,上機內(nèi)容沒有合理設(shè)計,只是簡單讓學(xué)生練習(xí)書上的例子,有的甚至根本不安排上機,沒有給學(xué)生實際的應(yīng)用訓(xùn)練。時間一長,學(xué)生對理論的理解會產(chǎn)生疲憊心理;沒有實踐的驗證,理論與實際的聯(lián)系理解也會變得牽強。學(xué)習(xí)會慢慢進入到形式化死記硬背的純理論學(xué)習(xí)中,導(dǎo)致學(xué)習(xí)效果低下。
很多學(xué)生認(rèn)為學(xué)好高級程序語言課程就可以編好程序,初接觸數(shù)據(jù)結(jié)構(gòu)課程時會對這門課不以為然,都是理論的內(nèi)容,覺得又枯燥,又沒用。很多數(shù)據(jù)結(jié)構(gòu)課程的教師也沒有意識到這一個問題,只是簡單照書本講課,沒有重點進行解釋。學(xué)生學(xué)完整門課都不清楚學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程有什么用,當(dāng)然也不會認(rèn)真學(xué)。
數(shù)據(jù)結(jié)構(gòu)課程理論概念多且抽象,講課時需用通俗語言來解釋,以便學(xué)生能輕松理解。理解容易,學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)積極性會慢慢提高。理論概念用通俗的語言有時也不容易解釋,結(jié)合舉例法和類比法講解可以很好地解決這一問題。
舉例和類比的時候盡可能采用身邊常見的事例。如,講線性結(jié)構(gòu)內(nèi)容,舉體育課隊列;講樹型結(jié)構(gòu)內(nèi)容,舉單位人事管理關(guān)系;講圖形結(jié)構(gòu)的內(nèi)容,舉學(xué)生選課產(chǎn)生的數(shù)據(jù)關(guān)系例子;用現(xiàn)實生活中倉庫日常貨物管理活動類比棧的操作,以體現(xiàn)其特殊線性結(jié)構(gòu)的特點。
因為這些事例都是學(xué)生身邊常見、很熟悉的,但學(xué)生可能從來沒有想過這些工作可以用計算機解決。這樣舉例和類比會吸引學(xué)生的課堂注意力,觸類旁通,也很容易理解概念,還能讓學(xué)生開拓創(chuàng)新創(chuàng)業(yè)的思維。
數(shù)據(jù)結(jié)構(gòu)課程的內(nèi)容雖多,但算法設(shè)計都是圍繞“邏輯結(jié)構(gòu)—存儲結(jié)構(gòu)”展開,算法的時間效率和空間效率也是由此決定。講授算法內(nèi)容時,通篇圍繞“確定數(shù)據(jù)的邏輯結(jié)構(gòu)→根據(jù)功能需求和邏輯結(jié)構(gòu)設(shè)計存儲結(jié)構(gòu)→在存儲結(jié)構(gòu)的基礎(chǔ)上設(shè)計算法”這條主線展開,在此基礎(chǔ)上對算法進行時間效率和空間效率的分析和比較。
通過反復(fù)強調(diào),重復(fù)多次之后,學(xué)生漸漸掌握了這條主線,發(fā)現(xiàn)課程內(nèi)容雖然多,但按照主線學(xué)習(xí),實際上并不復(fù)雜,對數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí)也就不發(fā)怵。學(xué)習(xí)變得簡單起來,學(xué)習(xí)效果自然也就好。
數(shù)據(jù)結(jié)構(gòu)課程理論內(nèi)容雖多,但理論內(nèi)容都是要應(yīng)用到實際中,實踐性要求其實是很強的。教師在授課的時候,不應(yīng)拘泥于單一的教學(xué)方法,而應(yīng)以講授法為主,任務(wù)驅(qū)動法、演示法、討論法穿插輔助進行來完成教學(xué)過程。
任務(wù)驅(qū)動法和演示法是實踐部分的較好實現(xiàn)和展示,有利于學(xué)生加深對內(nèi)容的理解,能激發(fā)學(xué)生學(xué)習(xí)的主動性,有助于創(chuàng)新創(chuàng)業(yè)意識的培養(yǎng)。而討論法可以更好地拓展學(xué)生的算法設(shè)計思維。
計算機的應(yīng)用已經(jīng)非常普遍,教師在講授各個知識點的例子時,可以不局限于書本的介紹,而是與時俱進,舉生活中算法的實際應(yīng)用例子。
例如,目前銀行、餐館的叫號系統(tǒng),實際上是應(yīng)用數(shù)據(jù)結(jié)構(gòu)的隊列算法來實現(xiàn)的,學(xué)生只要掌握了隊列的算法,就可以開發(fā)出這樣的系統(tǒng)。授課與實際應(yīng)用結(jié)合會讓學(xué)生的創(chuàng)新創(chuàng)業(yè)眼界更加開闊,學(xué)習(xí)也更有動力。
上機實踐可以幫助學(xué)生加深對理論的理解,而且數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí)也是為了應(yīng)用到實踐中,實踐能讓學(xué)生對算法創(chuàng)新創(chuàng)業(yè)更有信心。所以,安排實驗上機是數(shù)據(jù)結(jié)構(gòu)課程必不可少的一個環(huán)節(jié)。
上機時間安排要與上課知識點配合。切忌學(xué)生學(xué)完一個知識點后拖很久才安排上機,這會導(dǎo)致學(xué)生上機前必須再花大量時間復(fù)習(xí)與上機任務(wù)相關(guān)的課程內(nèi)容,如果沒有時間,學(xué)生會選擇上機時一邊復(fù)習(xí)一邊實踐,會降低上機的效率。
因為課時有限,數(shù)據(jù)結(jié)構(gòu)課程的知識點比較多,必須選擇有代表性的能培養(yǎng)學(xué)生創(chuàng)新能力的實驗內(nèi)容讓學(xué)生上機。
授課之初可以啟發(fā)學(xué)生回想現(xiàn)實中使用計算機軟件的體會,提出問題:為什么具有同樣功能的不同軟件,有的很受歡迎,有的用過一兩次后我們就不愿意用了?總結(jié)出軟件受歡迎的關(guān)鍵因素:效率和操作方便性。告訴學(xué)生,在硬件不變的情況下,效率主要由軟件所采用的算法決定,而算法是根據(jù)數(shù)據(jù)的結(jié)構(gòu)來設(shè)計的。
接著跟學(xué)生說明高級程序設(shè)計語言課程與數(shù)據(jù)結(jié)構(gòu)課程的區(qū)別:前者只是介紹指令編寫的規(guī)則,要編寫得好,必須學(xué)好數(shù)據(jù)結(jié)構(gòu)課程。讓學(xué)生體會到數(shù)據(jù)結(jié)構(gòu)課程的重要性。并通過現(xiàn)場操作一些常用軟件來說明算法在軟件中的應(yīng)用,讓學(xué)生對課程產(chǎn)生濃厚興趣。例如,在操作系統(tǒng)中對文件按各種方式排序。告訴學(xué)生,這么多種方式的排序其實只需要一個算法就可以,同時告訴學(xué)生,常用的排序算法有哪些。
數(shù)據(jù)結(jié)構(gòu)課程是計算機學(xué)科的重要專業(yè)基礎(chǔ)課,是軟件技術(shù)創(chuàng)新創(chuàng)業(yè)的基礎(chǔ)。針對數(shù)據(jù)結(jié)構(gòu)課程的傳統(tǒng)教學(xué)模式在學(xué)生創(chuàng)新創(chuàng)業(yè)能力培養(yǎng)上的不足,在教學(xué)模式多方面進行改革實踐,可以有效提高計算機專業(yè)學(xué)生的創(chuàng)新創(chuàng)業(yè)能力。