許雪林,蔡文培,楊 騰
(福建工程學院 信息科學與工程學院,福建 福州 350118)
成果導向教育理念(OUTCOME BASED EDUCATION,OBE)是指通過教育過程獲得的學習成果作為規劃教學設計和開展教學實施的目標。OBE 強調以學生為主體,提4 個問題:學生要學什么,為什么學,如何幫助他們學,如何了解他們學習的效果[1]。
8086 微機原理課程主要講授內容為目前主流計算機x86 體系結構知識[2]。目前存在的問題主要有8086CPU 芯片型號老舊;匯編語言不是主流開發語言;目前操作系統平臺基本不支持實模式的調試環境;軟硬件相結合的理論內容較多,而且抽象。由于這些問題的存在,如果再繼續以傳統的方式進行教學是不合適的,主要原因學生認為老舊的知識不能給他們帶來就業的利器,故學生學習的積極性差,又由于知識晦澀難懂,學生更加報以及格萬歲的態度來學習,導致目前的教育無法滿足OBE 教育理念。目前中國工程教育認證正是采用OBE 理念進行引導開展[3],為此根據OBE 的理念對基于80x86 微機原理課程進行改革是迫在眉睫。
對目前微機原理課程教改[4-8]進行分析,微機原理課程改革目的是提高學生主動學習的積極性和分析問題解決問題的能力。對OBE 理念下的教學改革[3,9,10]進行分析,均以積極達成中國工程教育認證提出的12 條畢業能力要求[11]中培養學生設計、創造、工程實踐能力作為目標。
目前國家強調需要加強基礎產業國產化,如CPU 和操作系統研發列入國家重大支持課題等[12]。所以需要積極引導學生了解支撐這些項目課題的相關技術知識以提高他們學習微機課程的主動性。本校計算機專業2018 年通過中國工程教育認證,其中對于微機原理課程和課程設計的畢業設計要求主要涉及指標點見表1。這些指標點明確希望對于微機原理課程的要求是培養學生的解決問題的能力、協同能力以及工程實踐能力。

表1 指標點序號以及對應內容
通過梳理,以8086 和80386 為例說明,兩者部分知識點關系如表2 所示,x86 兼容8086,但是8086 芯片入門相對容易。

表2 8086 和80386 相關知識點比較[13]
讓學生掌握表2 中提及的底層電路結構和相關計算機體系知識,就好比讓學生掌握網絡協議一樣,不但能對底層進行暢通無阻的操作,還能依靠對知識的掌握提高解決問題的能力。這正是以OBE 理念下微機原理課程希望學生獲得,為什么要讓他們獲得這樣的學習成果的原因。
1)承上啟下構建相對完整的知識體系。
利用微機原理課程起到承上啟下的作用,如圖1 所示。微機原理課程面向計算機專業進行開設,需要對先開課程計算機組成原理中關于CPU的運行原理帶入到8086 的結構中。比如在本校所開設的計算機組成原理課程將CPU 的運算器和控制器的設計原理進行描述,如累加器的設計、運算器的設計、控制器的設計、指令的設計等,有了這些設計理論基礎,在微機原理課程中將知識進行對比,如8086 中標志寄存器的作用是什么,為什么兩個內存單元不能直接進行數據傳送,匯編指令中乘法指令MUL 為什么能用隱含寄存器AL 或AX。除此之外,本門課程通過解釋定時中斷的知識讓學生了解后續開設的操作系統課程中利用時間片進行進程切換的原理,還有由于開設了匯編語言內容,則結合C 語言反編譯的方式講解匯編語言,方便以后學生開展網絡安全知識的學習。

