前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的電腦程序編程教學主題范文,僅供參考,歡迎閱讀并收藏。
Scratch課程的內容不能枯燥地講解算法知識點,教師應該把知識點滲透到各個實例中,由一個個鮮活的實例層層遞進知識點,讓學生通過制作實例來學習編程,體驗一個程序完整的開發過程,知道計算機程序解決問題的方法,從而發展學生的計算思維。所以,教學實例的選擇必須注重從學生的實際生活出發,提煉生活中的問題,貼近學生的認知,對案例的熟悉度和理解程度是對實例抽象和分解的基礎。筆者就以《口算軟件》為例,談談Scratch實例教學中滲透計算思維本質教育的一般操作流程和策略方法。
抽象建模,形成思維
所謂抽象,是指通過忽略可有可無的細節來降低難度。將一個現實問題轉變成為計算機可以處理的問題。抽象是選擇案例后實施編程前的一項重要工作,學會抽象可以更容易找到Scratch編程的切入點,更好地理清程序規則。
1.情境模擬,化抽象為具體
教師根據實例內容與教學目標,有針對性地設計任務情境,并讓學生扮演角色模擬情境過程,在高度仿真的情境中感受程序抽象問題,讓抽象問題具體呈現出來。
首先筆者通過情境模擬二年級學生舉辦一個口算大賽。模擬過程:讓2位學生帶上頭飾,一位扮演二年級的學生,一位是扮演電腦小博士。教師說開始,并請電腦小博士出一道2個數相加和為20以內的加法題,學生回答問題,電腦小博士思考后說:“恭喜!答對了”或“答錯了!加油哦!”(如圖2)。筆者接下來讓學生“玩”程序,把剛才的仿真情境在電腦中重演一遍。隨后筆者提出問題:①程序里有幾個角色?②表演中的“學生”角色在哪里?學生經過初步判斷得出四個角色分別是電腦小博士、加數、被加數、答案,后面是舞臺背景,里面包括“口算大賽”“+”“=”等元素。但這僅僅是理清了一部分角色,其中加數、被加數和答案并非是角色,這為后面埋下伏筆。在教師的引導下,學生觀察和思考后,得出表演中的實際角色“學生”就是軟件的使用者,在程序中可以不用出現。
用模擬情境的方式導入大大增加了學生的學習興趣。讓學生在“玩”中感知程序的操作方法及各對象的關系,從而把抽象的程序變得具體,并可以“觸摸”。
2.思維導圖,從無形到有形
思維導圖能很好理清程序中角色的關系,讓學生一目了然地了解現實生活和計算機世界的聯系,學會把無形的思維過程轉化為直觀有形的導圖。筆者通過情境模擬,并以問答的形式,引導學生思考程序所需要的角色;讓學生仔細觀察舞臺上的加數和被加數,使其發現每次重新出題時,加數和被加數發生變化。像加數和被加數這樣在程序運行過程中沒有固定的值,隨時發生變化的量,稱為變量。從而引出本節課的重點――變量。筆者出示程序的思維導圖(如圖3),并層層提問,引導學生思考問題的關鍵點。以“圖”的方式來整體規劃,將現實生活中的對象與計算機要處理的對象一一對應,化無形為有形。
分解問題,理清思維
計算思維中分解的概念是把一個看起來困難的問題重新闡釋成我們知道怎樣去解決的問題。經過分解后,這些零散的部分才能夠被理解和解決,從而降低大型實例的設計難度。學生通過分解問題,理清每個角色的動作與編程思路,將難點進行分解并一一突破,從而從無序狀態中脫離出來,找到解決問題的關鍵點。
1.簡化自然語言,分解出程序步驟
筆者引導學生通過抓重點詞的方法,去葉存枝,有效地把握程序運行的方向,這樣制作范例時思路會更加清晰。經過抽象建模,筆者要求學生根據思維導圖,對編輯過程進行自然語言描述。簡化學生的自然語言描述,最后圈出重點詞:出題目、詢問、回答、思考、說。經筆者引導后得出:“回答”是程序操作的個人行為。最后分解得出電腦小博士的程序步驟:出題目詢問判斷說。
2.拆分執行效果,細化出腳本模塊
學生操作程序并仔細觀察確定程序的四個主要問題,再在此基礎上細化出所需要的模塊:①加數和被加數的數值范圍如何賦值?②詢問框和答案如何顯示?③正確答案是如何計算出來的?④何時說“對了”或者“錯了”?
其中問題④最復雜,它是電腦小博士的思考過程,也是步驟中的第三步“判斷”。為了幫助學生理清規則,筆者讓他們描述電腦小博士的思考過程,利用語文中“如果……否則……”的關聯詞來造句,從而理解條件判斷語句。
師:這個條件判斷的條件是什么?
生:題目回答正確。
師:怎么樣才算回答正確呢?(這也是比較難以理解的,因為學生難以體會到電腦的思考過程是如何)什么情況下算答對?
生:答案與回答進行比較時。
從而教師引出邏輯運算符腳本模塊:等于號(=)。最后,將其梳理為“當……時,角色會……”的Scratch語言結構,得出使用判斷腳本模塊。當答案和回答相等時,電腦小博士會說“答對了”!否者會說“答錯了”!分析一系列問題后,學生細化腳本模塊。
提煉算法,訓練思維
算法是通過一種清晰定義的步驟來解決問題的方法。之前抽象和分解起到了鏈接自然描述語言和軟件編程語言的作用。在此基礎上,要針對每個小問題,形成解決問題的算法。此時放手讓學生在Scratch中進行程序設計是很困難的,因為分支和循環很難表達清楚,為此筆者借助流程圖突破重難點來提煉算法。
1.流程圖護航,自主“擺弄”
“擺弄”是Scratch編程學習的精髓。由于學生設計經驗不足,所以筆者給出流程圖(如圖4),這樣能更有效、更規范地描述算法,引導學生在Scratch中找到相應的代碼塊。學生已經知道所需的腳本模塊,通過流程圖和所需模塊,嘗試自主搭建,體驗“擺弄”模塊的樂趣。學生通過細化腳本模塊,查看流程圖,思路基本形成,這為自主完成奠定了基礎,為自主學習提供了支點。
2.重難點突破,吃透算法
“口算軟件”的重難點是:搭建條件判斷語句,從而對變量有初步的認識。為了解決“條件如何搭建”的問題,學生展開了激烈的討論,并討論得出了多種算法設計。雖然不同的算法執行的效果會略有差別,但重要的是學生在討論和不斷擺弄的過程中,拓展了思路,發展了計算思維,這才是教師期望達到的目的。案例中要讓程序自動出題,需要利用循環結構,通過比對執行效果,學生會非常容易理解循環算法,并能合理利用。
糾錯調試,鞏固思維
“糾錯”是Scratch教學中另一個重要的環節,貫穿了整個課程的學習過程。從學生設計腳本程序時,糾錯的行為就始終伴隨著,更體現了“擺弄”的重要性。學生在調試作品時,需要像計算機執行程序一樣去思考執行語句,理解執行每一步模塊應該出現的現象,并與實際的執行結果進行比較。當發現效果與預想的有偏離時,就要不斷地糾錯,調整程序,采用不同的算法實現效果,在“構思―編程―測試―調試”的過程中進行糾錯,反復磨練,這樣學生不僅在知識、技能上會有進步,在計算思維上也會有所提升。
1.閱讀腳本,糾錯更自主
閱讀是人類的基本技能之一,但在信息技術教學中常常被忽視,在程序調試時,它是一種行之有效的方法。隨著程序學習的深入,學生發現運行錯誤,想要尋找問題的根源,卻因為程序代碼模塊數量的增加而無法找到出錯代碼。為此,筆者引導學生一邊讀代碼,一邊添加“注釋”,這是一種糾錯思維,也很好地解決了問題腳本定位的問題。例如,邊讀“口算軟件”腳本邊注釋。“點擊綠旗開始,將變量加數和被加數賦值為0到20之間的一個隨機數值”(注釋:出題);“如果加數+被加數=回答”(注釋:判斷);“就詢問請回答并等待”(注釋:詢問);“如果正確‘恭喜,答對了’,否則就說‘答錯了,加油’”(注釋:說)。這是一道題目的出題過程,要讓程序重復出題,則需要再讓這段程序腳本重復執行。學生經過讀一讀和注釋后,再加上教師的引導,就會發現腳本中的錯誤,不斷調整角本。
2.小組協作,調試更有效
教師為學生提供如何調試程序的學習單。對“口算軟件”這個程序先進行調試,觀察并記錄錯誤的現象,找出錯誤語句后,學生相互討論,分析解決這些問題的方法,修改程序,重復調整的環節,直到程序完全正確。
例如,在《口算軟件》教學中,程序出現不能正常出題,或者出題內容不是1到20之間的一個隨機數,學生應該先找到問題語句,并對其進行分析,填寫糾錯學習單(如表1),記錄程序中的錯誤現象和錯誤語句,再考慮“如何修正”;如果不會修正,則可以通過小組協作來解決問題,或者請教師單獨指導調試。學生通過對程序的糾錯調試,不僅鍛煉了自身的計算思維能力,而且對知識進行了鞏固,為拓展埋下了伏筆。
歸納總結,沉淀思維
歸納是去情境化的過程,讓學生剝離實例學習所運用的各種編程技巧和方法,能通過類比的方法,把握共性問題,將一個問題的解決方法遷移到另一個問題中,形成一種內在的思維能力。經過前面四步,學生已經初步形成了計算思維能力,但這種思維能力并不成熟和穩定,需要在教師的引導和任務支配下才能完成,因此,學生需要借助歸納、實踐來強化和鞏固學習結果。
1.分析方案,再用變量歸納總結
經過這種去情境化的過程后,學生就可以接受更多的挑戰性任務,進行創意計算作品的自由創作。本節課主要的學習內容是“變量”應用,變量強大的功能為學生提供了挑戰性的任務,讓學生的創新力超前發展,使其在實現想法過程中獲得成功的喜悅。教師再增加拓展環節:我們為“口算軟件”添點功能吧,為腳本添加一個“評分方案”。學生思考變量的起始分值和分值變化,并填寫完成表2。再創作為程序的升級環節,筆者通過一系列的問題和表格來引導學生運用變量控件解決問題。在創作的過程中,學生不僅要對變量進行識記和理解,更需要對變量進行深入的分析和靈活的運用,這對學生的計算思維提出了更高的要求。
2.作品展示,分享、交流、沉淀思維
關鍵詞:PLC 電工專業 教學
中圖分類號:G712
文獻標識碼:A
文章編號:1007-3973(2012)006-001-02
PLC是可編程程序控制器的英文縮寫。該項技術起源于上世紀70年代美國通用公司的汽車流水線,用于取代當時主流的電磁式低壓電器構成的硬件強電控制系統。經過40年的改進,PLC技術已日臻完善。因其各方面的優點,該項技術目前廣泛的應用于工業生產的強電控制、各類生產機械的強電控制、以及民用強電控制等方面。PLC技術是目前主要的強電控制技術之一。對于中職電工專業的學生來說,初步掌握這門技術對學生就業和專業上的發展有舉足輕重的作用。我校于五年前開展這門課程的教學,筆者擔任這門課程的主講老師,多年的教學總結和積累,有些許經驗與大家分享。
1 硬件的配備
實踐是應證和鞏固理論知識、熟練操作技能的重要途徑。對于中職學校的學生來說,其重要作用更是不可替代。因此配備一個專門的PLC實訓室是PLC教學不可或缺的重要組成部分。該實訓室應配備以下軟硬件設備。
(1)編程教學和編程訓練的專用電腦。該電腦應預裝配套的PLC編程軟件、觸摸屏應用軟件、仿真軟件等。專用電腦與PLC間經常要進行數據線的連接,因此電腦主機應該有個開放的主機空間,并留有放置PLC的工作位置。
(2)簡單的仿真硬件的配備。筆者認為十字路口紅綠燈的仿真硬件是最適合初學者的仿真硬件。通過路燈基本功能的編程訓練,可以讓學生掌握各種基本軟元件的功能和特點,并能夠掌握軟元件一些基本的編程技巧。
(3)模塊化的PLC控制系統套件。單個的PLC并不具有實際的應用功能。PLC必須要與其他的硬件設備構成一個完整的系統后,才能夠完成具體的功能。因此系統其他硬件知識的學習也是非常必要的。目前我們學校應用的系統是亞龍公司研發生產的235APLC智能化控制系統套件。套件包括:安裝操作平臺、機械手組件、流水線組件、氣路動作系統、電源模塊、PLC模塊、變頻器模塊、按鈕模塊等部分。該系統整合了PLC控制系統的常用基本要素。通過這套系統的教學,可以讓學生掌握PLC系統相關硬件的應用知識。并可以通過系統課題的教學,使學生能夠綜合以上各方面知識,設計出符合要求的系統。以達到學生精通PLC知識的目的。
2 教學過程中的體會
每門課程都有不同于其它課程的知識體系和知識特點,新課程和已學課程間也可能有某種程度的關聯。根據這些知識的特點,做有針對性的講解會起到事半功倍的效果。
(1)PLC的引入。PLC、單片機、個人電腦,是計算機技術在工業強電控制、弱電控制、家用辦公控制,三個方向的不同應用。它們的側重點雖然不同,但基本結構卻一致。PLC就相當于電腦的主機。學生對電腦的了解是比較深的。因此通過PLC與電腦主機的對比教學,能夠更有效率的讓學生掌握PLC的功能結構。
(2)PLC系統的初步認知。PLC技術發明的目的就是取代目前已經落后的傳統的電磁式電力拖動控制系統。因此傳統的電力拖動系統所能完成的控制功能,能夠被PLC控制系統替代。學生在學習PLC前已經較為深入的學習過電力拖動的知識,并且親自安裝過電力拖動電路。比如說電動機正反轉控制電路,學生已經做過傳統的電磁式低壓電器的控制電路。現在再以PLC控制系統設計并制作出相同功能的控制系統,在比較的過程中學生自然就了解了PLC的基本控制原理。
(3)PLC系統的構成。PLC要與其他硬件共同組成PLC控制系統后,整個系統才能夠完成一定的功能。PLC控制系統是一種智能化控制系統,人體在某種程度上也是一種智能化控制系統。這兩種控制系統工作模式上有很大的相同點。人的大腦與感覺器官之間的神經連接,與PLC和傳感器主令元件間的輸出口連接方式類似。大腦與動作機構之間的神經連接,和PLC與電動機構間的連接方式也是類似。通過這樣類比的教學能夠減輕學生理解PLC系統工作過程的難度。并且能夠引出輸出繼電器和輸入繼電器,這兩種軟元件的相關知識。
(4)PLC軟元件的講解。PLC的軟元件是PLC編程的基本單元。根據例如時間繼電器、其功能特點都能找到與之相對應的電磁式低壓電器的硬件。例如時間繼電器、計數器、中間繼電器等都有電磁式的低壓電器原型。
(5)PLC品牌的選擇。PLC常用的品牌有西門子、施奈德、松下、三菱等。各種品牌的PLC功能結構都大同小異。講授課程時以其中的一個品牌講解就可以了。品牌的選擇可以根據實訓室配備的PLC情況進行選擇。我校三菱PLC配備齊全因此在教學中,斡旋中講解三菱的PLC。
(6)PLC程序運行過程的掌握。掌握PLC程序的運行過程,是學生的編程水平由初級向中級進展的一個重要知識點。只有真正理解了PLC程序的運行過程,學生才能夠理解運行數據和程序運行結果之間的關系,才能夠編寫出功能更為復雜的控制程序。因此授課老師應該將這個知識點作為重點來講解。
(7)其它硬件知識的掌握。傳感器、變頻器、氣路系統等其余硬件也是PLC控制系統的重要組成部分。對于這些硬件主要要求學生掌握操作知識的講解。包括這些硬件的安裝規范、電路的連接規范、信號的傳送以及處理關系、以及變頻器的程序操作方法等。對于硬件理論方面的知識就不應該過多的涉及。
3 知識點的遞進式講解
學生對PLC知識的由淺至深的掌握需要一個比較漫長的過程,因此教師應該事先對這門課程有較為完備的教學規劃,可以通過工作任務的設定,將課程的知識點依附在工作任務當中去,讓學生在完成設計任務的過程中掌握其中的知識要點,以達到最后掌握PLC知識的目的。
(1)電動機正反轉PLC控制電路的設計。該功能的電路學生在電力拖動課程中已經掌握。現在可以把該項電路功能嫁接在PLC技術里面。其中涉及到PLC技術的知識點包括:硬件的基本連接、輸入繼電器的功能特點、輸出繼電器的功能特點。完成這個課題則相關的知識點也就掌握了。
(2)十字路通燈控制電路的設計。該項設計是在已掌握的知識的基礎上,再掌握時間繼電器的功能特點、計數器的功能特點、循環控制編程方式的知識后,才能完成該項課題的設計。
(3)機械手功能程序的設計。通過該項設計,讓學生掌握以下的知識要點:步進梯形圖的編程方式、中間繼電器的基本應用。
(4)流水線功能程序的設計。該項設計要求學生掌握以下的知識點:變頻器的硬件連接、變頻器的程序操作、觸摸屏的程序設計和操作。
(5)235A整套設備的程序設計。通過該項設計讓學生掌握以下知識要點:特殊功能繼電器的功能特點、數據寄存器的功能特點、控制指令的功能特點。
4 學生以分組的方式進行的研究
每個項目以以下過程進行一系列由簡單到復雜的任務訓練。
(1)課題的布置。詳細講解該項任務的具體要求,設定相應的截止時間,分好相應的研究組,選擇好組長。
(2)課題知識點的講解。課題中涉及到的新知識點要詳細的講解給學生,并要求學生在研究中運用。
(3)學生課題的研究。給與相應的時間讓學生獨立的完成課題任務,并設定學生討論時間,在充分的討論過程中,使學生真正掌握知識要點。
(4)課題總結。總結知識要點,點評其中出現的問題,加深對知識點的理解。
關鍵詞:數據結構;Android編程;項目驅動教學
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2015)44-0108-02
移動互聯網和智能終端設備深刻地改變著人們的生產和生活方式。近幾年,智能手機出貨量已經數倍于傳統微型計算機,并成為人們訪問互聯網的最常用設備。移動智能終端包括手機、平板電腦、智能手表等,幫助人們完成了絕大多數過去依賴電腦才能進行的任務。
數據結構是電子信息專業的軟件類核心課程,注重理論和編程實踐相結合[1]。傳統的教學實踐以C/C++作為編程描述語言,以Windows或Linux系統作為算法編程實踐平臺[2]。這種教學方式的好處是能專注于培養學生的算法設計和編程等基本能力,但缺點也很明顯,學生很難將課堂所學與實際應用聯系起來。數據結構課程有一定的難度,內容略顯枯燥,如果課堂教學不能與實際應用和軟件技術發展趨勢緊密結合,則很難激發學生的學習興趣,教學效果不理想。
軟件開發類課程需要引導學生接觸新的軟件開發技術和項目實踐,讓學生體會到學有所用,增強學習興趣和信心。目前國內已有很多研究者開展了以工程項目實踐為導向的數據結構教學[3],使學生將算法設計與工程實踐結合起來。但在實際教學實踐中,還有很多難點。一方面,工程實踐要求學生具備較好的編程基礎,而學生在先修的編程語言課程中基礎參差不齊[4];另一方面,在有限的學時內,學生很難兼顧工程實踐和算法設計的學習。
本文基于新的實踐開發平臺,以解決上述問題為出發點,進行了數據結構課程的創新改革實驗。
一、數據結構編程實踐平臺
在當前移動互聯網帶來深刻變革、智能終端普及、個人電腦產業萎縮的背景下,傳統的基于PC編程開發環境的數據結構教學已經與實際應用脫節。數據結構是一門注重編程實踐的課程,基于目前廣泛使用的智能手機、平板電腦、智能手表等智能終端進行教學,不僅可以激發學習興趣,而且非常容易地為學生的后續深入學習和接觸產業打下基礎。
我們選擇Android作為教學實驗編程平臺。Android是目前各種智能終端中使用最廣泛的操作系統,主要支持Java/C++編程語言。基于新的教學實驗平臺,以Java/C++作為編程描述語言,設計新的實踐教學方案。
二、實踐教學設計特點
我們針對智能終端平臺,對實踐教學環節進行了重新設計,遵循以下特點:首先,始終以數據結構基本算法的理解和實現為重點,在此基礎上,讓學生根據自身興趣,對應用開發有不同程度的了解;其次,實踐教學的設計既適合課堂講授,也適合實驗教學,便于不斷加深學生的理解;最后,以完成實際項目作為學習任務,注重項目功能模塊細分,使學生容易跟隨教學進度。
采用實際項目進行教學會導致知識點龐雜,學生學習難以抓住重點。因此,對教學知識點的取舍和重難點劃分至關重要。在教學知識點方面,我們采取的原則是,以基本算法設計和面向對象的編程思想的應用為重點,以智能手機為主要的應用平臺進行教學,把編程語法和平臺相關的知識點放在次要位置。
三、實踐教學項目案例
(一)基于Android的學生信息管理程序
項目涉及線性表、查找、排序等知識點。具體要求為,輸入學生姓名、學號、分數等信息,按照不同的關鍵字對學生信息進行排序,并顯示結果。教案設計采取循序漸進、分模塊講解的原則,引導學生把重點放在算法的理解與實現上。項目分為三個可獨立運行的模塊,可在不同章節講授,敘述如下。
1.信息的輸入和顯示,涉及線性表的創建、添加、刪除。要求采用順序表或鏈表實現,輸入學生信息,點擊添加,將信息逐個插入到線性表并顯示。Android控件相關知識,僅作簡單介紹,提供參考代碼。
2.信息的查找,涉及線性表的查找。要求按某個關鍵字查找,列出符合條件的學生。
3.信息的排序,涉及內部排序。要求學生采用指定算法實現基于任意關鍵字的排序。作為選做題,要求學生用Java中的泛型編程實現基于任意指定關鍵字的排序,以及用comparable接口實現學生對象的比較。
(二)圖的應用(拯救007)
項目改編自浙江大學計算機學院數據結構公開課中的一道例題,通過基于Android的可視化編程,使項目變成游戲開發任務,讓學生獲得更加直觀的理解和感受,大大提高了學習興趣。項目具體要求為,“007”被困在湖中心一個正方形的小島上,湖上有很多鱷魚在游動,請幫助“007”來判斷,在某個時刻,能否通過鱷魚背,連續跳躍到湖岸上。
項目引導學生在經典的深度優先搜索算法基礎上編程求解。湖的寬度、鱷魚的數目、“007”一次可以跳躍的最大距離等作為參數輸入,鱷魚的初始狀態可隨機產生。對應用程序涉及到的Android繪圖知識僅作簡單講解,并提供參考代碼。
(三)最優二叉樹的應用
最優二叉樹是二叉樹的經典應用。項目要求根據輸入的權值,創建最優二叉樹,并將二叉樹繪制到屏幕上。項目可分為兩個模塊,分階段講授。
1.二叉樹的建立和繪制。要求學生按指定的順序建立二叉樹,并繪制在屏幕上。
2.最優二叉樹的建立。要求學生根據輸入權值建立最優二叉樹。
通過本項目,使學生對二叉樹章節的算法有全面的理解。應用程序中涉及的Android繪圖知識,僅作簡單講解。
(四)五子棋游戲的應用
項目要求學生設計一個基于Android的簡單的五子棋游戲,提供基本的參考代碼,引導學生完成棋局的判定勝負等算法。項目涉及二維數組的基本操作。
四、教學實踐分析
通過對連續兩年教學對比實驗結果分析,統計了學生的實驗到課率、實驗完成率(獨立完成實驗的學生比例)和實驗平均分,結果如表1所示。從表1可以看出,在實驗難度略有增加的情況下,2015年的三項統計結果均比2014年有所提高。
五、結語
本文開展了以手機等智能終端為實驗平臺的數據結構教學改革探索,通過對實踐教學環節的重新設計,以基本算法為教學重點,注重功能模塊劃分。教學實踐表明,新的教學方案容易激發學生的興趣,提高教學效果,能夠引導學生了解實際工程項目。
參考文獻:
[1]嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,2011.
[2]孔兵,陳紅梅,袁國武.數據結構實驗中指針相關問題[J].教育教學論壇,2014,(04):110-112.
1.1常規控制系統
可編程控制器控制系統及微處理機的單晶片控制系統具有控制系統體積減小、節能、可靠性提高,尤其是對群控、通訊等復雜電梯控制功能更具優越性。可編程控制器(PLC)的程序編輯采用易學易懂的梯形圖語言,且具有控制靈活方便、可重復使用、程序記憶體與外部輸出容量可彈性擴充、抗干擾能力強、運行穩定可靠、能與電腦連線操作等特點。
1.2信息技術應用的基礎
電梯控制系統大部分都是借助電腦的軟硬件結構,并搭配各式各樣的感應器及預先所規劃的復雜的各式操作程序,結合成所謂的人工智能。精準的監控及引導各部電梯的動作,是以模糊邏輯方法為基礎。模糊理論是根據不明確的信號,通過近似推理的過程,且經過運算而得到明確的結論,類似人頭腦中“過程模糊,結果明確”的思維特征。使用模糊邏輯數學分析統計法,能快速的找出任何時刻最適合的運行模式。文章主要以小型電梯控制系統為例,結合PLC控制技術的特點,提出了一套結合模糊邏輯理論,將推理、判斷、決策、控制等的知識思考行為,轉化成為知識庫及規則庫儲存于電腦中,再經由模糊理論法(fuzzytheory)以數值計算方法完成推論,實現于此電梯控制系統的視窗化的設計與應用。文章主要是針對電梯等待時間及搭乘時間做一完整分析,并利用可編程控制器(PLC)為控制核心,視窗化圖控采用Delta圖控軟件DeltaScreenEditor,在電腦上直接對電梯做監控引導,再經由電腦與可編程控制器的通訊連線實現完成。本系統是一種機電整合的教材,是電機、電腦與控制工程的融合,所得成果可在機電整合或科學教育中使用。
2模糊控制的理論應用與系統開發
2.1模糊控制的理論應用
模糊控制主要是在直覺和人工經驗的基礎上,建立所需的知識庫,并可看成一組決策法則,根據輸入值滿足系統條件(歸屬函數)的程度,給予一個特定值,稱作grade(歸屬度),其范圍為0~1。若完全屬于系統條件時,其值為1;完全不屬于系統條件時,其值為0,是傳統的集合;其他屬于系統條件中間的,依其所屬程度給予0和1之間的任意值,這是屬于模糊集合。模糊邏輯(fuzzylogic)設計方法主要可以分為四個部分:即模糊化界面(FuzzificationInterface)、知識庫(Knowledge)、模糊推論機構(FuzzyInference)與解模糊化界面(DefuzzificationInterface)。其中,知識庫又可分為資料庫(DataBase)及規則庫(RuleBase)。模糊控制是以語言化控制規則為主體,為了將輸入的明確值與語言化的控制規則結合,必須將輸入值做模糊化處理以便對應到資料庫里語言變量的論域中,再配合規則庫及推論機構推導出結果。因結果仍然是模糊值,所以必須再做解模糊化工作,其輸出才是明確值。文章中借助每個樓層的傳感器作為取樣輸入,再通過步進電機的驅動模組作為輸出控制。該電梯控制系統的每個模糊集合均有語性值代表其模糊含意。利用編輯軟件DeltaWPLSot程序化于可編程控制器系統的內部,以達成系統的閉回路控制。
2.2系統架構
系統的硬件架構是由可編程控制器、步進電機及驅動器、傳感器等所組成。系統在可編程控制器內部所完成實現的內容,可先定義誤差量(E)與誤差偏差量(ΔE)兩軸,誤差量是由軟件設定的參考距離與回授距離的差值。誤差偏差量的計算是目前誤差En減去前一次的誤差量En-1,當程序連續執行下,循環一次的時間步距Δt很短時,可視為一個誤差偏差量ΔE,或稱之為誤差微分量ΔE/Δt。
(1)可編程控制器。
系統所使用的控制器是利用三菱公司的產品。該系列PLC在電腦通訊的模式中,其交信資料的類型分別為讀取PLC元件及交信資料的交信型式和寫入PLC元件及交信資料的交信型式。
(2)步進電機及驅動器。
系統所使用的步進電機及驅動器可完成實現輸出距離,提供搭乘者更短的搭乘時間及更精準的樓層距離定位。步進電機的結構不論是PM式、VR式或復合式步進電機,其定子均設計為齒輪狀,這是因為步進電機是以脈波信號依照順序使定子激磁,以數字電壓輸入來控制其轉速及轉動方向。就電機驅動原理而言,將其脈波激磁信號依序傳送至A相、A+相、B相、B+相則轉子向右移動(正轉),相反的若將順序顛倒則轉子向左移動(反轉)。
(3)傳感器。
系統所使用的傳感器可完成實現取樣輸入信號,提供給可編程控制器的輸入端,進入控制器內部做運算處理。
2.3實驗研究結果
在實驗研究中,各個實際樓層相互距離各為14.4cm,加入Fuzzy控制時,可測得的距離分別為14.3cm、14.2cm、14.3cm,未加入Fuzzy控制時,可測得的距離分別為13.8cm、14.0cm、13.9cm,可知經由模糊理論控制可實現精準的樓層距離定位。就樓層搭乘時間而言,加入Fuzzy控制時,可測得的搭乘時間分別為18.6sec、18.7sec、18.6sec,未加入Fuzzy控制時,可測得的搭乘時間分別為19.1sec、19.2sec、19.1sec,可知經由模糊理論控制可實現縮短的搭乘時間。進而,操作者可通過Delta圖控軟件進行視窗化控制。視窗中的按鍵,可對電梯控制系統進行模糊邏輯控制設定、樓層控制、樓層距離顯示、搭乘時間顯示等進行自動化設計。
3結束語
ADμC812是全集成的12位數據采集系統,它包含了高性能的自校準8通道、高精度12位的ADC、高速ADC至RAM捕獲(capture)DMA控制器、兩個12位電壓輸出DAC以及8位MCU:額定工作頻率12MHz(最大16MHz),3個16位定時器/計數器,32條可編程的I/O線,高電流驅動能力――端口3,9個中斷源,2個優先級。
ADμC812片內有8K字節的閃速/電擦除(Flash/EE)程序存儲器(支持PC在線編程不需要燒寫器)、640字節的閃速/電擦除數據存儲器以及256字節數據SRAM支持可編程、與8051兼容。片外有16M的外部數據地址空間和64K字節的外部程序地址空間。
另外MCU支持的功能包括看門狗定時器、電源監視器以及ADC DMA功能。位多處理器接口和I/O擴展提供了32條可編程的I/O線、IC兼容的SPI和標準的URAT串行端口I/O。
MCU內核和模擬轉換器均有正常、空閑以及掉電工作模式,可提供適合于低功率應用的電源管理方案。器件包括在工業溫度范圍內用3V或5V電壓工作的兩種規格。ADμC812是從8051基礎上發展起來的,與8051幾乎完全兼容,為學生學習研究提供了范本。
2軟件方面
生產商提供了ADμC812的開發系統QuitStart。QuitStart是功能完善、價格低廉的ADμC812的開發工具包,包括下列基于PC(Win95、98、Me、Xp兼容)的硬件和軟件開發工具:代碼開發、代碼下載、代碼調試。
二、ADμC812數字平臺在中職單片機教學中的應用1利用ADμC812仿真器讓單片機教學由抽象到具體
單片機課程之所以難,是因為其太抽象:①所有組成和工作過程都在芯片里面;②程序邏輯性強,其執行過程也在芯片內部。而ADμC812仿真器由芯片開發商提供圖形化仿真調試工具,從而使單片機內部結構一目了然。尤其是ADμC812仿真器完全擺脫了以往調試工具的局限性,而且可以不需要硬件支持且功能完善,只要有電腦就可以讓學生有更多的時間和機會來學習研究單片機。由于所有的調試和仿真都是在電腦上進行的,幾乎沒什么成本,也不會造成什么損失。而器件損壞是傳統單片機實驗實訓經常發生的。
2利用ADμC812仿真器切實開展項目教學和課題研究
QuitStart是由生產商提供的ADμC812的開發工具包,其仿真的結果就是真實單片機運行的結果,從而使得大量的程序開發和調試過程完全軟化。這樣不但使學生在學習過程中可以驗證所學的知識,加深對所學知識的理解,而且讓學生在一節課的時間內完成程序設計和調試成為可能。再者這種開發只要有電腦幾乎也不受時空限制,可以讓學生在有限硬件資源的情況下進行較大課題的研究,從而大大提高學生的動手和實踐、科研能力。
3充分利用ADμC812的性能和特點,讓學生在解決實際問題過程中提升能力
計算機程序類設計課程的教學是需要硬件條件支持的,有些高校硬件資源缺乏,不能保證人手一臺電腦進行上機操作,導致程序類課程最大的實踐部分不能實施,前面說過,該類課程沒有實踐就不出成果,所以不能充分上機操作會直接導致授課效果不理想。其次即使是高校保證了人手一臺計算機進行上機操作,但是由于軟件部署有點難度或者在具體操作中遇到其他問題,導致還未進行實際的編寫上課時間就結束了。由于計算機是一個復雜的系統,不同機器機型不同,操作系統版本不同,軟件版本不同等等都可能導致不一樣的結果或者出現不一樣的問題,很多時候導致的問題比較復雜和難于快速處理。
2教學改革措施
天下無難事,只怕有心人。雖然計算機程序設計類課程的教學有很多先天的教學難度,被列為學生們普遍反感之課程,但是只要努力研究和分析問題,還是能對癥下藥,找到解決方法的。教學改革雖任重而道遠,但是還是有很多有效的解決方法的。根據目前面臨的主要問題,針對性的解決是明智的舉措,主要通過4個方面改善計算機程序設計類課程的教學,即科學設置課程的學習順序、明確培養目標、科學化教學方法和務必多上機操作4個方面。如圖1所示。
2.1科學設置課程學習順序
由于剛入學的大一新生,很多人對計算機的了解不夠深入和熟悉,在大一課程中盡量選擇應用型課程,所見即所得,讓學生對計算機充滿好奇心和滿足感,最大限度的激發起學生們對于計算機世界的興趣。當學生們對計算機的世界了解的比較多,計算機所能做到的事情了解深入后,在大二再開設較為專業的語言設計類課程,深入地學習具體如何操作計算機做自己想要的事情,才能逐漸地讓學生們接受,達到較好的教學效果。
2.2明確培養目標
在程序設計類課程開課初期,不應該橫刀植入地開始語言語句的講解,應該在開始播放大量優秀的軟件設計案例,最好是圖文并茂,視頻播放等多媒體形式,栩栩如生地展現軟件成品的價值和作用,讓學生們深入了解軟件編程所帶來的巨大產品效益和價值。這樣會讓學生們產生濃厚的興趣和好奇心,這些興趣和好奇心足以克服之后枯燥抽象的語言學習難度,讓學生自發地去學習,而不是刻意灌輸。
2.3科學化教學
應該采用語言和設計相結合的方式教學,不能只重點教授具體語言的學習,而忽略了軟件設計思想本身。施之于魚不如授之于魚,計算機語言的學習是無止境的,掌握了學習方法和思路,偏、難的語言語句理解留到學生們之后深入學習的時候自學即可,不需要教授在課堂上。以程序語言為載體,多傳授程序語言設計思想,將程序設計的基本方法和對問題的求解相結合,用語言得以實現,有實際結果展示,會大大激發學生們學習熱情,養成腳踏實地的科學作風。
2.4加強上機操作
精心設計每個教學內容和教學課程,必要時保證上機時間,要選擇適合的教學課題非常重要,課題需要有針對性的結合教學內容,同時還要激發學生的學習熱情,最大限度調動學生自主探索的能力和興趣。機房課堂上讓學生積極參與,以誰的問題越多評選最優秀學生,計算機的學習就是不怕問題,遇到問題越多的同學通常學到的越多。每次課程上將所有問題匯總,集體和同學解決所有問題。讓大家養成不怕遇到問題,就怕不遇到問題的新型思路,這樣可以大大激發同學學習熱情,提高學生的創造力,從此熱愛上這門課程。本文來自于《電腦編程技巧與維護》雜志。電腦編程技巧與維護雜志簡介詳見
3結語
關鍵詞:高職 C#程序設計 項目導向
1 概述
C#是以目前主流的.NET技術為平臺的、最新的、面向對象的編程語言。它的功能非常強大,既擁有C/C++的強大功能又綜合了VB 簡易的圖形可視化操作,并且簡單易學,逐漸的成為目前流行的編程語言之一。
目前,我國大多數職業院校的計算機相關專業都開設了各種形式的C#程序設計課程,由于C#自身的特點,要求學生的邏輯思維能力和編程實踐能力非常強。傳統的程序設計課程的教學方法和手段一般都是學生被動接受教師滿堂灌的理論知識,理論和實踐相分離。導致學生厭學枯燥的理論知識,遇見實際問題無從下手,學完課程以后沒有掌握知識,甚至有的是相當于沒學。所以這就要求教師在教學過程中探索新的教學方法。結合高職院校的辦學宗旨,以達到與企業無縫結合的目標來培養學生在基于C#程序設計語言平臺上程序設計的專項職業能力。本文結合我院學生特點,在零編程基礎上,運用項目導向教學法使學生快速掌握C#語言的知識點和C#程序設計的應用,有效的提高教學效果和學生的就業能力,取得良好的實踐效果。
2 C#程序設計教學現狀及問題
傳統的C#程序設計授課過程是先講授理論基礎知識,然后上機操作實踐的教學方法,很容易造成大量的理論知識的灌輸,讓學生空洞的理解和記憶大量的知識點。在實踐的時候又因為理論和實踐的脫節以及實踐課時的不足,造成理論是理論,實踐是實踐兩張皮,達不到教學目的的要求。雖然目前各高校多采用新的授課方法探索,但理論和實踐不能很好的結合,課堂案例或者是理論操作內容不能引起學生興趣,內容枯燥,使學生對課堂內容不感興趣。這些仍是當前教學當中的主要問題。
3 項目導向教學法的應用
3.1 項目導向教學法
項目教學法是師生以共同完成一個科研項目的方式來進行的教學活動。它的主要特點是在應用中學習,在學習中應用。學生在應用中學習新的理論知識便于理解和記憶,教師在應用中不斷地發現探索分析和解決問題提高教學技能,教與學在一個平臺同時完成,充分調動學生的學習積極性和對科學研究的興趣。項目導向教學方法不僅僅在于提高學生的課堂興趣,根據目前職業類院校使學生能夠與企業無縫結合的目標,實施項目導向教學法,使學生在課堂中嘗試企業項目開發的整個過程,達到畢業能直接在企業項目的開發中上手,提高學生的就業能力。
3.2 項目方案設計
3.2.1 項目的選編
項目是貫穿整個教學過程的基本材料,項目的選取是至關重要的,直接影響教學效果。本門課程的最終目標是讓學生學會在基于C#程序設計語言平臺上程序設計的專項職業能力,并且系統的掌握在程序開發和設計過程中的基本流程。所以,選編的所有項目既能循序漸進的貫穿整本書的內容,又能概括每個章節的知識點。要簡單易懂并且在實踐中容易上手,能引起學生的興趣。
選編項目主要是依據教材內容,與學生實際生活相關聯,并且結合實際的企業項目中的部分模塊。
3.2.2 實施過程
現以“學生成績管理系統”項目為例,詳細描述項目導向教學法的應用。學生成績管理系統跟學生在學校的學習和生活息息相關,學生比較熟悉,在授課時,首先向學生介紹該系統的運行模式及功能作為課堂的情境引入,然后把項目完成的各種技術分解成各個知識點與課程章節相結合,引導學生在學習知識點的同時完成與項目相關的步驟和技術,讓學生在學習的過程中成為項目的實施者,使學生掌握如何解決實際問題的技能。
以系統中分析學生成績的等級為例,學習分支結構的知識點,本案例適合基礎知識章節,其中包括一些控件的設計,如圖1所示。
在學生成績管理系統中,分析學生成績的等級是考查課成績登統的重要功能。系統根據學生考試的分數,劃分優秀、良好、中等、及格、不及格五個等級。課程開始,先討論系統和學生討論項目需求,然后通過演示項目分析系統的功能,通過教師引導學生逐步實現系統功能,讓學生掌握知識點。
項目具體分解步驟:步驟1,設計窗體界面,使用兩個Label控件、一個TextBox控件和一個Button按鈕放到窗體上并設置窗體的Text屬性值為“分析學生成績”,設置Label1的Text屬性值為“學生成績:”,設置Label2的Text屬性值為“”。步驟2,編程代碼實現。步驟3,分析代碼。當需要根據條件的成立與否來決定執行某段語句的時候需要用到選擇分支結構。選擇結構主要包含if和switch語句。if語句每次最多只能判定兩個分支,在分支結構比較多的情況下使用switch語句實現。在文本框中輸入百分制成績score,利用switch語句轉換成五個等級,設定條件表達式為score / 10,以85分為例,首先判定錄入的學生分數85/10的值為8,然后與每個case后面的常量進行比較,發現能匹配的值就執行case后的語句序列:case 8: grade = "良好";break;。整個項目實現后,歸納總結:①switch語句的執行過程是,首先計算條件表達式的值,然后與每一個case后面的常量值進行比較,一旦發現某個能匹配的值就執行該case后面的語句序列,直到遇到break語句。如表達式的值與所有case的常量值都不匹配,則執行default后面的語句序列。②switch語句的格式和要求是,switch語句中case后的常量可以是一個整數或者整數型常量表達式、字符常量、字符串常量、枚舉類型;各個常量表達式的類型必須與條件表達式的類型相同其值應該互不相同;其中的各個case子句和default子句的排放順序都沒有要求,在case和常量表達式之間一要有空格;每個case子句必須有break語句退出。這兩點是這個案例所學到的基礎知識,通過總結加深學生需要掌握貫穿項目的知識點。
4 結語
項目導向教學法的應用,使學生的學習興趣得到了提高,培養了學生學習的自主性和積極性,并且培養了學生畢業后能直接上崗的專業技術能力和職業素養,使學生更好的適應社會,符合企業需求。同時項目導向教學法在C#程序設計課程的教學中實現了以項目貫穿知識點、知識面及整個教學過程的教學新思路。
參考文獻:
[1]田雪.項目驅動教學在《C#程序設計》課程中的研究與應用[J].信息與電腦.2011年11月.(189-191)
[2]宋文強,熊壯.C#程序設計[M].北京:高等教育出版社,2010年2月.
[3]楊帆,裴云,李俊青,季文.項目化教學在高職Web 程序設計綜合實訓課程中的應用[J].電腦知識與技術,2009年4月,第5卷第10期.
[4]李琳.高職《C#程序設計》項目課程改革的探索與實踐[J].常州工程職業技術學院學報,2008年3月,第57期.
關鍵詞:C語言; 編程; 函數; 指針
中圖分類號: TP312 文獻標識碼: A 文章編號:
Analysis of several issues for C language beginners
WU Peng
(School of Electronic information , Yangtze University , Jingzhou, 434023, China)
Abstract: C language is the most important programming language, several problems have been summarized which should take care for beginners from four aspects such as grammar, reading programs, strengthening commissioning training, breaking through heavy difficulties, so that beginners can be accomplished with half the effort.
Keywords: C language; programming; function; pointer
1 引言
C語言是當前功能最強的編程語言之一,在信息類專業中有著舉足輕重的地位。然而,在C語言學習過程中,很多人會遇到各種問題。特別是初學者,在剛開始學習時,遇到這些問題就會影響學習的興趣。
怎樣才能快速突破C語言呢?這是很多初學者經常問到的問題。筆者從多年的C語言教學中,總結出了初學者應注意的4個問題,同時也是筆者學習C語言的切身體會。如果初學者能加以重視并按要求去做,可以獲得較好的效果。
2 不要花費太多的時間在語法上
語法是對某類語言規則的描述或總結,通常寫得比較抽象和全面。通過對C語言語法的學習,可以比較快速地了解C語言的規則,為閱讀和編寫C語言程序打下良好的基礎。不過,對于初學者,如果一開始就想對語法的各個方面都搞得很透徹再去編程的話,往往會搞得一頭霧水,極大地削弱了學習的積極性。因此,建議初學者對于課本開始幾章的語法知識,作一定程度的理解即可,不必面面俱到。如掌握一些常用的語法,能夠理解課本中典型的例題即可。這樣,不光使學習效率有較大提高,還讓學生保持高漲的積極性,實現快速入門。
3 多閱讀一些好的示例程序
用C語言解決實際問題時,通常包含很多技巧,甚至還需要相關的專業知識。這些技巧如果讓初學者自己去摸索的話,將是非常耗時的,有時還不一定能想得出來。一個非常好的做法是,通過大量閱讀一些好的示例程序。不僅熟悉了C語言的語法,而且從這些示例程序中,嘗到了課本中沒有涉及到的方法和技巧,以及要求解問題相關的專業知識。
比如,如何判斷一個數為奇數或完全平方數?如何判斷某年為閏年?如何通過三角形的邊長求面積?如何求解方程的根?第1個問題是有關技巧的問題,而后面3個問題則是與專業相關的問題,需要了解相關的算法才能解決。因此,建議初學者多閱讀一些示例程序,學習一些編程技巧,補充常見問題相關的專業知識。筆者在教學過程中,推薦學生多看一下《C語言編程經典100例》,實踐證明,這種做法是非常有效果。
4 加強調試能力的訓練
調試能力是編程的一項基本功,對于初學者的重要性是非常大的。通過調試,可以讓我們了解C程序的執行過程,變量值的變化情況,驗證程序是否按我們預先的思路來運行的,每一步工作是否正常等。另外一個重要的功能是,當程序運行的結果不正確時,可以通過調試來排除錯誤。掌握調試的一般方法和步驟,遵循一些調試相關的原則[1],使調試成為編程中有力的工具。
5 突破重難點:函數和指針
C語言課程中的重難點很多,筆者建議初學者重點關注函數和指針這兩方面內容,因為它們實在太重要了,是我們編程的基礎,有必要作深入理解。
C語言程序是由函數構成的,其中有且僅有一個主函數。程序執行時,從主函數開始執行,當主函數執行完畢,整個程序也就結束了,主函數直接或者間接調用其它函數。理解了以上幾點,也就對C語言程序有了一個整體的把握。對于函數,還須重視函數的參考傳遞,分為值傳遞和地址傳遞兩種。值傳遞方式只是將實參的值復制給了形參,在被調用函數中只能對形參進行操作,而不會影響到實參;地址傳遞是將實參的地址號傳遞給了形參,在被調用的函數中可以實現對實參進行修改。
另外一個非常重要的概念是“指針”。指針是C語言的靈魂,這句話說得一點也不過分。在C語言程序中,有關數據的對象,甚至代碼對象(如函數),都有相應的指針。指針是地址形象的稱呼[2],在編程中靈活地運用指針可以使程序實現起來更加方便。
6 總結
C語言中要注意的內容很多,以上總結的幾點內容是特別要注意的,也是對初學者的建議,提醒他們在學習C語言中使用正確的方法,抓住重難點,達到事半功倍的效果。
參考文獻:
[1]伍鵬.C語言調試方法探討[J].電腦知識與技術,2006,(36):157-158.
[2]孫利輝,杜紅,伍鵬.C語言指針教學難點探討[J].電腦知識與技術,2006,(17):217-218.
[3]徐寶文,李幫清,劉杰等譯.C程序設計語言[M].北京:機械工業出版社,2001.
摘要:本文主要介紹了C++程序設計課程教學的一些實踐經驗,對C++教學方式及課程設計、考試環節等方面的改革進行了探討。
關鍵詞:教學方法;程序設計;C++;考試方式
中圖分類號:G642文獻標識碼:B
1C++程序設計教學的探索
我校屬于二類本科院校,在1999年就在計算機專業正式開設“C++程序設計”,總學時75學時,教學中采用錢能、譚浩強主編的教材。2007年以后,根據實際教學情況,通過深入分析研究,我們認為將C++語言課程教學時數加大到90學時為宜,同時將該課程分為兩個學期,并以C++教學為突破口,培養學生的編程思想,訓練學生的編程思維,加強學生的技能訓練,培養學生面向對象的程序設計能力。
2教學內容和方式的改革
(1) 突出關鍵技術――異常處理、模板的教學
根據當前實際大型軟件項目開發的需要,突出異常處理、模板相關內容的教學。不是將模板作為一種語法現象,而是作為一個有力的工具用于教材所涉及的全部數據結構基本知識,包括順序表、鏈表、棧、隊、二叉樹以及查找排序算法。同時介紹標準模板庫的簡單使用方法。最新發展的ISO14882 C++語言標準一個較大的改變是把模板引入標準庫,使用模板類來代替傳統的C++中定義的類,實現通用的與數據類型無關的算法(參數化程序設計)。
(2) 以實例為引導,從而讓學生掌握算法和語法的使用
要具體降低難度,首先要深刻理解C++語言的關鍵技術,要有重點,不能面面俱到,有所失,才能有所得。圍繞關鍵技術“精講多練”,可以花較少的學時取得更好的效果。講實例的時候,要盡量避免講解書上那些和數學、物理等問題比較密切的程序,這是因為學生的程度不同,有的同學對那些高深的數學和物理問題還沒有搞懂,卻讓他去編寫程序這是不現實的。會讓學生感到學習基礎語言就那么難,從而產生厭學情緒,可以從現實生活中找一些例子,引起學生的學習興趣。如剛開始學習的時候,可以編一個小軟件,讓學生明白輸入輸出語句在計算機中的應用,例如:
#include
void main( )
{
inta;
cout
cout
cout
cout
cout
cout
cout
cin>>a;
cout
}
這個程序很簡單,但通過這樣的例子讓學生明白編程是怎么回事,輸入輸出語句在程序的做用,隨著學習的深入,可以以這個程度為主,為這個程序相應地增加新的功能,不斷地進行完善,從而引起學生的學習興趣,從被動學習變為主動學習。
當學習完分支語句后,就可以在程序后加入新的功能,完成用戶選擇的加、減、乘、除運算功能,當循環學完以后,可以新加入一個功能“退出”。最后可以完成一個如下面所示功能的程序:
一級菜單:
電腦出題
自我出題
幫助
退出
二級菜單:
加
減
乘
除
返回
當然,還可以跟距實際情況,添加新的功能,最后還可以引導學生進行軟件界面的設計,從整體上完成一個軟件開發。
開始以一個簡單和現實生活有關的程序為主干,引起學生的學習興趣,隨著學習的深入,可以通過在這個程序上添加新的功能,提高學生在學習上的主動性,主動找出軟件中的問題,不斷的思索,提出新問題、新功能加到這個軟件中,當學習結束,學生也就明白編程是怎么回事,怎樣進行編程。
(3) 運用多媒體教室進行直觀教學
教師在教學初期的課堂教學中應多做控制臺應用程序設計全過程演示。使用多媒體教學可以達到以下效果:①在用電子教案進行講解時,使用多媒體技術,做到圖文聲并茂,可以大大激發學生的學習興趣。②演示程序的調試與運行過程,真正實現了“用計算機教計算機”,使教學更具直觀性和互動性,同時大大加快了授課的速度。
(4) 強調程序設計思想
在面向過程的前幾章采用流程圖,即突出程序設計而不是語法。強調算法和設計,一些過于細節化的內容盡可能少講,重點在基本的常用語法,便于學生掌握要點、重點。在面向對象設計部分時,通過流行的UML描述C++類,給學生以直觀地了解。
(5) 網絡教學網站建設
已著手建立以教師為主導、學生為主體的自主學習的交互式網絡教學環境,通過網絡提供的大量資源,有效地拓展了 C++ 教學空間,使 C++ 語言程序設計教學內容更豐富,教學方式更靈活,教學手段更先進,更有利于調動學生學習興趣及學生個性化發展。
3課程設計的改革
采用研究型學習方法,學生分組合作進行課程設計。教師布置多道題目,題目按設計思想分為兩大類:
(1) 采用C++過程化程序設計方法,設計以下系統。
職工信息管理系統
圖書管理系統
學生成績管理系統
作一個背單詞的小程序
旅館管理系統中
電腦報價系統
(2) 用C++面向對象程序設計方法,要求使用對象/類,繼承,多態性等技術。設計以下程序。
銷售管理系統
高校工資管理系統
學生通訊系統
選課系統(學生選課模塊)
選課系統(教師模塊)
編寫一個string類,完善串的基本操作
學生從兩大類題目中各自選一題,并且三人一組,自愿結合。學生在掌握了C++基本方法和解決問題的途徑后,對自己感興趣的內容,自然愿意努力去尋找答案,這比從老師那里得到答案要強得多。再難他也認為不難。如果小組成員搭配合理,基礎較差的同學也可以跟上進度,至少有一次全過程的學習機會。教師在此階段只需提醒學生合理分配工作時間,注意小組成員之間的溝通,幫助把握進度。
4考試方式的改革
C++程序設計課程考試,分兩次筆試和一次上機。總成績由筆試(60%)、上機(30%)和平時作業(10%)合成。上機測試主要考察學生實際動手能力,我院采用的形式是出8道編程題,學生抽取其中2題,在60分鐘內完成。上機測試極大的調動學生主動上機調試程序的熱情。從考試結果來看,學生上機調試開發能力明顯好于往屆學生。
5結束語
通過以上形式的改革,客觀的評價大部分學生的動手能力比過去的教學方法下培養的學生有明顯的提高,他們學到的本領不是對付卷面考試的能力,而是編程的能力。但是C++程序設計課程的教學涉及到諸多方面的因素,就要求我們在教學中針對具體情況及時加以調整,激發學生的學習興趣,以達到較好的教學效果。
參 考 文 獻
[1] 陸偉. C++語言教學研究和體會[J]. 科技信息(學術版),2006,(11).
[2] 錢能. C++程序設計教程[M]. 北京:清華大學出版社,2003.