時間:2023-03-16 15:41:25
導語:在vb程序設計論文的撰寫旅程中,學習并吸收他人佳作的精髓是一條寶貴的路徑,好期刊匯集了九篇優秀范文,愿這些內容能夠啟發您的創作靈感,引領您探索更多的創作可能。

論文摘要:《VISUALBASlC程序設計》是中等職業學校計算機專業的必修課之一,由于其不僅要求有較扎實的理論基礎,而且對實操能力要求也比較高,使得很多學生望而怯步,增大了老師教學難度大,教學效果也深受影響。本文闡述了造成vb課堂教學效果不佳的原因及改善這一現狀的辦法。
VB于1991年誕生在美國,經過二十多年的發展日趨成熟。它一種可視化的、面向對象和采用事件驅動方式的結構化高級程序設計語言,可用于開發Windows環境下的各類應用程序。功能強大可以高效、快速地開發Windows環境下功能強大、圖形界面豐富的應用軟件系統。
如今VB課程已經成為了中等職業學校計算機專業的一門公共基礎課程。筆者在近幾年教學中發現了許多問題,并積極地探索解決的方法,現在這里和大家交流交流。
一、教學效果不佳的原因
首先,中職學校的生源素質普遍偏低。眾所周知,他們大多是中考失敗者,缺乏學習主動性及自我學習能力,在初中的時候數學成績就比較差使得邏輯思維能力不強,而VB這門課程就需要的就是較強的邏輯思維能力,這樣就造成了在學習的時候頗為吃力;其次,英語基礎差影響動手能力。VB不僅強調理論知識,在動手操作方面要求也是頗高,對英語水平也有一定的要求。對于初中畢業的學生來說英語水平比較差,很難記住VB的命令,對控件的使用屬性中的英語有的也不認識,更不要說利用命令來解決問題了;最后,很難建立程序設計的思想。由于學生在學習VB課程之前沒有接觸過任何程序設計方面的知識,要理解程序設計中的面向對象、語法結構等專業知識比較困難。在這么多困難下,學生往往很容易產生畏懼的情緒,還役入門就已經放棄了學習,所以老師如何設計好教學過程,更好的引導學生學習顯得格外重要。
二、提高教學效果的幾個辦法
做為一名教學工作者,筆者一直努力探索如何提高VB的教學效果,引導好學生學好這門課程。現在這里談談自己在平 時教學中使用的一些辦法。
(一)“低起點、緩坡度、密臺階”的教學理念
“低起點”就是在課本要求的基礎上再降低難度,讓學生一開始學習就能夠很輕松上手,因為大部分認為程序設計課程高深莫測,很難學懂,進而產生的恐懼心理;“緩坡度”即是在教授知識時,難度要循序漸進,不能夠一味的“拔高”,讓學生能夠扎實的掌握每一個知識,一步一個腳印,慢慢提高。“密臺階”是教學中層次結合要緊密,盡量減少知識點的跳躍,緊密的教學內容讓學生形成緊密的知識鏈,對學生學習提 高十分有利。
(二)“建立快樂課堂”的教學目標
快樂是人精神上的一種愉悅,是一種心靈上的滿足,它會使一個人變得開心。所以把快樂帶給學生也是課堂教學的一個關鍵。人只有心情愉快的時候才能提高學習效率,才能使人學習進步,筆者一直本著讓學生快快樂樂學習,快快樂樂靠大學 的想法,開展了快樂課堂。 第一,幽默的語言。語言也是一種藝術,而幽默的語言往往是建立和諧J渝決氣氛的催化劑。在課堂教學中,學生要獲得快樂就必須有一個愉快的氣氛,老師在課堂中就是“指揮官”,也是可以說是“導演”,一個小小的幽默就能激發學生的“快樂分子”,讓課堂氣氛輕松,決。
第二,親切的教學態度。要讓快樂貫通整個課堂,親切的教態是必不可少的。人與人相處,態度非常重要,你給別人一個微笑,別人會給你更多的微笑,你給比人一份關心,別人給你的關心會更多更多。
第三,教學設計多添加“快樂元素”。教學設計是整個教學環節的重中之中,它的好壞直接影響這節課的質量。在教學中添加快樂元素是建立快樂課堂的重要手段之一。如在教學中穿插游戲、比賽、討論等內容,有利于課堂氣氛的調節。
第四,讓他們感受成功的喜悅。成功是每個人向往的,它能給你帶來快樂、建立信心。在v$學習中的成功莫過于設計的作品能順利運行,教學老師應該多給學生感受成功的機會。例如遇到較難的間題,可以分解成若干小問題逐個解決,提高成功率,保護學生的學習積極性。成功讓他們跟有自信,有了自信學習起來就會更有興趣。
(三)“趣味案例”的教學方法
論文摘 要:NetMeeting是從Windows95/98操作系統開始就捆綁搭載的廉價優質網絡通訊軟件。作者利用該軟件為學生構建計算機課程教學環境,通過產生一種具有互動共享式的學習環境,不僅激發學生的學習興趣和主動性,而且在實踐中利于嘗試各種教學方法,從而提高教學效果。
NetMeeting是Windows操作系統中集成的一款實用通訊軟件,用戶利用它可以在Intenet或局域網絡上輕松實現文件傳送、共享桌面、遠程管理、語音通迅等功能。在教學實踐過程中,筆者利用NetMeeting構建了《Visual basic語言程序設計》課程教學環境,在實踐教學中嘗試采用各種教學方法,取得了良好的教學效果。后經推廣到其他計算機語言(如C語言,VF語言等)教學,也達到了同樣的預期效果。
1 NetMeeting教學環境的的架構
由于筆者所在的教學機房中各機已經構成局域網環境,并且都已經安裝XP操作系統,而NetMeeting軟件是Windows操作系統自帶的,因此不需要另外安裝。具體實現方法如下。
(1)公共設置:教師機和學生機均要完成這部分設置。具體步驟是:選擇任務欄左下腳的“開始”菜單,選擇“運行”選項,然后在“運行”對話框中輸入“conf”命令。第一次運行時需要按照向導的提示設置自己的名字和電子郵件等信息,完成設置后會在操作系統桌面上生成NetMeeting的快捷圖標,以后只要雙擊就可直接啟動。
(2)教師機設置:首先單擊NetMeeting面板菜單上“呼叫”欄的“主持會議”按鈕,根據彈出的對話框里具體說明進行選擇確認。然后再點“呼叫”欄的“自動接受呼叫”按鈕,這樣可以自動接受學生的呼叫。最后點“工具”欄的“共享”按鈕,選擇桌面共享,教師機的屏幕將同步顯示在學生的屏幕上,實現操作演示。
(3)學生機設置:單擊NetMeeting面板菜單上“進行呼叫”按鈕,在彈出的對話框里輸入公布的教師機IP地址,教師機將自動接受其呼叫請求,NetMeeting的名稱窗口將會出現被呼叫人和呼叫人的頭像和名稱。
在NetMeeting窗口下方包含四個選項:共享、聊天、白板和文件傳送,這四項包含了NetMeeting的主要功能。利用以上功能可以實現學生機與教師機同步演示、文字互動交談,可以將簡單圖形或文字發送到所有學生機的屏幕上,一次性將作業或輔導材料發送給所有學生。至此完成NetMeeting教學環境的架構,為計算機教學創造了基本條件。
2 NetMeeting下計算機語言教學模式的幾點嘗試
在VB程序設計教學過程中,如何解決程序設計本身枯燥、不易理解這個問題,找到一條比較新穎的教學方式,一直是廣大計算機教師頗感興趣的課題,筆者在基于NetMeeting下大膽嘗試各種教學方法。
2.1 先入為主教學法
VB語言所涉及的內容多,控件屬性、事件、方法也較多,學生在毫無知識背景的前提下如果教學開始階段就過多講授這些抽象概念,學生就會感到枯燥乏味,容易喪失學習編程的積極性。因此,在第一節課,就采取先入為主法,具體就是讓學生在教師指引下直接進入編程環境,從創建最簡單的程序入手,如在窗體上添加一個COMMAND1命令按鈕,要求單擊它就在窗體上輸出一段文字。此程序雖然簡單,但很好闡述了VB面向對象的事件驅動編程機制。至此,教師再引入VB的基本概念就水到渠成,學生也更容易接受理解,從而打破編程的神秘感,為進一步學習創造了良好的氛圍。
根據NetMeeting教學環境本身的特點,開始階段要求學生和教師一起編程序,突出編程這個主線,貫徹始終,在實踐中由同學們自己直觀上先去體悟這些概念,待時機成熟時再和同學們一起歸納總結,不斷啟發學生思維,培養獨立編程能力。
2.2 娛樂式教學法
在程序設計教學中從學生的興趣入手,利用學生對事物的好奇心,選擇一些有趣的、有實際意義的程序,激發學生的學習熱情。二十歲左右青年學生一般對游戲都感興趣,因此在教學中,嘗試引入一些小游戲程序后,發現能很快帶動課堂氣氛。筆者引入的是古典的猜數字游戲,就是計算機在1~100之間產生隨機的某個整數,讓游戲者猜出其具體值,根據你猜的數字計算機給出提示是過大還是過小,從而一步步逼近具體值,最后統計出游戲者猜出正確結果所花的次數。這個程序把VB當中的條件判斷語句、輸入框、消息框、數據類型的定義、隨機數的產生等幾個重要概念都攬括了,既讓學生在輕松快樂的氣氛下既掌握到了編程所需要的基本概念,又讓其體驗到了編程的樂趣。學生通過對游戲程序不斷比較和完善,對重要語法結構、相關概念及關鍵性語句均有了較深刻的體會,而這是一些傳統程序例子所難以企及的。
2.3 重復式教學法
不斷的重復再重復就是成功,因此重復也是學習中一個很重要的方法。從學生開始的懵懂到有所領悟到最后的理解,都是在經歷相似的編程經歷之后達到了,所以說這是個不斷循序漸進的過程,而這個過程是不論采用什么先進教學方法都是不可跨越的。VB涉及的知識點很多,為力求重點突出,筆者在教學過程中,對前面章節中的常見標準內部函數、字符串函數等基本概念,就沒有專門一一去介紹,而是通過主要語句的實例教學得以體現。因此重復式教學法不是針對所有知識點,而是把握重要知識鏈,通過教師示范編程、學生簡單模仿、獨立編寫程序這樣不斷重復的強化訓練,使學生較快掌握編程基本思想。
3 結語
科技的進步和發展給我們提供了良好的條件。基于NetMeeting網絡開放式環境下的計算機語言教學,其教學模式的構建涉及教育觀念的更新、教學方法的改革、給教學賦予新的含義等等。本文進行了相關方面的探討與研究,希望能夠拋磚引玉,共同探索出在網絡環境下適于現代化教育要求的教學模式。
參考文獻
[1] 裴娣娜.教育研究方法導論[M].安徽教育出版社,2000.
關鍵詞:AutoCAD,二次開發
隨著計算機技術的發展,計算機軟件在工程設計領域的應用越來越廣。在機械、電子、建筑等行業,應用計算機軟件進行產品設計的CAD軟件也非常豐富,世界和國產的各種優秀CAD軟件正以前所未有的速度進入機械、電子、建筑等行業的各個領域,使產品設計人員能夠高效率地進行各自領域的產品分析、設計等工作。美國Autodesk公司是目前世界上比較成功的CAD領域的開發商,其開發的AutoCAD一直是CAD市場中的主流產品,隨著AutoCAD的日益普及,在其上進行二次開發的工具也相繼由該公司推出。企業購進AutoCAD軟件,并非只能用作代替“圖板”,只有真正地在其上實現了二次開發,才能充分發揮AutoCAD作用。CAD二次開發,有很多不同層次的語言和庫可供選擇。本文就此向大家分別做一介紹。
第一大類: AutoLisp和VisuaLisp
Lisp是一種計算機的表處理語言,是在人工智能學科領域廣泛應用的一種程序設計語言。AutoLisp語言完全嵌套在ACAD內部,同ACAD有機地結合成一體。它既具備一般高級語言的基本結構和功能,又具備一般高級語言所沒有的強大的圖形處理能力。論文大全。AutoLisp可直接調用幾乎全部ACAD的命令,從而進行ACAD的二次開發。利用AutoLisp開發ACAD的一個典型例子就是實現參數化繪圖的程序設計。
AutoLisp具有如下優點:
1.AutoLisp是一種表處理語言,是被解釋執行的,任何一個語句鍵入后就能馬上執行,它對于交互式的程序開發非常方便。在ACAD的開發工具中,它是唯一的一種不需要專門的編譯工具,直接調用其編寫的函數,就可以實現目標操作的語言。
2.AutoLisp語言中的一切成分都是以函數形式給出的,它沒有語句概念和其他語法結構。執行AutoLisp程序就是執行一些函數,再調用其他函數。
3.AutoLisp把數據和程序統一表達為表結構,即S-表達式,使數據和程序融為一體。
4.AutoLisp語言中的程序運行過程就是對函數的求值過程,是在對函數求值的過程中實現函數的功能。
5.AutoLisp語言的主要控制結構采用遞歸方式,使程序簡單易懂。
VisuaLisp是AutoLisp的擴展,是為加速AutoLisp程序開發而設計的軟件工具。VisualLisp已經被完整地集成到ACAD中,為開發者提供了增強的集成開發環境,這樣開發者可以直接使用ACAD中的對象,進行更底層的開發。用它開發AutoLISP程序的時間被大大地縮短,而且原始代碼能被保密,以防被他人更改;同時利用可視化的編程環境,大大地減小了學習難度。作為腳本語言的VisuaLisp程序,同樣存在兩大不可避免的缺陷。第一是當程序規模很大或是操作的對象數量過多時,運行速度慢,讓你明顯感覺到它的遲鈍。第二是ACAD命令本身做不到的功能,它也是無能為力。譬如關于自定義對象、內存操作、數據傳遞之類,只能依賴其他辦法來解決了。所以我個人認為Lisp適用于把現有命令組合成一個新命令來使用,尤其是存在大量重復操作的時候,用來做批處理非常好。唯一讓人感到不適的是,由于Lisp語言本身的語法要使用大量的圓括弧,當嵌套層次較深時,往往會在括弧的配對上發生問題。
第二大類:ADS(AutoCAD Development System)、ARX(AutoCAD Runtime eXtension)和ObjectARX (AutoCAD Runtime Extension)
ADS是從AutoCADR11開始引入的基于C語言開發應用程序的系統。ADS不是C語言的一個子集,也不是基于C而編制的專用語言(如Microstation的MDL),但它包括了C的全部功能。它具有C的一切優點,又能操作CAD。它對開發人員C語言要求較高。C是編譯型語言,功能強大,因此ADS很輕易地克服了AutoLisp所固有的許多缺點而具有速度快,安全性高的特點。ADS不包含于ACAD內部,而是作為一組AutoLisp外部函數由AutoLisp解釋器裝入、解釋并請求ACAD運行。其特點如下:
1.ADS程序是將應用程序編譯成可執行的文件,通過AutoLisp和ACAD進行通訊。
2.ADS程序更“絕緣”,ADS程序是一系列獨立的過程,程序崩潰并不一定導致AutoCAD系統崩潰(盡管并不總是如此)。
3.ADS程序是不可重復加載的。
4.ADS程序具有保密性好,運行速度快的特點,因而很適合于編寫計算量大或需要與主機環境交互的應用程序。
5.ADS只能使用傳統的C語言進行編程,采用傳統結構化的編程體系。
早期國內常見的應用軟件多是用ADS進行開發的,但ADS程序必須經過AutoLisp解釋加載,因此ADS的各方面性能受到限制。同時,隨著網絡技術的迅速發展,面向過程的ADS已有些力不從心了,所以,在AutoCADR13開始推出的一個全新的面向對象的開發工具ARX。ARX是在ADS基礎上發展的面向對象的環境,使用C++語言。最終ARX進化為ObjectARX。
ObjectARX是一種嶄新的開發AutoCAD應用程序的工具,提供了以C++為基礎的面向對象的開發環境及應用程序接口,能真正快速訪問ACAD圖形、數據庫,同時能使用戶方便快捷地開發出高效簡潔的ACAD應用程序。ObjectARX開發的應用程序速度更快、集成度更高、穩定性更強,同時向下兼容ADS。它的特點是很明顯的:
1.ObjectARX與ADS程序和AutoLisp程序都不相同。從本質上講,是一種特定的C++編程環境,它包括一組動態鏈接庫(DLL),這些庫與ACAD在同一地址空間運行并能直接利用ACAD核心數據結構和代碼。在ObjectARX中,每個命令都有獨立的入口。ObjectARX程序還可以創建新的類,這些類可以為其他程序所共享,從而充分利用面向對象的編程的優點。
2.對于需要經常和ACAD通訊的應用程序來說,ObjectARX程序比ADS程序運行速度更快,這里的運行速度主要指是訪問ACAD數據庫的速度。
3.相比之下,ObjectARX程序是比宏更基本的程序。主程序(ACAD)可調用每個由ObjectARX程序注冊的命令。
4.ObjectARX程序具有ADS程序和AutoLisp程序所不具備的訪問和控制ACAD的能力。ObjectARX程序可以監控和處理ACAD各種事件,可以定義ACAD命令,包括可以透明執行的命令。論文大全。這些命令可以像ACAD自身的命令一樣被AutoLisp和ADS所調用。
基于以上優點就充分說明了ObjectARX的彪悍。天上不會掉餡餅,這個方式的代價就是難度提高了。對于ObjectARX編程,Autodesk公司建議使用Visual C++4.2及以上版本的開發環境,這一點就要求開發者具有較高的起點,對語言的學習程度要求較高,對廣大用戶來說相當不易掌握。(在CAD2006以前,只能使用C++語言和VC編譯器來生成ObjectARX程序,但目前已經可以使用VB.net C# C++等語言配合VisualStudio.net編譯器來生成ObjectARX程序了。)C++語言本身就很復雜(VB.net和C#也不方便到哪里去),再配上復雜度不相上下的ObjectARX庫,如果要寫出切實可用的程序,還要深入了解ACAD本身的結構。ObjectARX最致命的缺點,由于已經和ACAD融為一體,和AutoCAD共享進程空間,ObjectARX程序崩潰通常會導致ACAD系統的崩潰。
第三大類:ActiveX和VBA(VisualBasic for Application)
ActiveX是Microsoft提出的一組使用COM(ComponentObject Model,部件對象模型)使得軟件部件在網絡環境中進行交互的技術集。AcitveX與具體的編程語言無關,可以用任何一種支持他的語言來編寫,但大家習慣選擇簡單易用的VB語言。
Autodesk公司從R14開始內置了VBA開發工具,同時提供了適于VBA(VB)開發的ActiveX Automation對象模型,對于熟悉VB語言又不想學習Lisp奇怪語法的開發者來說,這是不錯的選擇。VBA(VB)的主要特點如下:
1.VBA最早是內嵌在Office97中的一種編程語言,它易學易用,功能強大。所以Autodesk公司從R14之后把它也嵌入了AutoCAD中。
2.VBA和AutoCAD 2000中強大的ActiveX自動化對象模型的結合,代表了一種新型的定制AutoCAD的模式構架。通過VBA,我們可以操作AutoCAD,控制ActiveX和其它一些應用程序,使之相互之間發生互易活動。
3.VBA(VB)數據類型豐富、界面友好。
4.VBA是內嵌在AutoCAD中的一種編程語言,對平臺有依賴性,但VB對此有改善。
5.利用VBA(VB)開發AutoCAD,以要求開發者熟悉VB語言為基礎。
就當前AutoCAD的主要二次開發工具:VisualLisp、VBA和ObjectARX而言, VisualLisp與VBA較為簡單,特別是VBA,使用方便且開發速度較快,但其功能相比ObjectARX有所不足,尤其是對面向對象的功能支持不好。而ObjectARX基于VC平臺,在C++的支持下,其功能非常強大,可以很好地運用各種面向對象技術,但其缺點是發開速度比較慢,同時對開發人員的能力要求較高。
基于以上原因,微軟新推出的ACAD二次開發平臺——.NET API,它具有眾多優點。在新推出的AutoCAD 2006中,Autodesk為其開發增加了.NET API。論文大全。.NET與ObjectARX一樣,基于VC平臺,擁有與C++相匹配的強大功能,同時,具備VB方便易用的特點,似乎是VB.net/C#和ObjectARX Managed wrapper classes的組合,實為較理想的ACAD二次開發工具。從目前的趨勢來看,AutoDesk有全面轉到.net平臺的趨勢,有可能完全取代ObjectARX和VB,具體情況仍在觀望中。
總之,通過以上分析可以看出,AutoLisp仍然是ACAD的基本開發手段,它適于一般開發者用于較為簡單交互性程序的開發。因為除了語言、功能、編寫和調試的難度之外,還有CAD版本匹配的問題。AutoLisp程序的適合度最好,即使是為AutoCAD R12開發的程序,在CAD2007中仍然能夠使用。ADS將逐步被更為完善的ObjectARX所取代,而ObjectARX與AutoLisp正相反,為CAD2002編寫的程序就已經不能在2004下運行了。為老版本ACAD編寫的ObjectARX程序的源代碼雖然可以不需要修改或較少的修改,但必須鏈結新版本的ObjectARX庫進行重新編譯,才能被新版本所運行。而且,不同版本的ObjectARX庫還指定了不同版本的編譯器。譬如,CAD2000/2002版應使用VC6,CAD2004/2005就需要使用VC.net 2002,而CAD2007則需要VC.net 2005。而作為ACAD用戶二次開發的另一支生力軍VBA則介于二者之間。Autodesk新推出的 .NET API二次開發平臺除了涉及到版本兼容性的問題外,同時,遺憾的是目前的.NETAPI版本還不支持卸載,若要卸載只能關閉ACAD。
Autodesk提供的眾多二次開發手段往往會把新手搞糊涂,開發中到底使用什么語言,應根據本身所熟悉的ACAD的版本,以及所熟悉的開發環境,另外,企業規模、資金,也是考慮的關鍵。總之,眾多二次開發工具讓各類開發者都能找到適合于自己的開發工具。
參考文獻:《AutoLISP機械設計高級應用實例》 胡仁喜 胡星 史青錄等編著
[關健詞] 加解密 電子商務 VB
網上購物等電子商務活動在今天已十分普及與方便,雖然隨著網絡技術的不斷發展,各種安全機制、策略和工具不斷被研究和應用,但Internet的開放性,以及其他方面因素導致網絡環境下的計算機系統仍存在很多安全問題。電子商務中的信息安全始終是一個核心問題,因此,在客觀上需要一種強有力的安全措施來保護機密數據。密碼技術是保護網絡安全最有效的技術之一,采取了加密保護措施的網絡,可以防止非授權用戶的竊聽和非法入網,而且也是對付惡意軟件的有效方法之一。
一、簡易數據加解密算法
加密是通過對信息的重新組合,使得只有收發雙方才能解碼并還原信息的一種手段,這種手段的原理及應用是本論文研究的重點,基于VB實現DES和RSA等一般的加解密算法過于復雜,且運算速度慢,特別是它的移位操作,因此,研究簡易數據加解密算法在電子商務數據保密方面具有相當的現實意義。從加密的主要方法看,換位法過于簡單,特別是對于數據量少的情況很容易由密文猜出明文,則簡易加解密算法采用替換法對數據進行快速加密,而且加密后的數據能正確地得到解密,當然關鍵是像VB這樣的高級語言能容易實現。
從各種位運算的特點看,異或運算最適合用于簡易加解密運算,因為當數1和數2進行異或運算生成數3,若再將數3和數2進行異或運算則又會還原為數1。例如將234和124進行異或運算的結果是150,再將150和124進行異或運算則結果又還原成234。其中234是要進行加密的數據,124則可看成是密鑰,因此運用此特性可以將簡易數據加解密算法用函數實現。當用同一密鑰對某數據進行奇數次異或運算時,是對該數據進行加密運算,當進行了偶數次異或運算時則是進行解密運算。
首先,VB下的字符集采用Unicode字符集,它容量大,可置換的范圍廣;其次,在Unicode字符集中,所有字符的內碼都占兩個字節,不再象DOS下西文字符占一個字節,中文字符占兩個字節,這樣中、西文就都可以互換了。因此,對Unicode字符運算需要兩個密鑰,其取值范圍為0至255,這樣對同一字符的加密就有255×255=65025種可能,如果更換密鑰后對密文再進行加密,則會有無窮的可能性。其中一個密鑰用于對高字節加密,另一個密鑰用于對低字節進行加密,則可將某個字符的高字節和低字節分別加以運算,然后再將它們合成為另一個字符,從而置換原數據達到數據加密的作用,解密時則相反。
二、數據加解密界面設計
根據設計要求,首先啟動VB6.0應用程序,新建一個標準EXE工程,系統將會自動創建一個名為Form1的窗體,可在該窗體上添加2個文本框控件用來顯示加密數據與解密數據和2個命令按鈕控件;其中,可通過屬性窗口將Form1窗體的Caption屬性值設置為“簡易數據加解密”、2個文本框控件的Text屬性值都設置為“空”、命令按鈕1控件的Caption屬性值設置為“加 密”、命令按鈕2控件的屬性值設置為“解 密”,其界面設計如圖1所示。
三、數據加解密代碼實現
在代碼窗口中的“通用”部分定義幾個變量,本程序設計需編寫加解密函數Encrypt[5]及對Command1和Command2的Click事件進行編程,其程序清單如下:
Dim s As String
Dim d As String
Dim k1 As Byte
Dim k2 As Byte
Private Function Encrypt(ByVal strSource As String, ByVal Key1 As Byte, ByVal Key2 As Integer) As String
Dim bLowData As Byte
Dim bHigData As Byte
Dim i As Integer
Dim strEncrypt As String
Dim strChar As String
For i = 1 To Len(strSource)
strChar = Mid(strSource, i, 1)
bLowData = AscB(MidB(strChar, 1, 1)) Xor Key1
bHigData = AscB(MidB(strChar, 2, 1)) Xor Key2
strEncrypt = strEncrypt & ChrB(bLowData) & ChrB(bHigData)
Next
Encrypt = strEncrypt
End Function
Private Sub Command1_Click()
k1 = 128
k2 = 24
s = Encrypt(Text1.Text, k1, k2)
Text2.Text = s
Text1.Text = “”
End Sub
Private Sub Command2_Click()
d = Encrypt(s, k1, k2)
Text1.Text = d
Text2.Text = “”
End Sub
保存該工程并運行,則在文本框1中輸入待加密字符,單擊其“加 密”命令按鈕則已加密字符顯示在文本框2中,當然可單擊“解 密”命令按鈕進行字符的解密,其運行界面如圖2所示,至此對數據的簡易加解密就實現了。
四、結束語
密碼分析成為了解決信息安全問題的關鍵技術,本設計采用面向對象程序設計方法進行開發,讓用戶體驗了VB強大的編程能力在電子商務中數據安全性的簡單應用。以上程序只是從原理上分析后給出的實例,在實際運用當中應從字符密鑰中分別求出Key1和Key2,然后將加密后的數據再更換Key1和Key2反復進行多次加密運算,并結合換位法實現更大難度的加解密算法,保證電子商務中數據的安全與有效性。
參考文獻:
[1]祁明:電子商務安全與保密[M].北京:高等教育出版社,2001
[2]William stallings.密碼編碼學與網絡安全[M].北京:電子工業出版社,2004
[3]趙泉:網絡安全與電子商務[M].北京:清華大學出版社,2005
測量程序設計是測繪工程專業的一門必修課程,其目的是讓學生熟練地掌握一門編程語言并且能夠進行測量程序設計。文中針對該課程課堂教學和實驗中存在的問題,提出了部分教學改革建議,分析了教學改革建議的優點,希望通過教學改革,提高學生的學習興趣,使教學效果有明顯的改變。
關鍵詞:
測繪工程;測量程序設計;教學改革
測繪工程專業的畢業生直接或間接地參與了測量程序的設計工作,此外,從企業角度來看,也非常需要具有良好的編程能力同時具備完整的測繪理論的專業人才,學生的就業前景是非常廣闊的。作為人才的培養基地,高等學校應該保證一定數量的這類人才的供應。因此,開設測量程序設計課程是必須并且是非常重要的,該課程的培養目標是使得學生能夠精通某一門編程語言,能夠利用編程語言熟練地進行測量算法的設計和程序的編寫。文獻[1-2]對測繪工程專業的測量程序設計課程教學中的問題進行了分析,提出了許多寶貴的意見和建議,如提高同學們的學習興趣、增強與學生的互動等。此外,還有部分文獻對測繪工程專業中的其它課程的教學改革提出了建議,對課程建設進行了大膽有益的嘗試[3-8]。本文針對該課程的教學過程中出現的問題,提出了若干教學改革的建議,希望能夠通過教學改革,改變傳統的課堂教學形式和課程考試的評價方式,充分調動學生的學習興趣,提高教學效果。
1教學現狀和存在的問題
1.1教學現狀
本課程的教學分為理論教學和實踐教學兩部分,其中理論教學以課堂講授理論知識為主,實踐教學以實驗室上機實驗為主。在測繪專業的教學和學習過程中,關于測量程序設計的文獻資料可以分為三個方面:(1)以C語言為開發語言,對測量程序進行設計和編寫代碼;(2)以VB語言為開發語言,利用可視化編程方法進行用戶界面設計和程序編寫;(3)以Matlab語言為開發語言,進行測量程序設計。C語言是一種開放式編程語言,在大學階段本科生的培養中,主要是以C語言為編程環境進行程序設計的,因此,利用C語言進行測量程序設計和代碼編寫具有一定的優勢。VB語言是建立在可視化編程環境的基礎上的,在掌握了VB程序設計的基本方法后,就可以將測量程序進行編程實現,并且用可視化界面進行良好的人機交互,能夠為使用者提供更好的體驗效果。近年來,有部分高校采用基于Matlab語言的測量程序設計教學。由于Matlab編程語言是針對于矩陣運算進行編寫的,在編程環境中可以不用預先定義變量的類型和變量,就可以直接對變量進行賦值后使用。對矩陣的各種運算也是使Matlab語言區別于其它高級編程語言的一個特別之處,此外Matlab編程語言容易學習和應用,只要具備部分的編程知識就可以在較短時間內掌握這門編程語言。基于Matlab語言的測量程序設計可以使學生不局限于對矩陣的讀取、矩陣文件的保存和導入、矩陣的運算等比較初級的算法設計,能夠將更多的時間和精力投入到測量程序設計和代碼編寫中。根據上面的分析,可以看出,隨著時代的發展和進步,使得我們有更多更好的編程環境來實現測量程序設計。對比三種編程語言的特點,我們認為選取VB或者Matlab語言作為測量程序設計的編程環境是合適的。如果條件允許的話,可以為采用C#語言作為編程語言,能夠使同學們在學好測量程序設計方法的同時,更加深入地理解和掌握C#語言的應用和程序設計方法。
1.2存在的問題
存在的問題主要表現為下面的幾個方面:
(1)課堂理論教學模式呆板僵化。由于測量程序設計課程是利用某一種編程語言對已有的經典平差算法和近代平差算法進行編程實現,所需要講授的理論知識就是編程語言的學習,而在課堂教學中,多數的學校仍然是教師利用多媒體在講臺上講述編程語言,然后進行演示,讓學生通過記筆記的方法來理解和掌握編程語言。這樣的教學模式仍然沿用了其它課程的教學模式,對于絕大多數的理論教學來說是非常有效的,但是,在學習一門編程語言時采用這樣的教學手段,效果并不好。通過實踐環節可以看出,對于已經講解過的編程方法,部分同學自己仍不能完全掌握,甚至不知道該方面的知識點已經講解過,有的同學在學習完該課程后仍不能獨立地寫出一個測量程序的代碼,這些現象的出現與課堂理論教學是有密不可分的關系的。
(2)實驗教學和對學生評價的指標問題。實驗教學是讓學生進行一定時間的上機實驗,掌握所學的編程語言,然后結合已有的經典測量平差算法和近現代的測量平差理論和算法,進行程序代碼的編寫。每次實驗都有一個確定的實驗目標,但多數是有始無終,如何對該次實驗的效果和學生是否真正掌握該部分的內容進行評價是需要考慮的問題之一,如果某一方面的知識沒有掌握,而下次實驗又要進行其它項目的訓練,積累下來就會形成夾生飯,最終導致學生對該課程內容不能掌握,教學效果較差。相應的另一個問題就是如何對該課程進行總體評價,進行理論考試的方法顯然是不能夠反映同學們是否對該課程真正掌握,采用何種方法進行有效地評價教學效果是必須解決的問題。
2關于教學改革的思考
2.1課堂理論教學的改革
課堂教學是傳授理論知識的一個重要教學環節,但是對于編程語言的教學,如果還是停留在教師在講臺上利用多媒體進行講授而學生記筆記的階段,這樣的教學效果是較差的。可以對該課程的課堂理論教學手段進行改革,摒棄傳統的教學方法,改以在實驗室或機房進行課堂教學,每個同學都能夠有一臺微機可以進行操作,教師利用多媒體在講解編程語言和算法的同時,在微機上進行演示,安排同學們進行同步操作,在講解完一個知識點后讓同學們進行舉一反三地練習。這樣的教學手段的優點是非常明顯的,首先,可以讓教師從繁重的幻燈片制作工作中擺脫出來,只是提綱挈領式地對所講授的內容進行幻燈片制作即可,從而能夠將更多的精力投入到算法設計和程序代碼的編寫過程中。其次,避免知識遺忘,實時操作練習,可以使學生通過感性認識真正掌握所學知識。任何知識的學習都有一個記憶-遺忘-重復記憶的過程,像編程語言的學習,如果沒有感性的認識而是記住很多的知識點的方法是不可取的,如果能在學習某一個知識點的同時能夠感同身受地接觸到這個知識,這種記憶無疑是最為深刻的。再次,課堂教學氣氛較好,能夠最大程度上提高同學的學習興趣。傳統的課堂教學中通常有部分同學因為感覺理論教學枯燥乏味,學習中毫無興趣可言,從而逐漸放棄了對課程的學習。采用實驗室或機房作為課堂教學環境,讓每個同學都有動手的機會,就可以讓他們在理解所學知識的同時,自己動手實現一定的功能或算法,從而具有一定的成就感,改變了那種學習枯燥無味的看法,進而自己能夠主動地去學習一些新的知識。最后,這種教學手段的改變可以充分利用教學資源,提高設備的利用率。近年來,各個高校對教學硬件環境的投入逐漸增加,設備的性能逐步提高,但是,設備的使用率往往偏低。如果將該課程的課堂教學改為在機房進行就可以充分發揮教學資源的作用,使教學設備以最大的效率為高校的人才培養工作服務。
2.2實驗教學和對學生進行評價的指標的改革
針對實驗教學中實驗效果的評價問題,可以做如下改革:在每次實驗前安排具體的實驗任務和所達到的目標,在實驗課結束后每人提交一份電子的實驗結論和程序代碼,時間允許可以讓同學們逐個進行演示,以考核實驗效果。這種形式的實驗教學評價方法具有下面兩個方面的優點:一方面,每次實驗課都要進行評價,可以給同學們施加一定的學習壓力,從而轉化為積極學習的動力。這種優點是顯而易見的,每次實驗課后都要進行評價使得同學們必須以認真的態度對待該課程的學習,如果沒有真正理解所學的編程語言的知識點而使得程序不能夠正確運行,會使教師對該同學的評價降低。另一方面,采用每次實驗課都要進行學習效果評價的方法有助于給出對該課程學生學習效果的最終評價結果。對每次實驗課的評價指標進行記錄,將評價結果納入最終的課程評價中,從而能夠比較客觀真實地反映學生的學習情況和對該課程的掌握情況。在課程結束后的評價階段,除了考慮到每次實驗課的評價之外,還可以安排較為復雜、繁重的綜合編程任務,讓同學按時獨立完成,如水準網算法的圖形用戶界面設計與實現。最后需要提交一份綜合實習報告以及程序原代碼,實習報告內容包括實驗目的、算法設計與分析、實際問題的解決等,讓每個同學演示其程序。這種課程評價方法的改革不同于傳統的考試或學術論文的呆板形式,以更加靈活的方式、更加細致的指標來實現對學生掌握知識情況的評價,在給同學們施加學習壓力的同時,能夠真正的讓同學們掌握所學知識,并且能夠給出一個非常客觀實際的評價結果。
3結語
本文中,針對測量程序設計課程教學中出現的問題進行了討論,分析了存在的問題,認為影響該課程教學效果的主要原因有兩個方面,即課堂理論教學的形式、實驗教學和對學生評價的指標問題。課堂理論教學是傳授知識的主要場所,不同的課程應該采用不同的教學場所或教學手段。傳統的課堂理論教學方法適用于數學類型的課程,需要對公式和定理進行認真仔細的推導和證明。但是,對于編程語言的學習,這樣的教學形式的效果是非常差的,學生在學習過程中會逐漸感到學習枯燥乏味,學習興趣不高,課堂氣氛沉悶。如果改在機房或實驗室內進行編程語言的學習,就可以避免上述問題的出現,能夠充分調動每個同學的感官來加深對知識的理解和掌握,通過自己動手來加深對知識的感性認識,算法的順利執行可以極大地增強同學的成就感,增強學習的自信心。每次實驗課都進行質量評價的方法可以給同學們施加學習的壓力,增強學生學習的主動性和積極性,能夠認真地對待每一次的實驗課。另外,將每次實驗課的評價結果納入最終的評價分數,也增強了評價結果的客觀性和真實性。最終的課程評價中,采用實習報告和編程相結合的方式,可以使同學們在認真總結所學編程語言的基礎上,完成一個較為復雜的測量程序的編寫工作,能夠在最大程度上調動同學們學習興趣。本文所提出的測量程序教學改革方法也同樣適用于其它的編程語言類課程和軟件教學類課程的學習,如C?、數據庫、GIS軟件等。
作者:丁海勇 孫景領 單位:南京信息工程大學地理與遙感學院
參考文獻:
[1]吳迪.測繪程序設計教學中的體會[J].山西建筑,2008,34(25):224-225.
[2]朱紅俠,羅強.測繪程序設計教學探討[J].科學創新導報,2008(32):144.
[3]潘慶林,馮寶紅,鄭國才.測繪工程專業“地籍測量學”課程教學改革的思考[J].測繪工程,2006,15(4):77-78.
[4]高偉,齊建國.基于測繪新技術的農業院校測量學教學改革的探討[J].測繪工程,2004,13(3):75-78.
[5]吉長東,徐愛功.基于“卓工計劃”的測繪工程專業實踐教學改革[J].礦山測量,2015,43(1):86-88.
[6]魯鐵定,臧德彥,官云蘭.適應“數字江西”建設德測繪教學改革探討[J].江西測繪,2008,73(2):44-46.
[7]曾濤,楊武年,余代俊,等.新時期測繪工程專業《攝影測量學》課程教學改革實踐[J].測繪科學,2009,34(3):237-239.
[8]高穎.道橋專業《工程測量》教學改革的探討[J].礦山測量,2015,43(3):110-113.
2.《成績管理系統》設計(用C語言實現)
3.軟件設計:超級商場進銷存管理系統(可選:基于WEB網絡版、基于COM+網絡版、S/C網絡版)
4.VB專題網站的建設
5.《信息技術教育》多媒體教學課件制作
6.《數據結構》多媒體教學課件制作
7.供電部門用電計費系統的設計
8.計算機房管理系統的設計
9.網上教學輔助系統的設計與實現
10.淺談試卷智能生成系統的開發
11.多媒體教學課件制作
課題簡介:多媒體技術的應用,促進了現代教育教學技術的發展。利用多媒體課件及現代教學手段進行教學,事半功倍。本課題擬將某知識領域的教學內容制作成教學課件,通過比較傳統教學與多媒體教學兩種不同模式的教學效果,探索多媒體教學模式的特點及發展方向。課題預期成果為論文及軟件形式的教學課件。選用開發軟件可為PowerPointXP或AuthorWare等。
課題二:數據庫管理系統
課題簡介:數據庫技術是計算機應用的一個重要領域。利用數據庫技術開發的應用(管理)系統,在各行各業都有著廣泛應用。本課題擬對某一應用系統(如收費管理、教材管理、人事管理等)進行市場調節及需求分析,利用數據庫技術開發相應應用管理系統,并通過用戶反饋,加以完善。選用開發軟件可以是VB,VFP等。
12.旅游酒店訂單管理系統
本程序可以對酒店,酒店房間進行編輯,查詢,統計。訂單管理模塊可以統計客戶訂單,訂單查詢,訂單打印。
13.網吧管理、計費
本系統可以對網吧,公司內部網進行管理。管理計算機,用戶上機時間、內容,計時計費,飲料等管理。分服務器端和客戶端軟件。
14.非稅收入資金結算系統
本系統包括科目錄入、歷史余額錄入、一級項目維護、核算支出項目、明細項目維護、明細項目取消、單位項目掛接、收費依據維護、資金管理方式維護、行業子行業維護、帳薄設置、核算公式設置、原始憑證類型維護、收入報表定義、收入解繳報表定義、繳款書錄入、繳款書審核、繳款書打印、繳款書傳出、收費數據接收、收費數據傳出、繳款書接收、單位對帳。收費明細表
15.商場管理系統
本系統是個大型商場管理系統,具有進貨、庫存、銷售、結算、物價、合同等功能
16.智力競賽搶答計分系統的設計與實現
17.學校自動廣播打鈴系統的設計與實現
18.學英語智力游戲開發
19.單片機應用開發
20.OfficeVBA應用與開發
21.xx科目教學特點及課件開發
22.xx學校網站的規劃與制作
23.全Flash網站制作
關鍵詞:計算機監控;仿真軟件;綜合實踐;教學模式
中圖分類號:G642 文獻標識碼:B
文章編號:1672-5913 (2007) 20-0077-04
1引言
目前,我國計算機專業的教學模式主要還是從基礎理論到專業理論,實踐環節較少,這就導致了學生厭學,眼高手低,本科畢業連基本的編程技能都不具備,從而,在就業市場上一敗涂地。這些效果又使在校學生更加沮喪,進一步影響其學習的積極性。中國要發展IT產業,必須改革計算機專業的教學模式。
印度是一個貧窮落后的發展中國家,軟件業的成就卻舉世矚目。印度的軟件人才主要是通過職業教育而不是高等教育來培養的,從而大大降低了培養成本和使用成本,縮短了培養周期。其教學不是按從基礎理論到專業理論,再到實習的路徑,而是把順序顛倒過來,先從做開始,在做的過程中,學生如遇到問題,再以此問題為基點去學習專業理論。學員一入學,便要做項目,培訓中心把所承接的大項目分解成一個個小項目,然后要求每個學員完成一個小項目,讓學員在完成項目的過程中學習。培訓中心的學員最后一年都在公司實習,積累工作經驗,同時也給企業提供深入了解雇員的機會。
我們借鑒印度發展軟件業的成功經驗,結合多年從事計算機監控的項目經驗和從事教學的心得體會,提出一種“趣味實用程序的演示+知識點+趣味實用程序的模仿+綜合訓練+學術論文”的教學模式[1],引導學生充滿興趣地鉆研技術,最后逐漸成為計算機監控方面的專家,并熟練掌握計算機專業的基礎理論與編程語言。
2計算機監控技術的特點與主要技術
計算機監控系統是以監測控制計算機為主體,加上檢測裝置、執行機構與被監測控制的對象共同構成的整體。在這個系統中,計算機直接參與被監控對象的檢測、監督和控制。檢測主要是通過傳感器和相應的輸入模塊來取得被監控對象的狀態數據,監督主要是對狀態數據進行分析后給操作員提供手動操作的參考,控制則是手動或按照一定的策略自動地對被監控對象執行相應的操作。
傳統的檢測與控制所使用的模塊一般采用RS-232接口,因為該接口簡單可靠。隨著網絡技術的發展,采用網絡接口RJ-45的模塊逐漸增多。監控用的計算機一般稱為主控機(或上位機),各種檢測與控制模塊或嵌入式系統一般稱為受控機(或下位機)。主控機軟件一般采用高級語言(如Visual Basic 6.0,簡稱VB)進行開發;受控機軟件沒有軟件界面,僅實現相關的邏輯功能,一般采用C語言、匯編語言等進行開發,通過調試后,再下載到受控機系統中。主控機通過RS-232/RJ-45接口與受控機通信,進行數據的查詢與命令的發送。各種控制策略、設備的狀態等的保存,都需要使用數據庫技術。因而,實現一個計算機監控系統,需要綜合使用諸多計算機的基礎理論與編程語言:計算機接口技術、計算機網絡、數據庫系統、VB與C語言等,利用計算機監控技術作為計算機專業實踐訓練的主線,具有很高的操作性和極大的意義。
3仿真軟件的設計
學習計算機監控技術,需要購買相應的硬件模塊,從而在一定程度上制約了該技術的推廣。本文提出了一個基于RS-232的仿真模塊的可視化模型,在此基礎之上設計了可視化的仿真數字I/O模塊,模擬量輸入模塊,并設計了對應的通信協議。主控軟件與仿真模塊之間的通信通過虛擬串口實現,從而,達到在計算機房零成本搭建計算機監控系統平臺的效果。
RS-232/RJ-45協議轉換器可以用于實現計算機監控系統的遠程處理,也可以用于將普通的輸入模塊轉換為仿真的網絡傳感器。
3.1仿真模塊的可視化模型
基于RS-232接口的仿真模塊的可視化模型如圖1所示。模塊表示區用來模擬實際的模塊,對于數字量輸入模塊(Digital Input Module,DIM),輸入開關根據設定的時間隨機閉合/打開,并通過圖形表示;對于數字量輸出模塊(Digital Output Module,DOM),用有源電路回路表示輸出開關的狀態,例如,開關閉合,播放鈴聲或燈亮等;對于模擬量輸入模塊(Analog Input Module,AIM),用圖形表示檢測回路,并在檢測點旁邊顯示溫度的原始數據。每個模塊都設置數據接收和發送指示燈,顯示數據收發的狀態。
功能按鈕區為系統設置按鈕和關閉程序按鈕。系統設置主要完成串行通信的端口號、波特率、校驗碼、結尾碼、模塊地址等的設置,對于DIM模塊,還需要設置隨機切換輸入開關所需要的時間段。
協議描述區顯示本仿真模塊適用的通信協議,包括協議的格式及其具體的含義。
數據接收區顯示接收到的主控程序發送的原始數據包,以字節形式顯示;數據響應區則發送對應的響應數據包,也是以字節形式。
利用此可視化模型設計的軟件界面,使用方便,動態效果好,仿真模塊的開關狀態、溫度數據、數據收發狀態以及傳輸的數據均一目了然。與實物模塊相比,不需要物理連線,也不需要信號發生器與萬用表來產生信號和測量狀態與數據,對于通信協議,也不需翻閱手冊。
3.2通信協議的設計
相同類型(或廠家)的模塊一般采用相同的前導字符,EOT是一個特殊的ASCII字符(0x04),常被用做控制字符,這里的仿真模塊全部采用EOT作為前導字符。
計算機所連接的I/O模塊比較多,CPU為了與連接的設備相互溝通,必須給設備設置一個編號,從而使CPU可以通過每個設備獨一無二的編號與不同的設備進行溝通,這個設備編號就是地址,用ADD表示,地址占用一個字節。
功能碼主要包括讀功能碼(用RD表示)和寫功能碼(用WD表示)。RD用字符“R”(0x52)表示,WD用字符“W”(0x57)表示。
BCC為數據塊校驗碼,一般有Xor、Add、CRC、CheckSum幾種。Xor與Add分別是異或與累加和,占一個字節的長度;CRC與CheckSum分別是循環冗余校驗碼與TCP/IP協議簇中所使用的累加求補校驗碼,分別占兩個字節。這里的仿真模塊提供4種數據塊校驗方式,根據程序設置進行選擇。
不少模塊以回車CR(0x0d)作為結尾標志EM(End Message),而TCP/IP協議簇(如HTTP,POP3等)較多地采用CRLF(0x0d0a)作為結尾標志,這里的仿真模塊也提供這兩種結尾標志,根據程序設置進行選擇。
協議舉例。讀取仿真模塊狀態的命令協議如圖2所示,其中,ADD的范圍為1至255,可由程序進行設置,這樣,一臺主控設備可以連接多達255個虛擬模塊。BCC和EM的種類也可以根據需要由程序進行設置。
3.3RS-232/RJ-45協議轉換器
該協議轉換器的主要功能是用軟件轉換器來替代硬件轉換器,實現串口數據與網口數據的直接轉發,不涉及到協議的變換。串口只要進行常規的設置,與所連接設備的串口參數一致。由于主控機與嵌入式模塊之間一般采用串口進行連接,另外,數據采集模塊也大部分采用串口,因而,通過該協議轉換器,可以將此類串口設備連接到Internet,進行遠程處理。AIM模塊與該協議轉換器配合,可以轉換為一個開關量輸入的網絡傳感器。
3.4虛擬串口的使用
除了跟內置的Modem通信,一般地,進行串行通信的調試都需要RS-232連接線。參考文獻[2]提供了虛擬串口驅動程序,模擬實際的RS-232接口,可以在沒有物理RS-232接口和電纜的情況下,進行串行通信的調試,并且,還可以模擬硬件引腳信號的變化。
4教學模式的具體實現
重視教材建設和教學方法的研究,在教學過程中重視由實踐而激發學生對相關理論的興趣,再用提高了的理論水平來指導新的實驗和實踐活動。傳統的教學模式在實踐環節上的缺乏與不足也與今天社會人才市場急功近利的需求遠遠不能相適應。長期以來,我們培養的學生存在著“什么都學過,卻什么都不會”的尷尬局面,專業教育和教材與市場需求嚴重脫節。事實上,學生就業難并不是就業市場不需要人才,其根源還是教學的現狀所致[3]。
本文采用“趣味實用程序的演示+知識點+趣味實用程序的模仿+綜合訓練+學術論文”的教學模式,在講解新的課程的時候,首先演示程序,例如,用主控程序對仿真數字I/O模塊進行監控,讓學生觀察輸入開關量的變化,可以導致輸出開關量的變化,并可以看到指示燈的亮與滅,聽到電鈴的響與停,通過實物激發學生的興趣,為學生樹立一個目標:要實現該系統,需要掌握哪些技術?從而引出本課程中涉及的主要相關技術。
4.1C語言和匯編語言的應用
C語言是許多高校為計算機專業學生設置的第一門計算機程序設計語言。學習一門語言,不是學習其語法,而是要學習利用該語言去解決問題的方法,從而培養相關的能力。通信是計算機監控系統的關鍵技術,為了確保數據傳輸的可靠性,制訂了通信協議,引入了校驗碼與結尾碼,如果收到的數據,其頭字節、校驗碼或結尾碼錯誤,一般不進一步處理,而是直接丟棄該數據。
可以利用C語言設計異或校驗碼的生成程序,即對給定的一批字節,計算其異或校驗碼;對于含異或校驗碼的一批字節,編寫子程序檢查是否正確。同理,可以編寫其它校驗碼處理程序。在此基礎之上,進一步講解在一個C語言項目中集成子程序的方法。如果學生掌握了這些方法,就基本掌握了用C語言開發受控機軟件的80%以上的技術。
匯編語言是符號化了的面向機器的語言,比較枯燥。可以用匯編語言來生成校驗碼與檢查數據是否正確,通過調試,讓學生明確各個寄存器的作用。在字節處理方面,可以用0表示開關打開,1表示開關閉合,在置位和復位某位時,不能影響其它位的值。
4.2計算機接口技術的應用
在計算機接口中講解“串行通信技術”時,首先演示一個“支持來電顯示的多賬號撥號器”,可以讓學生一鍵撥號──201卡與IP卡及所撥打的長途電話,只要一鍵即可完成,還支持來電顯示。通過演示,激發學生的學習興趣,讓學習成為其需要;然后,講解知識點,讓學生模仿軟件的開發。
可以通過匯編語言設置串口參數,對串口進行初始化,然后,發送字節數據,控制仿真模塊的輸出開關,通過聲光效果觀察程序運行的結果,這比觀察單純的數據變化要形象直觀,對學生更有吸引力。
4.3計算機網絡的應用
在C語言、匯編語言,以及計算機接口技術中都涉及到字節數據流,這就是協議及主控機與受控機之間的約定。通過串行通信協議,可以自然過渡到TCP/IP協議,加深學生對協議的理解。
在網絡編程方面,可以演示一個充當客戶機的POP3密碼攻擊程序,讓學生在增強信息安全意識的同時,學習基于Socket的客戶機與服務器程序的設計。3.3節中的協議轉換器,就是通過客戶機/服務器編程,實現網絡數據與串行通信數據的無縫轉換。這個協議轉換器雖然功能簡單,代碼簡單,但是,作用非常大,可以用來對計算機監控系統進行遠程調試與維護。
4.4VB與數據庫的應用
有了仿真模塊,就可以采用VB開發主控程序。VB是一門快速語言,采用VB編程,學生可以很快入門,有利于增強學生學習編程的自信心。VB可以很方便地設計各種表單界面,通過MSComm32控件和Winsock控件,實現串行通信和網絡通信,從而與受控機或模塊建立通信,完成查詢和控制功能。VB也可以很方便地調用數據庫,用數據庫來存儲控制策略、通信協議及設備的狀態數據、報警記錄等,對數據庫進行各種操作。通過主控程序的開發,可以提高對計算機接口技術、計算機網絡技術與數據庫的感性認識,從而加深理論方面的理解。
5結束語
計算機監控系統廣泛應用于眾多領域。本文提出了“趣味實用程序的演示+知識點+趣味實用程序的模仿+綜合訓練+學術論文”的教學模式,通過程序演示,提高學生的學習興趣,為學生樹立一個學習目標,然后,講解知識點,讓學生模仿相應的程序,再進行綜合訓練。同樣是學習相同的課程,但是我們在其中融入了計算機監控技術,設計了仿真模塊,可以在計算機房零成本搭建計算機監控系統平臺,通過我們的教學,學生畢業后,可以直接作為項目負責人或技術骨干參加計算機監控系統項目的開發。進行深入學習后,學生也可以發表計算機監控方面的學術論文。
目前,我校已經開設了“計算機監控技術與系統開發”課程,實踐表明,該課程的開設,將計算機專業的若干專業平臺課有機地融合到一起,對提高學生的學習興趣,加強技能的培養,加深對理論的理解,提高就業率具有重要意義。
參考文獻
[1] 馬玉春. 計算機監控技術與系統開發[M]. 北京:清華大學出版社,2007.
[2] Virtual Serial Port[EB/OL]. /products /vspdxp/,2007-7.
[3] 周蘇,王文. 軟件工程實驗教學的設計與創新[J]. 計算機教育,2006,(10).
作者簡介
馬玉春(1969-),男(漢族),江蘇南京人,博士,東北大學秦皇島分校計算機工程系教學主任。
E-mail:
聯系方式:東北大學秦皇島分校計算機工程系,郵編066004
辦公:0335-8047939
1.1專業實驗課程
除了公共課實驗及實踐內容如計算機文化基礎、體育、畢業見習實習、畢業設計或論文等外,各院校確定的現代教育技術專業的實驗課與實踐內容。
1.2實驗課的比重
各院校確定的現代教育技術專業的實驗課共計100門,占整個課程的65%,即有65%的課程設置了相應的實驗,但各院校不盡一致。大部分院校現代教育技術專業含有實驗的課程中理論講授學時所占比重較大,而實驗學時較少,只有武威職業學院和鄖陽師專的培養方案中實驗學時超過了理論講授學時;相對于整個專業的總學時,含有實驗的課程學時(理論講授學時+實驗學時)所占比重較小,即大部分院校現代教育技術專業課程大部分還是理論講授為主。
1.3實驗課程類型
從上述各院校確定的現代教育技術專業實驗課程,作者將其分為以下幾類:基礎類試驗、視聽類實驗、計算機類實驗、教育技術類實驗。各院校確定的現代教育技術專業實驗課程共計100門,但從表2可以看出,所有實驗課程計算機類實驗課程比例超多了50%,有些計算機專業不開設的課程現代教育技術專業開設,有些課程重復開設(如編程課程就有8門:C程序設計、VB程序設計、ASP編程、PHP編程、JSP編程、面向對象的程序設計(JAVA技術)、高級語言程序設計、Vb-script);而真正屬于教育技術類實驗并不成熟,像教育傳播學、現代教育技術理論、學與教的基本原理等課程本來是純將理論基礎的課程,偏偏加上了實驗學時。
2現代教育技術專業實驗課程存在的問題
2.1“失重”的實驗課程
無論是作者所調查的全國部分院校現代教育技術專業,還是通訊作者所在的學校———甘肅民族師范學院現代教育技術專業,它們的實驗課程可以用“失重”來形容,這種“失重”現象體現在兩個方面:一是相對于理論課程來說,實驗課程比重較小,并且大多依附于理論課程;二是從實驗課程類型、實踐內容來看,計算機類實驗課程明顯偏多,真正屬于教育技術類的實驗并不成熟。根據教育部對高職高專教育人才培養工作的意見,“實踐教學的主要目的是培養學生的技術應用能力,并在教學計劃中占有較大比重”、“實踐教學要改變過分依附理論教學的狀況,探索建立相對獨立的實踐教學體系”,現代教育技術專業的實驗課程體系的改革,特別是實驗課程教材的建設勢在必行。
2.2“依附”、“演示”的實踐教學
在作者所調查的全國部分院校現代教育技術專業的課程體系中,相對于整個專業的總學時,含有實驗的課程學時(理論講授學時+實驗學時)所占比重較小,大部分院校現代教育技術專業課程大部分還是理論講授為主。在甘肅民族師范學院進行實地調研時,作者發現,由于專業教學人員缺乏、設備及實驗室面積較小等諸多原因,只能開展一些設備操作、演示的項目,真正綜合的實驗項目無法開展,所以實踐教學效果較差。從所有課程設置的實驗項目中可以看出,大部分都是設備使用項目,學生學完這些項目之后很少安排進一步進行綜合運用、教學應用的實驗項目,個別設置了的課程恰恰又沒有開設,以《教育電聲系統》為例,該課程實驗開出率為80%,實際開出的實習項目是“話筒、錄音卡座、數碼錄音筆等電聲器件的操作使用;調音臺構造及操作使用;聲音素材采錄;錄音節目的編制”等設備操作、演示型的項目,該課程設置了“利用語言學習系統進行教學”的項目,通過對該課程任課老師的訪談發現:全校有一套語言學習系統在外語系,現代教育技術專業所在系沒有電聲系統相關設備,該實驗項目并沒有開展。
3現代教育技術專業實驗實踐課程設計
3.1設計原則
3.1.1豐富的實踐教學體系
培養學生的學生動手操作能力、技術應用能力,不能單靠實驗實訓課程,所以必須豐富現代教育技術的實踐教學體系,包括實驗課程體系、校內外實訓體系、分散見習與集中實習體系等,形成了完整的培養體系。
3.1.2“依附”“獨立”并存,分方向設置的實驗實踐課程體系
與以往實驗課程比重較小、實驗課程依附于理論課程的情況相比,作者提出“依附”“獨立”并存,分方向設置的實驗實踐課程體系的設想,即個別演示型實驗依附于理論課程外,需要學生親自動手的實驗均安排為獨立的實驗課程,并且除公共性質的實驗實踐課程如實習、計算機基礎上機實驗外,專業實驗實踐課程除基礎實驗外,按不同的專業方向單獨設置。上述實驗實踐課程體系,使得實踐教學在教學計劃中占有較大比重,形成了基本實踐能力與操作技能、專業技術應用能力與專業技能、綜合實踐能力與綜合技能有機結合的實踐教學體系,有利于及時吸收科學技術和社會發展的最新成果,有利于培養實用型、應用型專門人才。
3.2實驗實踐課程設計
現代教育技術專業的實驗實踐課程除個別演示型實驗依附于理論課程外,需要學生親自動手的實驗均安排為獨立的實驗課程,整個課程體系可分公共實驗實踐課程、專業實驗實踐課程和見習實習等模塊,不包含公共選修課中含有的實驗實踐課程。
3.2.1公共實驗實踐課程主要包括信息技術實驗、大學體育、軍事訓練等。
3.2.2專業實驗實踐課程
1制定合理的編程類實踐課程教學計劃
實踐教學大綱是實踐課程開設質量的重要保證,同時,實踐教學計劃是整個教學計劃的重要組成部分。在制定實踐教學計劃時,要充分考慮自己學校的特色、學生的實際情況和社會實際需求,以《中國計算機科學與技術學科教程2002(CCC2002)》和《高等學校計算機科學與技術專業實踐教學體系與規范》等為指導,以對所培養學生的目標定位為歸宿,制定和不斷修訂實踐教學計劃。制定系列化的編程類課程體系和編程類課程群[1-2],以Java程序設計實踐課程的開設為例,可以分階段開設,按完整的Java技術路線組織,如在低年級開設“JavaSE程序設計和應用”課程及其實踐課程,在較高年級開設“JavaEE程序設計和應用”和“JavaME程序設計和應用”課程及其實踐課程。這樣,可以有效避免學生在學習了一門編程語言基礎后,出現繼續深入的困難和技術“斷線”現象,如只學完了JavaSE部分的知識,不知道進一步的Java學習方向等[3]。目前,大多數院校開設的程序設計類課程是以專業選修課程的形式進行的,因此,指導學生有針對性地進行選課非常重要,如:學生選修了“Java程序設計”的先修課,在高年級時可以建議其去選修“JavaWeb編程”課程;若學生選修了“VB程序設計”的先修課,在高年級時可以建議其去選修“ASP(ASP.net)Web編程”課程等。在選課系統中增設關于每門課程的內容簡介和授課教師的介紹,這樣做有以下好處:一是在課程名稱字面上就可以看出授課的重點,可以回避學生從一個籠統的“XX程序設計”名稱上產生誤會,認為這門課可以將該編程語言的所有技術都包含進去;二是通過課程內容簡介,讓學生更加透明地了解每門不同程序設計課程的授課重點,從而根據自己的知識需求和興趣有目的地選擇課程。所有代程序設計課程的教師共同參與,集思廣益地制定實踐教學計劃。這樣做,一方面可以保證實踐教學計劃的完整和系統,避免低層次的重復和課程沖突;另一方面,可以讓教師從更高高度把握實踐教學規劃,而不僅是只關注自己所教授的那門編程課程。將實踐教學系統地規劃到理論教學、實驗課、課程設計、學年和畢業設計以及創新實踐等各個不同階段和各部分中,逐步落實,如圖1所示。
2以實際問題為出發點,以社會需求為歸宿
為了切實培養學生發現問題、解決問題、實際動手、交流和表達、持續學習、適應和協調、組織能力等綜合能力[4],需要從以下幾個方面入手。
2.1實踐項目的設計應以實際應用為背景
任何的應用和創新都是源于現實的需求,再小的實踐項目,都需要有調研與需求分析過程。引導學生在編程實踐時學會思考“某一種編程方法會運用在哪些實際項目中”、“哪些是通用的軟件模塊”、“接口方法如何”、“如何將不同成員開發的模塊集成在一起,怎樣測試”、“在單臺計算機上開發并測試的項目如何到網絡環境下”、“能用嗎”、“如何改進”等問題,是鍛煉和提高學生獨立思考能力的重要途徑。教師自身要研究社會對計算機軟件人才的具體要求、研究如何培養學生,以發展的眼光注重培養學生獨立思考、分析和解決實際應用問題的能力。
2.2明確畢業走向,提高學生實踐能力
經驗表明,計算機軟件相關專業學生在畢業后,大體有以下幾種走向:考研深造、直接進公司從事計算機軟件開發、通過考公務員等方式進入事業型單位從事技術性或文職型工作崗位等。因此,在高年級階段,應引導學生明確就業意向,進而有針對性地強化其專業技能。
2.2.1加強基本編程思維和方法的訓練編程思維和方法的訓練對程序設計能力的培養具有決定性作用。對學生要進行面向過程和面向對象編程思想和其對應的基本編程方法的引導,達到讓學生由此及彼、觸類旁通地學習其他編程語言和技術。若沒有培養起學生基本編程思想和能力,即便學生學習了再多門類的編程語言,仍不能提高能力,有時反而還會導致學生在各種編程語言和技術中徘徊不定,遇到問題不能快速進行編程和技術選型。
2.2.2培養科研型、技術工程型人才在學生具備了基本編程思維和技能的基礎上,可以考慮引導學生在高年級階段根據自己的畢業走向有針對性地強化編程訓練,以快速適應即將面臨的新環境和新挑戰。對于準備考研深造的學生,可以將他們吸收到教師科研隊伍中。這樣,可以潛移默化地讓學生盡早熟悉科研工作,掌握正確的科研方法,提高科研意識,鍛煉分析問題、解決問題的能力,培養嚴謹求實的科研作風[5]。舉例來說,教師可以在自己運用Matlab進行科學計算、數字圖像處理、Simulink仿真、遺傳算法與神經網絡等智能算法研究時,通過帶動學生參與其中,讓學生不僅奠定一定科研基礎,還會熟悉Matlab及其相關編程方法、運用Multisim進行電路系統的設計和仿真[6]等。對于將自己畢業走向確定為軟件項目開發等的學生,可以將其吸納到教師軟件項目開發小組中來,或吸納到由指導教師牽頭并組建的學生軟件項目開發小組中,讓學生熟悉實際軟件項目的開發流程和方法。在實際項目開發過程中,更進一步明確自己的技術選型,在社會需求量較大的眾多軟件技術如VisualC++、.Net技術、Java技術等中鎖定一種,進而鍛煉和培養學生進行實際項目開發的能力。
2.3鼓勵學生通過專業資格認證
對于所有學生,首先都應鼓勵他們通過專業資格認證,如參加全國計算機等級考試四級中的四級網絡工程師、四級數據庫工程師、四級軟件測試工程師方向考試,軟件工程師、系統架構師資格認證考試,SUN公司的Java技術認證,Cisco公司的網絡技術認證等。通過這些專業資格認證的考試的準備和資格獲得,可以幫助學生明確自己的專業方向,而且對該方向產生更大興趣和信心。其次,要鼓勵學生積極參與各級各類的專業程序設計競賽,如ACM競賽、ITAT競賽以及其他競賽。通過參與競賽,拔高學生的編程高度、拓展編程視野、培養創新精神和能力。
3拓展實踐教學的時間和空間
通常,實踐教學被納入正常的教學學時中,學時有限、實驗室固定,這對于綜合性、創新性實驗的開展很不利。
3.1充分利用優質資源,拓展實驗平臺
以利用北京大學的“北京大學程序在線評測系統(POJ)”為例,該系統具有可以運用各類編程語言進行在線程序編寫和即時評測的強大功能,其上的題目具有實用性、趣味性和很高的創新性,可以充分地幫助學生提高通過編程解決反映工作和生活實際問題的能力[7],從而充分調動學生的主動性、積極性和創造性,激發學生的創新思維和創新意識,逐漸掌握獨立思考問題、解決問題的方法,提高其創新實踐的能力。引進或自行研制開發基于Web工作流的程序設計綜合管理系統[8-9]。通過該系統,由教師在課前提交實踐項目的目的、要求、內容等,讓學生在實踐課前通過該平臺預習實踐內容、查閱資料,進行相關的設計和初步實現,課后書寫實踐報告并通過該平臺提交。教師評閱完畢后,學生可以看到批閱結果,根據批閱意見,繼續完善實踐項目。同時,教師可以將自己積累多年的程序設計項目、程序設計方法、歷屆優秀學生的程序設計作品和實用開發工具等在該平臺上,以供學生共享。開通師生用于交流程序設計經驗的論壇和即時答疑空間。
3.2軟件創新實驗室建設
成立計算機軟件創新實驗室的最終目的,是培養學生獨立承攬實際軟件工程項目的能力,和進行計算機軟件相關科研能力的培養,使學生具有快速適應社會需求或深造發展的需求能力。
3.2.1軟件創新實踐開展流程和制度建設
實際軟件項目的開發應具有嚴格的流程,在指導教師的帶領下,由學生組成創新實驗小組,創新實驗項目由指導教師規劃和安排,進入創新實驗室時應向計算機科學學院報送創新實驗項目安排表或軟件項目投標書等。完成創新實驗和實際軟件項目開發時,在條件允許的情況下應將相關資料和成果歸檔保存。軟件創新實踐項目和軟件項目開發一定要以“系統觀點”進行,即問題或大或小,都要通盤考慮,按照系統科學方法[10]和軟件工程方法進行,如圖2所示。組織項目開發人員,首先,進行角色劃分,如項目負責人、系統分析和設計人員、編碼和美工設計人員等,然后,當系統設計完成后,就要明確分配任務,形成任務分解表并落實到個人。由于學生進行實際項目開發的經驗不足,可由指導教師擔任項目的總負責人,定期督促和檢查項目進度和估算項目成本等[11]。在創新實驗室日常管理環節上,可以建立在指導教師的監督下,讓全體參與創新實踐的學生形成排班和輪流值日的管理制度[12]。
3.2.2軟件創新實驗實施方案
由指導教師牽頭,引導學生創新小組進行課題研究、承攬軟件開發項目和創新實踐探索研究[13]。課題研究一般是由教師吸收學生參與到研究的課題中,共同完成大型的實踐項目。指導教師帶領學生創新團隊承攬學校及校外的應用開發項目,進行項目開發。由主持實踐教學改革項目的教師帶領其他教師和學生進入創新實驗室,組織實施和完成“以應用為核心”、“以本科學生為主體”的創新性實踐教學改革項目。
4實踐項目的設計與監督
4.1實踐項目的原創性和創新性
實踐項目設計的原創性和創新性在很大程度上決定著實踐教學的質量。在長期程序設計教學過程中,發現學生在平時實踐、學年論文(設計)、畢業論文(設計)以及實際項目開發過程中原創性差和缺乏創新性等問題,究其原因有:
(1)為了與程序設計理論教學配套,平時的程序設計實踐項目中“驗證性”項目和沒有實際應用背景的“示例性”項目比重較大。
(2)一些通用性的程序設計實踐項目,諸如“XX管理系統的設計和實現”、“XX網站的開發與實現”等的相關開放資源非常多,其整個軟件的設計開發背景和需求、分析和設計過程,以及實現的全部源碼都是有現成可參考的。若實踐項目如此命題,則導致部分學生將查閱參考資料變成了“復制—粘貼”,這樣,不僅沒有達到良好的實踐效果,反而還讓一些學生養成了不勞而獲、抄襲剽竊的壞習氣。
(3)虛擬和籠統的實踐項目較多,比如對系統的設計和開發背景是自定的而不是源于實際用戶的開發需求等。學生在完成過程中,沒有經歷分析和解決實際應用問題的磨礪過程。因此,在引導學生進行項目實踐的過程中,在對其進行各階段指導和檢查時,必須嚴格把關,對實踐項目題目的設計本身應具有很強的針對性、原創性和創新性。不斷引導學生從身邊做起,積極主動地發現需求,比如:在歷屆的全國計算機等級考試中,發現有個別考生攜帶U盤等電子介質作弊的問題,教師應引導學生去探究和開發一種能夠監控和防止利用電子介質作弊的軟件;學校的各機關部門和學院都有開發和維護各自部門網站、開發學生管理系統、財務管理系統等需求,這些需求往往很具體,具有特殊要求和差異性,教師可以引導學生項目開發團隊承攬和開發這些項目;教師面臨缺乏專有的與學生進行在線溝通和交流的系統和在線收發、批閱作業的系統,可以將這樣的需求作為學生畢業設計的題目等。
4.2加強對學生實踐效果的檢驗和監督
要注重從貫穿整個本科實踐教學的各個環節,諸如各項編程類基礎實踐項目、創新性和研究性實踐項目、各級各類的專業程序設計競賽、本科學年設計、本科畢業設計等具體環節入手,全程監督和檢查學生的實踐能力。改革對學生程序設計課程考核的機制,加大實踐考核在成績、能力評價中的比重;教師通過對學生所做的實踐項目進行提問、討論、答辯等方式,了解每個學生在實踐中存在的問題和實踐效果,發現不足,進而有的放矢地改善程序設計實踐效果。