茅海瓊
(廣西欽州農業學校 廣西欽州 535099)
芻議在中職程序設計課程中插入加密算法的探索
茅海瓊
(廣西欽州農業學校 廣西欽州 535099)
中職程序設計課程的理論性和實踐性都比較強,本文分析了在程序設計課程的教學中存在理論教學和實踐教學等問題,如何解決上述問題,從而使學生對這門課程產生學習的興趣。文章提出了在程序設計課程中加入加密算法的意義和方法。
程序設計 加密算法 教學 意義 方法
程序設計課程的理論性和實踐性都比較強,是計算機應用專業必修課程,如果這門課掌握不好,將會影響后續課程的學習。然而初學者對程序設計還很陌生,也沒有能建立正確的編程思維。因此,如果不能較好地開展該課程的教學內容,很容易使學生產生厭倦甚至害怕的心理。
(一)課堂教學中存在的問題
1.學生的因素。長期以來,學生對理論課程存在兩種心理:畏難心理和無用論心理。計算機理論課程所涵蓋的內容非常抽象,難以理解。而中職學生的基礎相對較差,對計算機方面的術語理解較差。
2.教師的因素。一是在講授程序設計課程中的一些理論知識時,語法、語句講的太多、太細,程序設計課程本身就枯燥、嚴謹、難理解;二是最常用的教學方法就是演示法,教師邊講邊演示,學生邊聽邊看邊做。采用這種“填鴨式”方法進行教學,忽視了學生的主體地位,忽視了啟發學生的創新思維;三是教學目標存在問題,經常出現“教師講完了、學生記完了、下課也忘完了”的怪現象,甚至出現“瞌睡蟲”倒下一大片的情景,都是置學生的感受于不顧。
(二)實驗教學中存在的問題
為了能讓學生掌握前面所講的理論知識,檢驗和提升理論教學效果,教師會采用相應的案例給學生進行講解及編程,然而這一環節中卻存在比較多的問題:
1.在講解程序案例時,教師沒有更多地從學生角度去思考問題,而是一拿到例子,就從頭到尾地進行講解,而忽視了案例中基本問題的求解過程。
2.學生進行程序設計時沒有與一些電腦公司或者相關企業合作過,缺乏實際工作的能力。
3.部分教師仍然是重視理論知識教學,忽視實踐教學,講授理論知識后,隨便指定幾道實習題,讓學生自行上機實習。另外,部分學生對上機實習欠缺積極性、主動性,隨便應付,遲到、早退、缺席等現象屢見不鮮。
正因為這些問題的存在,不但使學生產生厭倦,甚至產生抵觸的心理。如何解決上述問題,從而使學生對這門課程產生學習的興趣。我們分別從在該課程中加入加密算法的意義和方法等方面來講述。
1.加密算法的定義與過程
1994年,劍橋計算機實驗室的David Wheeler、Roger Neelham設計了一個微型加密算法,即加密(Tiny Encryption Algorithm)算法。加密算法實現簡單,加密解密速度快,是一種簡單高效的加密算法。以下兩種算法分別為加密算法的加密和解密過程。
加密算法每一次可以操作8個字節,密鑰采用16個字節,采用迭代的形式實現.。加密算法由于實現簡單,加密速度快,常被一些保密性要求不高的系統采用,比如QQ等聊天軟件的登錄加密就是采用了這種加密算法來實現的。
2.程序設計課程中加入加密算法的意義
加密算法是編程算法中一個比較簡單,并且容易理解的算法,學生比較容易掌握。筆者在教學過程中,采取新奇且有“刺激”的教學手段,抓住學生的“成就感”和“自豪感”的心理:將一個加密解密程序加密算法編排穿插在教學內容中,學生很感興趣,大大提高了學習該課程的興趣,并取得了良好的教學效果。
加密過程如圖1:

解密過程如圖2:

1.教學模塊的劃分
中職計算機專業程序設計課程內容主要由以下幾個模塊組成:(1)程序設計的概念及思想;(2)結構化程序設計;(3)圖形用戶界面;(4)文件與IO流;(5)應用小程序、數據庫。為了鼓勵全體學生都能參與課程的教學與學習活動中,調動每一個學生的學習積極性與能動性,使每個學生都有事做、想做、會做、喜歡做。因此,筆者設計了一個教學思路,如圖3:

