李元章 譚毓安 張雪蘭 張全新
摘要:針對日益嚴峻的就業形勢下如何提升計算機專業畢業生的實踐能力和綜合素質,分析現有硬件課程相關教學計劃的優缺點,提出培養學生的計算機硬件課程相關的實踐和創新能力的基本思路,為導向創新型課程教學和實踐進行有益探索。
關鍵詞:計算機硬件技術;教學實踐;實驗教學;教學改革
0.引言
隨著國家信息化步伐的加快和高等教育的發展,社會對于計算機專業人才的需求呈現一種加速增長的態勢,各級高校都建立起較為完善的計算機人才的培養體系,社會上的各種培訓機構也針對當前社會對于計算機需求的熱點問題提供培訓服務。但隨著計算機行業從業人員的增多,國家對計算機人才的需求不僅體現在數量的增加上,更多體現在質量的提高上。培養具有較高的研究和實踐能力的高層次計算機專業人才已經成為許多重點大學計算機專業教育的主要目標,理論與實踐并重對建設“研究型”大學,構建創新型社會具有重要意義。
1.現狀及問題分析
計算機技術的發展日新月異,計算機專業的學生不僅要掌握系統的計算機基本理論和基本知識,更要掌握最新的軟硬件技術,擁有較強的實際動手能力,來滿足企業用人單位的崗位技能要求,實現真正意義上的人才培養與崗位需求“零距離”。而要想讓學生真正掌握計算機專業知識,達到熟練應用的目的,就必須加強實踐環節,努力培養學生的實踐能力。
如果教學計劃顧此失彼,不能突出專業特色,學生擇業難度就會加大。因此,高校計算機專業要想面向企業培養出合格人才就必須改變傳統的教學理念,明確并圍繞實用型人才的培養目標,調整課程體系結構,注重實踐技能的培養,改革舊的教學設置,加大實踐環節,重新設置教學計劃,加強實驗室、實習基地建設,開展校企合作,提高師資隊伍整體素質,為完成實用型人才培養制訂切實可行的計劃,確立人才培養的模式。
匯編語言程序設計是計算機軟件技術和硬件技術的接口和橋梁,是高等院校計算機軟硬件及應用專業學生需要學習的核心課程之一,它是直接面向CPU的效率最高的語言,也是能夠利用計算機所有硬件特性并且能夠直接控制硬件的一門語言。在某些場合,只有使用匯編語言才能達到目的,如系統的引導控制、軟件的加密與破解、病毒剖析、代碼優化、CPU核心編程、軟件疑難問題分析等。然而,由于它的內容十分豐富,知識量大,概念抽象,被認為是一門“教師難教、學生難學”的課程。
微機接口技術是與計算機硬件技術聯系最密切的一門課程,掌握微機接口技術能使學生充分了解和運用微機領域內的先進技術,尤其是涉及CPU與外部設備進行的有關控制、傳輸等的技術。該課程中的Windows操作系統保護模式內容也是操作系統、編譯原理等課程的先修知識。但由于該課程與硬件技術聯系最密切,而計算機專業的本科生又缺少計算機硬件實踐的鍛煉,使得學生在學習該課程時普遍反映難度較大,很難完全掌握相關知識,尤其涉及芯片級的硬件技術時,更是難以深入認識。
針對上述課程問題,為提高學生實踐能力,加強實驗課程建設,結合了匯編語言程序設計和微機接口技術相關知識的實踐性課程——匯編與接口課程設計被引入了教學計劃。該教學計劃試圖在這些課程的基礎上探索一條提高學生專業實踐能力的新道路。
匯編與接口課程設計是計算機類專業本科生的一門必修課,是對匯編語言程序設計、計算機接口技術和計算機組成原理等計算機硬件類必修課程的必要補充和延伸。通過該課程的改革和發展,使學生從硬件類相關課程中學到的知識得以鞏固和深化,培養學生對計算機硬件類課程和相關研究方向的興趣。課程將理論與實踐相結合,通過大量與實際應用相關的實驗來學習和掌握匯編語言和接口技術等方面的內容。
基于以上情況,以提高學生的實踐能力,尤其是與微型計算機硬件相關的實踐能力為導向,改變傳統的教學模式,激發學生的學習興趣,培養學生的實踐和創新能力,更新教學環節、教學計劃和教學設備,設計出新的實踐案例是我們的研究重點。
如何通過各種實驗手段使學生加深對理論知識的理解,掌握計算機硬件設計和軟硬件協同設計的基本方法,訓練和培養學生硬件動手能力、創新能力以及認真、嚴謹的科研作風,提升學生的就業競爭力是計算機專業硬件相關課程需要關注的重點。
2.待解決的問題
如何改變傳統的教學模式,激發學生的學習興趣,培養學生的實踐和創新能力,是我們研究的重點。匯編與接口課程設計主要解決以下幾個方面的問題。
1)密切跟蹤新技術的發展,緊跟當前計算機領域熱點問題。
計算機技術及相關的軟硬件設計正處于高速發展過程中。然而,由于計算機相關教材中理論的整理、編寫和出版的時間滯后性,學生通過書本所學到的理論知識和當前計算機、信息領域所活躍的應用技術有一定的差距。因此,如何緊跟當前的熱點問題,使學生在走出校園后能夠快速跟上計算機技術發展的節奏是我們要考慮的一個主要問題。
如今,移動互聯網技術越來越普及,移動終端和博客、微薄和微信的結合已經成為當今計算機專業學生最大的興趣所在。在匯編與接口課程設計中,我們將開設相關的實驗設計,通過移動通信模塊GPRS/3G等實現實驗開發板和網絡的聯接。通過該實驗設計,學生不僅可以掌握相關的理論知識,還能掌握底層硬件基礎上的實踐能力,當學生走上工作崗位后能快速投入到項目中,實現高校和企業的無縫連接。除該實驗外,課程設計還將開設更多與當前技術熱點相關的實驗。
我們還將重點針對實驗課程進行課程改革,逐步改變現有的實驗環境,以目前主流的嵌入式主板作為硬件實驗平臺,全面更新實驗內容,使所設計的實驗都可以在嵌入式主板及外設的框架內實現,同時采用國內獨特的實驗模式,更貼近目前的實際應用。
2)實現理論與實踐的結合。
目前,實驗課程所依托的科研團隊科研成果豐碩,這些科研成果都是當前最新的技術、方法和理論,如何將這些理論與實踐,特別是與實驗課程相結合,也是當前教學教改所研究的重點endprint
將科研成果引入到教學實踐中,需要處理好經典與現代、理論與實踐的關系,既要體現基礎性、系統性、兼容性,又要注意與時俱進,還要在滿足教學基本要求的前提下,注意把科研成果引入教學與實驗,在實踐教學中培養學生的實踐能力和創新能力,促進實踐型、研究型課程的教學改革。
在實施中,需要依托科研項目,注意提取科研中的相關知識點,并引入到教學實驗中,提升創新型人才的培養水平。在教學與科研結合方面,課程主講人所屬的教學團隊主要由計算機系統結構研究所和計算機存儲技術團隊教師組成,有很好的結構。主講教師參加的研究項目中有許多與底層硬件相關,如反匯編逆向分析、程序性能優化、高級語言與匯編語言的混合編程等應用,積累了豐富的匯編語言工程開發經驗。我們將注意提取科研中的相關知識點,引入到教學實驗中,豐富課程實例,深入淺出地講解,以便學生更好地理解知識,跟上時代的發展,為學生把知識轉化為解決前沿科技問題奠定基礎。這必將推動教學質量的進一步提高,為使學生學有所用,把所學知識轉化為生產力做出應有貢獻。
3)實現學生創新能力的培養。
創新型實驗以設計微/小型系統軟件及具有應用背景的創新實驗為主,培養學生對計算機知識的融會貫通能力,如數據庫管理系統設計、全屏幕編輯器設計、讀取硬盤序列號、獲得遠程機器的控制權、硬盤DMA等。
匯編與接口課程設計是一門實踐性很強的課程。課程組跟蹤計算機軟硬件技術的最新發展,對國內外的相關課程教學及實踐進行了深入的調研,結合在科研實踐中取得的部分成果,開設出一系列具有鮮明應用特色的驗證型、綜合型和創新型的層次實驗,進一步鞏固理論教學內容。驗證型實驗以掌握單元知識為目標,著重訓練基礎編程能力,如中斷程序設計、線程同步、文件管理、高效數據管理系統等。創新型實驗以設計具有應用背景的實驗為主,培養學生對計算機知識體系的融會貫通能力,如緩沖區溢出實驗、讀取硬盤序列號、硬盤DMA等。匯編與接口課程設計課程組還開發了嵌入式系統51系列相關的實驗設計,使學生在掌握Windows/DOS匯編語言編程技術的同時,掌握51匯編語言及51C語言編程技術。通過這些實踐,不僅鍛煉了學生的動手能力,也拓寬了學生的視野,為學生進行自主性和創新性實驗打下了基礎。
按照建構主義教育理論,基于個體的差異性,學生可以按照自己的能力和興趣選做部分或全部實驗,充分發揮了學生的主觀能動性。這種強調自主學習的教學過程和方法,有效地促進了學生自我認知的發展和新知建構。通過實踐環節,提高了學生的程序設計能力,為學習后續專業課程、設計硬件驅動、性能優化、代碼對抗等底層系統級軟件程序打下堅實基礎,為導向創新型課程進行了有益的探索和實踐。
在課程實驗過程中,召集部分學有余力、對課程感興趣的學生組建學習興趣小組。教師提供一些有一定難度的匯編語言和接口技術相關的開放型課題以及預期的研究成果和目標交予興趣小組討論和研究。同時,教師給予積極的指導,培養學生的研究興趣,并以此帶動整個教學班的學習和研究氣氛。
課程將會充分發揮學生的想象力,給學生一個創新思維的空間。我們培養的學生將來不僅是計算機的使用者,更是計算機的設計者。在學生能夠熟練應用計算機及其相關技術的基礎上,讓學生充分發揮自己的想象,設計相關實驗,給課程注入新的活力,這將鍛煉學生的創新思維能力,激發學生自主學習的興趣。
3.實驗實踐
重點針對課程的現狀,按照本科教學合格評估標準,在現有實驗的基礎上開發新的綜合型、研究型實驗項目。按照驗證型實驗、案例綜合型實驗和創新型實驗這3個層次逐漸培養學生開發與接口技術相關的應用程序和驅動程序的能力。
匯編與接口課程設計實驗課程的主要內容可以分為橫向和縱向兩個方面。
在縱向上,課程的主要內容分為4部分:第1部分是匯編語言程序設計相關實驗,包括6個驗證性實驗和4個設計性實驗;第2部分是微機接口技術實驗,以TPC-H通用微機實驗系統為平臺,設計了各種接口芯片實驗,包括6個驗證性實驗、5個設計性實驗和4個綜合設計性實驗;第3部分是匯編語言與接口技術相結合的實驗,該部分主要是一些重點體現匯編語言應用于接口技術的實驗,共4個實驗;第4部分是一些綜合性和創新性實驗,如與移動互聯網技術相關的網絡通信實驗、GPS定位實驗等,共5個綜合性實驗。
從橫向上,課程的主要內容也分為4部分:第1部分基于Pentium的Windows匯編語言程序設計,如數據庫管理系統設計、全屏幕編輯器設計、緩沖區溢出實驗等,共5個實驗;第2部分是基于8086/ARM的16位機的相關實驗,如讀取硬盤序列號、雙機通信等;第3部分是基于嵌入式8951/ARM的匯編實驗,如實現A/D、D/A轉換、計算器設計、中斷控制等實驗,該部分包括6個基本實驗和1個綜合性實驗;第4部分是基于895l/ARM的C語言驗證試驗,該部分是在嵌入式8951/ARM環境下采用c語言實現和匯編語言相同的功能,學生通過編寫51匯編語言和實現相同功能的51C語言相比較,找到C語言對應的反匯編碼,分析其優劣,從而達到舉一反三的效果。
和其他實踐課程類似,匯編語言與微機接口技術實驗課程是一門實踐性很強的課程,只有通過大量的實踐,才能夠真正達到得心應手的效果,才能夠對提高學生的動手能力有所幫助。與目前的其他實踐類課程相比,本課程的教學實踐力圖在以下幾個方面有所創新。
1)不同軟件系統下的理解和實踐能力培養。
由于匯編語言和接口技術本身的特點,學習這些實踐技術離不開實際的計算機軟件系統。因此,本課程既要兼顧以DOS環境為主的16位模式程序設計,以滿足目前大部分控制硬件的程序要求,也要體現時代性,介紹以Windows為主的32位保護模式下的接口技術相關程序設計,授課內容和實驗環節能更好地與目前主流計算機系統相吻合。
除此之外,課程設計改革還考慮到在單片機和嵌入式實時操作系統下的匯編語言與接口技術相結合的實踐能力培養,給學生以充分的選擇余地。endprint
2)不同的CPU架構下的實踐能力培養。
眾所周知,在CPU方面,Intel系列已經經歷了從16位的8086/8088/80286到32位80386/80486/Pentium(II、III、IV),
直到64位的Itanium。本實踐課程的一部分選擇當今廣為流行的Intel 80X86及Pentium為CPU的微型計算機系統及其兼容機作為硬件平臺,另外一部分選擇了以8951/ARM為代表的單片機和嵌入式系統作為編程的主要硬件環境,深入學習和實踐匯編語言程序設計與接口技術的相關內容。通過895l/ARM/8086/Pentium一系列的匯編語言和接口技術的實踐,使學生能夠充分了解匯編語言在不同的CPU架構下的編程規范以及掌握匯編語言具有CPU依賴性的特點,使學生在未來的應用中能夠快速掌握不同體系、不同架構下的CPU的匯編語言程序設計。
3)更高的著眼點。
目前,很多高校的計算機課程只注重在一些應用層面上對學生進行培養,然而,我們認為計算機科學與技術一級學科本科專業培養目標應該將著眼點放在將學生培養成計算機的設計者而不是計算機的使用者上。
目前,社會上對于計算機專業人才的需求非常旺盛,很多信息類、機械類甚至管理類的學生畢業后都選擇了投身于計算機與信息行業。如果我們將培養目標僅僅定位于計算機的合格使用者上,那么計算機科學與技術學科畢業生相比其他專業學科的畢業生毫無專業競爭力。計算機專業的畢業生不僅要會編寫程序,還要知道為什么這樣編寫程序,更要知道計算機底層是如何對這些程序進行編譯、解釋和執行的。而要了解這些知識,就需要充分地接觸、了解和掌握匯編語言和接口技術相關的知識,課程中開設的一些綜合性實驗在硬件上涉及8951、ARM、8086和Pentium系列CPU,軟件上涉及匯編語言、C語言和51C語言,從橫向和縱向兩個方面加深學生對計算機內部運行機制的理解,對相關課程知識間的融會貫通起到促進作用。同時,實驗課程中還需要學生動手連接各種接口芯片的線路,以直觀的方式向學生展示計算機程序運行的步驟,充分了解各種接口芯片的工作機制、運行方式等,打通學生從底層硬件技術到頂層軟件技術了解計算機的通路,提供了很好的將學生培養成合格計算機設計者的途徑。
4.結語
我們的目標是培養計算機學科高水平研究型人才,并以此積極開展實踐型學習的教學思想研究,提高教學質量,在教學中體現現代教育思想,符合科學性、先進性和教育教學的普遍規律,恰當運用現代教育技術與方法,建設具有特色和一流教學水平的實踐型、創新型課程。通過相關課程的學習,培養學生設計和編制不同體系、不同架構下匯編語言程序的能力;熟悉和掌握時效性要求高、直接控制硬件等與接口技術相關的程序設計基本方法;掌握調試工具,準確分析程序錯誤,甚至剖析、優化用其他語言書寫的可執行程序的關鍵代碼;加深學生對計算機內部運行機制的理解,并對相關課程知識間的融會貫通起到促進作用等。我們的最終目標是根據課程本身的特點,調動學生的自主學習能力,改進教學方法,充實教學內容和實踐環節,培養學生靈活運用知識能力,為實現高水平研究型大學培養目標服務。endprint