翟建麗 廣東工業大學華立學院
關鍵字:獨立學院 數據結構 多元化 教學改革
獨立學院是“普通高校行政資源+非財政社會資本”相融合的辦學模式,在該辦學模式下應充分發揮其自身辦學主體獨立、民辦靈活的優勢,盡量實現與普通高校差異化教學,制定適合自身發展的人才培養方案。獨立學院作為以本科教學為主的教學型本科高等學校,培養的學生既應有相應的理論基礎,又要強調實踐應用能力的培養,實現高素質應用型人才的培養計劃。
獨立學院的學生與同級公辦院校的學生相比,入學成績相對遜色一些,也就是說其理論學習能力相對差一點,但是其動手能力很多同學表現的較為優秀。針對《數據結構》這么課程,如何調動學生的學習積極性,讓其學好理論知識是一個難點。理論知識也是后面應用的基礎,想達到較為理想的編程能力,理論知識首當其沖要學好。同時該課程又有及其廣泛的應用范圍,所以學以致用也至關重要。如何做到魚與熊掌兼得的教學效果,是眾多教學改革討論的重點。
《數據結構》是計算機應用專業和計算機軟件專業的一門核心課程,也是相關專業的專業基礎課程之一,是很多后續課程,例如:操作系統、數據庫原理、編譯原理、算法分析、人工智能等的基礎,在整個計算機知識體系結構中非常重要,且不可替代。
《數據結構》主要研究的是在算法設計中,如何選取適合的數據結構,包括邏輯結構和存儲結構,并在此基礎上應用相應語言對其算法進行實現。《數據結構》課程本身比較抽象,不易于理解,很少同學感興趣,較難調動學生的積極性。但是通過較好的完成《數據結構》課程的學習,能夠很好的提高學生的軟件開發和計算機思維能力。
《數據結構》課程的傳統教學模式中,理論教學多以傳授知識、利用偽代碼描述數據結構及其算法為主;實踐教學多單個知識點為基礎,進行一定的編程實踐教學。在此種教學模式下,很多時候教學效果不能滿意,追其原因,主要總結為以下四個方面:
(1)學生學習積極性不高:《數據結構》課程,本身理論知識具有很強的抽象性,理解起來比較難。傳統的以講授的“填鴨式”式教學,很難調動學生的積極性,學生大多數表現為學習動力不足。
(2)課時不足:《數據結構》課程,四大基本存儲結構:線性表、棧、隊列、樹、圖,還包括查找、排序、外部存儲等,每一個章節都需要較多課時的講解和時間,這樣就表現為課時的不足。如果在總課時不變的基礎上,就會出現強理論輕實踐或者強實踐就會請理論的現象,陷入兩難境地。
(3)實踐環節單薄:傳統教學模式,基本都是滿足理論教學的基礎上,以實踐為輔,該教學模式使得實踐環節過于單薄。作為很多算法都是需要編程實踐才能深入理解的課程,這樣的時間環節,很難令人滿意。
(4)學習的基礎不足:學習《數據結構》課程,要有很多課程作為其先導課程,院校在排課過程中會考慮到這個問題,但是學生的學習程度參差不齊,導致先導課程學習不好,后面的課程也很難開展。
在《數據結構》課程的教學過程中,教師們已經意識到了相關的問題,也提出了一些相關的改革措施,例如以下教學方法的引入:
(1)翻轉課堂:隨著現代信息技術的發展,很多借助于網絡的教學模式應運而生,翻轉課堂就是其中一種,被很多老師采用。翻轉課堂將“教”與“學”的角色進行了很好轉換,學生從被動的“聽”,變成了主動的“問”,無疑提高了學生的參與度。
(2)Moocs:在“互聯網+”時代,給同學們提供了太多“線上”學習的便利條件,同學們只需引導,即可很好的展開自主學習。通過Moocs,學生可以利用互聯網在課余時間對課程進行系統的學習,那么上課時間老師只需要針對課程的重點、難點和實踐環節即可。此項改革舉措,可以大大節省課堂上理論學時的講解,同時對該課程具有了一定的而了解,可以大大的提高學生上課學時的效率。
(3)課程設計:針對實踐環節,很多時候老師選擇課程設計。老師給出課程設計題目或者范圍,由學生單獨或者小組完成,以鍛煉其動手能力。
在傳統教學模式的基礎上,很多前輩已經做了很多的嘗試,并且這些嘗試確實是對于《數據結構》課程起到了一定的作用,但是這些模式大多變現為單一的改革,只能對其中某一方面起到較理想的改進。如何將這些方法和措施加以綜合運用,以便更好的提高教學質量,是本文需要闡述的重點。
《數據結構》這門課程不是枯燥無味不切實際的難學理論,而是在計算機功能占據80%以上應用的數據處理時代的實用學科,其在很多實際問題的解決中都發揮著重大的作用。所以在這門課程的改革中,必定會涉及理論和實踐兩個大方向的改革。
開課前的準備工作非常重要,沒有一個良好的課前準備,該多元化融合的教學改革將很難運行下去。開課前準備工作主要突出“線上/線下”教學,其中主要包含以下三個方面的工作:
(1)讓學生知道學習該課程的先導課程:掌握一門語言(例如C語言),了解離散數學和一些算法只是,更有利于課程的開展。如果其先導課程學習的較差,那么有必要在開課之前做好準備工作。
(2)借助翻轉課堂的理論,在開課之前,針對于該課程給學生提出一些問題,最好是實踐中的難度適中的問題,讓學生先來思考。其目的不是為了讓學生來解決問題,而是要讓學生知道,我們通過《數據結構》課程的學習,可以解決什么樣的問題,在實際中有什么樣的用處,以提高學生的學習興趣。讓學生帶著問題來學習,實現驅動式的學習模式。
(3)布置Moocs的學習,先對一門課程系統的進行一次學習和了解。此處要根據老師的經驗指定學習課程,例如 “中國大學Moocs”,浙江大學,陳越、何欽銘教授開設的《數據結構》課程,為國家級精品課程,講解深入淺出,非常不錯。在學習的過程中學生肯定有很多地方有疑惑,沒關系,帶著這些問題來上課,來解決它,這樣的學習將事半功倍。在這里,要想達到想要的效果,可以規定學生必須達到的目標,例如自學30個學時的指定課程等。
因為學生的基礎參差不齊,且獨立學院的學生學習理論知識的能力略低于普通高等院校,所以對于《數據結構》課程的學習,做好學習前的準備工作顯得尤為重要。
“線下”教學注重對線上教學的分析和總結,解決學生通過自主學習不能夠理解的知識點。有了前期良好的準備工作,學生對于數據結構已經有了一定的認識和了解,所以在此不需要滿堂灌的講解理論和概念,只需要突出重點和難點,同學回答學習中遇到的疑點,并帶領進行一定的案例學習,以便讓學生對于數據結構只是有更深一步的認識和理解。
(1)突出重點:培養應用型人才的教學,是為了能夠學以致用,所以在課程內容設置方面,可以有所調整。不要再完全按照課本內容按部就班的教學,可以突出每個章節的重點,對不必要的章節可以省略,對于簡單的章節可以自主學習,此處對重點章節詳細解讀,做到學以致用。
(2)攻克難點:《數據結構》課程的理論知識,部分課程相對而言比較難以理解,特別是后面的平衡二叉樹、圖論中的最短路徑等知識點,理解起來就比較費力,更別說真正的應用。要達到靈活運用的程度,只能對難點知識下大力度來學習和理解。
(3)提供好的程序代碼供學生參考和閱讀:通過閱讀優秀的代碼,學生可以在不知不覺中吸收其中的營養,例如良好代碼的風格、最優數據存儲結構的選擇等。同時,能夠很好的提高學生的代碼閱讀量和代碼閱讀能力。
(1)加強課堂實踐環節:《數據結構》在我院計算機專業一般為3+1學分的教學模式,即三個學時的理論教學,一個學分的實踐教學。在理論講解的基礎上實踐,課時是遠遠不夠。據了解,北京大學計算機系,理論教學72學時,上級實踐100多學時。這么多的學時,不是所有學校都能夠安排的,但是可以通過課前準備減少理論學時的基礎上,適當的增加實踐學時。在實踐學時上課時,就應適當的以具體的實例來引導學生理解理論知識,讓學生知道所學知識能夠解決什么具體的問題,能夠做到學以致用。在課堂教學案例的選擇上,要注意難度選擇適宜。太容易,不能很好的有助于理論知識的理解;,太復雜會致使學生通過通過也很難聽懂,嚴重打擊其積極性。
(2)以項目為中心的實踐性教學:以項目為中心的實踐性教學,是通過師生共同協作以完成一個具體項目的開發。在項目開發過程中,老師引導學生如何將理論知識應用到實踐中來,學生通過具體的實現,鍛煉了其編程動手能力的同時,也提高了學生的溝通能力,合作能力,代碼閱讀能力等。
(3)課程設計的合理設置:課程設計的選題,在難度方面,要做到難度適中;選題方向方面,要做到貼近現實,例如對于圖論中最短路徑的理解,可以借助于百度地圖中最短距離;對于非計算專業選開《數據結構》課程的同學,選題最好貼近專業或學科,針對不同學科因地制宜。把課堂中真正學到的東西,用到自己的專業,不僅提高了動手能力,同時也能大大提高學生的學習興趣,例如《運籌學》中的很多知識可以借助于數據結構編程實現。
(4)課程的總結和討論環節不可缺少。《數據結構》中的很多實例,都可以通過多個算法來完成,但是每個方法的時間復雜度和空間復雜度會有所不同,如何做到最優,是值得學生們認真思考和討論的。通過討論和總結,能夠達到對該課程的靈活運用。
本文針對《數據結構》課程的“線上/線下”教學、教學內容、教學實踐環節等方面經行了相關的闡述。本文也有很多的不足之處會在以后的教學中繼續努力總結和完善,例如:好的教學離不開一支優秀的師資隊伍,培養實踐應用型師資必不可少。
《數據結構》課程盡管比較難學,但是經過一定的努力也是可以學好的。需要教師在總結前人經驗的基礎上,總結出適合獨立學院學生使用的教學方式與方法,使學生在邏輯思維能力和應用實踐能力方面都得到鍛煉,以提高其程序設計與開發能力。