2.激發興趣,重建信心
教育學家烏申斯基說:“沒有興趣的強制性學習,將會扼殺學生探索真理的欲望。”沒有興趣就沒有求知欲,只有有了學習興趣才能在枯燥的學習過程中體會到樂趣。并且使每個學生多了一點成就感,少了一點挫敗感,這樣才會在一次次的贊美聲中重建信心。為了激發學生興趣,重拾學生信心,筆者采取了如下方法:
在如前所述的這幾個部分中都以一個簡單的加密解密算法加密穿插在這些教學活動中,如上圖,一開始學習程序設計的概念和思想時,學生對這些程序設計的概念不是很理解,筆者要求學生編寫一個加密類,該類有加密、解密等成員方法,讓學生將前面的結構化加密算法改成Visual Basic6.0的方法。通過自己動手編寫程序,學生逐漸豎立了類、對象、構造方法、繼承、重載等概念,也逐漸豎立了程序設計的編程思維。
進入第二部分,即結構化程序設計過程的學習中,首先介紹程序設計的基本概念,比如基本數據類型,順序結構,選擇結構,循環結構,數組等,將這些基本概念介紹完之后,再描述加密算法的基本流程,然后讓學生將該算法用VB語言來實現。
由于已經將算法詳細地介紹給了學生,因此學生只是將該算法用VB語言來表現并上機進行驗證,當同學們的程序運行通過,并發現可以將輸入的一些字符加密成功,輸出結果是與原來輸入結果完全不同的字符時,他們獲得了成就感,并感覺到自己也可以加密信息了,從而對這門課程產生了濃厚的興趣,并盼望進一步的深入學習。
第三部分圖形用戶界面是學生最感興趣的,因為之前編寫的程序其運行結果都是千篇一律,看不出什么效果,只知道程序運行成功了,加密解密完成了,而圖形用戶界面以圖形的方式顯示出運行效果,從視覺方面引發了學生的成就感。在這一階段的教學中,要求學生將之前編寫的加密解密程序改成圖形用戶界面,需要運用各類組件和布局組織自己的程序運行界面,還需要編寫菜單和各類觸發事件。當需要對一個文件進行加密時,需要運用打開文件的對話框選擇待加密的源文件,以及存放加密完成后的目標文件。
第四部分開始講述文件與IO流,此時,要求學生不是對某個數據加密解密,而是將整個文件加密解密,編程難度加大了,學生的興趣也隨之加大加深了。在編寫程序過程中,學生對前面章節學過的如循環、字符串、數組等概念又得到了復習。當學生第一次將一個文件加密成功后,他們的欣喜是由衷的。
講述小應用程序和數據庫的時候,也是要學生繼續完善加密加解密文件,比如用網頁方式顯示加密解密過程和效果,在加解密過程中添加進度條等。
當該課程的內容學習完成后,學生也有了自己的第一個加密系統。學生在編寫自己的加密系統的過程中,幾乎運用了課程全部的內容,不僅幫助學生理解程序設計的基本概念并加以應用,而且激發了學生學習程序設計后續課程的興趣。
通過對程序設計課程教學中加入加密算法,對學生理解程序設計的基本原理、概念、和算法等起到了很大的作用。在平時授課時,同學們不但對這個加密算法非常熟悉,更重要的是同學們對程序設計這門課程非常喜歡。期末技能考核時,同學們都能開發出實用的小應用軟件,并能用加密算法來對一些數據進行加密保密,達到了老師所要求的教學效果。
[1]胡正國,吳健,鄧正宏.程序設計方法學[M].北京:國防工業出版社,2003.
[2]盧開澄.計算機密碼學[M].北京:清華大學出版社,1998.
[3]張立涓.中職面向對象程序設計(Java)課的教學探索與實踐[J],職業教育研究,2010,8.
[4]符蘊芳,趙英豪.面向對象程序設計教學改革與實踐[J].中國成人教育,2010,11.