黃煒欽
(廈門大學嘉庚學院 信息科學與技術學院,福建 漳州 363105)
教育是時代永恒的主題,而教師是教育事業的重要主體之一,如何高效地傳道授業解惑,是每一位教師需要自我發展與精進的一個問題。教育事業發展至今,中國的大學專業共有13個學科門類,92個專業類506個專業[1]。隨著人工智能的迅猛發展,工學下的物聯網相關專業發展前景廣闊,各高校在該專業方面的招生人數也與日俱增[2]。因此,做好物聯網專業的教育工作對國家和社會的智能化發展至關重要。
在物聯網專業課程中,程序設計類型課程眾多,如C語言程序設計、Java語言程序設計以及Android應用程序設計等,不同語言具有不同的語法,看似獨立,實則一通百通,當學好一門程序設計課程,后續通過比較學習,融會貫通,學好其他程序設計課程,甚至是全新的語言程序設計課程,最后能夠勝任軟件及相關產品的研發。因此,從專業角度出發,如何評判一門程序設計課程教得好不好,一方面主要看學生是否充分掌握本門課程的專業知識,另一方面要看教師對這一類專業課程的學習方法是否對學生起到啟發和引領作用,學生是否有能力依據該學習思路展開對新課程相關知識的學習,提高專業素養。因此,好的教學方法應當是既能授之以魚,又能授之以漁的。
人們都說“一圖勝千言”[3],這體現了圖相比于文字的巨大優勢和價值,這些優勢與價值主要體現在以下兩個方面。第一、理解更快。大腦處理視覺內容的速度往往比文字內容快很多,在教學中,圖可以讓學生在更短的時間內充分掌握知識點,節省時間,提高上課效率。第二、有助于記憶,減少疲勞。圖是由形狀、色彩、風格、形式等多種因素構成的,具有獨立的視覺特征,加上本身的形象性、生動性和特有的心理刺激作用,相比于文字而言,最易識別和記憶,而且能從一定程度上避免單調的文字帶來的疲勞感。
綜上,本文提出一種“知識圖解”的教學方式。所謂“知識圖解”是指用圖的方式將知識點進行分解,進而講授,使知識點更為直觀易懂,提高教學效果和學生知識的吸收效率,同時提高教師的教學水平和學生的學習能力。下面以《Android應用程序設計》這一課程為例,針對課程的內容和教學目標,分別談談知識圖解在理論教學、實踐編碼教學和學習過程等方面的應用與優勢,最后闡述“知識圖解”對教師教學水平與學生學習能力的提升。
計算機程序是指一組計算機能識別和執行的指令運行于電子計算機,滿足人們某種需求的信息化工具[4]。因為運行于計算機,因此其基本原理都要依賴于計算機的數據結構,而數據結構較為抽象難懂,教師如果單純地采用文本方式去傳授這一類知識,則學生們難以理解和吸收,似懂非懂,教學效果不盡人意;如果這一類問題能夠結合圖表,采用“知識圖解”的教學方式,則對于知識點的講授會明朗許多。下面以《Android應用程序設計》中Activity跳轉的知識點為例[5],圖1為該知識點的文本描述,圖2和圖3分別表示新Activity的載入過程與返回上一個Activity過程,其中虛線表示下一個過程的步驟。

圖1 Activity的跳轉原理文本描述
不難發現,通過圖2和圖3不僅可以清楚詳細地展示新Activity的載入與上一個Activity返回基本流程,同時也展示了棧的基本原理—先進后出[6]。學生可以通過圖2和圖3更快更好地理解Activity跳轉原理,而且基于圖像會形成更牢固的記憶。如果能夠借助PowerPoint完成流程的動圖,那將會更好地發揮“知識圖解”的優勢。

圖2 新Activity載入基本流程

圖3 返回上一個Activity基本流程
此外,“知識圖解”還適合于程序設計中技術和工具較為繁雜的過程,尤其這些技術和工具是相互聯系的。例如在《Android應用程序設計》中,要講解Android客戶端與服務端的數據交互問題,其中涉及到技術與工具眾多,包括Android客戶端、客戶端的通信框架、通信數據格式、服務端服務器、服務端開發語言以及數據庫等,如果單純采用文本描述,如圖4所示,則很難梳理清楚服務端與客戶端的具體操作思路,編碼操作就難以進行,因此考慮將圖4的知識分解為圖5的交互圖。

圖4 Android客戶端與服務端交互原理描述

圖5 Android客戶端與服務端交互圖
圖5將所涉及到的每種技術與工具視為一個實體,用矩形表示,強調其獨立性,不同實體之間的線條代表實體之間的聯系,線條箭頭表示其方向,線條旁邊的文本表示實體之間的數據流。矩形位置的擺放可清楚地表示出技術或工具之間的關系,比如圖5右側展示了PHP端與數據庫是屬于服務端的。此外,圖5中的標注框寫明對技術實體的補充說明。圖中也采用不同的顏色對不同的類別以示區分,更有利于學生對實體進行分門別類,區分工具與技術,避免出現兩者混淆的情況。
程序設計類課程的實踐在于根據語法編寫代碼,以實現目標功能。編碼過程中,首先遇到的問題就是開發工具的相關設置,以在Android Studio[7]開發軟件中SDK的設置為例,如果要找到SDK的設置,一般的講授如下:首先在Android Studio左上角點擊“File”,找到“Setting”,選擇“Appearance& Behavior”下面的“Android SDK”,點擊右邊窗口的“SDK Tools”,最后選擇“Documentation for Android SDK”前面的矩形框。如果采用圖的方式,并在關鍵步驟采用紅色矩形框進行標注,如圖6所示,那么學生對于該功能的設置一目了然,設置的速度也會比較快。

