摘要:文章以某些基礎課程為討論對象,結合實踐經驗,從網絡發展趨勢、社會背景、技術潮流和網絡化教學模式等方面論述了如何根據最新的技術和工程化的特點,改革計算機基礎教學模式。
關鍵詞:安全;REKEY;信任域;SSH
0 引言
網絡技術的發展,對計算機學科的發展產生了巨大的推動作用。但是,反觀我國高校的計算機基礎教學,網絡技術不僅沒有對其起到推動作用,而是某些高校為了開設一些新興的網絡技術課程減少了基礎學科的課時,反而在某種程度上影響了計算機基礎學科的教學質量。
1 基礎教學面對網絡時代的挑戰
有相當高比例的學生認為基礎教學用處不大,甚至有不少人認為沒有必要學習,因為基礎教學對專業技術的學習沒有任何作用,特別是對畢業后就業和工作沒有幫助。
這是否是一種正常的現象呢?答案是否定的。作為對比,國外高校的計算機基礎學科,這幾年不僅通過網絡技術提高了基礎學科的地位,而且提高了高校學生對專業技術的學習興趣和掌握理解程度。
所以造成這種差別,其關鍵決定于高校計算機基礎學科的教學模式是否能與網絡技術的發展相融合,是否能通過網絡體系結構的發展將教學知識點做一個有序的協調。本文將從高校教學和網絡環境的整合角度出發,根據近年來國內外的發展形勢,討論現有教學模式的多元化、專業化和交叉化的變革方式。
2 網絡特征式樣的教學模式改革
2.1 結合實踐經驗以及網絡發展趨勢
國內計算機基礎學科的教學缺乏一定的靈活性和創新性,而且以往教學中存在錯誤的地方不僅沒有糾正而且成為傳統沿襲下來,造成一種惡性循環。
比如《c程序設計》這門計算機專業的核心基礎課程,它是基礎中的基礎,是數據結構、編譯原理、操作系統等課程的先導課程,其教學成敗直接影響后繼專業課程的學習。但是國內高校對這門課的教學模式,仍然停留在講授課本知識點的方式上:將教材內容和例題簡單地講授一遍。學生只知其然,不知其所以然。如此培養出來的學生在競爭激烈的市場經濟中,將難以立足。
國外的教材和教學模式,如劍橋大學的XEN系統、麻省理工大學的Aries等等都是在c語言和體系結構課程的基礎上進行的。以c語言為研究對象,可以發現:
(1)經典教材和實踐經驗相結合。國外很多c語言書本是由C語言創始者或擁有幾十年經驗的資深程序員編寫的,比如KR的《The C Programming Language》其地位相當于C語言的圣經。不少教材的精華之處在于融入了作者多年的編程經驗,在書中匯集了很多技巧和建議,能將一個復雜深奧的問題闡述得淺顯易懂。學生在學習的過程中,可以以一種閱讀小說的方式去感受作者的切身體會,因此能夠加深對C語言的理解。
(2)注重編程風格和習慣。絕大部分國外的入門編程教材中常常都會單辟一章詳細介紹編程風格,同樣在教學中會將良好的編程習慣滲透到入門階段。比如《Practical c Programming》中作者建議道:只需要記住乘除的優先級高于加減,其它地方一律加上括號。真正按照CMM做過項目的人都知道,編碼階段盡早發現錯誤,可以避免在測試階段進行更大代價的修改;養成良好的編程習慣是減少編程錯誤的最佳良藥。現在國內對剛參加工作的大學畢業生做得最多的培訓就是編程風格培訓,這是因為他們絕大部分對縮進式風格、命名規則、注釋的重要性等等都一無所知。但即使這樣常常也達不到效果,因為這些學生早就在學校里養成了只要能實現功能,其他都無所謂的習慣。
(3)結合最新網絡研究課題。國外高校在教授c語言的同時,總是將其與最新的課題研究相結合。讓學生編寫實際工程項目,不僅可以加深對c語言的理解,而且能夠培養學生對軟件工程的意識。特別是結合一些網絡協議的源代碼進行功能的移植,比如將Openssh安全協議的源代碼移植到Windows操作系統下,可以了解代碼分析工具Sourcelnsight的使用,并且培養大型工程源代碼的分析能力,以及深入了解網絡協議的基本原理和網絡通訊程序的技巧,有利于以后專業課程的學習。
可見,由于計算機是一門工程化學科,必須從應用實踐角度出發,特別是與網絡底層程序和系統結構相結合,才能從最大程度上提高學生對基礎學科的理解和掌握程度。
2.2 結合社會背景和技術潮流
計算機是一門發展非常迅速的學科,隨著網絡技術應用面的擴大,其技術理論更新的速度更是一日千里。而這種工程化的理論教學必須與社會、與最新的技術發展趨勢相結合,才能更好地調動學生學習的積極性,加深學生對理論的理解。
(1)以電子商務為背景,將網絡技術穿插于基礎知識點中。
當前正是電子商務紅火的時代,圍繞著它出現了大量的新概念、新技術和新應用場景,包括更多的新教學模式,而當代大學生對電子商務也是最感興趣的,他們迫切希望能夠學習電子商務時代的新事物和新知識。
以電子商務為背景,網絡方面的新技術也層出不窮,如網站重構(Designing With Web Standards)、Web2.0標準、博客、WIKI和AJAX等等,這些新技術和新概念不斷對現有的計算機應用進行一場場改頭換面的革命,學生的生活學習不斷受到潛移默化的影響。
針對這些因素,借鑒國外基礎教學的經驗,可以將基礎學科的內容以電子商務為背景,針對某些新出現的網絡工程,以軟件工程的方法將其分解為一系列的基礎知識點,即一些基本邏輯算法和過程函數模塊,然后將學生分組實現,最后再通過Project集成的方式,使基礎教學能夠結合實踐教學。同樣對于計算機前沿類型的課程,可以結合多媒體技術的最新網絡應用,比如FLEX、XHTML等進行類比模式的教學,讓學生在學習基本知識點的同時,建立一個新技術的基本概念,為以后學習網頁設計、中間件技術打下基礎。
(2)跟蹤國外研究項目,熟悉Linux平臺,進行開源代碼分析。
國外的多數研究項目都是基于計算機基礎學科的,而他們的計算機基礎教學都是讓學生參與到實驗室的工程中,特別是對于Linux平臺下c語言環境開發。而國內教學環境絕大多數都是Windows環境,比如c語言多數都是使用TURBO c,很少看到使用Visual c++作為實驗環境的,更別說在Linux-F用GCC開發應用了,其結果導致學生沒有工程的概念,甚至有些學生連命令行界面都不知道如何操作。因此,將教學環境拓展到Linux平臺下,不僅有利于學生熟悉基礎學科的知識點,而且可以加強學生解決問題的能力(Linux環境要求使用MAN命令來取得幫助信息),而且Linux系統能更好地針對操作系統的底層信息進行編程,對服務器和網絡協議的支持比Windows更加強大。另外Linux環境下模塊和程序都有源代碼,通過源代碼的模塊分析可以培養學生解讀開源代碼的基本功,為以后開發大型程序打下基礎。
2.3 開展網絡化基礎課程交叉
現有的基礎學科教學內容雖然經典,但是缺乏交叉性。很多單個的知識要點缺乏連貫性。比如c語言中介紹結構體的時候,應該根據網絡操作系統介紹某個具體操作系統中內存、進程或者網絡通訊協議中緩沖的數據結構是如何用結構體設計的,這樣才能將整個計算機基礎理論融合起來,可以促進課程教學的交叉,讓學生對計算機理論原理有個整體上的印象和概念。
這里的網絡化有兩層含義,首先指基礎課程可以通過網絡這一知識的交集,產生共同點,可以在教學過程將兩者的知識融會貫通,令學生更加容易理解,達到觸類旁通的效果;其次,可以將教學模式以網絡的模式展開,將某些基礎課程的知識點制作成網絡的多媒體格式,比如Flash、網頁等形式,將枯燥無味的計算機原理轉換成生動有趣的動畫,提高學生學習基礎理論的興趣;同時通過網絡可以改善教學的效果,通過網絡演示可以更加形象化地將一些具體的操作過程演示給學生,也可以通過博客這種網絡形式進行知識點的網絡交流。
3 結束語
綜上所述,計算機基礎教學模式的網絡化改革是我國計算機基礎教育發展的必然趨勢。作為一個網絡時代的教學工作者,必須緊跟網絡技術最新發展,不斷地將基礎知識與新技術、新概念和新應用相融合,另外也要注重自己素質的提高,將基礎教學與個人職業修養相結合。
通過網絡技術在計算機基礎教育方面的改革,必將使其更加專業化、趣味化和新穎化,而學生也能夠更為深入理解基礎知識,為以后專業知識的學習奠定更加堅實的基礎。