時間:2023-03-17 18:03:19
序論:寫作是一種深度的自我表達。它要求我們深入探索自己的思想和情感,挖掘那些隱藏在內心深處的真相,好投稿為您帶來了七篇計算機程序設計論文范文,愿它們成為您寫作過程中的靈感催化劑,助力您的創作。
中圖分類號:G712 文獻標識碼:A 文章編號:1007-9599 (2012) 19-0000-02
隨著計算機技術的迅速發展,數學的應用不僅在工程技術、自然科學等領域發揮著越來越重要的作用,而且以空前的廣度和深度向經濟、金融、生物、醫藥等新的領域滲透。不論是用數學方法在科技和生產領域解決哪類實際問題,還是與其它學科相結合形成交叉學科,首要的和關鍵的一步是建立研究對象的數學模型,并加以計算求解。數學建模和計算機技術在知識經濟時代的作用可謂是如虎添翼。[1]
計算機技術發展到今天,已經在各個領域產生了許多非常優秀的專業軟件,在數學建模競賽中一定要使用計算機及相應的軟件,如Excel,Spss,Lingo,Mapple,Mathematica,Matlab甚至排版軟件等。數學建模初期,數據質量通常較差,可以利用計算機進行規范化和目的化處理,這需要較強的計算機程序設計能力,如熟練使用EXCEL中的VBA(Visual Basic Application)。
1 計算機程序設計能力培養意義重大
早在1994年,原國家教委高教司司長周遠清同志就提出了層次教育的做法,并且將計算機教育的三個層次依次定為“計算機文化基礎”、“計算機技術基礎”和“計算機應用基礎”,現已將“計算機文化基礎”更名為“大學計算機基礎”,“計算機技術基礎”更為“計算機程序設計基礎”,并在2006年后出現“計算思維”的新思想。
我校作為藥學類專業重點高等院校,在計算機程序設計方面主要培養學生使用Visual Basic進行程序設計的能力,該語言被微軟公司的OFFICE軟件等內置,稱為VBA(VB應用),也稱為宏。
計算機程序設計最基本的應用應該在于數據處理和分析,簡化人工操作,提高效率,提升數據的質量和精度,為項目開展爭取寶貴的時間。在建模和科研工作過程中,原始實驗數據量大、格式不統一、質量不高,甚至無法直接導入計算機專業軟件,也就無法進行進一步的處理和分析,所以計算機程序設計的工作是非常重要的。因此,對于認為計算機程序設計就是搞軟件開發,藥學相關專業的學生不需要太重視這方面知識學習的人來說,是片面甚至錯誤的。非計算機專業的計算機教育是讓學生通過學習掌握計算機相關應用技術,并能利用這些技術為本專業服務的。
以2012年高教社杯全國大學生數學建模比賽中的本科組題目“太陽能小屋”為例,對于基礎數據的處理,包括24種光伏電池組件、一年365天的輻射強度(分高于和低于70W、高于和低于200W四種情況)的計算、發電量、價格等,如果沒有較好的計算機程序設計能力,在這項工作上將花費1-2天的時間(比賽時間共為3天),而在計算機程序設計VBA的幫助下,只需要在1小時內完成上述工作,只要方法正確,數據的準確度完全可以保障,大大改善了數學建模的工作進程,節省出的大量時間就可以用于問題的進一步分析和求解,得出好的結論。
2 微軟公司VBA基本操作
通常情況下,數學建模競賽的數據都會被存儲在EXCEL電子表格中,如何對EXCEL中的數據進行有針對性的處理是常見工作,同樣也是科研項目中經常遇到的問題。對于有VB語言基礎的人來說,只需要學會如何在EXCEL中操作VBA就可以對這些復雜繁瑣的問題快速處理完畢。對于參加數學建模競賽的學生而言,掌握VBA的使用就應該像會打字一樣有必要。
2.1 啟動VBA
打開EXCEL數據文件,執行菜單命令“視圖-工具欄-Visual Basic”,打開Visual Basic對話框,點擊按鈕 進入“設計模式”,點擊按鈕 打開工具欄,添加“按鈕”控件到表格上,雙擊按鈕進入代碼窗口,編寫Click事件過程及相關過程代碼。
2.2 對于表格數據操作的基本語句
左側資源管理器中可以查看當前表格的名稱,如果想將Sheet1表格中的第一行第一列的數據復制到Sheet2表格的第一行第一列,可以使用語句如下:
Sheet2.Cells(1,1).Value=Sheet1.Cells(1,1).Value
選定區域單元格的語句如下:
Sheet1.Range("A1:A100").Select
應用函數Sum求和,將A列1~10行的數據求累加和放到第11行,語句如下(中括號中的數據表示相對偏移行或列數,R表示Row,C表示Column):
Sheet1.Cells(11,1).FormulaR1C1="=Sum(R[-10]C:R[-1]C)"
2.3 學會使用錄制宏來學習和應用VBA
對于不熟悉的VBA操作,可以通過錄制宏的形式來學習,執行菜單命令“工具-宏-錄制新宏”,接下來所有在EXCEL中的操作將被自動錄制成VBA代碼,結束錄制后,執行菜單“工具-宏-宏”,選擇錄制好的宏名,點擊“編輯”按鈕即可以查看VBA代碼。
3 計算機程序設計能力培養的期望
對于教學科研型院校,培養學生的科研能力需全面,學習計算機程序設計應該就像要求學生必須具有打字和論文排版的基本能力一樣得到普及和重視,這樣才能在科研工作中,提升數據處理和分析的本領,科研工作因得到計算機程序設計的輔助進一步得到改善。
在實際教學過程中,我校對于“大學計算機基礎”和“計算機程序設計基礎”的課程安排比較合理,但是相對缺少“第三學期”的“計算機應用技術”相關計算機程序設計能力的實踐學期,會造成學生學習了知識,但是往往不能很好地應用到數學建模和科研工作中。希望學校能夠向其他醫藥院校一樣,考慮增加第三學期計算機技術相關實踐課程,這一做法一定對我校數學建模工作,甚至全校科研水平提升和改善有著重要意義。
參考文獻:
關鍵詞:武警院校;NCRE;計算機語言;Visual Basic;C語言;
武警院校大多為指揮院校,目標是培養“適應武警部隊信息化建設和履行職能使命需要的新型高素質指揮警官”。學員既有參加高考的學生,又有從部隊考上的戰士。生源不同,其文化基礎知識相差甚遠,但都按統一的實施方案和計劃模式進行組織教學,采用封閉式的全程軍事化管理制度。主要學習政治理論、科學文化、軍事基礎、專業業務、身體心理等課程。
武警院校的學員畢業后大部分去基層部隊工作,經常需要通過可視化的開發工具快速高效進行軟件開發,比如建設網站或開發維護本單位的小型管理信息系統等,所以程序設計課程的科目選擇不易過于專業化。選用Visual Basic(以下簡稱VB)等可視化易學易用的語言為宜,它不但簡單易學,功能強大,而且因其先進的Windows編程思想理念,可以滿足一些后續專業課程或畢業設計中對編制程序的需求。
武警院校在非計算機專業人才培養方案中明確指出:應屆本科畢業學員,需要完成大學本科人才培養方案和課程標準規定的全部課程和各個教學環節規定的內容,并且要求課程學習和畢業考試、畢業論文按照學籍管理規定成績合格,較好地掌握本專業的基礎理論、專門知識和基本技能,具有初步的科學研究和崗位任職能力者,在英語通過四級,計算機通過二級時,授予學士學位。這就給武警院校非計算機專業的程序設計課程提出了更高的要求。
1NCRE與計算機語言
全國計算機等級考試(National Computer Rank Examination,簡稱NCRE)是經教育部批準,由教育部考試中心主辦,面向社會,用于考察應試人員計算機應用知識與技能的全國性計算機水平考試體系。目前該考試共設四個等級,考核內容是根據社會不同部門應用計算機的不同程度和需要、國內計算機技術的發展情況以及中國計算機教育、教學和普及的現狀而確定的;它以應用能力為主,劃分等級,分別考核,為用人部門錄用和考核工作人員提供一個統一、客觀、公正的標準。
NCRE二級考核的主要內容是計算機基礎知識和使用一種高級計算機語言編寫程序以及上機調試的基本技能。考試科目有語言程序設計(C、C++、Java、VB、Delphi)、數據庫程序設計(Visual FoxPro、Access)兩大模塊共七個科目。
如果單純從取得計算機等級考試證書、提高考試通過率的角度出發,選擇數據庫程序設計模塊較為理想(比如Access科目,簡單易學),但從滿足武警院校非計算機專業學員畢業后的任職需要來說,選擇一個與教學大綱相一致的科目則更為合理,能起到“既通過課程考核又取得證書”一箭雙雕的效果。
根據教育部近年來對高等學校非計算機專業計算機基礎課程提出的“1+X”的教學方案,即一門基礎課程(“大學計算機基礎”)+若干必修/選修課程,武警院校非計算機專業的計算機課程一般分為計算機基礎和計算機程序設計兩個層次,其中的計算機程序設計課程正好與計算機二級考試中的語言程序設計(C、C++、Java、VB、Delphi)模塊相對應。為此,武警院校非計算機專業的程序設計課程的科目選擇尤為重要,選擇的恰當不僅能讓學員在校期間學到非常適用的編程知識、增長能力,而且能大大提高計算機等級考試通過率,更能使得課程建設與計算機等級考試二者兼顧,符合科學發展觀的規律。
2更新教學觀念,樹立學生與教師的雙主體理念
傳統的教學是以教師教為主體,所以課程內容的選擇往往多從教師易于教的方面考慮。對于計算機程序設計課程,因其授課教師大多是計算機或相關專業畢業的人員,對C語言比較熟悉,所以若從備課方便、講授熟練程度來選擇語言科目,教師喜歡選用C語言。因為C語言簡潔、緊湊、使用靈活;同時C具有很強的流程控制結構、語言生成的代碼質量高、運行速度快、可移植性較好,可以實現對程序的精確控制[1]。但是對于初學程序設計語言的非計算機專業學生來說,情況卻不盡如此。
新的教學理念是發揮學生與教師的雙主體教學設計,即教師是教學活動的主導,學生是教學活動的主體。這就表明在教學過程中,課程內容的選擇也要充分考慮教學中學的一面,要從學生的任職需要和特點出發,進行程序設計科目的選擇,要從教學的各個環節入手,提高學生學習的積極性、主動性、創造性,教學內容既要簡單易學,又要滿足學生畢業后的任職需要。
3以學生為本,統籌兼顧,VB是非計算機專業計算機程序設計課程的最好選擇
VB是微軟公司推崇的面向非計算機專業工程技術人員的首選程序設計語言,無疑也是武警院校非計算機專業程序設計的首選科目。
(1)VB是現今流行的應用程序開發工具,具有強大的生命力。
VB是基于Windows應用程序的開發工具,它為非計算機專業人員開發程序提供了強大的編程工具。“Basic”指的是BASIC (Beginners All-Purpose Symbolic Instruction Code)語言,意為“初學者最通用的語言代碼”,是計算機技術發展歷史上應用最為廣泛的語言。“Visual”意即可視的、可見的,指的是開發像Windows操作系統的圖形用戶界面(Graphic User Interface,GUI)的方法,它不需要編寫大量代碼去描述界面元素的外觀和位置,只要把預先建立好的對象拖放到屏幕上相應的位置即可。
VB功能強大,語法簡單,執行代碼效率高。因此,VB已成為每一個編程工作者學習時的首選語言,但其功能一點也不比VC++遜色。據統計,開發同樣的應用程序,采用VB要比VC++的效率提高70%[2],所以VB具有強大的用戶群和生命力。
(2)VB易學實用,許多高校把它作為大學生的入門語言。
自從1975年Basic語言問世以來,“Basic”已成為編程入門者學習語言的代名詞,Basic語言以其易學易用的特點風靡全球。自從微軟公司推出了劃時代的VB,Basic又從一門“玩具語言”一躍而成為功能強大的應用軟件開發語言。專業人員可以用Visual Basic實現其他任何Windows編程語言的功能,而初學者只要掌握幾個關鍵詞就可以建立實用的應用程序。
許多很有威望的計算機專家對VB也是情有獨鐘,如同濟大學的龔沛曾教授對VB深有研究,清華大學的周穎老師說自己是從VB的學習而成長起來的,我們從他們編著的有關VB書籍的學習中受益非淺。現在國內許多高校都把VB作為大學生學習計算機的入門語言。
隨著計算機技術、互聯網技術和人工智能技術的快速發展,大學計算機基礎教學在人才培養中發揮著越來越突出的作用。美國卡內基·梅隆大學周以真(Jeannette M. Wing)教授于2006年提出了計算思維概念[1],她認為,計算思維是運用計算機科學的基礎概念進行問題求解、系統設計以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動。教育部高等學校大學計算機課程教學指導委員會(以下簡稱教指委)于2010年7月發表了聯合聲明[2],正式提出:要旗幟鮮明地把計算思維能力的培養作為計算機基礎教學的核心任務,加強課程體系和教學內容的研究,要讓學生像計算機科學家那樣去思維。
計算思維為計算機基礎教學提出了新的機遇和挑戰,有了計算思維的課程指導思想后,很多教育專家開始研究計算思維的落地問題[3-5],專家們普遍認為:計算思維的落地就是如何在計算機教學內容與教學方法上提高學生用計算機解決實際問題的能力,即問題的求解、系統設計以及人類行為理解等[6]。基于此,構建適合引導和驅動計算機教學的項目和尋找更能激發學生興趣、積極性的案例成為我們必須面對的問題。
1 計算機博弈項目是計算思維培養的重要載體
在2016世界人工智能科學誕生60周年之際,谷歌公司的AlphaGO圍棋軟件與世界圍棋冠軍李世石上演了“世紀人機大戰”。2017年伊始,Master圍棋網測又取得了60場全勝的戰績,隨后,卡內基·梅隆大學的Libratus在德州撲克比賽中輪流擊敗了4名頂尖人類高手,人工智能再次引發了世界范圍內的研究與開發熱潮。目前很多學者認為:人類社會正在從“互聯網+”向更高階的“人工智能+”躍遷,智能科學與技術已經成為促進所有學科發展的重要因素,計算機博弈是人工智能領域的重要研究方向[7]。
計算機博弈項目涉及的方法主要包括:博弈問題的提出、棋盤的數據描述、棋面的評估模型、搜索算法的選擇、算法的實現與優化、人機交互處理等方面,這些內容剛好與計算思維的思想相一致,非常適合培養學生的計算思維能力。
一段時間以來,學生網游上癮困惑著家長和教育工作者,以何種方式引導青年學生遠離網游以及網游的魅力一直是不解之謎。而多個高校的實踐證明,計算機博弈項目能迎合青年學生的愉悅、冒險、好奇和高對抗需求,讓他們在快樂中分析、編程、斗智,既長知識,也長能力,既培養了計算機實踐與創新能力,也培養了計算思維、科研思維和團隊合作精神。
學會將人的思維過程用計算機來實現,學會處理相關的問題,學會做好最優決策,這對于所有學生來說都是有助益的。計算機博弈項目是培養學生實踐與創新能力的應用型項目,更是培養大學生計算思維的重要載體。
2 新課程體系與課程內容改革
現有的計算機基礎課程體系沒有充分考慮計算思維和創新思維能力的培養,也沒有突出寬、專、融的教學特點,并且課程內容陳舊。2015年教指委推出了新版的《大學計算機基礎課程教學基本要求》(以下簡稱基本要求)[8],指出了新的歷史時期計算思維能力的培養將成為大學計算機基礎教學的新常態,對課程體系、教學目標和內容進行了全面闡述。
依據基本要求和部分學校的改革實踐[9-10],提出了適合沈陽航空航天大學應用型人才培養的寬、專、融相結合的大學計算機基礎課程新體系(見表1)。新的課程體系以計算思維為主線,以培養學生的計算思維意識、計算思維方法和計算思維能力為目標,分為3個層次,每個層次設置不同的課程。隨著課程體系的重新構建,各類課程的教學內容也重新進行了調整,例如:在第1層次,減少了Office方面的內容,增加了動手實驗和Python內容;在第2層次,取消了VF內容,增加了C#內容;在第3層次增加了基于計算機博弈的科技創新平臺的內容。
2.1 大學計算機基礎課程內容改革
在大學計算機基礎課程中,主要設置了4個模塊:①計算機系統、網絡與操作系統;②信息編碼與信息處理技術;③數據庫基礎;④計算思維、算法與程序設計初步。在第4部分中,加入了排序算法、黎曼積分、機器博弈、旅行商、哥尼斯堡七橋等常用問題的算法。還特別增加了Python語言部分[11],通過求解三角形面積,引出了順序、選擇和循環結構的基本用法;通過求解π的值,引出了蒙特卡羅方法和公式方法;通過蟒蛇的繪制,引出了Turtle庫的使用方法。通過以上內容的學習,學生可以對程序設計的基礎知識和利用計算思維解決問題的方法有一個初步的了解,初步培養學生程序設計的基本能力和計算思維意識。
以全面開放的形式設置了3個專項實驗:計算機拆裝、操作系統安裝和計算機組網,通過學生親自動手實驗,提高學生對計算機硬件的認知能力和計算機維護能力。
2.2 計算機程序設計課程內容改革
在計算機程序設計課程中,本著為專業服務、與時俱進的思想,將課程設置成3個模塊:C#語言主要面向航空類專業和創新實驗班學生;VB語言主要面向文管類和安全類專業學生;C語言主要面向電子、自動化、材料、機械類專業學生。在開課過程中允許學生跨專業選課,學生可以選擇更適合自己的語言或多種語言同時學習。
為了突出實踐能力的培養,課程內容中增加了8個實驗學時,專門用于綜合性程序設計實驗,該實驗由3~4人組成的小組共同完成。在期初的時候進行動員,在期中的時候布置實驗題目,在期末的時候進行答辯驗收。通過綜合實驗,學生初步具備了利用所學知識解決實際問題的能力,培養了學生計算思維方法和團隊協作精神。
2.3 將計算機博弈案例與教學內容深度融合
為了調動學生的學習積極性,將學生喜歡的計算機博弈項目作為案例融入教學中[12-13],使學生在興趣與主動學習中領悟計算思維。
在大學計算機基礎課程中,講授了計算機博弈的發展與競賽概況、計算機博弈的空間復雜度與搜索復雜度、蒙特卡羅方法等。
在計算機程序設計課程中,以具體項目的形式為學生講授了計算機博弈的評估方法、搜索算法、棋盤的數據表示與可視化制作等內容。
在計算機綜合訓練課程中,我們設計了與計算機博弈問題相關的課設題目,例如:愛恩斯坦棋的人人對弈平臺設計、幻影圍棋的開局設計、局面評估的建模方法等。通過博弈案例建模和典型算法設計,幫助學生掌握使用計算機技術解決博弈問題的途徑和基本方法,為學生進一步開展計算機博弈科技活動打下堅實基礎。
3 新形態化的教材建設
團隊人員以《VB程序設計教程》為切入點,進行了新版教材的建設。教材的主要特點是新形態、立體化、數字化和案例式。除了紙質版教材,還在網絡平臺上了數字化教學資源,主要包括教學課件、案例素材、拓展案例、微視頻、實驗素材、參考資料等,這些資源非常有利于學生自主學習、協作學習和探究性學習。
微視頻資源是針對重要知識點建設的,每個微視頻大約3~5min,微視頻的二維碼印制在教材的相應章節上,學生可以通過手機掃描訪問,實現了基于移動互聯網的學習方式。微視頻特別適合學生利用碎片化時間進行輔助式學習。
教材中的案例遵循5結合原則:①與數學知識相結合。例如:積分計算、矩陣運算、函數曲線等,都是學生熟悉的問題。②與趣味性題目相結合。例如:抽獎活動、分糖果游戲、開心農場等,都是學生喜歡的小項目。③與實際應用相結合。例如:高考錄取、學生績點計算、打氣筒模擬、課堂點名等,都是學生經常面對的實際問題。④與專業知識相結合。例如:曲柄滑塊機構,這是機械類專業學生應掌握的典型機構。⑤與計算機博弈知識相結合。例如:博弈搜索算法、棋盤的可視化設計等。通過有興趣的教學案例引發學生深入學習與研究的積極性,也體現了寓教于樂的教學方式。
4 開展計算機博弈科技活動
沈陽航空航天大學從2011年引入計算機博弈項目以來,團隊人員依托博弈項目,深入開展了寓教于樂、寓教于研、以研促教、以賽促學的創新人才培養模式[14]。
1)開展博弈科技研究和“大創項目”工作。
基于計算機博弈項目,很多老師開展了科技研究,并將科研成果應用于教學中。建立了博弈科研梯隊,教師既能對博弈活動起到組織、指導和護航作用,又能在計算機博弈的科研中勇攀高峰,形成學科制高點,為科技攻關和實際應用創造條件。開展了計算機博弈科技社團工作,社團成員在老師的指導下,既可以參加科研課題,也可以組隊申報大學生創新創業訓練項目(簡稱大創項目)。學生與老師合作開展科技研究、撰寫論文,形成了良好的學習與科研氛圍。
2)開展計算機博弈競賽工作。
計算機博弈項目具有喜聞樂見、挑戰無窮的特點,深受學生喜歡。學校鼓勵學生組成不斷吐故納新的代表隊,支持學生參加各類計算機博弈競賽(校級、省級、國家級和國際級)。到目前為止,共組織了6屆校級計算機博弈比賽,平均每年參加人數達200余人。校賽選拔后組織集訓,備戰全國比賽,共組織學生參加了6屆全國計算機博弈大賽和1次國際機器博弈大賽,營建了良好的校園計算機創新文化氛圍。
5 取得的成效
1)學生課程成績提升。
以計算思維為主線的教學改革方案使學生受益頗多,每年有4 000名學生學習計算機課程,學生課程成績提高較大,例如:計算機程序設計課程平均成績提高15%,大學計算機基礎課程平均成績提高10%。在期末對學生進行問卷調查時,大部分學生表示學習收益較大,對計算機技術的理解和利用計算機技術解決問題的能力都有較大提升。
2)學生競賽成績優異。
隨著研發能力的不斷增強,學生參加的計算機博弈競賽項目也越來越多,現已達到12項,包括六子棋、點格棋、蘇拉卡爾塔棋、亞馬遜棋、幻影圍棋、不圍棋、愛恩斯坦棋、軍棋、國際跳棋、海克斯棋、斗地主、橋牌。近幾年累計獲省級以上獎項100余項,累計獲冠亞季軍20項,其中幻影圍棋、亞馬遜棋、軍棋、六子棋項目都曾獲得過全國冠軍獎項,總體競賽成績位居全國前幾名,既提高了大學生的計算機創新能力,也促進了我國計算機博弈事業的發展,在國內高校中產生了較好影響。
3)學生科技成績突出。
基于計算機博弈項目,學生與老師合作在CCDC國際會議的機器博弈(Computer Game)專題上已25篇,表2是發表的部分學術論文。學生在老師的指導下申報了大創項目30多項,表3是部分大創項目。
6 結 語
計算思維的理論研究在我國已經走過了6年多,現在應該是全面落地的時候。我們本著與時俱進、為專業服務的指導思想,調整了各門課程的教學內容,引入了Python、C#等程序設計語言,將學生喜歡的計算機博弈項目作為教學案例與課程內容深度融合,實現了競賽與教學相結合的教學新模式。計算機博弈項目具有喜聞樂見、挑戰無窮的特點,特別能引發青年學生的好奇心與研究熱情,廣泛開展基于計算機博弈項目的科技與競賽活動,較好地培養了學生的創新精神和科研思維。計算機博弈項目是非常好的培養學生計算思維的重要載體。筆者希望本文能對高校的計算機教學提供一種參考,更希望計算機博弈能在更多的高校生根、發芽、開花和結果。
參考文獻:
[1] Wing J M. Computational thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.
[2] 何欽銘, 陸漢權, 馮博琴. 計算機基礎教學的核心任務是計算思維能力的培養:“九校聯盟(C9)計算機基礎教學發展戰略聯合聲明”解讀[J]. 中國大學教學, 2010(9): 5-9.
[3] 陳國良, 董榮勝. 計算思維與大學計算機基礎教育[J]. 中國大學教學, 2011(1): 7-11.
[4] 李廉. 以計算思維培養為導向深化大學計算機課程改革[J]. 中國大學教學, 2013(4): 7-11.
[5] 馮博琴. 對于計算思維能力培養“落地”問題的探討[J].中國大學教學, 2012(9): 6-9.
[6] 龔沛曾, 楊志強. 大學計算機基礎教學中的計算思維培養[J]. 中國大學教學, 2012(5): 51-54.
[7] 王驕, 徐心和. 計算機博弈: 人工智能的前沿領域: 全國大學生計算機博弈大賽[J]. 計算機教育, 2012(7): 14-18.
[8] 教育部高等學校大學計算機課程教學指導委員會.大學計算機基礎課程教學基本要求[M]. 北京: 高等教育出版社, 2016.
[9] 王移芝, 金一, 周圍. 基于“計算思維”能力培養的教學改革探索與實踐[J]. 中國大學教學, 2014(3): 49-53.
[10] 劉光蓉. 融入計算思維的 C 語言實驗教學設計[J]. 實驗室研究與探索, 2015, 34(10): 81-83.
[11] 嵩天, 黃天羽, 禮欣. Python 語言: 程序設計課程教學改革的理想選擇[J]. 中國大學教學, 2016(2): 42-47.
[12] 王亞杰, 王曉巖, 邱虹坤, 等. 基于愛恩斯坦棋的程序設計課程教學案例設計[J]. 計算機教育, 2012(18): 75-77.
[13] 李飛, 王亞杰, 尹航, 等. 基于幻影圍棋的C語言課程教學案例設計[J]. 計算機教育, 2016(10): 117-119.
論文關鍵詞:行動導向,C語言,教學設計
1.引言
C語言是一種面向過程的計算機程序設計語言。它既有高級語言的特點,又具有匯編語言的特點,具有簡潔、緊湊、使用方便靈活,以及生成目標代碼質量高、程序執行效率高、可移植性好等特點,廣泛應用于操作系統開發、應用程序設計及嵌入式開發。C語言是軟件開發領域最主流的設計語言之一。是目前高等院校以及高等職業學校理工科專業開設范圍最廣的一門程序設計語言課程。然而對于從沒有接觸過程序設計有些甚至對計算機原理了解都比較少的學生而言,學習C語言存在較大的難度,同樣對于講授C語言的教師也往往感覺課程推進較困難。C語言教學一般分為課堂講授、上機實踐、課程設計等幾個環節。課程結束之后學生不會C語言的基本應用。為解決C語言教學中出現的問題,需要我們不斷探討、改進教學方法。本文將行動導向教學方法引入到C語言教學中進行了一些嘗試與探索。
2.行動導向教學法概述
行動導向教學法是以“行動導向驅動”為主要形式,在教學過程中充分發揮學生的主體作用和教師的主導作用,注重對學生分析問題,解決問題能力的培養,從完成某一方面的“任務”著手,通過引導學生完成“任務”,從而實現教學目標。從學生接受知識的過程看,知識來源于實踐,在實踐中得到感性認識,經過反復實踐才能上升到理性認識論文范文,并回到實踐中去。
教師對課程知識點進行規劃分解,針對學生的情況制定科學、合理的任務,以及準備學生完成任務所需相關材料。課堂上下發任務,讓學生清楚的理解他要做什么。然后采用合理的方式引導學生去分析解決問題。最后對學生完成任務的結果進行積極的評價。
行動導向教學法在C語言課程教學設計中,所進行的實踐教學并非是指編程序上機實習驗證,而是針對C語言程序設計中編程思想應用行動導向教學法進行的教學設計。下面就本人教學設計的一個案例進行闡述。
3.教學設計案例
常用排序算法模擬應用—行動導向教學法教學設計。教學設計方案:第一階段,任務描述:將班級的學生按座位列分成四組,A、C組利用選擇排序法,B、D組用冒泡排序法分別將將本組學生按年齡遞增排列,每組同學旁邊放置一個空椅子可供利用。要求是每次能且只能移動一個同學坐到空出來的椅子上。第二階段,在學生實施排序前先給每組學生相應算法的說明文檔。讓學生給定的時間去進行閱讀、討論并制定出實施方案。第三階段,讓各小組同學根據自己制定的方案實施排序操作,并驗證結果是否符合他們的預期。同時密切注意觀察并記錄他們的問題。第四階段,讓小組間相互評價,對本小組排序方案及實施過程中的問題進行自我總結,。第五階段,對每組任務的完成情況進行評價,并給予指導。可以調換排序方法按體重重復以上任務步驟。最后一階段,問題的抽象及算法實現。這一階段對于學生較為困難,可以指導抽象出任務處理的對象—數組數據,重復性的動作—for循環模式,位置的移動—循環變量等。這樣學生主動學習使用相關C語言語法規則,并摸索和思考其使用方法和模式。之后給出一些相關的習題讓學生模仿練習,鞏固應用。
4.教學思考及效果評估
在這個教學設計實施過程中,激發學生的興趣,調動學生積極參與實踐活動是教師首要的任務,在學生實踐能力相對薄弱的教學中教師的引導作用顯得更加重要,因為在這個問題域里,學生是主體站在“風暴”的中心,只有學生被激發出來關注到實踐過程的每一個細節,才能完整的描述實現的過程,將這個程序設計的靈魂—算法的思想融進大腦里,進而抽象完整的模型,思考如何利用C語言去實現。這樣的教學設計注重編程思想而側重C語言語法規則。我們可以讓學生抓住“靈魂”這根繩索去探索如何去應用C語言里紛亂的語法規則論文范文,學會在實踐中學習。
經過測試,這樣的教學效果也較為明顯,學生對for循環的理解較為透徹,應用較熟練。整個學期過后,學生對這一塊兒C語言知識印象明顯深刻。“行動導向”的教學過程中,學生不但在完成任務的過程中掌握了C語言知識,通過相互溝通討論問題,增強了表達交際能力,提高了學生分析問題的能力。完成任務的成就感不僅增強了學生學習C語言的自信心,提高了學生深入學習C語言知識的興趣,形成學習的良性循環。
5.結束語
鑒于C語言計算機應用的廣泛性和重要性,作為計算機專業的入門級課程,有必要不斷的探索新的科學、適用的教學方法,加強實踐教學,注重引導學生編程思想的培養,從各方面調動學生的興趣和積極性,感性認知,理性理會,學好C語言并會利用C語言進行程序設計。
[參考文獻]
[1]譚浩強.C語言程序設計(第三版)[M]. 清華大學出版社,2005.
[2]姜大源.學科體系的解構與行動體系的重構——職業教育課程內容序化的教育學解讀[J]. 教育研究, 2005,8 .
[3]劉丹青.以學生為中心的教學——行為導向教學論的探討[J].教育與職業, 2005,1 .
1966年,美國計算機協會設立了一個獎項――圖靈獎,專門用來獎勵對計算機事業做出重要貢獻的個人。圖靈獎的評選極為嚴苛,一般來說,只有某人提出的理論或做出的成果經過了漫長時間的檢驗,仍然被奉為經典,并對計算機科學領域產生重大影響時,才有可能榮獲此獎。因此,這個獎項的含金量極高,號稱“計算機界的諾貝爾獎”,也有人認為它是計算機界的“終身成就獎”。比如2009年捧回圖靈碗(圖靈獎杯呈碗狀)的查爾斯?薩克爾,就是因其在上世紀70年代設計與實現了第一臺現代個人電腦Xerox Alto而獲獎,其得獎時間與獲獎成果問世時隔近40年之久。
然而,卻有這么一個人,在1974年以36歲的“少齡”捧回了屬于自己的圖靈碗,成為了史上最年輕的圖靈獎獲得者,他就是唐納德?克努特,而我們更習慣叫他的中文名字,高德納。
幫助高德納贏得圖靈碗的,是一套名為《計算機程序設計藝術》的系列叢書,確切的說,是這套叢書的前三卷:《基本算法》、《半數值算法》以及《排序與查找》。雖然叢書的名稱洋溢著一種撲面而來的藝術氣息,但千萬別懷疑,這部叢書絕對是計算機界堪稱經典的神作,其地位不亞于數學界歐幾里德的《幾何學原理》以及牛頓的《自然哲學的數學原理》。
如果你對計算機并不算了解,那么,請千萬別被這幾個看似簡單的名字給迷惑了,比如說《基本算法》,看書名好像是計算機入門書籍,但就連微軟創始人比爾?蓋茨當年也是花了好幾個月的時間,才看完了這一本書,而且還做了大量的練習才勉強算是掌握了這些算法,按蓋茨的意思,只要能解決這本書里的每一個問題,就有了成為一名優秀程序員的本錢。不過高德納顯然比蓋茨直率多了,他表示:看不懂的話,趁早改行吧!
直到現在,想在計算機領域有所成就的人,《計算機程序設計藝術》系列叢書也是其必選讀物,而其經典程度,只要看看圖靈獎評委會那些一天到晚只會吹毛求疵,眼睛恨不得長在頭頂上的家伙,在這套叢書剛出了前三卷就上趕著給高德納頒發了圖靈獎,就可見一斑。
我是藝術家
不過,這位年輕的計算機天才,卻認為自己是名藝術家而非科學家。當然,這倒并不是因為他小時候曾經夢想著要成為一名音樂家,而是在高德納眼中,“計算機科學”本身就不是科學,而是一門藝術:藝術是人創造的,而科學不是;藝術可以無止境提高,而科學不能;藝術創造需要天賦,而科學不需要。這樣的看法,在計算機領域絕對是獨樹一幟。
事實上,高德納本人的行為,也的確更像一名才華橫溢、張揚隨性,又有些極端完美主義的藝術家。高德納剛剛捧回圖靈碗后,就做了一個讓計算機科學界跌破眼鏡的決定,那就是宣布從此封筆,不再寫書,而原因竟然是“排版工具太差,破壞了整套書的美感”。如果擱在今天,網友一定會吐槽,你怎么不說電腦耗電太多,不節能環保呢?這件事在當時引起了軒然大波,許多人開始質疑高德納已經“江郎才盡”,也有人說他是沽名釣譽之輩,圖靈獎真是發錯人了。
面對種種非議,高德納卻仍然我行我素,再也不提繼續寫書的事情,也沒有任何解釋,默默開始了在世人眼中“不務正業”的生活。10年之后,當高德納的成果逐一問世,并令世人震驚之時,曾經的質疑與非議卻顯得那樣可笑。
他設計開發的排版系統TEX,在出版界掀起了一場革命,當科學家使用TEX系統書寫論文時,再也不用為輸入各種公式、調整頁面信息而發愁了。TEX引領了科學排版的規范,其完美程度令其他排版軟件所汗顏。高德納曾放下豪言,只要有人發現TEX的一個錯誤,就會支付他2.56美元,發現第二個錯誤,就會支付他5.12美元,如此指數遞增。想想看,這要對自己的軟件有多大的信心才能給出如此的承諾?要知道,如果一個人在TEX中找到20個錯誤,高德納就將支付其數百萬美元,不過時至今日,高德納卻并未因此而破費太多。
與此同時,高德納還同時開發出了METAFONT字體設計系統以及文學化編程語言。前者的所有字體都是用幾何方程定義的,其風格前所未有;而后者則更像是高德納在對世界宣言:計算機代碼也能像詩歌一樣優美動人,事實上,他還用這種語言寫了一本名為《斯坦福圖形數據庫》的書,讓那些覺得計算機代碼枯燥乏味的同行,“體味”一下高雅優美的計算機語言寫出的文學作品。
不完美,不成活
當TEX系統問世之后,高德納終于再次執筆開始著述《計算機程序設計藝術》的第四卷《組合算法》,這卷書問世之后,再一次讓人們發出了嘆為觀止的感慨。而高德納之所以能夠寫出這樣的神作,與其追求完美的性格是分不開的。
其實在高德納還是小學生的時候,他追求完美的性格就開始有所展現。在他8歲時,一家糖果商到高德納所在的小學去促銷一種名為“Ziegler’s Giant Bar”的棒棒糖,他們提出,要讓學校的孩子用棒棒糖名稱中出現的字母來任意拼寫單詞,寫出最多的孩子將獲得優勝。高德納知道之后,找了個借口請假回家,翻著字典找出了4500余種組合,并記了下來。比賽時,高德納毫無意外地獲得了冠軍,因為裁判手中的參考單詞表中,只有2500多個單詞。
看到這里,我們就發現,當時高德納因為“排版工具太差,破壞了整套書的美感”而拒絕繼續寫書,并不那么奇怪。但是高德納的完美主義,以及他的藝術家風格,卻又和現如今很多“另類”的年輕人完全不同。他追求完美,但卻不自大,他說“一個人要把事情做得完美,只有當他跟上帝的意圖保持和諧”;他感性文藝,但卻不脫離現實,他說寫書就要寫給普通人看,這樣普通人和專家都可以看懂,如果寫給專家看,那么專家估計也看不懂。
關鍵詞:計算機專業 產學研 協同創新 制度創新
中圖分類號:G640
文獻標識碼:A
文章編號:1004-4914(2017)01-205-02
一、計算機專業產學研相結合教學模式運作的條件
計算機專業是一個實踐性和科研性比較強的專業,其學習的過程就是一個理論學習、實踐探索和科學研究的過程。而我國高校計算機專業具有研究性和實踐性并存的特點,承擔著計算機科學與技術的研究和實踐的使命,因此最適合產學研相結合的教學模式。
要將這種模式在我國高校計算機專業的教學中進行運作,應該具備以下條件:首先,要在教學組織上給予保障,要組建一支師德高尚、學風嚴謹、業務技術精湛、內部結構合理且技術成果顯著的教師團隊。其次,要與相關高校、軟件企業、科研單位進行合作,要善于利用互聯網資源進行實踐教學活動。第三,要建立健全相應的規章制度,建立一整套適合產學研教學模式的管理制度、技術和科研成果考核辦法、資金審批管理制度等。第四,要加大經費的投入。無論是學校和企業相結合,還是科研和教學相結合都需要相應的經費做保障。不加大經費的投入,推行產學研相結合的教學模式就是一句空話,所以經費的保障是至關重要的。
二、計算機專業產學研相結合教學模式的具體步驟
根據近年來對當代大學生學習態度、學習成績和心理狀態的研究表明:隨著年級的升高,大學生對自己的要求會降低標準,對學習表現出一種無所謂的態度,在專業學習上、情感上都出現滑坡的現象。教育界的專家們將這種現象稱為“大二低潮現象。”因此,產學研相結合教學模式需要從大一就開始,這樣一來,我們就能趕在“大二低潮”到來之前,及時給大學生們打一針“預防針”。使他們在沒有出現滑坡之前就開始進入一種完全不同于高中階段的、全新的教學模式之中。
1.建立產學研相結合的的實踐教學體系,注重五個能力的培養。通過對計算機專業大學生的能力構成研究,我們認為大學生的專業能力包括自主學習能力、認知實踐能力、初步設計能力、綜合實踐能力與軟件開發能力。要培養這種能力主要經歷以下幾個階段:
(1)見識性實習階段。在這個階段主要是通過組織學生參觀企業、往屆畢業生回校講演、技術報告會、專家座談會和一系列的專題講座來完成。一般安排在大一來完成。通過這個階段的教學實踐活動,主要是培養學生的認知能力,也稱為認知實踐能力。
(2)生產實習階段。這個階段主要是通過深入到工業和信息企業去熟悉生產環境、參與開發過程和頂崗實習等形式,了解工業和信息產業的生產組織活動。通過這個階段的學習和實踐活動,讓學生了解開發過程,形成初步的編程能力。這個階段一般安排大二來完成。這個階段學生對課堂教學形式有些厭倦,我們安排他們換個環境,到企業去學習軟件工程設計,掌握初步的編程技術,這樣可以提高他們的學習和研究興趣。這個階段主要是對初步設計能力的培養。
(3)課程設計和專題訓練階段。在這個階段中要結合課程的學習進行企業實訓和實踐性教學的無縫對接。比如安排學生在師傅指導下完成課程設計作業,或者在工人師傅指導下完成專題實訓課程的學習和綜合實訓課程。這個階段主要是綜合實踐能力的培養,一般是在大二的下學期和大三上學期來完成。這個階段主要是對綜合實踐能力的培養。
(4)畢業實習和畢業設計階段。在這個階段中要安排學生參加創新和科研課題的開發活動,學生可以根據自己的興趣參加研究生師兄和老師的研究課題,參加計算機項目的開發和研究。也可以根據企業的需要參加企業的項目開發活動。然后根據項目開發的情況作出畢業設計,寫出畢業論文,畢業論文必須經過軟件的檢測,并經過其他老師的評閱才能作為畢業論文參加答辯。這個階段是對大學生學業成績和職業技能的綜合訓練和考核階段。一般是在大三下學期開始安排,大四最后一個學期結束。這個階段主要是對創新和科研能力的培養。
2.專題訓練要經過科學的設計,要建立專題實訓庫。一般來說,專題實訓課程是要過教研室集體建設的,要經得起實踐的檢驗和歷史的檢驗。具體內容有:第一是軟件工程專題訓練題庫;第二是程序設計專題訓練庫;第三是數據庫專題訓練庫;第四是軟件質量和軟件測試專題訓練庫。
3.創新基地的建設要以研究團隊做主力。創新題目主要來源:第一,老師的科研課題。大學生參加老師的科研課題,可以在老師的指導下學習程序設計的技術和經驗。第二,企業或學院的科研課題或工作任務。學生承擔企業或學院的程序設計任務,獨立完成計算機編程工作,有利于獨立工作能力的形成。第三,各級計算機程序設計大賽。ACM國際大學生程序設計競賽(ACM International Collegiate Programming Contest)是由美國計算機協會(ACM)主辦的,一項旨在展示大學生創新能力、團隊精神和在壓力下編寫程序、分析問題和解決問題能力的年度競賽。經過30多年的發展,ACM國際大學生程序設計競賽已經發展成為最具影響力的大學生計算機競賽。賽事目前由IBM公司贊助。ACM/ICPC比賽和IOI(International Olympiad in Informatics)比賽都是使用一種稱為Online Judge(簡稱OJ)系統的計算機網絡平臺來進行題目的、解答、判分,因此具有非常高的客觀公正性。OJ系統的基本運作原理是通過服務器上預先準備的測試用例數據來對參賽選手提交的程序進行測試運行,通過檢查輸出數據是否符合題目要求來判定答案的正確與否。大學生通過參加這種競賽活動,可以提高在編程過程中的創新能力和熟練程度。
三、計算機專業產學研相結合要注意的的關鍵問題
1.要有極其廣泛的企業合作基礎。關鍵是選擇技術基礎比較好的企業作為合作伙伴,學生在這樣的企業才能學到最新的計算機技術;教師也可以應用自己的計算機技術為企業解決一些關鍵技術難題,從而做到企業和學校、技術和思想雙贏。
2.要組織起一個完善的技術團隊。要實行產學研相結合,就對教師團隊的技術能力和實踐能力提出了更高的要求,教師不能只滿足于書本知識,還要有軟件編程方面的工作經驗。這就需要教師團隊技術水平和技術能力比較完善和全面。因此,要對計算機專業教師進行培訓,安排他們出國進修和下基層企業學習和鍛煉。
3.要有足夠的經費保障。學校要與企業合作有時候需要一些經費開支,特別是產學研開始的初期,教師和學生的技術水平比較差,給企業幫不上什么忙,還需要企業的工人師傅做技術上的指導,因此我們需要付出一定的費用。到了產學研相結合的后期,我們的教師已經具備了高級程序員的編程水平,學生的技術水平也有提高,這樣我們的教師和學生都可以獨立頂崗實習了,我們不但不需要付出費用,還可以從企業獲得勞動報酬,這個勞動報酬比較多的時候,學校可以提取一些管理費用。由此可見,產學研相結合的初期需要經費支持。可以說,沒有資金的支持,產學研相結合的教學模式改革難以啟動。
4.把握好兩個關鍵時刻。在實施產學研相結合的教學模式時,需要把握好兩個關鍵時間點,一是產學研的開始時間是一年級下學期,不能推后;二是畢業設計要從三年級下學期開始。為什么呢?因為二年級學生比較浮躁不容易進入角色,從一年級下學期開始,學生那時候的學習勁頭和精神面貌都比較好,容易進入較好的學習狀態。畢業設計如果從四年級開始,學生為了找工作會牽扯很大的精力,會直接影響到畢業設計的質量。另外,還要給論文答辯留下充足的時間。
5.要充分認識到科研在產學研相結合教學模式的統領作用。科研是高校發展的時代呼喚,當代大學的重要特征就是承擔科研任務,為企業和國家完成科研項目是我們義不容辭的任務。我們應該把它放在重中之重的位置。因為只有通過參與科研項目才能在科學技術層面上有所創新、有所發展、有所建樹。
綜上所述,產學研相結合的教學模式,是一種有利于學生掌握專業技術和知識的新型的教學模式,由于這種教學模式需要懂技術有經驗的教師來完成,因此,學校需要首先對師資隊伍進行補充充實和教育提高;其次需要有與之相對應的管理制度;第三需要有足夠的經費。這種教學模式基本上實現了教學和生產科研的無縫對接,是一種行之有效的好模式。目前這方面的經驗還不足,希望教育界和企I界有關專家共同研究這個課題。
參考文獻:
[1] 孫和英,王貴喜,白殿海.產學研教學模式的研究與實踐[J]河北北方學院學報自然科學版,2000(4)
[2] 鮑文博,金生吉,寧寶寬.產學研合作實踐教學模式探索[J]高等建筑教育,2012(21)
[3] 呂素香.大二低潮現象原因及對策[J]中國高等教育,2015(10)
[4] 劉建軍.進一步重視科研在高校育人中的地位和作用[J]中國高等教育,2015(6)
(作者單位:浙江傳媒學院 浙江杭州 310018)
論文摘要:本文首先分析了當前匯編語言的教學現狀及實驗環節的重要作用,然后闡述了匯編語言實驗教學的設計思路,給出了較詳細具體的實驗內容安排。
1 匯編語言及其教學現狀
匯編語言是計算機能夠提供給用戶使用的最快而又最有效的語言,也是唯一能夠利用計算機所有硬件特性并能直接控制硬件的語言。對程序的空間和時間要求很高的場合,匯編語言的應用是必不可少的,至于很多需要直接控制硬件的操作場合則更是非用匯編語言不可。用匯編語言編寫的程序的執行速度通常比高級語言(如C/C++)快很多,甚至成百上千倍。相應的,匯編語言的缺點就是使用者需要對硬件有更深入的了解,編程效率不高。
“匯編語言程序設計”課程的任務是為“計算機組成原理”、“接口”、“操作系統”等后繼課程提供必要的基礎知識,它對訓練學生掌握與硬件相關的程序設計技術、從事自主版權計算機芯片和系統軟件的開發、信息安全、過程控制等方面,均有十分重要的作用。無論計算機技術如何發展,機器語言、匯編語言的計算機程序設計語言體系仍然是計算機技術的基礎,也是計算機技術的重要知識體系之一。不能了解和熟悉匯編語言,不僅將導致學生知識結構的缺乏,也可能導致學生認知水平的降低,開發手段的貧乏。
然而,初學者往往感到它難學、難懂、抽象,更難以掌握。教師開展教學困難,學生學習和掌握困難,教學效果差,以致會影響后繼課程的學習。
2 實驗環節在匯編語言教學中的作用
在計算機相關專業的教學領域,實驗和實訓教學是培養大學生學習能力、實踐能力、思考能力、創新能力的重要環節和有效途徑。顯然,學生在學習匯編語言這門課程中產生的困難,首先來自于他們對所學知識缺乏必要的感性認識,沒有充分的實驗。
計算機在很多方面不同于其他學科,尤其是與硬件有密切關系的課程。由于匯編語言課程具有硬件操作的密切相關性,實驗環節在整個教學活動中就占據了舉足輕重的地位.匯編語言的實驗對培養學生的動手能力和學習興趣,提高學生閱讀、編輯和調試程序的能力,有著不可替代的重要作用。學生通過實驗課深入了解CPU、存儲器、接口及外部設備的工作特性,對數據在計算機中的表達和傳送產生感性認識。在實驗中對匯編語言達到更好的理解、掌握,從感性認識上升到理論認識。
3 實驗教學的設計思路
由于各高校辦學類型不同、培養目標不同、所在地及周邊地區社會需求不同,計算機及其相關專業的教學內容也應有所不同。對于非研究型院校的相關專業,對“匯編語言”的教學可以集中在適度的理論知識和充分的操作實踐上。“適度”體現在理論課的講授中內容不必展開太寬,“充分”體現在實驗課的安排上要充分。
盡管學生學習匯編語言有著不少困難,但“興趣是最好的老師”,要激發學生的學習興趣。有了興趣,他就能積極地思考,大膽地探索,變被動接受為主動思考。因此,匯編語言的實驗教學總的思路就是要以激發學生興趣為主線,盡量設計趣味性的實驗內容,充分發揮學生的積極性和創造性。
很多學生不重視實驗課的主要原因之一是認為實驗課的好壞對學習成績影響不大,目前多數院校的學習成績評定,僅以期末一張考試卷的好壞而定,這使很多學生重理論、輕實驗。因此,應認真記載每個學生在實驗課上的實際操作能力和編程能力,并以優、良、中、差進行仔細考核,開學初就明確告訴學生這種考核制度的存在,使之開始就沒有怠慢的情緒,從思想上重視實驗。
實驗教學的安排按照由淺入深、循序漸進的方式進行,合理選擇實驗內容,盡量避免過多過雜,內容選擇注意舉一反三,即以啟發思維為主,對設計型、綜合型實驗只要能完成預定實驗目標,不苛求實驗過程與步驟的統一。實驗所演算的匯編語言程序應具備好的觀測效果,能直接體現計算機的操作特點,教師演示和學生實踐穿行,并且注意重復對比,讓學生發現自己操作的失誤,加深對匯編語言操作規律的理解。
實驗教師在實驗中主要起到引導的作用,實驗前的講解以重點、難點和注意事項為主,不應面面俱到,可以先給出一些問題,讓學生帶著問題去做、去觀察、去思考。實驗中,則應以學生為主體,讓每個同學通過操作行為感受計算機的物理過程,教師將理論揉在實例中的具體操作中,學生會感到數據是有形的,CPU的操作是物質化的。經過反復練習,學生不但學到了基礎知識,而且提高了綜合分析和理解能力。實驗中,還要鼓勵學生自己修改實驗,有時學生對自己編的程序沒有把握,一旦上機實驗后就清楚了。他在計算機上修改程序,觀察修改后的結果,實際上就是了解改動部分在整個程序中所起的作用,這種作用的認識和理解不是通過說教得來的,而是切身經歷的、看到的,學生對它的理解、記憶就要深刻得多。
4 實驗內容的具體安排
具體的實驗內容應覆蓋匯編語言教學中的各重要方面,內容涉及debug、匯編語言編程環境、匯編語言程序設計、輸入輸出與中斷、Win32匯編、匯編語言與C語言的混合編程等。類型分為選作和必做。每個實驗分屬驗證型、設計型或綜合型。
4.1 穩扎穩打練好基本功:debug和編程環境
“萬事開頭難”。對匯編語言的學習,能否開好頭很關鍵,很多學生就是因為開始沒學好,感覺跟不上,就不再認真地學習了,有的甚至放棄了。其實匯編語言實驗開始的基礎部分是比較簡單的,想掌握它是沒什么大問題的。
匯編語言源程序通常以ASCII文本文件的形式保存,通過匯編鏈接形成一個EXE可執行文件。對EXE文件的調試構成了實驗課的主體內容,貫穿始終,而EXE文件的調試通常是通過debug實現的。學生通過使用debug可以觀察到存儲器的數據存儲情況,也可以隨時觀察到CPU中寄存器的數據變化。debug的反匯編命令是理解匯編語言的助記符形態和機器指令的01碼形態的對應關系的重要工具,學生可以通過它深入體會匯編語言中指令的構成及各部分含義。debug提供的單步執行命令是另一個重要工具,利用t單步執行一條指令,及時觀察數據緩沖區的變化情況,這也是進行調試、發現程序錯誤的最直接有效的方法。
debug的實驗部分以使用a、t、r、d、u等命令為主反復進行指令練習。學生通過使用debug觀察到指令執行前后機器中數據的變化,對深入理解計算機的工作原理、匯編指令的作用是直接的和不可替代的。學生不再感到機器是復雜的,指令是抽象的。
接下來安排的實驗則是對匯編語言編程環境的熟悉和掌握,這也是重要的一環。對編程環境不熟悉,不僅會影響學習匯編語言的效率,還會引起一些不必要的錯誤發生。因此可以考慮多給幾個簡單完整的程序,讓學生多去 使用編程環境,熟悉匯編鏈接過程。實驗初,只給一些正確的程序,讓學生經過匯編鏈接可以較容易地形成exe文件并成功執行,看到了正確的結果,學生就有了方向,也就有信心去做下面的實驗了。
在熟悉了簡單的編譯過程之后,接下來可以在原有程序中適當安排一兩個錯誤,讓學生觀察匯編鏈接中出現的錯誤信息,理解這些錯誤發生的原因,這一點對程序調試是至關重要的,如果看不懂錯誤信息,就沒有辦法正確定位錯誤,也談不上修正錯誤了。
以上分析,學習匯編語言伊始,一定要練好基本功,包括對debug的熟練使用,對編程環境的熟悉。這部分實驗一定要安排得充分,力求使學生不再對機器望而生畏,不再對匯編指令有抽象難懂的感覺,如果能開好這個頭,后繼的學習就順利得多了。
4.2 輕輕松松做改變:匯編語言程序設計
由于學習匯編語言之前,學生通常已經學習過一門程序設計語言,因此這部分實驗可安排簡單、典型的驗證型、設計型實驗,以編寫程序為主。先要求學生用之前學過的程序設計語言實現,然后再給出匯編語言的實現,通過對比;學生自然可以發現匯編語言與其他程序設計語言的異同。當程序出現錯誤時,則必須要求學生使用debug進行調試,觀察變化,排除錯誤,加強程序調試能力。
4.3 細心耐心學核心:輸入輸出與中斷
中斷是學習匯編語言的重點加難點部分,能否真正掌握匯編語言也在于此,中斷也是匯編語言的魅力所在。這部分實驗一定要找一些學生感興趣的、具有明顯觀測效果的例子,至少安排兩個階段的實驗。第一階段以驗證型實驗為主,先使學生熟悉中斷過程、中斷處理程序的框架;第二階段以設計型實驗為主,讓學生自己去思考中斷過程中發生的事情,中斷程序設計的方法。對這部分知識的傳授一定要有耐心,對每個程序的講解要透徹、概念清晰。中斷是真正要用的東西,之前學習的內容只是為它做鋪墊,不能學好中斷,匯編語言這門課的真諦就沒有學到。
4.4 興趣延伸:WIn32匯編、匯編語言與C語言混合編程
很多學生學習匯編語言之初就會問匯編語言用在哪里,很少接觸到匯編語言等問題,其實現在匯編語言很少單獨使用,而Win32匯編、匯編語言與C語言的混合編程用的比較多,這兩部分內容學起來并不難,可當作拓展知識部分,作為自學內容。教師可以找一些實際使用這部分內容的例子,讓學生知道匯編語言的用途,使學生不再“學而不用”,“學而不知用”。