圖1 承上啟下的作用
2)漸進融合新舊內容。
8086 的結構在Intel x86 系列CPU 相對簡單,而且能夠往下兼容,所以從8086 開始講解,先了解8086 寄存器的作用,然后再過渡到x86 寄存器;從實模式環境下到保護模式的邏輯地址到線性地址的轉換,其中還包含分段和分區的概念;從DOS 下的16 位debug 調試環境到32 位的OllDbg 匯編分析調試器。
3)進行技術實用性引導。
匯編語言目前已經極少用來進行開發,但是在逆向工程領域,網絡安全領域等卻有著很重要的作用,因此引導學生在學習匯編語言的時候重點放在閱讀和調試上,同時將C 語言程序反編譯后的匯編代碼結合學習,帶動學生的學習興趣。另外,學習C 語言和匯編語言混合編程方式,貼近企業開發方式,并且在課程學習中,采用功能模塊化教學,如顯示接口模塊,與其配套的拆字模塊,按鍵接口模塊等。這些模塊在課堂上進行講解后將應用在課程設計中,提供學生想象空間,培養其創造力。
4)利用仿真平臺進行輔助教學。
學生在學習接口電路過程中,對電路設計與相關代碼的關系不容易理解,所以在課堂教學過程中,通過演示仿真電路,提高電路設計和其驅動代碼的辨識度,從而增強學生的學習興趣。目前采用Proteus 平臺上的EMU8086 匯編連接調試軟件,在設計好的仿真電路上,實現匯編語言程序設計[14]。仿真電路及其相關軟件設計均可以移植到實驗箱平臺上進行開發。
比如數碼管顯示模塊的知識點包含的內容有硬件和軟件兩部分,其中硬件部分涉及的電路有譯碼電路、8255A 接口芯片、數碼管;軟件部分包含的內容有端口地址的使用、8255A 芯片初始化、數碼管顯示驅動程序、顯示字符的拆字過程。在課堂上通過仿真平臺把這些內容的操作過程進行演示,將涉及的知識進行融合講解,而檢驗學生是否掌握就看學生能否將仿真平臺移植到實驗箱平臺。
5)建設多媒體平臺。
課堂內容講解過程中時間段內容多,所以除了課堂實驗和課程設計教學外,還建設線上課程,通過線上錄制視頻和發起評論、提交作業和課程評價等方式讓學生多一個預習復習的手段。
6)定期進行小測。
如何了解學生知識掌握程度,最好的辦法就是分階段進行知識點小測,小測成績計入總評。通過這種方法能很好地防止學生臨時抱佛腳的情況發生,同時也能讓學生每一個階段做一個溫習總結的工作,讓學生很好地了解學習知識點的意義所在。小測只會講評,但是不會提供標準答案給學生。這樣的目標就是讓學生勤快起來,讓學生的關注力、書記能力和總結能力得到提高。
1)培養匯編閱讀和調試能力。
實驗是將課堂的理論知識進行驗證或者設計,所以針對匯編語言實驗部分,重點放在學生閱讀和調試能力上。主要實驗內容見表3。通過對底層硬件結構和匯編語言的知識的學習,掌握指令的組成結構以及操作數的尋址方式,熟悉掌握調試命令的操作過程,為將來系統優化、網絡安全等領域打下基礎。
2)加強實驗考核機制。
除了需要加強的匯編閱讀和調試能力,還需要進行一些簡單匯編指令的編寫,同時由于新舊內容較多,故將部分內容放在了課前或課后進行實驗預習或復習,這樣就要引入實驗考核機制。實驗考核分兩部分,一部分是實驗考核,一部分是實驗答辯。在不占用課時的前提下,實驗考核主要利用實驗時間進行,而實驗內容則安排在實驗小測前的課余時間完成,通過網絡平臺限定實驗完成時間,將按時完成實驗并提交實驗報告的情況計入平時成績,實驗考核為紙質加上機考核,學生通過上機完成程序設計的方式獲得答案,防止死記硬背的現象,最后通過實驗答辯的方式了解學生是否真正理解知識點。

表3 實驗內容
3)虛實結合進行模塊化設計。
如何虛實結合,例如譯碼電路和8255A 芯片的電路連接完整過程在仿真環境下能夠自由設計,但是在實驗箱平臺上是無法做到的,同時采用仿真實驗平臺能夠讓學生隨時隨地進行實驗,能夠保證人手一臺,不用擔心實驗箱器件損壞維修帶來的設備不足的問題。但是最后程序還是要在實驗箱平臺上跑,畢竟有很多現象是在虛擬仿真平臺上是無法預見的,比如說數碼管動態顯示過程中出現的竄顯問題和按鍵抖動等現象只能在實驗箱真實環境下查看。表4 給出一個虛實結合的實例。

