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