茅海瓊
(廣西欽州農(nóng)業(yè)學(xué)校 廣西欽州 535099)
芻議在中職程序設(shè)計(jì)課程中插入加密算法的探索
茅海瓊
(廣西欽州農(nóng)業(yè)學(xué)校 廣西欽州 535099)
中職程序設(shè)計(jì)課程的理論性和實(shí)踐性都比較強(qiáng),本文分析了在程序設(shè)計(jì)課程的教學(xué)中存在理論教學(xué)和實(shí)踐教學(xué)等問題,如何解決上述問題,從而使學(xué)生對(duì)這門課程產(chǎn)生學(xué)習(xí)的興趣。文章提出了在程序設(shè)計(jì)課程中加入加密算法的意義和方法。
程序設(shè)計(jì) 加密算法 教學(xué) 意義 方法
程序設(shè)計(jì)課程的理論性和實(shí)踐性都比較強(qiáng),是計(jì)算機(jī)應(yīng)用專業(yè)必修課程,如果這門課掌握不好,將會(huì)影響后續(xù)課程的學(xué)習(xí)。然而初學(xué)者對(duì)程序設(shè)計(jì)還很陌生,也沒有能建立正確的編程思維。因此,如果不能較好地開展該課程的教學(xué)內(nèi)容,很容易使學(xué)生產(chǎn)生厭倦甚至害怕的心理。
(一)課堂教學(xué)中存在的問題
1.學(xué)生的因素。長(zhǎng)期以來,學(xué)生對(duì)理論課程存在兩種心理:畏難心理和無用論心理。計(jì)算機(jī)理論課程所涵蓋的內(nèi)容非常抽象,難以理解。而中職學(xué)生的基礎(chǔ)相對(duì)較差,對(duì)計(jì)算機(jī)方面的術(shù)語理解較差。
2.教師的因素。一是在講授程序設(shè)計(jì)課程中的一些理論知識(shí)時(shí),語法、語句講的太多、太細(xì),程序設(shè)計(jì)課程本身就枯燥、嚴(yán)謹(jǐn)、難理解;二是最常用的教學(xué)方法就是演示法,教師邊講邊演示,學(xué)生邊聽邊看邊做。采用這種“填鴨式”方法進(jìn)行教學(xué),忽視了學(xué)生的主體地位,忽視了啟發(fā)學(xué)生的創(chuàng)新思維;三是教學(xué)目標(biāo)存在問題,經(jīng)常出現(xiàn)“教師講完了、學(xué)生記完了、下課也忘完了”的怪現(xiàn)象,甚至出現(xiàn)“瞌睡蟲”倒下一大片的情景,都是置學(xué)生的感受于不顧。
(二)實(shí)驗(yàn)教學(xué)中存在的問題
為了能讓學(xué)生掌握前面所講的理論知識(shí),檢驗(yàn)和提升理論教學(xué)效果,教師會(huì)采用相應(yīng)的案例給學(xué)生進(jìn)行講解及編程,然而這一環(huán)節(jié)中卻存在比較多的問題:
1.在講解程序案例時(shí),教師沒有更多地從學(xué)生角度去思考問題,而是一拿到例子,就從頭到尾地進(jìn)行講解,而忽視了案例中基本問題的求解過程。
2.學(xué)生進(jìn)行程序設(shè)計(jì)時(shí)沒有與一些電腦公司或者相關(guān)企業(yè)合作過,缺乏實(shí)際工作的能力。
3.部分教師仍然是重視理論知識(shí)教學(xué),忽視實(shí)踐教學(xué),講授理論知識(shí)后,隨便指定幾道實(shí)習(xí)題,讓學(xué)生自行上機(jī)實(shí)習(xí)。另外,部分學(xué)生對(duì)上機(jī)實(shí)習(xí)欠缺積極性、主動(dòng)性,隨便應(yīng)付,遲到、早退、缺席等現(xiàn)象屢見不鮮。
正因?yàn)檫@些問題的存在,不但使學(xué)生產(chǎn)生厭倦,甚至產(chǎn)生抵觸的心理。如何解決上述問題,從而使學(xué)生對(duì)這門課程產(chǎn)生學(xué)習(xí)的興趣。我們分別從在該課程中加入加密算法的意義和方法等方面來講述。
1.加密算法的定義與過程
1994年,劍橋計(jì)算機(jī)實(shí)驗(yàn)室的David Wheeler、Roger Neelham設(shè)計(jì)了一個(gè)微型加密算法,即加密(Tiny Encryption Algorithm)算法。加密算法實(shí)現(xiàn)簡(jiǎn)單,加密解密速度快,是一種簡(jiǎn)單高效的加密算法。以下兩種算法分別為加密算法的加密和解密過程。
加密算法每一次可以操作8個(gè)字節(jié),密鑰采用16個(gè)字節(jié),采用迭代的形式實(shí)現(xiàn).。加密算法由于實(shí)現(xiàn)簡(jiǎn)單,加密速度快,常被一些保密性要求不高的系統(tǒng)采用,比如QQ等聊天軟件的登錄加密就是采用了這種加密算法來實(shí)現(xiàn)的。
2.程序設(shè)計(jì)課程中加入加密算法的意義
加密算法是編程算法中一個(gè)比較簡(jiǎn)單,并且容易理解的算法,學(xué)生比較容易掌握。筆者在教學(xué)過程中,采取新奇且有“刺激”的教學(xué)手段,抓住學(xué)生的“成就感”和“自豪感”的心理:將一個(gè)加密解密程序加密算法編排穿插在教學(xué)內(nèi)容中,學(xué)生很感興趣,大大提高了學(xué)習(xí)該課程的興趣,并取得了良好的教學(xué)效果。
加密過程如圖1:
解密過程如圖2:
1.教學(xué)模塊的劃分
中職計(jì)算機(jī)專業(yè)程序設(shè)計(jì)課程內(nèi)容主要由以下幾個(gè)模塊組成:(1)程序設(shè)計(jì)的概念及思想;(2)結(jié)構(gòu)化程序設(shè)計(jì);(3)圖形用戶界面;(4)文件與IO流;(5)應(yīng)用小程序、數(shù)據(jù)庫。為了鼓勵(lì)全體學(xué)生都能參與課程的教學(xué)與學(xué)習(xí)活動(dòng)中,調(diào)動(dòng)每一個(gè)學(xué)生的學(xué)習(xí)積極性與能動(dòng)性,使每個(gè)學(xué)生都有事做、想做、會(huì)做、喜歡做。因此,筆者設(shè)計(jì)了一個(gè)教學(xué)思路,如圖3:
2.激發(fā)興趣,重建信心
教育學(xué)家烏申斯基說:“沒有興趣的強(qiáng)制性學(xué)習(xí),將會(huì)扼殺學(xué)生探索真理的欲望?!睕]有興趣就沒有求知欲,只有有了學(xué)習(xí)興趣才能在枯燥的學(xué)習(xí)過程中體會(huì)到樂趣。并且使每個(gè)學(xué)生多了一點(diǎn)成就感,少了一點(diǎn)挫敗感,這樣才會(huì)在一次次的贊美聲中重建信心。為了激發(fā)學(xué)生興趣,重拾學(xué)生信心,筆者采取了如下方法:
在如前所述的這幾個(gè)部分中都以一個(gè)簡(jiǎn)單的加密解密算法加密穿插在這些教學(xué)活動(dòng)中,如上圖,一開始學(xué)習(xí)程序設(shè)計(jì)的概念和思想時(shí),學(xué)生對(duì)這些程序設(shè)計(jì)的概念不是很理解,筆者要求學(xué)生編寫一個(gè)加密類,該類有加密、解密等成員方法,讓學(xué)生將前面的結(jié)構(gòu)化加密算法改成Visual Basic6.0的方法。通過自己動(dòng)手編寫程序,學(xué)生逐漸豎立了類、對(duì)象、構(gòu)造方法、繼承、重載等概念,也逐漸豎立了程序設(shè)計(jì)的編程思維。
進(jìn)入第二部分,即結(jié)構(gòu)化程序設(shè)計(jì)過程的學(xué)習(xí)中,首先介紹程序設(shè)計(jì)的基本概念,比如基本數(shù)據(jù)類型,順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),數(shù)組等,將這些基本概念介紹完之后,再描述加密算法的基本流程,然后讓學(xué)生將該算法用VB語言來實(shí)現(xiàn)。
由于已經(jīng)將算法詳細(xì)地介紹給了學(xué)生,因此學(xué)生只是將該算法用VB語言來表現(xiàn)并上機(jī)進(jìn)行驗(yàn)證,當(dāng)同學(xué)們的程序運(yùn)行通過,并發(fā)現(xiàn)可以將輸入的一些字符加密成功,輸出結(jié)果是與原來輸入結(jié)果完全不同的字符時(shí),他們獲得了成就感,并感覺到自己也可以加密信息了,從而對(duì)這門課程產(chǎn)生了濃厚的興趣,并盼望進(jìn)一步的深入學(xué)習(xí)。
第三部分圖形用戶界面是學(xué)生最感興趣的,因?yàn)橹熬帉懙某绦蚱溥\(yùn)行結(jié)果都是千篇一律,看不出什么效果,只知道程序運(yùn)行成功了,加密解密完成了,而圖形用戶界面以圖形的方式顯示出運(yùn)行效果,從視覺方面引發(fā)了學(xué)生的成就感。在這一階段的教學(xué)中,要求學(xué)生將之前編寫的加密解密程序改成圖形用戶界面,需要運(yùn)用各類組件和布局組織自己的程序運(yùn)行界面,還需要編寫菜單和各類觸發(fā)事件。當(dāng)需要對(duì)一個(gè)文件進(jìn)行加密時(shí),需要運(yùn)用打開文件的對(duì)話框選擇待加密的源文件,以及存放加密完成后的目標(biāo)文件。
第四部分開始講述文件與IO流,此時(shí),要求學(xué)生不是對(duì)某個(gè)數(shù)據(jù)加密解密,而是將整個(gè)文件加密解密,編程難度加大了,學(xué)生的興趣也隨之加大加深了。在編寫程序過程中,學(xué)生對(duì)前面章節(jié)學(xué)過的如循環(huán)、字符串、數(shù)組等概念又得到了復(fù)習(xí)。當(dāng)學(xué)生第一次將一個(gè)文件加密成功后,他們的欣喜是由衷的。
講述小應(yīng)用程序和數(shù)據(jù)庫的時(shí)候,也是要學(xué)生繼續(xù)完善加密加解密文件,比如用網(wǎng)頁方式顯示加密解密過程和效果,在加解密過程中添加進(jìn)度條等。
當(dāng)該課程的內(nèi)容學(xué)習(xí)完成后,學(xué)生也有了自己的第一個(gè)加密系統(tǒng)。學(xué)生在編寫自己的加密系統(tǒng)的過程中,幾乎運(yùn)用了課程全部的內(nèi)容,不僅幫助學(xué)生理解程序設(shè)計(jì)的基本概念并加以應(yīng)用,而且激發(fā)了學(xué)生學(xué)習(xí)程序設(shè)計(jì)后續(xù)課程的興趣。
通過對(duì)程序設(shè)計(jì)課程教學(xué)中加入加密算法,對(duì)學(xué)生理解程序設(shè)計(jì)的基本原理、概念、和算法等起到了很大的作用。在平時(shí)授課時(shí),同學(xué)們不但對(duì)這個(gè)加密算法非常熟悉,更重要的是同學(xué)們對(duì)程序設(shè)計(jì)這門課程非常喜歡。期末技能考核時(shí),同學(xué)們都能開發(fā)出實(shí)用的小應(yīng)用軟件,并能用加密算法來對(duì)一些數(shù)據(jù)進(jìn)行加密保密,達(dá)到了老師所要求的教學(xué)效果。
[1]胡正國,吳健,鄧正宏.程序設(shè)計(jì)方法學(xué)[M].北京:國防工業(yè)出版社,2003.
[2]盧開澄.計(jì)算機(jī)密碼學(xué)[M].北京:清華大學(xué)出版社,1998.
[3]張立涓.中職面向?qū)ο蟪绦蛟O(shè)計(jì)(Java)課的教學(xué)探索與實(shí)踐[J],職業(yè)教育研究,2010,8.
[4]符蘊(yùn)芳,趙英豪.面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)改革與實(shí)踐[J].中國成人教育,2010,11.