表4 顯示模塊虛實結合知識點關聯
1)加強技術實用性設計。
課程設計按工程項目開發進行,以滿足畢業達成度指標的要求。如密碼小鍵盤的題目,這個設備對于學生而言是去銀行進行存取款操作時經常會看到的設備,這個設計把顯示模塊、按鍵模塊等平時講解的模塊組合起來。
將C 語言和匯編語言進行交叉匯編,適應企業開發的模式,同時也兼顧使用課程學習使用的匯編語言的內容,C 語言和匯編的交叉編譯主要以VC 環境下外加masm32 編譯器。
2)小組合作協同設計。
設計項目是一個復雜的問題,要在規定時間內解決這個問題,必須要求小組進行分工,然后再對各自的工作進行整合,設計過程中每一天均需要撰寫小組工作日志。小組的人員組合嘗試過強強聯合,也嘗試過異質小組[15]。對于強強聯合的小組能夠帶來很好的設計范例,而異質小組對能力較差學生找到適合他設計學習的方式,對能力強的學生培養他的組織協調能力。監督小組的成效除了每日報告外,還要求組長提供小組成員的貢獻度,通過答辯的方式防止貢獻度數據作假。
3)虛實結合提高設計效率。
和實驗改革一樣,課程設計也離不開虛實結合。在有限的時間內和有限的實驗箱個數等條件下,仿真實驗平臺作為輔助手段能夠構建24 小時實驗室,延長了學生設計時間,從而不會因為實驗室關門導致設計思路打斷的情況出現,有了良好的設計環境,為了取得好成績,學生能動性將會有效激發出來。同時在對仿真環境下的設計程序或電路移植到實驗箱的過程中,創造了一個鍛煉學生解決復雜問題能力的機會。
比如:學生在仿真環境下進行數據處理過程中能夠正確執行,但是移植到實驗箱后,發現數據并不正確,這時候引導學生進行調試分析找出問題能夠讓他們找到成就感,比如在仿真環境下,寄存器默認均為0,但是在實際環境下,寄存器是隨機值,故導致移植過程中出錯。解決問題過程是沒有辦法在課堂上描述的,只有讓學生自己體會才會激發他們學習興趣。
課程結束后需要進行達成度分析,目前微機原理課程均能達成畢業設計的要求。達成度考核主要采用在考卷中知識點得分題和實驗考核進行評測,考核知識點是掌握Debug 下對軟件進行反匯編和底層編碼跟蹤,掌握程序跟蹤調試的方法;了解堆棧機制和中斷機制。掌握查詢模式和中斷模式下對微機接口進行編程訪問。
其中在計算機專業和軟件工程專業對于微機原理這樣的硬件課程對畢業要求指標點1~3 的達成度為78%,這個分數雖然沒有達到80%,但是對于非電類專業的學生而言,這能夠說明對于非電類專業的學生通過基于OBE 理念的教學改革也能激發他們學好硬件方面的知識。
在課程設計的團隊合作達成度指標均為80%以上,主要考核學生設計過程中團隊合作,這里面采用課程設計日志、分工描述和項目貢獻度來進行考核。達成度良好的原因是:面對比較陌生的設計環節,學生還是希望采用合作的方式完成,所以團隊實施過程中組長和隊員都能積極完成相關的工作,在答辯環節上,隊員都能了解項目內容并對自己設計部分問題對答如流。
1)課堂教學內容。
對于課堂教學內容上普遍認可x86 匯編語言的學習,同時還有學生提出希望學習逆向工程中的匯編知識。課堂上采用仿真平臺講解接口技術得到認可,表示能夠更加直觀了解。
由此看出,學生能夠理解教師的用意,知道學習的內容對自己的幫助,積極提出往后的學習要求。
2)實驗內容。
學生肯定實驗考核,主要能起到復習鞏固知識點的學習。但是他們希望保留小測去除答辯環節,主要考慮希望花更多的時間用在其他知識學習上,特別是成績好的同學尤為突出??隙K化教學,能夠結合高級語言理解面向對象設計的緣由。
3)課程設計。
虛實結合的課程設計方式獲得學生肯定。開展仿真教學一開始的原因是舊的實驗箱設備已經無法保證正常的教學任務,但是新的實驗箱采購還沒有到位,所以只能用仿真平臺進行實驗和課程設計,這個條件下的調查問卷中學生提出不理解按鍵抖動的現象希望能夠用真實設備進行學習,這說明基于OBE 的理念可以讓學生明白他們要學什么得到肯定。同時學生也肯定了仿真平臺的便捷性,能夠極大方便課外時間的設計工作以及肯定了小組合作分工時仿真平臺提供了并行開發的作用。
采用以學生為本的OBE 理念對微機原理課程進行改革,對課堂內容、實驗手段到課程設計進行方案需求分析、內容設計和實施,通過對實施效果分析,改革激發學生學習的興趣,能夠積極主動配合教學要求。后期還需要進一步完善實驗考核環節,對繁瑣復雜的知識點進行階段性梳理的同時,能騰出更多的時間讓學生進行更多課外知識的學習。