圖6 Android Studio中SDK設置操作圖
當新建完一個程序項目后,需要帶領學生結合開發工具去認識整個項目的框架,如果僅僅只是打開窗口,指著某一區域講解其功能和應用,則學生會因為功能區域過多或記憶不深刻等問題出現認識混亂的情況。如果采用圖的方式去講解,那么就可以明顯改善這類問題。下面以Android項目結構講解為例,如圖7所示。

圖7 項目框架分解圖
在圖7中,可以很清楚地明確這個項目在開發軟件中的結構,不同的區域具有不同的功能,同一區域具有不同的文件,該圖對功能區域的功能描述和簡單的操作都進行了詳細地注釋,對運行和調試等重要的功能按鈕也都進行標注,非常有利于學生上手項目。
在實踐的項目中,通常會有很多類型的文件需要分別按照指定的語法格式去編寫,而且這些文件之間存在互相調用的情況,如果項目規模較大,則代碼看起來會更加復雜。因此,可結合“知識圖解”的教學方法理清文件的來源與文件之間的聯系,編碼的時候可以針對重要的方法進行適當說明,突出展示與講解。圖8為Activity跳轉的具體實例的代碼分解圖。

圖8 代碼分解圖
圖8通過矩形框和含雙向箭頭的虛線將Java代碼、布局文件和文件在項目中的位置進行關聯,學生們可以很容易看出代碼中引用來源的位置以及代碼文件之間的聯系,代碼間的調用有跡可循。同時,對于代碼中比較重要的方法和參數,采用標注的形狀進行說明,這樣比直接提供語法的方法屬性列表更為直觀,學生們對于該方法的使用就會更加順手。通過這樣的代碼分解圖,學生能夠快速高效地且扎實地掌握相關的技術和知識點,正確編寫代碼,而且會進一步提高代碼的解讀能力和編寫速度。
學習過程一般是預習、上課和復習三個環節,不論是在哪一環節,老師與學生對于相關的專業知識都應該做到胸有大綱。若要對整節課或整章節的內容做到了然于胸,一般會采用樹狀圖對知識進行梳理,本文要介紹的是一種更為高效的圖,簡單有效,它是一種實用性強的思維工具[8],在程序設計課程中,可以用來梳理知識點,以《Android應用程序設計》中的《Android多用戶界面程序設計》一章為例,其思維導圖如圖9所示。
從圖9中可看出本章共3部分,分別用不同顏色的線加以區分,更容易在學生的大腦中強調其獨立性,每一部分都有子主題,每個子主題還可能有更多子主題。通過該圖,學生在預習時可以規劃自己的本章學習計劃,在上課時可以清楚當前處于整個知識體系的位置,理清當前所學與前期所學知識點的關聯,避免學習過程中“只見樹木,不見森林”的問題。在課后,這些知識主干有助于引導學生去回憶每個主干對應的詳細內容,發散復習,達到良好的復習效果,學生也可以在該圖上根據自己的認知進行知識框架的調整與豐富,為自己所用。

圖9 章節知識思維導圖
“知識圖解”對于老師的教學和學生的學習都具有重要的意義。一個知識點如果要分解為圖的形式,必須要對這個知識點有徹底的掌握,才能夠講清楚整個過程。因此,對于教師而言,必須要認真備課,透徹掌握知識點,并且不斷思考如何才能把復雜的知識點講明白,掌握深入淺出的教學技能,讓初學者能夠盡可能吸收新知識,提高學習效率,并且能保持長久的學習興趣。因此,在“知識圖解”教學方法的不斷應用中,教師可以不斷優化自己的教學方法,非常有利于提高教師的教學水平。表1來源于所在學校教務系統,該表展示了上一學年的學生對于《Android應用程序設計》課程的教學評價,包括教學方法和教學效果兩方面的評價,其中第2列數據為學生對作者的教學評價數據,第3列數據表示任同一課程的其他老師的教學評價數據。從表中數據可以看出,非常認同的比例均高于任此課程的其他老師,一定程度上表明“知識圖解”教學方法具有一定的優勢。

表1 學生評教數據(教學方法/教學效果)
對于學生,“知識圖解”可以更加直觀地將理論知識和實踐操作展示出來,學生們能夠更快更好地吸收程序語法知識,更好掌握程序設計的實踐操作,達到高效學習的效果。除此之外,學生們可以結合老師課件的圖解材料,掌握知識的圖解方法,提高自己的學習能力。對于這門課的課后作業,讓學生結合知識圖解的方式去完成,既可以促進他們在完成過程中的思考與總結,而且可以避免抄襲或者缺乏過程的問題。
本文提出一種應用于程序設計類課程的“知識圖解”教學方法,并結合《Android應用程序設計》課程說明該方法在理論和實踐學習方面的應用與優勢。綜上所述,該方法既可以將復雜抽象的理論知識分解為直觀的圖,提高學生對于理論知識的吸收效果,又可以在實踐教學中理清項目文件與代碼之間的聯系,理清代碼的編寫思路,迅速提高代碼解讀能力和編寫速度。在知識圖解的不斷應用中,教師可以不斷深化對知識點的理解和吸收,提高自己的專業素養和教學水平,深入淺出地傳道授業解惑;學生也可以在高效學習的過程中,提高自己的學習能力。雖然知識圖解優勢較多,但是實施耗時長,課程中并非所有的知識點都需要圖解,也并非所有的圖解都需要細致,這就需要教師結合實際的教學內容、學生學情與學時進行充分應用。如何充分應用“知識圖解”的教學方法,發揮其最大的優勢,這也是下一步需要深入展開的研究內容。