王 劍
(長江大學計算機學院,湖北 荊州 434023)
計算學科已經成為基礎技術學科。 隨著計算機和軟件技術的發展, 繼理論和實驗后計算成為第三大科學研究范型, 從而使計算思維成為現代人類重要的思維方式之一。 學科基礎知識被視為計算機專業類基礎知識,培養學生計算思維、程序設計與實現、算法分析與設計、 系統能力等計算機類專業基本能力。 計算機導論是計算機學科的第一門基礎課, 是學生承前啟后,初步入門的重要課程。 學習好了該課程,會對學生建立計算機專業學習自信, 培養計算機類專業素養,了解計算機專業特征, 掌握計算機基礎知識點, 明確計算機學科地圖, 增加計算機視野具有較好的幫助和加成。
通過數年來對計算機導論課程的調研和一線教學、 實驗活動, 我們發現目前計算機導論課程中入學新生的水平嚴重參差不齊, 通過調研可以發現, 我國廣大的專業大一新生在入校以前正規學過的計算機課程普遍偏少甚至為零, 特別是目前高中培養模式下的非發達地區學子普遍是“0 基礎”偏多,很多新生在入校以前的計算機專業課基本上屬于放羊式的教學和學習, 這就使得授課老師產生了疑惑和壓力, 學生無基礎,如何能淺顯易懂的教授計算機導論這門課程?
針對上述分析, 筆者提出了在傳統理論課堂的教學基礎上, 采用可視化表達與互動組織的計算機導論課程教學模式, 打好 “計算機導論與計算思維有效結合”與“積極融入可視化表達的通俗易懂闡述模式”兩張牌, 良好的平衡了基礎的教學內容與計算機發展的前沿技術之間的度, 清晰地給出計算機學科的學習地圖,針對“0 基礎或者薄弱基礎”的學生提供了直觀明了的可視化編程方法, 并詳細分析多個計算機學科內的經典算法及其表達, 通俗易懂的全面講解了當前計算機類的新興技術, 幫助學生能快速, 全面的對計算機科學了解入門和掌握相關知識點。 互動組織活動主要從分組形式和規則, 內容的組織方法, 內容的設計形式和可視化技術及虛擬機的有效引入這些方面展開。
下面以授課中以計算機導論課程中的 “嵌入式系統設計與應用” 部分和算法思維部分講解為例對課堂活動組織進行分析:
首先是分組,組員一般有4 人,分別是主講人、幻燈片制作人、 提問人和回答人。 然后幻燈片的制作第一面至少應包含題目,小組成員姓名(任務分配);形式可多樣不限于文字,圖片,圖形或者其他,總數量不應少于15 張幻燈片,以更好的講清楚指定指令為目標但應保持簡潔明了的基本原則; 最后一張應為致謝。 兩組講解同一指令, 提問人負責對指定指令向另一組提問, 不少于2 個問題, 另一組指定回答人負責指定指令作答。 雙方組長互評對方組的講述及幻燈片制作環節等。 由授課老師負責評選最佳組(長)、最佳PPT 制作和最佳主講人。 課程結束后應完成相應作業, 寫在作業本上并上交,作業格式為:本組指令名稱、指令格式及說明和指令舉例說明。
內容的組織是個重要組成部分, 選擇合適的問題展開辯論和學習有助于激發他們的學習興趣, 擴展他們的學習視野。 比如可以有下列選題: 什么是嵌入式系統? 什么是SWI 指令?什么是硬件抽象層OAL?什么是bootloader? 簡述基于x86 處理器和arm 處理器的系統調用方式的區別? 嵌入式系統的特點是什么 ?簡述嵌入式系統的總線 ? 簡述ARM9 處理器模式? 什么是寄存器尋址方式 ? 什么是SWP(Swap)指令? 什么是嵌入式系統軟件? 什么是Linux 模塊?試分析Boot Loader 的啟動過程 ?什么是MMU?嵌入式系統的硬件有哪些組成?簡述ARM9 異常處理過程?簡述嵌入式系統存儲器 ? 什么是寄存器間接尋址方式? ARM 轉跳指令主要功能是什么? 這樣的選題難度較低, 適合學生展開分析和討論, 對于基礎較好的學生, 應準備難度較大合作程度更高的題目進行辯論工作。
內容的設計方式應切合技術發展趨勢, 從學生實際情況出發, 同時合理最大化運用現有軟硬件資源,為學生的課程設計提供良好的平臺。 LINUX 和嵌入式平臺具有良好的可擴展性和可操作性。 針對上述平臺展開合理的課設內容的設計能有效提高實習學生的嵌入式設計能力。 虛擬機VMWARE 的引入是重要環節。它能有效的避免對宿主機操作系統windows 的破壞。
由于部分學生對計算機類的嵌入式系統缺乏一定的理論基礎, 在內容設計的提高階段有一定的困難,對此授課教師需要將內容實行有效地分層化規劃,在強調基礎核心課設規劃的基礎上, 分層次設計課堂活動組織目標。
然后對算法思維進行介紹。 算法的講解是計算機導論課程中的核心部分, 算法思維屬于計算思維的一種具體化表達方式, 屬于客觀世界抽象后形成的計算機世界的表達, 算法和文檔的有序組織, 才能形成有效的軟件程序。 重視算法思維的教學, 是計算機類基礎課和核心課教學的重要組成部分。 國內頂尖高校普遍重視在大學低年級階段就展開算法思維的教學工作,由于這些高校生源基礎好,學生普遍自學能力強,在入校前都有了一定的計算機類思維的培訓甚至有項目經歷, 因而對于這些學校不存在上述問題, 但是反過來說絕大部分高校由于種種原因, 對這一塊的教學深化還有待加強。 目前在計算機導論課程中算法的講解主要方法是流程圖,N-S 圖,偽代碼,少部分還使用了當下最流行的python 語言作為算法分析語言。 針對“0 基礎或者薄弱基礎”的學生,可以采用可視化表達模式幫助他們迅速入門掌握相關知識點。
可視化是利用計算機圖形和圖像技術, 將數據或者程序轉換成可視化表達模式進行顯示和交互處理的方法和技術。 可視化表達的技術種類很多, 其宗旨是實現數據到顯示的無縫連接。 在計算機導論課程中,可以采用scratch 技術或者app inventor 技術來實現對于算法等章節的描述表達。 前者應用在windows 的PC端,后者運用在Android 的移動終端。 可以根據學生的特點和興趣來選擇合適的編程軟件。 把數據動起來,把程序顯示出來, 把軟件的過程化顯示出來, 可以有效的幫助薄弱基礎的學生增強信心和興趣, 調動他們的積極性, 更快更好的入門和掌握知識點。 這里要說明的是, 虛擬機在此處應該有較大的作用發揮, 虛擬機指通過軟件模擬的具有完整硬件系統功能的、 運行在一個完全隔離環境中的完整計算機系統。 虛擬系統通過生成現有OS 的全新虛擬鏡像, 它具有真實操作系統完全一樣的功能, 進入虛擬系統后, 所有操作都是在這個全新的獨立的虛擬系統里面進行, 可以獨立安裝運行軟件,保存數據,擁有自己的獨立桌面,不會對真正的系統產生任何影響 ,而且具有能夠在現有系統與虛擬鏡像之間靈活切換的一類OS。
通過對計算機科學類新生的教學及實踐活動,在采用了可視化表達與互動組織的計算機導論課程教學模式的班級與未采用該模式的參考班級對比情況下,使用了該模式的班級最終呈現的如期末成績, 實驗報告,作業、課堂反饋均好于參考班級,說明該模式具有一定的實用價值和參考意義。 接下來需要進一步總結經驗繼續積極有效的進行教學改革探索實踐。