前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇程序設(shè)計語言范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
關(guān)鍵詞:程序設(shè)計語言;VB;中職;高職單招;教學(xué)策略
一、中職生能力水平與高職單招考試現(xiàn)狀分析
中職生普遍學(xué)習(xí)能力水平不高,部分學(xué)生未養(yǎng)成良好的學(xué)習(xí)習(xí)慣,對學(xué)習(xí)有較大的畏難情緒。多表現(xiàn)為課堂上不注意聽講,不記筆記,課后作業(yè)完成情況差,不復(fù)習(xí)功課。VisualBasic程序設(shè)計語言是一種面對對象的可視化編程語言,包含大量需要理解并識記的基礎(chǔ)知識點,同時具有較強的實踐操作性。學(xué)生在學(xué)習(xí)VB程序設(shè)計語言時,常因該科目過于困難而遭遇學(xué)習(xí)挫折,甚至產(chǎn)生厭學(xué)情緒。從2015年開始,福建省高職單招考試改革,除筆試外,新增技能考試。因此,對志在升學(xué)的中職生來說,書本知識的掌握與技能實踐能力,這二者的培養(yǎng)同等重要。教師在授課過程中,不僅要重視基礎(chǔ)知識點的講解,更要注重上機操作技能的培養(yǎng)。因此,激發(fā)學(xué)生的學(xué)習(xí)興趣,使學(xué)生積極主動參與到學(xué)習(xí)活動中,掌握基礎(chǔ)知識點并培養(yǎng)優(yōu)秀的上機操作能力,是教師制定教學(xué)策略的首要目的。
二、教學(xué)策略
(一)優(yōu)秀案例設(shè)計導(dǎo)入新課
VB程序設(shè)計語言枯燥難懂,傳統(tǒng)的教學(xué)模式中,教師常采用“講授法”授課。從課堂一開始,就不斷灌輸程序設(shè)計語言的基本概念知識,不斷講解,致使學(xué)生難以理解概念,甚至喪失學(xué)習(xí)興趣,事倍功半。為了激發(fā)學(xué)生學(xué)習(xí)興趣,教師應(yīng)設(shè)計生動有趣的優(yōu)秀案例導(dǎo)入新課。例如,在教授計時器控件這一小節(jié)內(nèi)容時,教師根據(jù)計時器控件能夠通過設(shè)置時間間隔從而達到定期做一些程序處理的特點,與寓言故事“龜兔賽跑”相結(jié)合,設(shè)計一個烏龜與兔子賽跑的小程序。枯燥的程序設(shè)計語言轉(zhuǎn)換為生動的小游戲,引導(dǎo)學(xué)生直觀認識并體驗程序設(shè)計的實用性,從而激發(fā)學(xué)生學(xué)習(xí)興趣。
(二)合理教學(xué)方法提高課堂教學(xué)效率
VB程序設(shè)計語言學(xué)科內(nèi)容繁多,理論性與實踐性兼有,教學(xué)方法應(yīng)根據(jù)教授知識點的不同,靈活轉(zhuǎn)變組合,提高課堂教學(xué)效率。
1.詳細講解基礎(chǔ)知識,掌握基本結(jié)構(gòu)語句。教師采用講授法,使學(xué)生掌握基礎(chǔ)知識點。例如在計時器控件教學(xué)中,演示完小程序,導(dǎo)入新課,教師首先講解計時器控件的特有屬性、事件,計時器控件處理程序的特點,使學(xué)生打好扎實的基礎(chǔ)。
2.結(jié)合基礎(chǔ)知識,演示上機操作。教師采用任務(wù)驅(qū)動法,結(jié)合基礎(chǔ)知識,演示上機操作,并布置任務(wù)讓學(xué)生完成。中職生的學(xué)習(xí)能力水平不高,教師首先采用演示法,降低學(xué)習(xí)難度,設(shè)置簡易任務(wù),督促學(xué)生完成,并一一檢查,保證完成率。程序設(shè)計語言是一門實踐性極強的學(xué)科,上機操作練習(xí)后,更能加深學(xué)生對程序語言的直觀理解。
3.教師總結(jié)錯誤,改正鞏固知識。學(xué)生上機操作過程中,教師巡視指導(dǎo)。上機操作中,學(xué)生易出現(xiàn)錯誤,教師可于巡視過程中發(fā)現(xiàn)指導(dǎo),最后總結(jié)經(jīng)常出現(xiàn)的錯誤,統(tǒng)一講解,鞏固學(xué)生的基礎(chǔ)知識。
4.設(shè)置思考題,強化自主學(xué)習(xí)能力。布置簡單任務(wù),是為了降低學(xué)習(xí)難度,提高學(xué)生的學(xué)習(xí)成就感。之后應(yīng)設(shè)計難度較高的思考題,強化學(xué)生的自主思考能力。采用自主探究方法,學(xué)生可幾人一組,探索如何完成任務(wù)。程序設(shè)計語言最終是一門靈活性極強、創(chuàng)造性極高的科目,單一的講授法與演示法雖能使學(xué)生掌握最基礎(chǔ)的知識點,卻不能培養(yǎng)學(xué)生設(shè)計程序的自主思考能力。因此,適當提高任務(wù)難度,能激發(fā)學(xué)生的探究興趣,促進他們積極思考。
5.綜合式項目,整合所學(xué)知識。VB程序設(shè)計語言實用性極強,設(shè)計綜合式題目,將所學(xué)知識都整合到一個綜合項目中,能讓學(xué)生深刻認識到程序設(shè)計的實用性。例如在計時器控件的上機練習(xí)題目中,用到的并不止計時器一個控件,更包括圖片框、命令按鈕、標簽框等控件,應(yīng)用的知識除了計時器控件的Timer事件、Interval屬性外,還包括Left、Enabled屬性和基本賦值語句等。將學(xué)過的多個知識點整合到一個題目中,既能讓學(xué)生梳理學(xué)過的知識,又能提高學(xué)生綜合運用VB程序設(shè)計語言解決實際問題的能力。
(三)漸進式教學(xué)任務(wù)提高學(xué)習(xí)成就感
班級授課經(jīng)常存在學(xué)生學(xué)習(xí)能力高低不一,理解程度有好有壞的情況。教師授課若過于簡單,全體學(xué)生皆能理解并完成,對一部分優(yōu)生而言,學(xué)習(xí)喪失挑戰(zhàn)性,容易失去學(xué)習(xí)興趣,且無法更好地培養(yǎng)學(xué)生自主思考能力。而授課若太難,則水平較低的學(xué)生易遭遇學(xué)習(xí)挫折,產(chǎn)生厭學(xué)情緒。因此,設(shè)計教學(xué)任務(wù)時,教師應(yīng)做好課前準備,鉆研教材,將基礎(chǔ)概念與練習(xí)題目緊緊結(jié)合,以學(xué)生的理解能力為基礎(chǔ),將難度設(shè)計為漸進式,由易到難。這樣既能讓學(xué)生獲得學(xué)習(xí)成就感,激發(fā)學(xué)習(xí)興趣,又能培養(yǎng)學(xué)生自主探究的精神。
(四)講授與上機操作相結(jié)合,理論與實踐并重在VB程序設(shè)計語言學(xué)科教學(xué)中,上機操作實踐十分重要,教師課前應(yīng)認真準備教材、上機任務(wù),授課過程中安排合理充分的上機練習(xí)時間。VB程序設(shè)計語言是一門可視化編程語言,操作性極強,只有充分的上機練習(xí)才能保證學(xué)生對技能的完全掌握。高職單招考試中,筆試過后,仍有技能實踐考試,理論與實踐并重。
(五)課后鞏固基礎(chǔ)知識點
中職生學(xué)習(xí)習(xí)慣較差,大部分學(xué)生并無課后復(fù)習(xí)的習(xí)慣。教師在制定教學(xué)策略時,應(yīng)考慮到課后鞏固知識這一環(huán)。通過布置作業(yè)任務(wù)、課后習(xí)題督促學(xué)生完成課后鞏固;通過小測、考試等手段激勵學(xué)生的競爭心理,增強他們的學(xué)習(xí)主動性;通過批改作業(yè)、小測,發(fā)現(xiàn)學(xué)生的知識薄弱點,再加以強化。
三、結(jié)語
中職教育是職業(yè)技術(shù)教育,實踐操作能力的培養(yǎng)至關(guān)重要;由于高職單招已成為中職生升學(xué)的重要渠道,掌握書面知識也同等重要。學(xué)生的計算機操作水平與教師的教學(xué)質(zhì)量緊密相關(guān),教師應(yīng)根據(jù)VB學(xué)科的特性,分析其重難點,靈活運用多種教學(xué)方法,提高教學(xué)質(zhì)量,提高課堂教學(xué)效率,以學(xué)生為主體,激發(fā)學(xué)生學(xué)習(xí)興趣,同時不斷提升教師的教學(xué)水平。
參考文獻:
[1]梁徳賽.VB程序設(shè)計課程教學(xué)探討[J].科教導(dǎo)刊,2012,2.
[2]張華.中職計算機實踐教學(xué)法的應(yīng)用與教學(xué)創(chuàng)新探討[J].計算機光盤軟件與應(yīng)用,2011,5.
[3]高曉青.中職計算機教學(xué)方法探究[J].學(xué)周刊,2013,6.
關(guān)鍵詞: 《C程序設(shè)計語言》 誤區(qū) 感悟
《C程序設(shè)計語言》課程是電子信息工程專業(yè)開設(shè)的第一門程序設(shè)計類課程。該課程在本專業(yè)的課程體系中處于承上啟下的地位,對于學(xué)習(xí)后續(xù)高級編程語言具有很好的導(dǎo)引作用。筆者經(jīng)過一個學(xué)期的系統(tǒng)學(xué)習(xí)后感覺受益匪淺,不僅學(xué)到了基礎(chǔ)的編程語言知識,更重要是的掌握了邏輯性較強的編程思想。為了讓更多學(xué)生很好地學(xué)習(xí)這門課程,筆者借此文總結(jié)出《C程序設(shè)計語言》課程學(xué)習(xí)時常見的誤區(qū),并給出解決上述誤區(qū)的方法和途徑,供廣大同仁借鑒。
一、學(xué)習(xí)《C程序設(shè)計語言》課程時常見的誤區(qū)
1.只注重寫程序,而忽視讀程序。
很多學(xué)生在剛學(xué)習(xí)這門課程時就希望自己能夠獨立編寫出一些程序,但實際情況大相徑庭,此時挫敗感油然而生,甚至一些學(xué)生因為這種挫敗感產(chǎn)生對這門課程的厭學(xué)情緒。其實就筆者的學(xué)習(xí)經(jīng)歷而言認為剛開始學(xué)習(xí)時,不要急于自己編程,因為此時你還沒掌握好基礎(chǔ)知識,不可能獨立完成程序的編寫,認真研讀別人的優(yōu)秀程序才是學(xué)習(xí)該課程入門最快,也是最好的方法,在讀別人程序的過程中慢慢領(lǐng)悟別人的編程方法和思想。
2.沒能將理論學(xué)習(xí)和上機實踐進行有效銜接。
《C程序設(shè)計語言》課程的教學(xué)分為理論講授和上機實踐兩個環(huán)節(jié),因為學(xué)校主客觀原因的限制二者之間存在一定的時間間隔,但二者在內(nèi)容上又是相互連貫的。時間上的不連貫和內(nèi)容上的連貫性會使得一些學(xué)習(xí)不主動的學(xué)生不能將理論課上老師所講的知識和技能在上機實踐中得到有效的驗證和消化。因此,一些學(xué)生在上機實驗時面對老師布置的作業(yè)會覺得無從下手,學(xué)習(xí)興趣就會大大降低。而C課程的知識是承前啟后的,前一部分知識沒有掌握好,后面章節(jié)內(nèi)容的學(xué)習(xí)也會大受影響,這樣就進入了一個惡性循環(huán)。最大的問題是這部分學(xué)生不僅自身學(xué)不好內(nèi)容,而且會影響其他學(xué)生,這樣班級的整體學(xué)習(xí)效果就會大打折扣。
3.缺乏一定的邏輯思維能力。
很多學(xué)生錯誤地認為C程序設(shè)計語言就是變量、控制結(jié)構(gòu)、函數(shù)、過程、數(shù)組的簡單結(jié)合,認為只要掌握這些就可以編寫出良好的程序了。其實不然,真正優(yōu)良的程序是需要靠自己的邏輯思維對變量、控制結(jié)構(gòu)、函數(shù)、過程、數(shù)組這些要素進行創(chuàng)造性的整合。所以C程序設(shè)計語言是一門鍛煉學(xué)生邏輯思維能力的課程。當你具有抽象邏輯思維能力和弄清楚了變量、控制結(jié)構(gòu)、函數(shù)、過程、數(shù)組相關(guān)知識后,編寫C程序就是易事。
二、走出上述誤區(qū)的方法
1.端正學(xué)習(xí)態(tài)度,充分認識到本門課程的重要性,并保持良好的學(xué)習(xí)心態(tài)和學(xué)習(xí)習(xí)慣。
《C程序設(shè)計語言》是很多高校學(xué)生接觸的第一門編程語言,該課程對于培養(yǎng)學(xué)生較強的邏輯思維能力具有非常重要的導(dǎo)引作用,而邏輯思維對于處于信息社會的大學(xué)生而言是必不可少的,但是邏輯思維能力的培養(yǎng)又不是一朝一夕的,需要持之以恒地努力。對于學(xué)生而言,只有從內(nèi)心認識到這一點才可以使自身在遇到學(xué)習(xí)困難時迎難而上。對于一些偏文專業(yè)的學(xué)生而言,在學(xué)習(xí)初期肯定會覺得一些概念晦澀難懂,與自己的思維方式存在差異,此時千萬不能有畏難情緒,一定要相信自己,在自身努力、同學(xué)幫助和教師引導(dǎo)的三方努力下共同渡過難關(guān),而自身的認真努力是首要的。課前一定要認真預(yù)習(xí),對自己通過預(yù)習(xí)不能理解和解決的知識點和概念進行標記,上課時當老師講授到這部分內(nèi)容時要認真聽講,如果通過教師的講解依然不能理解,千萬不能就此擱置,一定要及時向老師和同學(xué)請教。C程序設(shè)計的入門學(xué)習(xí)并不難,卻是一個十分重要的過程,因為程序設(shè)計思想就是在這時形成的,良好的程序設(shè)計習(xí)慣也在這個階段養(yǎng)成的。
2.學(xué)習(xí)時要注重理解一些重要的概念,勤于動手編寫程序,并借鑒別人編寫的好程序。
C程序設(shè)計課程就其本質(zhì)而言并不是很復(fù)雜,其核心無非就是變量、函數(shù)、過程、數(shù)組、控制結(jié)構(gòu)(順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu))、文件和數(shù)據(jù)庫等概念和相關(guān)操作。但這些概念雖然一些同學(xué)在數(shù)學(xué)課程中聽說過,感覺似曾相識,但此概念非彼概念,二者還是有所不同,要真正理解這些概念就必須多動手、多思考。程序設(shè)計是高強度的腦力勞動,不是聽會的,也不是看會的,而是練會的。因此在學(xué)習(xí)過程中要勤于自己獨立編寫一些小程序,在編寫過程中肯定會犯一些錯誤,在錯誤的解決過程中可以提升自己的編程能力,在能力提升的同時增強自身對該課程的學(xué)習(xí)興趣。對于初學(xué)者而言,一方面要自己獨立編程,但由于自身編程知識儲備不充分,也要借鑒別人優(yōu)秀的解題思路與方法,探究別人的思維過程,增強自己的思維能力,然后結(jié)合自身實際嘗試實現(xiàn)或者說模仿著實現(xiàn)。
3.在學(xué)習(xí)過程中要避免孤軍奮戰(zhàn)、單打獨斗,注重團隊協(xié)作和互助。
筆者所在學(xué)校C程序設(shè)計課程的教學(xué)遵循先理論講授后上機實驗的步驟。一個教學(xué)班的學(xué)生人數(shù)在30至40人,實驗課和理論課都只有一個教師。理論課和實驗課之間的時間差會使一部分基礎(chǔ)較薄弱的學(xué)生在實驗課上會碰到各式各樣的問題,而基礎(chǔ)較好的學(xué)生在實驗課上會很自如地完成老師布置的實驗任務(wù),因為只有一個老師進行輔導(dǎo),如果那些基礎(chǔ)不是很好的學(xué)生在學(xué)習(xí)過程中遇到問題后請教老師,老師此時可能正在輔導(dǎo)另外一個學(xué)生,在這種情況下就可以選擇向身邊基礎(chǔ)較好的同學(xué)請教,這樣既可節(jié)省時間又可加深同學(xué)之間的交流協(xié)作。經(jīng)過半個學(xué)習(xí)基礎(chǔ)知識的學(xué)習(xí),老師會布置一些綜合編程題讓學(xué)生融會貫通并有效應(yīng)用以前所學(xué)知識,筆者認為此時同學(xué)之間可以以團隊形式進行答題,這樣可以達到取長補短的效果。
參考文獻:
[1]馬麗潔.高職計算機和軟件專業(yè)語言類課程改革探析――以C程序設(shè)計語言為例[J].電子商務(wù),2015(07).
關(guān)鍵詞:在線 程序設(shè)計 評測 系統(tǒng)
中圖分類號:TP311.51 文獻標識碼:A 文章編號:1007-3973(2013)003-065-02
1 引言
如今計算機技術(shù)發(fā)展迅速,計算機已經(jīng)成為了人們在日常生活和工作中不可缺少的一種現(xiàn)代化工具。而要想充分的利用計算機的高效處理能力,程序設(shè)計就顯得尤為重要。在高校中,很多專業(yè)都開設(shè)的有程序設(shè)計課程,要求學(xué)生具備一定的程序設(shè)計能力,以便能夠借助于計算機這種現(xiàn)代化工具解決一些學(xué)習(xí)和工作中遇到的實際問題。因而學(xué)好一門計算機程序設(shè)計語言,具備一定的程序設(shè)計能力已經(jīng)成為現(xiàn)代大學(xué)生必不可少的一種技能。在學(xué)習(xí)計算機程序設(shè)計語言時,學(xué)生們往往要編寫大量的程序,教師要對學(xué)生們所編寫的每一個程序進行調(diào)試運行,以便指出并糾正學(xué)生們在程序設(shè)計中出現(xiàn)的一些錯誤。從學(xué)生提交程序開始,到教師編譯、調(diào)試,運行,到最后對程序做出評價結(jié)果。每一個階段都是一個非常繁瑣的過程,學(xué)生提交的程序越多,教師在程序設(shè)計評測過程中所花費的時間和精力就越多,大大增加了教師的工作量。
設(shè)計一套在線的程序設(shè)計與評價系統(tǒng),可以讓學(xué)生們在線進行程序設(shè)計,并能通過網(wǎng)絡(luò)直接提交給系統(tǒng),由系統(tǒng)對學(xué)生們提交的程序自動進行編譯運行,自動反饋編譯運行中的錯誤信息或程序運行的最終評價結(jié)果。該系統(tǒng)即方便了學(xué)生提交程序,也減少了教師對程序評測的工作量。同時,學(xué)生們能通過系統(tǒng)的評測,較快的了解程序設(shè)計中所出現(xiàn)的錯誤,以及時更正,提高學(xué)習(xí)程序設(shè)計的效率。
2 系統(tǒng)功能設(shè)計
系統(tǒng)以減少教師工作量,提高學(xué)生學(xué)習(xí)計算機程序設(shè)計語言的效率為目的,應(yīng)具有以下功能:
(1)學(xué)生在線答題。
學(xué)生可通過系統(tǒng)頁面登錄,登錄后選擇程序試題,在線進行答題并將編寫好的程序源程序提交到Web服務(wù)器端。
(2)自動程序評測。
Web服務(wù)器端對學(xué)生提交的程序進行在線評測,并給出評測結(jié)果。
(3)在線成績查詢。
學(xué)生可在線查詢自己所提交程序的評測結(jié)果。
(4)在線考試與競賽組題。
系統(tǒng)可用于平時計算機語言課程的考試與競賽。考試或競賽時允許教師指定相應(yīng)考試題目,學(xué)生對教師指定的考試和競賽題目在規(guī)定時間內(nèi)答題,答題后在線提交并能實時查詢自己的答題成績。
3 系統(tǒng)總體設(shè)計
整個系統(tǒng)的設(shè)計采用B/S(Browser/Server)的模式,開發(fā)遵循MVC的三層架構(gòu),及底層Model層負責(zé)數(shù)據(jù)模型、中間層Control層負責(zé)業(yè)務(wù)邏輯的處理、高層View層負責(zé)用戶界面。三個層次功能上相互獨立,有益于系統(tǒng)的日常維護及進一步的擴展。
Browser客戶端頁面主要用來實現(xiàn)View層,負責(zé)用戶界面,學(xué)生可通過客戶端頁面進行用戶注冊、登錄以及在線答題和成績查詢;教師則可通過客戶端頁面進行試題與試題答案和要求的編輯與上傳,還可根據(jù)考試或競賽的需要進行試題的組織與編排。
業(yè)務(wù)邏輯層主要在Web服務(wù)器端能夠?qū)?shù)據(jù)庫中的程序源代碼進行讀取并生成相應(yīng)語言的源程序以進行編譯運行和評測,并最終給出評測結(jié)果,將評測各階段的數(shù)據(jù)信息寫入數(shù)據(jù)庫中。
底層的數(shù)據(jù)模型主要用來保存學(xué)生和教師的信息、試題相關(guān)信息、學(xué)生提交的程序源代碼信息、學(xué)生程序在服務(wù)器端的編譯運行信息,以及學(xué)生最終的程序評測結(jié)果信息。
4 系統(tǒng)詳細設(shè)計
根據(jù)系統(tǒng)的功能需要和總體設(shè)計,系統(tǒng)的詳細設(shè)計主要分為以下幾個模塊:
(1)用戶注冊與登錄模塊。
學(xué)生或教師可通過系統(tǒng)進行注冊,注冊后不同身份對系統(tǒng)有不同的權(quán)限,如學(xué)生可在線答題,而教師可在線試題錄入與編輯。
(2)學(xué)生在線答題與成績查詢模塊。
程序試題按不同難度級別進行分類,學(xué)生可根據(jù)自己的學(xué)習(xí)程度選擇不同難度的試題。選題后,學(xué)生可選擇不同的計算機程序語言來進行具體實現(xiàn),實現(xiàn)后學(xué)生通過系統(tǒng)頁面將編寫好的源程序代碼直接提交給Web服務(wù)器。
待服務(wù)器端對程序做出評測結(jié)果后,學(xué)生可在線訪問服務(wù)器端數(shù)據(jù)庫中的評測信息與結(jié)果。如果沒有編譯通過,學(xué)生能查詢到未通過編譯的錯誤信息,可進一步修改程序后再次提交;如果通過了編譯,學(xué)生可查詢自己的程序是否執(zhí)行正確以及程序運行的效率程度和最終的評測結(jié)果。
(3)程序在線評測模塊。
學(xué)生在線答題的程序源代碼提交到Web服務(wù)器端的數(shù)據(jù)庫。在Web服務(wù)器端運行著一個守護線程,該守護線程不斷檢測提交到數(shù)據(jù)庫中的源程序代碼,一旦檢測到尚未評測的代碼,守護線程自動將該程序代碼從數(shù)據(jù)庫中讀取出來,根據(jù)學(xué)生所選的計算機程序語言類別建立相應(yīng)的源程序文件,并在Web服務(wù)器端調(diào)用相應(yīng)的計算機語言編譯環(huán)境進行源程序的編譯,將編譯時的編譯信息寫入數(shù)據(jù)庫。若編譯錯誤,則將編譯時的錯誤信息寫入數(shù)據(jù)中,可在線反饋給學(xué)生;若編譯正確則進入程序運行測試階段。運行測試時,需從數(shù)據(jù)庫中讀取該試題的測試數(shù)據(jù),一般有三到五組的測試數(shù)據(jù),一一代入編譯后的程序中進行測試運行,運行后將每次運行的結(jié)果與運行時所花費的時間復(fù)雜度與空間復(fù)雜度記錄到數(shù)據(jù)庫中,并將每次運行的結(jié)果與數(shù)據(jù)庫中該試題的正確結(jié)果進行比對,以判斷該程序是否運行正確。進一步判斷程序每次運行的時間復(fù)雜度與空間復(fù)雜度是否在該試題規(guī)定的時間復(fù)雜度與空間復(fù)雜度內(nèi),以確定該程序的運行效率是否達到試題的規(guī)定要求。系統(tǒng)將根據(jù)程序運行的正確程度以及運行效率給出不同的評測等級結(jié)果。
教師在客戶端頁面錄入并編輯試題更新到服務(wù)器端的數(shù)據(jù)庫中,完成試題的編制工作。
5 開發(fā)與實現(xiàn)
使用Eclipse開發(fā)工具,綜合Spring技術(shù)、Hibernate技術(shù),數(shù)據(jù)庫使用MySQL,系統(tǒng)整體部署在Tomcat服務(wù)器,所有開發(fā)工具、數(shù)據(jù)庫、服務(wù)器、框架全部為開源的免費軟件,并且根據(jù)各個軟件的授權(quán)協(xié)議進行使用。系統(tǒng)功能,構(gòu)建具有良好的擴展性、開放性的系統(tǒng),易于維護,升級方便。
底層使用Hibernate框架訪問數(shù)據(jù)庫,主要的類有BaseDao。BaseDao為所有DAO的父類,使用了泛型。BaseDao定義了數(shù)據(jù)庫操作的常用方法,子類只需繼承便可使用對應(yīng)的方法,因為使用了泛型,所以更新操作的返回值為各個實體類Entity,返回的Entity向上層提供給Service進行業(yè)務(wù)邏輯處理。
數(shù)據(jù)庫表所對應(yīng)的類為實體類,一個實體類進行數(shù)據(jù)庫的映射,默認自動對應(yīng)的數(shù)據(jù)庫表是和類名同名的數(shù)據(jù)表,如果數(shù)據(jù)庫表和類名不同名可以設(shè)置@Table(name="users")進行映射。同樣數(shù)據(jù)庫字段名默認情況下是和類的屬性名同名的,如果不同名可用@Column(name="user_id")進行映射設(shè)置。@Id說明該屬性對應(yīng)的字段為數(shù)據(jù)庫主鍵。
Service為業(yè)務(wù)邏輯層,通過Spring的依賴注入,注入不同的DAO,進行數(shù)據(jù)庫操作。DAO返回給Service的是Entity,在service的不同方法里面通過DataTransferUtil類進行轉(zhuǎn)換,轉(zhuǎn)換為頁面需要的域模型Domain,提供給上層。
6 總結(jié)
該系統(tǒng)的設(shè)計可完成在線計算機程序設(shè)計的評測工作,一定程度上減少了教師閱讀程序和調(diào)試程序的工作量。但在程序效率的評測上還不夠精確,這取決于程序運行時的時間復(fù)雜度與空間復(fù)雜度的測定算法,系統(tǒng)中該算法的應(yīng)用尤為重要,應(yīng)著重設(shè)計實現(xiàn)。
(2012年河南省信息技術(shù)教育研究項目 ITE 12165)
參考文獻:
[1] (美)威爾頓,麥可匹克.JavaScript入門經(jīng)典(第3版)[M].施宏斌,譯.北京:清華大學(xué)出版社,2009.
[2] (美)Marty Hall,Larry Brown.Servlet與JSP核心編程(第二版)[M].趙學(xué)良,譯.北京:清華大學(xué)出版社,2004.
[3] 孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計與開發(fā)[M].北京:電子工業(yè)出版社,2004.
[4] 張孝祥.Java就業(yè)培訓(xùn)教程[M].北京:清華大學(xué)出版社,2003.
[5] 王國輝,李立文,楊亮.JSP數(shù)據(jù)庫系統(tǒng)開發(fā)完全手冊[S].
[6] 陳鵬,程勇.J2EE項目開發(fā)實用案例[M].北京:科技出版社,2006.
[7] (美)Bruce Eckel.Java編程思想[M].陳昊鵬,譯.北京:機械工業(yè)出版社,2007.
關(guān)鍵詞:VB;程序設(shè)計;實例;多層次
一、教學(xué)中遵循理論與上機循序漸進,基本實例與綜合實例有機結(jié)合
(一) 對書本知識進行精心編排,注重背景知識和基本概念的結(jié)合
我們注意到,在VB程序設(shè)計語言的教材布局上,往往是先從基本的語法現(xiàn)象入手,比如先介紹數(shù)據(jù)類型常量變量等,實際上,教學(xué)過程中演示這些基本數(shù)據(jù)類型的例子本身就會涉及對象、屬性、事件、方法。VB課程的教學(xué)是面對非計算機專業(yè)學(xué)生,缺乏對windows程序運行機制的相關(guān)背景知識。因此,VB教學(xué)中,講解基本概念和VB的事件驅(qū)動機制、可視化程序設(shè)計必須結(jié)合在一起。如果教師在講解基本概念的時候照本宣科,演示數(shù)據(jù)類型的程序?qū)嵗臅r候,由于對VB的運行機制和可視化程序設(shè)計的方式不了解,學(xué)生的注意力并不關(guān)注也不理解教師講解的內(nèi)容,而是去思考這個程序的實現(xiàn)過程是什么,可是由于沒有關(guān)于對象的基本概念,立刻造成了理解障礙,不但對應(yīng)該掌握的知識點一頭霧水,對程序設(shè)計也產(chǎn)生了一種恐懼心理,這個是我在VB教學(xué)中的深刻體會。
因此,在VB教學(xué)中教師應(yīng)當時刻關(guān)心學(xué)生的知識結(jié)構(gòu),從學(xué)生的思維角度去考慮問題,必要的整合教材的相關(guān)知識點,特別要注意相關(guān)知識點的穿插講解,打破學(xué)生的思維障礙。比如在講解VB循環(huán)結(jié)構(gòu)的時候,可以和后面的數(shù)組知識聯(lián)系起來,使學(xué)生明白為什么在有了變量這個概念以后還需要引入數(shù)組,而且通過循環(huán)結(jié)構(gòu)對數(shù)組元素的打印,深化對循環(huán)結(jié)構(gòu)的認識。有機地改變課本知識的邏輯結(jié)構(gòu),以相關(guān)的知識點靈活組織課堂教學(xué),通過讓學(xué)生觀看,在實際操作中主動模仿,領(lǐng)悟這些概念,最終引導(dǎo)學(xué)生明白抽象的理論知識并不神秘,讓學(xué)生在輕松愉快的氣氛中接受新知識。
(二)VB程序設(shè)計是面向應(yīng)用的科學(xué),注重理論和動手的結(jié)合
1.注重基本問題的上機操作。對VB有恐懼心理的同學(xué)往往是在學(xué)習(xí)的初期沒有能夠理解VB的上機環(huán)境,數(shù)據(jù)類型,變量等最基本的概念,而這些概念通過上機的直接觀察是很容易理解的。教師在教學(xué)中一定要把握住學(xué)生的思維和背景知識,一個簡單的概念經(jīng)常成為學(xué)生學(xué)習(xí)程序設(shè)計語言的重大障礙,對學(xué)生的自信心和學(xué)習(xí)熱情都會產(chǎn)生影響。因此,在VB教學(xué)的初期,要把基本的上機操作和基本的語法知識結(jié)合介紹相關(guān)的背景知識講透,為學(xué)生的上機操作和后續(xù)學(xué)習(xí)掃清不必要的障礙。
2.演示實例,引導(dǎo)學(xué)生模仿。教師可以通過對實例系統(tǒng)的調(diào)試、改進,開拓學(xué)生編程思路,融合相關(guān)的知識點,必要時候允許學(xué)生通過模仿、達到熟練掌握的目的。模仿是學(xué)習(xí)程序設(shè)計重要的一環(huán),即使對熟練的程序設(shè)計人員而言,也常常需要參考,或者說模仿別人成熟的代碼,整個是程序開發(fā)的基本特點。因此,教師應(yīng)鼓勵學(xué)生采用模仿的方式去實現(xiàn)不同的應(yīng)用需求,達到靈活應(yīng)用,舉一反三。
3.深化實踐教學(xué),以理論課教學(xué)為基礎(chǔ),通過案例的整合,形成不同層次的上機項目,供學(xué)生選擇。對于理解能力強的學(xué)生而言,可以通過有一定難度的實踐課,達到培養(yǎng)學(xué)生分析問題和解決問題的能力,為今后的深入自學(xué)打下良好的基礎(chǔ)。對掌握綜合案例有困難的學(xué)生,老師更應(yīng)以基本案例為基礎(chǔ),強化基本知識點,逐步提高這類學(xué)生對VB的學(xué)習(xí)能力。教師應(yīng)親自指導(dǎo),與學(xué)生一起上機實驗,隨時監(jiān)控學(xué)生實驗過程。對學(xué)生提出的問題及時予以指導(dǎo),發(fā)現(xiàn)學(xué)生常犯的共性錯誤,可在理論課上進行點評。
(三)教學(xué)手段多樣化
根據(jù)程序設(shè)計課程的特點,除了采用傳統(tǒng)的教學(xué)方法如:引入問題、問題討論、概念解析外,可以采用教學(xué)手段結(jié)合進行:
1.獨立實例和綜合實例結(jié)合進行
獨立實例教學(xué)法可以加強對每個知識點的運用和理解,但對前后知識往往沒有連貫性,對學(xué)生的實際應(yīng)用能力提高不大。因此在教學(xué)實踐中體會到,除經(jīng)典的獨立實例外,將一個有實用價值的、典型的、規(guī)模較大的、綜合實例的實踐應(yīng)用于教學(xué)全過程,不但可以對整個VB應(yīng)用程序的開發(fā)有觀念上的認識,也可以全面提高學(xué)生的編程能力。如提出問題:設(shè)計一個“學(xué)生管理系統(tǒng)”。首先,用最基本的概念和最簡單的界面,給出該系統(tǒng)的第一個框架版本,以后的每一次課,都對該系統(tǒng)提出新的功能和結(jié)構(gòu)上的要求,并用本次課介紹的新概念和新方法對它進行功能上的擴充和結(jié)構(gòu)上的改進。每次得到該系統(tǒng)的一個增強的新版本。學(xué)生隨著教學(xué)的深入,會更有興趣地積極投入到對實例系統(tǒng)的調(diào)試、改進中,不但掌握了所學(xué)的基本知識,同時也提高了編程能力。
2.通過分析上機錯誤,引導(dǎo)學(xué)生理解課本上的概念,學(xué)習(xí)調(diào)試方法。
學(xué)生對數(shù)據(jù)類型、變量、運算符、表達式等語言規(guī)則的掌握需要一個過程,對結(jié)構(gòu)化程序設(shè)計的知識需要不斷積累。經(jīng)常聽到學(xué)生反映能聽懂老師授課的內(nèi)容,但自己編制的程序往往在機器上難以運行。課堂上,可以將容易出錯的概念以反例形式展示給學(xué)生,讓學(xué)生主動找錯誤,通過上機運行去發(fā)現(xiàn),比如下面錯誤使用邏輯運算符的例子。
用if語句編程計算下列分段函數(shù)值:
|x2+x-3 x<0且x≠-3
f(x)= |x2-5x+60≤x<10且x≠2及x≠3
|x2-x-1其他
學(xué)生往往編寫為:
Private Sub Command1_Click()
Dim x!, y!
x = Val(InputBox(“x=”))
y = x * x - x 1
If x < 0 And x -3 Then
y = x * x + x 6
ElseIf 0
y = x * x - 5 * x + 6
End If
Print “x=”; x, “y=”; y
End Sub
ElseIf 0
乍看起來,似乎程序沒有什么錯誤,實際上學(xué)生把數(shù)學(xué)符號的用法和VB中符號的用法混淆了。在VB中0
(四)用直觀的方式培養(yǎng)學(xué)生利用程序設(shè)計語言理解和實現(xiàn)算法的能力
算法(Algorithm):計算機解題的基本思想方法和步驟。學(xué)生算法思維的形成是程序設(shè)計語言教學(xué)中的難點,也是學(xué)好程序設(shè)計語言最重要因素。程序本質(zhì)上就是用一定的語法去實現(xiàn)算法思想,教學(xué)中,我往往采用直觀教學(xué)法來讓學(xué)生去理解算法,因為算法本身就是一種解題方法和步驟,可以讓學(xué)生代表不同的數(shù)字排列起來,通過表演的方式模擬冒泡排序,課堂不但活躍,而且學(xué)生也非常輕松地理解了。
二、結(jié)束語
通過VB程序設(shè)計語言的教學(xué),使我逐步認識到程序設(shè)計語言教學(xué)是一項復(fù)雜的系統(tǒng)工程,隨著計算機科學(xué)的發(fā)展,對教師的教學(xué)水平的要求也越來越高,盡管在教學(xué)實踐中總結(jié)的一些經(jīng)驗,獲得了一些效果,但與因材施教的教學(xué)模式仍有差距。教學(xué)上的改革和探索一定要與實際相結(jié)合,遵循因時、因地、因人而異的原則,采用靈活多樣的教學(xué)手段、教學(xué)方法,充分調(diào)動學(xué)生的積極性,培養(yǎng)學(xué)生自主學(xué)習(xí)的能力,為學(xué)生今后各個領(lǐng)域的學(xué)習(xí)和研究打下堅實的基礎(chǔ)。
參考文獻:
摘 要 針對學(xué)生學(xué)習(xí)計算機程序設(shè)計語言的困難,以提高學(xué)生的實際編程能力為目標,提出了分層次的基于問題(Problem Based Learning,PBL)的程序設(shè)計學(xué)習(xí)方法。包括:以激發(fā)學(xué)習(xí)興趣為目標的教學(xué)情景案例、以培養(yǎng)“計算思維”為目標的宏觀問題和以培養(yǎng)實際編程能力為目標的微觀問題等。教學(xué)實踐表明基于PBL的教學(xué)取得了良好的效果。
關(guān)鍵詞 基于問題的學(xué)習(xí) 教學(xué)情景 宏觀問題 微觀問題
中圖分類號:G424 文獻標識碼:A DOI:10.16400/ki.kjdkz.2015.08.061
Programming Design Language Teaching Cases Base on PBL
BAI Hongtao[1], HE Lili[2], HU Chengquan[2]
([1] Center for Computer Fundamental Education, Jilin University, Changchun, Jilin 130012;
[2] College of Computer Science and Technology, Jilin University, Changchun, Jilin 130012)
Abstract: For students to learn computer programming languages difficult, in order to improve students' ability to target the actual programming is proposed based on hierarchical problem (Problem Based Learning, PBL) learning programming. Including: to stimulate interest in learning the target of teaching case scenario, to develop macro issues "computational thinking" as the goal, and to develop practical programming capabilities targeted micro issues and so on. The practice shows that the good results achieved based on the teaching of PBL.
Keywords: problem-based learning; teaching situation; macro issues; micro issues
0 引言
計算機程序設(shè)計語言是學(xué)生們普遍認同的學(xué)習(xí)難點,過多的語法知識點以及在考核考評模式下,學(xué)習(xí)計算機程序設(shè)計語言應(yīng)有的根本目標――編程能力沒有得到很好的鍛煉。當前的教學(xué)模式是以教師為主體,教師是教學(xué)過程的主導(dǎo),學(xué)生是知識的被動接受者和思想的跟隨者。因此,培養(yǎng)學(xué)生的創(chuàng)造力,構(gòu)建以學(xué)生“學(xué)”為中心的教學(xué)體系是非常必要的。
基于問題(Problem Based Learning,PBL)的教學(xué)模式率先由美國神經(jīng)病學(xué)教授Barrows創(chuàng)立。①PBL已從國際醫(yī)學(xué)界擴展到工程、法學(xué)、工商管理等諸多學(xué)科,從大學(xué)高等教育逐步延伸到中小學(xué)教育。②③PBL在國內(nèi)的起步較晚,上世紀90年代才引起研究者的關(guān)注,全國教育科學(xué)“十五”項目規(guī)劃將PBL的網(wǎng)絡(luò)化設(shè)計列為重點課題。1994年開始,陸續(xù)有關(guān)PBL理論研究的文章發(fā)表,且側(cè)重于醫(yī)學(xué)教育領(lǐng)域,2000年后擴展到其他領(lǐng)域,但理論研究比例較大。④⑤PBL在高等院校計算機程序語言學(xué)課程中的實踐,則較為少見。
本文引進PBL教學(xué)模式,通過基于“問題”的學(xué)習(xí),探尋一條適合學(xué)生學(xué)習(xí)計算機程序設(shè)計語言的有效途徑,同時為教師在教學(xué)中提供可參考的方法和思路。
1 教學(xué)情景案例
1.1 什么是計算機語言
對于初學(xué)者而言,最直接的問題就是:“什么是計算機語言?”我們從《通靈芯片》一書⑥中對計算機語言既抽象又形象的解釋來闡述這一問題。
石頭上我蝕刻了一副圖案,內(nèi)有幾何圖形種種,在不明者眼中,顯得神秘而又復(fù)雜,但我明白,只要布局正確,這塊石頭將被賦予一種特殊的能力,即對一種至今無人說過的咒語做出反應(yīng)。我用這種語言提問,石頭會顯靈應(yīng)答:那是一個我用符咒創(chuàng)造的世界,一個在石頭圖案內(nèi)想象的世界。
石頭是硅片(硬件),咒語就是程序(軟件)。
1.2 計算機語言與人類語言的關(guān)系,學(xué)習(xí)計算機語言與學(xué)習(xí)外語的相似性
語言也是我們?nèi)祟惖闹饕涣魍緩剑f對方能夠聽得懂的話。若我們想讓計算機遵從我們的意愿工作,就必須對計算機“說”它能夠“聽得懂”的“語言”。
學(xué)習(xí)和使用計算機語言與我們學(xué)期一門外語(如英語)一樣,有兩種方式:
先學(xué)習(xí)單詞、語法,再學(xué)習(xí)語義。
學(xué)習(xí)一定的語法,在使用(編程)中學(xué)習(xí)語義,融會貫通。
我們建議采用第二種學(xué)習(xí)方法,竭力避免為了語法而語法,死記硬背的學(xué)習(xí)是沒有意義的。
1.3 結(jié)構(gòu)化程序設(shè)計的好處
我們吃中餐都有這樣一個體會,同樣一個菜品,在不同的飯店,由不同的廚師做出來的味道迥異。而比如KFC,無論在世界上的哪個店面,口味幾乎是一樣的。同學(xué)們想為什么呢?對,因為KFC建立了一套標準化的食品制作流程,每個環(huán)節(jié)都是規(guī)定好的,細致的,不需要個人主觀“發(fā)揮”的。同樣,程序設(shè)計既可以是“京醬肉絲”,也可以是“漢堡包”。可以是藝術(shù),也可以是工程。比較而言,我們更側(cè)重于用工程化的思想和方法來進行程序設(shè)計。進而,有了結(jié)構(gòu)化程序設(shè)計方法,就是為了規(guī)范程序設(shè)計的個人行為的。使得程序有更好的可讀性、可理解性和可移植性。
1.4 正確理解編譯器的提示信息
同學(xué)們在用編譯器對高級語言源程序進行編譯的時候,若有語法錯誤,通常編譯器會告知我們語法錯誤出現(xiàn)在哪一行。有時僅僅有一個語法錯誤,但是編譯器會顯示有很多行都有錯誤。很多同學(xué)不理解,以為出了什么問題,其實這是可以解釋的,如圖1所示:
圖1 編譯器匹配規(guī)則
第一行有5個正確的匹配,如果我拿走了其中的一個(黃色一對中的一個),則高級語言順序編譯器根據(jù)至上而下檢查的原則,會出現(xiàn)4個(而不是一個)失配的錯誤。只要更正了黃色的部分,則所有錯誤消失。
2 宏觀問題
(1)如何才能學(xué)好計算機程序設(shè)計語言?
回答:從模仿開始。
人類學(xué)習(xí)母語是模仿,學(xué)習(xí)計算機程序設(shè)計語言也可以從“照葫蘆畫瓢”開始,在模仿的過程中修正錯誤,掌握知識點,培養(yǎng)程序設(shè)計的思路、方法和技能。
類比,學(xué)習(xí)外語如英語的方法也不該只是大量地背單詞,應(yīng)該是從說話、閱讀、寫作當中學(xué)習(xí),學(xué)會用是最終目的,否則再多的單詞也是沒有生命力的。
(2)if 語句和switch…case語句都能實現(xiàn)選擇分支,是不是二者用哪個都可以?
回答:雖然從語法上,switch…case結(jié)構(gòu)相當于多個if嵌套。也有一些題目來考察兩者的相互轉(zhuǎn)換。但語法不該被亂用或濫用,switch…case結(jié)構(gòu)只有在特定的多分支選擇時才適合使用。
(3)條件表達式可以代替if語句,那么就多用條件表達式對嗎?
回答:這個問題類似于switch…case結(jié)構(gòu)一樣,不能被濫用。只有類似于下面的條件語句
if ( a>b )
Max = a;
else
Max = b;
才能使用 Max = a>b?a:b;來代替,不是任何if語句轉(zhuǎn)換成條件表達式都是合適和易于理解的。
(4)為什么C語言有“指針”?是必須的嗎?
回答:包括C語言在內(nèi)的任何一種計算機程序設(shè)計語言,都是從實用性出發(fā)的,而不像數(shù)學(xué)定理那樣追求“當且僅當”。C語言的指針并不是必須的,比如C#就沒有指針的概念,但有了“指針”,能夠使程序更具靈活性,在實現(xiàn)某些功能時更方便、快捷。當然,C語言的指針也有一些負面的作用,如野指針。對初學(xué)者來說,C語言的指針也確實是一個難點。但無論如何,同學(xué)們完全可以通過勤學(xué)多練,掌握“指針”。隨著學(xué)習(xí)和應(yīng)用的深入,同學(xué)們會慢慢體會到C語言的“指針”不僅不是阻礙,而且還是解決問題的“利器”。
3 微觀問題
(1)數(shù)組既然是多個數(shù)據(jù)元素的集合,是否可以對數(shù)組所有元素進行整體輸入和輸出?
例如:int a[10];
scanf(“%d”, a);
回答:C語言規(guī)定,數(shù)組的名字代表了數(shù)組首元素的地址(或理解為數(shù)組在內(nèi)存中的起始地址),雖然scanf的參數(shù)表列的要求是地址,但不允許用一個地址將數(shù)組所有元素都輸入,除非要輸入的字符串,且字符串是放到字符數(shù)組中,并當作一個整體來看待的。
正確的方法是:
int a[10], i;
for (i=0; i<10; i++)
scanf(“%d”, &a[i]);
對于字符數(shù)組而言,可以:
int c[10];
scanf(“%s”, c);
(2)如何驗證對浮點數(shù)在“足夠接近”情況下的等值。
回答:浮點數(shù)的定義決定它的絕對精確度會隨著其代表的值變化, 所以比較兩個浮點數(shù)的最好方法就要利用一個精確的閾值。這個閾值和作比較的浮點數(shù)值大小有關(guān)。不要用下面的代碼:
double a, b;
...
if (a == b) /*錯!*/
要用類似下列的方法:
#include <math.h>
if (fabs(a - b) <= epsilon * fabs(a))
epsilon 被賦為一個選定的值來控制“接近度”。你也要確定a 不會為0。
(3)莫要亂寫“;”
C語言程序的一行是以“;”為結(jié)尾的,但不意味著任何一行程序的末尾都要加“;”。比如:
for ( i=0; i<100; i++ )
sum = sum + i;
有很多同學(xué)在for ( i=0; i<100; i++ )后加了一個“;”,這使得本來完成一個功能的語句,硬生生地被“分開”了。
4 結(jié)束語
熟練掌握一門計算機程序設(shè)計語言,無論是對計算機還是非計算機專業(yè)的學(xué)生都是非常重要的。教學(xué)實踐表明,通過不同層次基于問題的學(xué)習(xí),能夠顯著增強學(xué)生的主觀能動性,提升學(xué)習(xí)興趣。本文是在我校教育教學(xué)改革項目的支持下的教學(xué)研究成果。期望在政策的指引下,通過師生的共同努力,探索出適合當代大學(xué)生學(xué)習(xí)計算機程序設(shè)計語言和相關(guān)課程新道路。
參考文獻
2013.09,吉林大學(xué)本科教學(xué)改革研究項目,在線“非計算機專業(yè)計算機程序設(shè)計PBL教學(xué)”內(nèi)容研究,項目編號:2013097;
程序設(shè)計論文 程序?qū)嵱?xùn)總結(jié) 程序研究論文 程序畢業(yè)論文 紀律教育問題 新時代教育價值觀