婷婷超碰在线在线看a片网站|中国黄色电影一级片现场直播|欧美色欧美另类少妇|日韩精品性爱亚洲一级性爱|五月天婷婷乱轮网站|久久嫩草91婷婷操在线|日日影院永久免费高清版|一级日韩,一级鸥美A级|日韩AV无码一区小说|精品一级黄色毛片

首頁 > 文章中心 > 程序設(shè)計(jì)語言

程序設(shè)計(jì)語言

前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇程序設(shè)計(jì)語言范文,相信會(huì)為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。

程序設(shè)計(jì)語言范文第1篇

關(guān)鍵詞:程序設(shè)計(jì)語言;VB;中職;高職單招;教學(xué)策略

一、中職生能力水平與高職單招考試現(xiàn)狀分析

中職生普遍學(xué)習(xí)能力水平不高,部分學(xué)生未養(yǎng)成良好的學(xué)習(xí)習(xí)慣,對(duì)學(xué)習(xí)有較大的畏難情緒。多表現(xiàn)為課堂上不注意聽講,不記筆記,課后作業(yè)完成情況差,不復(fù)習(xí)功課。VisualBasic程序設(shè)計(jì)語言是一種面對(duì)對(duì)象的可視化編程語言,包含大量需要理解并識(shí)記的基礎(chǔ)知識(shí)點(diǎn),同時(shí)具有較強(qiáng)的實(shí)踐操作性。學(xué)生在學(xué)習(xí)VB程序設(shè)計(jì)語言時(shí),常因該科目過于困難而遭遇學(xué)習(xí)挫折,甚至產(chǎn)生厭學(xué)情緒。從2015年開始,福建省高職單招考試改革,除筆試外,新增技能考試。因此,對(duì)志在升學(xué)的中職生來說,書本知識(shí)的掌握與技能實(shí)踐能力,這二者的培養(yǎng)同等重要。教師在授課過程中,不僅要重視基礎(chǔ)知識(shí)點(diǎn)的講解,更要注重上機(jī)操作技能的培養(yǎng)。因此,激發(fā)學(xué)生的學(xué)習(xí)興趣,使學(xué)生積極主動(dòng)參與到學(xué)習(xí)活動(dòng)中,掌握基礎(chǔ)知識(shí)點(diǎn)并培養(yǎng)優(yōu)秀的上機(jī)操作能力,是教師制定教學(xué)策略的首要目的。

二、教學(xué)策略

(一)優(yōu)秀案例設(shè)計(jì)導(dǎo)入新課

VB程序設(shè)計(jì)語言枯燥難懂,傳統(tǒng)的教學(xué)模式中,教師常采用“講授法”授課。從課堂一開始,就不斷灌輸程序設(shè)計(jì)語言的基本概念知識(shí),不斷講解,致使學(xué)生難以理解概念,甚至喪失學(xué)習(xí)興趣,事倍功半。為了激發(fā)學(xué)生學(xué)習(xí)興趣,教師應(yīng)設(shè)計(jì)生動(dòng)有趣的優(yōu)秀案例導(dǎo)入新課。例如,在教授計(jì)時(shí)器控件這一小節(jié)內(nèi)容時(shí),教師根據(jù)計(jì)時(shí)器控件能夠通過設(shè)置時(shí)間間隔從而達(dá)到定期做一些程序處理的特點(diǎn),與寓言故事“龜兔賽跑”相結(jié)合,設(shè)計(jì)一個(gè)烏龜與兔子賽跑的小程序。枯燥的程序設(shè)計(jì)語言轉(zhuǎn)換為生動(dòng)的小游戲,引導(dǎo)學(xué)生直觀認(rèn)識(shí)并體驗(yàn)程序設(shè)計(jì)的實(shí)用性,從而激發(fā)學(xué)生學(xué)習(xí)興趣。

(二)合理教學(xué)方法提高課堂教學(xué)效率

VB程序設(shè)計(jì)語言學(xué)科內(nèi)容繁多,理論性與實(shí)踐性兼有,教學(xué)方法應(yīng)根據(jù)教授知識(shí)點(diǎn)的不同,靈活轉(zhuǎn)變組合,提高課堂教學(xué)效率。

1.詳細(xì)講解基礎(chǔ)知識(shí),掌握基本結(jié)構(gòu)語句。教師采用講授法,使學(xué)生掌握基礎(chǔ)知識(shí)點(diǎn)。例如在計(jì)時(shí)器控件教學(xué)中,演示完小程序,導(dǎo)入新課,教師首先講解計(jì)時(shí)器控件的特有屬性、事件,計(jì)時(shí)器控件處理程序的特點(diǎn),使學(xué)生打好扎實(shí)的基礎(chǔ)。

2.結(jié)合基礎(chǔ)知識(shí),演示上機(jī)操作。教師采用任務(wù)驅(qū)動(dòng)法,結(jié)合基礎(chǔ)知識(shí),演示上機(jī)操作,并布置任務(wù)讓學(xué)生完成。中職生的學(xué)習(xí)能力水平不高,教師首先采用演示法,降低學(xué)習(xí)難度,設(shè)置簡易任務(wù),督促學(xué)生完成,并一一檢查,保證完成率。程序設(shè)計(jì)語言是一門實(shí)踐性極強(qiáng)的學(xué)科,上機(jī)操作練習(xí)后,更能加深學(xué)生對(duì)程序語言的直觀理解。

3.教師總結(jié)錯(cuò)誤,改正鞏固知識(shí)。學(xué)生上機(jī)操作過程中,教師巡視指導(dǎo)。上機(jī)操作中,學(xué)生易出現(xiàn)錯(cuò)誤,教師可于巡視過程中發(fā)現(xiàn)指導(dǎo),最后總結(jié)經(jīng)常出現(xiàn)的錯(cuò)誤,統(tǒng)一講解,鞏固學(xué)生的基礎(chǔ)知識(shí)。

4.設(shè)置思考題,強(qiáng)化自主學(xué)習(xí)能力。布置簡單任務(wù),是為了降低學(xué)習(xí)難度,提高學(xué)生的學(xué)習(xí)成就感。之后應(yīng)設(shè)計(jì)難度較高的思考題,強(qiáng)化學(xué)生的自主思考能力。采用自主探究方法,學(xué)生可幾人一組,探索如何完成任務(wù)。程序設(shè)計(jì)語言最終是一門靈活性極強(qiáng)、創(chuàng)造性極高的科目,單一的講授法與演示法雖能使學(xué)生掌握最基礎(chǔ)的知識(shí)點(diǎn),卻不能培養(yǎng)學(xué)生設(shè)計(jì)程序的自主思考能力。因此,適當(dāng)提高任務(wù)難度,能激發(fā)學(xué)生的探究興趣,促進(jìn)他們積極思考。

5.綜合式項(xiàng)目,整合所學(xué)知識(shí)。VB程序設(shè)計(jì)語言實(shí)用性極強(qiáng),設(shè)計(jì)綜合式題目,將所學(xué)知識(shí)都整合到一個(gè)綜合項(xiàng)目中,能讓學(xué)生深刻認(rèn)識(shí)到程序設(shè)計(jì)的實(shí)用性。例如在計(jì)時(shí)器控件的上機(jī)練習(xí)題目中,用到的并不止計(jì)時(shí)器一個(gè)控件,更包括圖片框、命令按鈕、標(biāo)簽框等控件,應(yīng)用的知識(shí)除了計(jì)時(shí)器控件的Timer事件、Interval屬性外,還包括Left、Enabled屬性和基本賦值語句等。將學(xué)過的多個(gè)知識(shí)點(diǎn)整合到一個(gè)題目中,既能讓學(xué)生梳理學(xué)過的知識(shí),又能提高學(xué)生綜合運(yùn)用VB程序設(shè)計(jì)語言解決實(shí)際問題的能力。

(三)漸進(jìn)式教學(xué)任務(wù)提高學(xué)習(xí)成就感

班級(jí)授課經(jīng)常存在學(xué)生學(xué)習(xí)能力高低不一,理解程度有好有壞的情況。教師授課若過于簡單,全體學(xué)生皆能理解并完成,對(duì)一部分優(yōu)生而言,學(xué)習(xí)喪失挑戰(zhàn)性,容易失去學(xué)習(xí)興趣,且無法更好地培養(yǎng)學(xué)生自主思考能力。而授課若太難,則水平較低的學(xué)生易遭遇學(xué)習(xí)挫折,產(chǎn)生厭學(xué)情緒。因此,設(shè)計(jì)教學(xué)任務(wù)時(shí),教師應(yīng)做好課前準(zhǔn)備,鉆研教材,將基礎(chǔ)概念與練習(xí)題目緊緊結(jié)合,以學(xué)生的理解能力為基礎(chǔ),將難度設(shè)計(jì)為漸進(jìn)式,由易到難。這樣既能讓學(xué)生獲得學(xué)習(xí)成就感,激發(fā)學(xué)習(xí)興趣,又能培養(yǎng)學(xué)生自主探究的精神。

(四)講授與上機(jī)操作相結(jié)合,理論與實(shí)踐并重在VB程序設(shè)計(jì)語言學(xué)科教學(xué)中,上機(jī)操作實(shí)踐十分重要,教師課前應(yīng)認(rèn)真準(zhǔn)備教材、上機(jī)任務(wù),授課過程中安排合理充分的上機(jī)練習(xí)時(shí)間。VB程序設(shè)計(jì)語言是一門可視化編程語言,操作性極強(qiáng),只有充分的上機(jī)練習(xí)才能保證學(xué)生對(duì)技能的完全掌握。高職單招考試中,筆試過后,仍有技能實(shí)踐考試,理論與實(shí)踐并重。

(五)課后鞏固基礎(chǔ)知識(shí)點(diǎn)

中職生學(xué)習(xí)習(xí)慣較差,大部分學(xué)生并無課后復(fù)習(xí)的習(xí)慣。教師在制定教學(xué)策略時(shí),應(yīng)考慮到課后鞏固知識(shí)這一環(huán)。通過布置作業(yè)任務(wù)、課后習(xí)題督促學(xué)生完成課后鞏固;通過小測(cè)、考試等手段激勵(lì)學(xué)生的競爭心理,增強(qiáng)他們的學(xué)習(xí)主動(dòng)性;通過批改作業(yè)、小測(cè),發(fā)現(xiàn)學(xué)生的知識(shí)薄弱點(diǎn),再加以強(qiáng)化。

三、結(jié)語

中職教育是職業(yè)技術(shù)教育,實(shí)踐操作能力的培養(yǎng)至關(guān)重要;由于高職單招已成為中職生升學(xué)的重要渠道,掌握書面知識(shí)也同等重要。學(xué)生的計(jì)算機(jī)操作水平與教師的教學(xué)質(zhì)量緊密相關(guān),教師應(yīng)根據(jù)VB學(xué)科的特性,分析其重難點(diǎn),靈活運(yùn)用多種教學(xué)方法,提高教學(xué)質(zhì)量,提高課堂教學(xué)效率,以學(xué)生為主體,激發(fā)學(xué)生學(xué)習(xí)興趣,同時(shí)不斷提升教師的教學(xué)水平。

參考文獻(xiàn):

[1]梁徳賽.VB程序設(shè)計(jì)課程教學(xué)探討[J].科教導(dǎo)刊,2012,2.

[2]張華.中職計(jì)算機(jī)實(shí)踐教學(xué)法的應(yīng)用與教學(xué)創(chuàng)新探討[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2011,5.

[3]高曉青.中職計(jì)算機(jī)教學(xué)方法探究[J].學(xué)周刊,2013,6.

程序設(shè)計(jì)語言范文第2篇

關(guān)鍵詞: 《C程序設(shè)計(jì)語言》 誤區(qū) 感悟

《C程序設(shè)計(jì)語言》課程是電子信息工程專業(yè)開設(shè)的第一門程序設(shè)計(jì)類課程。該課程在本專業(yè)的課程體系中處于承上啟下的地位,對(duì)于學(xué)習(xí)后續(xù)高級(jí)編程語言具有很好的導(dǎo)引作用。筆者經(jīng)過一個(gè)學(xué)期的系統(tǒng)學(xué)習(xí)后感覺受益匪淺,不僅學(xué)到了基礎(chǔ)的編程語言知識(shí),更重要是的掌握了邏輯性較強(qiáng)的編程思想。為了讓更多學(xué)生很好地學(xué)習(xí)這門課程,筆者借此文總結(jié)出《C程序設(shè)計(jì)語言》課程學(xué)習(xí)時(shí)常見的誤區(qū),并給出解決上述誤區(qū)的方法和途徑,供廣大同仁借鑒。

一、學(xué)習(xí)《C程序設(shè)計(jì)語言》課程時(shí)常見的誤區(qū)

1.只注重寫程序,而忽視讀程序。

很多學(xué)生在剛學(xué)習(xí)這門課程時(shí)就希望自己能夠獨(dú)立編寫出一些程序,但實(shí)際情況大相徑庭,此時(shí)挫敗感油然而生,甚至一些學(xué)生因?yàn)檫@種挫敗感產(chǎn)生對(duì)這門課程的厭學(xué)情緒。其實(shí)就筆者的學(xué)習(xí)經(jīng)歷而言認(rèn)為剛開始學(xué)習(xí)時(shí),不要急于自己編程,因?yàn)榇藭r(shí)你還沒掌握好基礎(chǔ)知識(shí),不可能獨(dú)立完成程序的編寫,認(rèn)真研讀別人的優(yōu)秀程序才是學(xué)習(xí)該課程入門最快,也是最好的方法,在讀別人程序的過程中慢慢領(lǐng)悟別人的編程方法和思想。

2.沒能將理論學(xué)習(xí)和上機(jī)實(shí)踐進(jìn)行有效銜接。

《C程序設(shè)計(jì)語言》課程的教學(xué)分為理論講授和上機(jī)實(shí)踐兩個(gè)環(huán)節(jié),因?yàn)閷W(xué)校主客觀原因的限制二者之間存在一定的時(shí)間間隔,但二者在內(nèi)容上又是相互連貫的。時(shí)間上的不連貫和內(nèi)容上的連貫性會(huì)使得一些學(xué)習(xí)不主動(dòng)的學(xué)生不能將理論課上老師所講的知識(shí)和技能在上機(jī)實(shí)踐中得到有效的驗(yàn)證和消化。因此,一些學(xué)生在上機(jī)實(shí)驗(yàn)時(shí)面對(duì)老師布置的作業(yè)會(huì)覺得無從下手,學(xué)習(xí)興趣就會(huì)大大降低。而C課程的知識(shí)是承前啟后的,前一部分知識(shí)沒有掌握好,后面章節(jié)內(nèi)容的學(xué)習(xí)也會(huì)大受影響,這樣就進(jìn)入了一個(gè)惡性循環(huán)。最大的問題是這部分學(xué)生不僅自身學(xué)不好內(nèi)容,而且會(huì)影響其他學(xué)生,這樣班級(jí)的整體學(xué)習(xí)效果就會(huì)大打折扣。

3.缺乏一定的邏輯思維能力。

很多學(xué)生錯(cuò)誤地認(rèn)為C程序設(shè)計(jì)語言就是變量、控制結(jié)構(gòu)、函數(shù)、過程、數(shù)組的簡單結(jié)合,認(rèn)為只要掌握這些就可以編寫出良好的程序了。其實(shí)不然,真正優(yōu)良的程序是需要靠自己的邏輯思維對(duì)變量、控制結(jié)構(gòu)、函數(shù)、過程、數(shù)組這些要素進(jìn)行創(chuàng)造性的整合。所以C程序設(shè)計(jì)語言是一門鍛煉學(xué)生邏輯思維能力的課程。當(dāng)你具有抽象邏輯思維能力和弄清楚了變量、控制結(jié)構(gòu)、函數(shù)、過程、數(shù)組相關(guān)知識(shí)后,編寫C程序就是易事。

二、走出上述誤區(qū)的方法

1.端正學(xué)習(xí)態(tài)度,充分認(rèn)識(shí)到本門課程的重要性,并保持良好的學(xué)習(xí)心態(tài)和學(xué)習(xí)習(xí)慣。

《C程序設(shè)計(jì)語言》是很多高校學(xué)生接觸的第一門編程語言,該課程對(duì)于培養(yǎng)學(xué)生較強(qiáng)的邏輯思維能力具有非常重要的導(dǎo)引作用,而邏輯思維對(duì)于處于信息社會(huì)的大學(xué)生而言是必不可少的,但是邏輯思維能力的培養(yǎng)又不是一朝一夕的,需要持之以恒地努力。對(duì)于學(xué)生而言,只有從內(nèi)心認(rèn)識(shí)到這一點(diǎn)才可以使自身在遇到學(xué)習(xí)困難時(shí)迎難而上。對(duì)于一些偏文專業(yè)的學(xué)生而言,在學(xué)習(xí)初期肯定會(huì)覺得一些概念晦澀難懂,與自己的思維方式存在差異,此時(shí)千萬不能有畏難情緒,一定要相信自己,在自身努力、同學(xué)幫助和教師引導(dǎo)的三方努力下共同渡過難關(guān),而自身的認(rèn)真努力是首要的。課前一定要認(rèn)真預(yù)習(xí),對(duì)自己通過預(yù)習(xí)不能理解和解決的知識(shí)點(diǎn)和概念進(jìn)行標(biāo)記,上課時(shí)當(dāng)老師講授到這部分內(nèi)容時(shí)要認(rèn)真聽講,如果通過教師的講解依然不能理解,千萬不能就此擱置,一定要及時(shí)向老師和同學(xué)請(qǐng)教。C程序設(shè)計(jì)的入門學(xué)習(xí)并不難,卻是一個(gè)十分重要的過程,因?yàn)槌绦蛟O(shè)計(jì)思想就是在這時(shí)形成的,良好的程序設(shè)計(jì)習(xí)慣也在這個(gè)階段養(yǎng)成的。

2.學(xué)習(xí)時(shí)要注重理解一些重要的概念,勤于動(dòng)手編寫程序,并借鑒別人編寫的好程序。

C程序設(shè)計(jì)課程就其本質(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í),但此概念非彼概念,二者還是有所不同,要真正理解這些概念就必須多動(dòng)手、多思考。程序設(shè)計(jì)是高強(qiáng)度的腦力勞動(dòng),不是聽會(huì)的,也不是看會(huì)的,而是練會(huì)的。因此在學(xué)習(xí)過程中要勤于自己獨(dú)立編寫一些小程序,在編寫過程中肯定會(huì)犯一些錯(cuò)誤,在錯(cuò)誤的解決過程中可以提升自己的編程能力,在能力提升的同時(shí)增強(qiáng)自身對(duì)該課程的學(xué)習(xí)興趣。對(duì)于初學(xué)者而言,一方面要自己獨(dú)立編程,但由于自身編程知識(shí)儲(chǔ)備不充分,也要借鑒別人優(yōu)秀的解題思路與方法,探究別人的思維過程,增強(qiáng)自己的思維能力,然后結(jié)合自身實(shí)際嘗試實(shí)現(xiàn)或者說模仿著實(shí)現(xiàn)。

3.在學(xué)習(xí)過程中要避免孤軍奮戰(zhàn)、單打獨(dú)斗,注重團(tuán)隊(duì)協(xié)作和互助。

筆者所在學(xué)校C程序設(shè)計(jì)課程的教學(xué)遵循先理論講授后上機(jī)實(shí)驗(yàn)的步驟。一個(gè)教學(xué)班的學(xué)生人數(shù)在30至40人,實(shí)驗(yàn)課和理論課都只有一個(gè)教師。理論課和實(shí)驗(yàn)課之間的時(shí)間差會(huì)使一部分基礎(chǔ)較薄弱的學(xué)生在實(shí)驗(yàn)課上會(huì)碰到各式各樣的問題,而基礎(chǔ)較好的學(xué)生在實(shí)驗(yàn)課上會(huì)很自如地完成老師布置的實(shí)驗(yàn)任務(wù),因?yàn)橹挥幸粋€(gè)老師進(jìn)行輔導(dǎo),如果那些基礎(chǔ)不是很好的學(xué)生在學(xué)習(xí)過程中遇到問題后請(qǐng)教老師,老師此時(shí)可能正在輔導(dǎo)另外一個(gè)學(xué)生,在這種情況下就可以選擇向身邊基礎(chǔ)較好的同學(xué)請(qǐng)教,這樣既可節(jié)省時(shí)間又可加深同學(xué)之間的交流協(xié)作。經(jīng)過半個(gè)學(xué)習(xí)基礎(chǔ)知識(shí)的學(xué)習(xí),老師會(huì)布置一些綜合編程題讓學(xué)生融會(huì)貫通并有效應(yīng)用以前所學(xué)知識(shí),筆者認(rèn)為此時(shí)同學(xué)之間可以以團(tuán)隊(duì)形式進(jìn)行答題,這樣可以達(dá)到取長補(bǔ)短的效果。

參考文獻(xiàn):

[1]馬麗潔.高職計(jì)算機(jī)和軟件專業(yè)語言類課程改革探析――以C程序設(shè)計(jì)語言為例[J].電子商務(wù),2015(07).

程序設(shè)計(jì)語言范文第3篇

關(guān)鍵詞:在線 程序設(shè)計(jì) 評(píng)測(cè) 系統(tǒng)

中圖分類號(hào):TP311.51 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-3973(2013)003-065-02

1 引言

如今計(jì)算機(jī)技術(shù)發(fā)展迅速,計(jì)算機(jī)已經(jīng)成為了人們?cè)谌粘I詈凸ぷ髦胁豢扇鄙俚囊环N現(xiàn)代化工具。而要想充分的利用計(jì)算機(jī)的高效處理能力,程序設(shè)計(jì)就顯得尤為重要。在高校中,很多專業(yè)都開設(shè)的有程序設(shè)計(jì)課程,要求學(xué)生具備一定的程序設(shè)計(jì)能力,以便能夠借助于計(jì)算機(jī)這種現(xiàn)代化工具解決一些學(xué)習(xí)和工作中遇到的實(shí)際問題。因而學(xué)好一門計(jì)算機(jī)程序設(shè)計(jì)語言,具備一定的程序設(shè)計(jì)能力已經(jīng)成為現(xiàn)代大學(xué)生必不可少的一種技能。在學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)語言時(shí),學(xué)生們往往要編寫大量的程序,教師要對(duì)學(xué)生們所編寫的每一個(gè)程序進(jìn)行調(diào)試運(yùn)行,以便指出并糾正學(xué)生們?cè)诔绦蛟O(shè)計(jì)中出現(xiàn)的一些錯(cuò)誤。從學(xué)生提交程序開始,到教師編譯、調(diào)試,運(yùn)行,到最后對(duì)程序做出評(píng)價(jià)結(jié)果。每一個(gè)階段都是一個(gè)非常繁瑣的過程,學(xué)生提交的程序越多,教師在程序設(shè)計(jì)評(píng)測(cè)過程中所花費(fèi)的時(shí)間和精力就越多,大大增加了教師的工作量。

設(shè)計(jì)一套在線的程序設(shè)計(jì)與評(píng)價(jià)系統(tǒng),可以讓學(xué)生們?cè)诰€進(jìn)行程序設(shè)計(jì),并能通過網(wǎng)絡(luò)直接提交給系統(tǒng),由系統(tǒng)對(duì)學(xué)生們提交的程序自動(dòng)進(jìn)行編譯運(yùn)行,自動(dòng)反饋編譯運(yùn)行中的錯(cuò)誤信息或程序運(yùn)行的最終評(píng)價(jià)結(jié)果。該系統(tǒng)即方便了學(xué)生提交程序,也減少了教師對(duì)程序評(píng)測(cè)的工作量。同時(shí),學(xué)生們能通過系統(tǒng)的評(píng)測(cè),較快的了解程序設(shè)計(jì)中所出現(xiàn)的錯(cuò)誤,以及時(shí)更正,提高學(xué)習(xí)程序設(shè)計(jì)的效率。

2 系統(tǒng)功能設(shè)計(jì)

系統(tǒng)以減少教師工作量,提高學(xué)生學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)語言的效率為目的,應(yīng)具有以下功能:

(1)學(xué)生在線答題。

學(xué)生可通過系統(tǒng)頁面登錄,登錄后選擇程序試題,在線進(jìn)行答題并將編寫好的程序源程序提交到Web服務(wù)器端。

(2)自動(dòng)程序評(píng)測(cè)。

Web服務(wù)器端對(duì)學(xué)生提交的程序進(jìn)行在線評(píng)測(cè),并給出評(píng)測(cè)結(jié)果。

(3)在線成績查詢。

學(xué)生可在線查詢自己所提交程序的評(píng)測(cè)結(jié)果。

(4)在線考試與競賽組題。

系統(tǒng)可用于平時(shí)計(jì)算機(jī)語言課程的考試與競賽。考試或競賽時(shí)允許教師指定相應(yīng)考試題目,學(xué)生對(duì)教師指定的考試和競賽題目在規(guī)定時(shí)間內(nèi)答題,答題后在線提交并能實(shí)時(shí)查詢自己的答題成績。

3 系統(tǒng)總體設(shè)計(jì)

整個(gè)系統(tǒng)的設(shè)計(jì)采用B/S(Browser/Server)的模式,開發(fā)遵循MVC的三層架構(gòu),及底層Model層負(fù)責(zé)數(shù)據(jù)模型、中間層Control層負(fù)責(zé)業(yè)務(wù)邏輯的處理、高層View層負(fù)責(zé)用戶界面。三個(gè)層次功能上相互獨(dú)立,有益于系統(tǒng)的日常維護(hù)及進(jìn)一步的擴(kuò)展。

Browser客戶端頁面主要用來實(shí)現(xiàn)View層,負(fù)責(zé)用戶界面,學(xué)生可通過客戶端頁面進(jìn)行用戶注冊(cè)、登錄以及在線答題和成績查詢;教師則可通過客戶端頁面進(jìn)行試題與試題答案和要求的編輯與上傳,還可根據(jù)考試或競賽的需要進(jìn)行試題的組織與編排。

業(yè)務(wù)邏輯層主要在Web服務(wù)器端能夠?qū)?shù)據(jù)庫中的程序源代碼進(jìn)行讀取并生成相應(yīng)語言的源程序以進(jìn)行編譯運(yùn)行和評(píng)測(cè),并最終給出評(píng)測(cè)結(jié)果,將評(píng)測(cè)各階段的數(shù)據(jù)信息寫入數(shù)據(jù)庫中。

底層的數(shù)據(jù)模型主要用來保存學(xué)生和教師的信息、試題相關(guān)信息、學(xué)生提交的程序源代碼信息、學(xué)生程序在服務(wù)器端的編譯運(yùn)行信息,以及學(xué)生最終的程序評(píng)測(cè)結(jié)果信息。

4 系統(tǒng)詳細(xì)設(shè)計(jì)

根據(jù)系統(tǒng)的功能需要和總體設(shè)計(jì),系統(tǒng)的詳細(xì)設(shè)計(jì)主要分為以下幾個(gè)模塊:

(1)用戶注冊(cè)與登錄模塊。

學(xué)生或教師可通過系統(tǒng)進(jìn)行注冊(cè),注冊(cè)后不同身份對(duì)系統(tǒng)有不同的權(quán)限,如學(xué)生可在線答題,而教師可在線試題錄入與編輯。

(2)學(xué)生在線答題與成績查詢模塊。

程序試題按不同難度級(jí)別進(jìn)行分類,學(xué)生可根據(jù)自己的學(xué)習(xí)程度選擇不同難度的試題。選題后,學(xué)生可選擇不同的計(jì)算機(jī)程序語言來進(jìn)行具體實(shí)現(xiàn),實(shí)現(xiàn)后學(xué)生通過系統(tǒng)頁面將編寫好的源程序代碼直接提交給Web服務(wù)器。

待服務(wù)器端對(duì)程序做出評(píng)測(cè)結(jié)果后,學(xué)生可在線訪問服務(wù)器端數(shù)據(jù)庫中的評(píng)測(cè)信息與結(jié)果。如果沒有編譯通過,學(xué)生能查詢到未通過編譯的錯(cuò)誤信息,可進(jìn)一步修改程序后再次提交;如果通過了編譯,學(xué)生可查詢自己的程序是否執(zhí)行正確以及程序運(yùn)行的效率程度和最終的評(píng)測(cè)結(jié)果。

(3)程序在線評(píng)測(cè)模塊。

學(xué)生在線答題的程序源代碼提交到Web服務(wù)器端的數(shù)據(jù)庫。在Web服務(wù)器端運(yùn)行著一個(gè)守護(hù)線程,該守護(hù)線程不斷檢測(cè)提交到數(shù)據(jù)庫中的源程序代碼,一旦檢測(cè)到尚未評(píng)測(cè)的代碼,守護(hù)線程自動(dòng)將該程序代碼從數(shù)據(jù)庫中讀取出來,根據(jù)學(xué)生所選的計(jì)算機(jī)程序語言類別建立相應(yīng)的源程序文件,并在Web服務(wù)器端調(diào)用相應(yīng)的計(jì)算機(jī)語言編譯環(huán)境進(jìn)行源程序的編譯,將編譯時(shí)的編譯信息寫入數(shù)據(jù)庫。若編譯錯(cuò)誤,則將編譯時(shí)的錯(cuò)誤信息寫入數(shù)據(jù)中,可在線反饋給學(xué)生;若編譯正確則進(jìn)入程序運(yùn)行測(cè)試階段。運(yùn)行測(cè)試時(shí),需從數(shù)據(jù)庫中讀取該試題的測(cè)試數(shù)據(jù),一般有三到五組的測(cè)試數(shù)據(jù),一一代入編譯后的程序中進(jìn)行測(cè)試運(yùn)行,運(yùn)行后將每次運(yùn)行的結(jié)果與運(yùn)行時(shí)所花費(fèi)的時(shí)間復(fù)雜度與空間復(fù)雜度記錄到數(shù)據(jù)庫中,并將每次運(yùn)行的結(jié)果與數(shù)據(jù)庫中該試題的正確結(jié)果進(jìn)行比對(duì),以判斷該程序是否運(yùn)行正確。進(jìn)一步判斷程序每次運(yùn)行的時(shí)間復(fù)雜度與空間復(fù)雜度是否在該試題規(guī)定的時(shí)間復(fù)雜度與空間復(fù)雜度內(nèi),以確定該程序的運(yùn)行效率是否達(dá)到試題的規(guī)定要求。系統(tǒng)將根據(jù)程序運(yùn)行的正確程度以及運(yùn)行效率給出不同的評(píng)測(cè)等級(jí)結(jié)果。

教師在客戶端頁面錄入并編輯試題更新到服務(wù)器端的數(shù)據(jù)庫中,完成試題的編制工作。

5 開發(fā)與實(shí)現(xiàn)

使用Eclipse開發(fā)工具,綜合Spring技術(shù)、Hibernate技術(shù),數(shù)據(jù)庫使用MySQL,系統(tǒng)整體部署在Tomcat服務(wù)器,所有開發(fā)工具、數(shù)據(jù)庫、服務(wù)器、框架全部為開源的免費(fèi)軟件,并且根據(jù)各個(gè)軟件的授權(quán)協(xié)議進(jìn)行使用。系統(tǒng)功能,構(gòu)建具有良好的擴(kuò)展性、開放性的系統(tǒng),易于維護(hù),升級(jí)方便。

底層使用Hibernate框架訪問數(shù)據(jù)庫,主要的類有BaseDao。BaseDao為所有DAO的父類,使用了泛型。BaseDao定義了數(shù)據(jù)庫操作的常用方法,子類只需繼承便可使用對(duì)應(yīng)的方法,因?yàn)槭褂昧朔盒?,所以更新操作的返回值為各個(gè)實(shí)體類Entity,返回的Entity向上層提供給Service進(jìn)行業(yè)務(wù)邏輯處理。

數(shù)據(jù)庫表所對(duì)應(yīng)的類為實(shí)體類,一個(gè)實(shí)體類進(jìn)行數(shù)據(jù)庫的映射,默認(rèn)自動(dòng)對(duì)應(yīng)的數(shù)據(jù)庫表是和類名同名的數(shù)據(jù)表,如果數(shù)據(jù)庫表和類名不同名可以設(shè)置@Table(name="users")進(jìn)行映射。同樣數(shù)據(jù)庫字段名默認(rèn)情況下是和類的屬性名同名的,如果不同名可用@Column(name="user_id")進(jìn)行映射設(shè)置。@Id說明該屬性對(duì)應(yīng)的字段為數(shù)據(jù)庫主鍵。

Service為業(yè)務(wù)邏輯層,通過Spring的依賴注入,注入不同的DAO,進(jìn)行數(shù)據(jù)庫操作。DAO返回給Service的是Entity,在service的不同方法里面通過DataTransferUtil類進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換為頁面需要的域模型Domain,提供給上層。

6 總結(jié)

該系統(tǒng)的設(shè)計(jì)可完成在線計(jì)算機(jī)程序設(shè)計(jì)的評(píng)測(cè)工作,一定程度上減少了教師閱讀程序和調(diào)試程序的工作量。但在程序效率的評(píng)測(cè)上還不夠精確,這取決于程序運(yùn)行時(shí)的時(shí)間復(fù)雜度與空間復(fù)雜度的測(cè)定算法,系統(tǒng)中該算法的應(yīng)用尤為重要,應(yīng)著重設(shè)計(jì)實(shí)現(xiàn)。

(2012年河南省信息技術(shù)教育研究項(xiàng)目 ITE 12165)

參考文獻(xiàn):

[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è)計(jì)與開發(fā)[M].北京:電子工業(yè)出版社,2004.

[4] 張孝祥.Java就業(yè)培訓(xùn)教程[M].北京:清華大學(xué)出版社,2003.

[5] 王國輝,李立文,楊亮.JSP數(shù)據(jù)庫系統(tǒng)開發(fā)完全手冊(cè)[S].

[6] 陳鵬,程勇.J2EE項(xiàng)目開發(fā)實(shí)用案例[M].北京:科技出版社,2006.

[7] (美)Bruce Eckel.Java編程思想[M].陳昊鵬,譯.北京:機(jī)械工業(yè)出版社,2007.

程序設(shè)計(jì)語言范文第4篇

關(guān)鍵詞:VB;程序設(shè)計(jì);實(shí)例;多層次

一、教學(xué)中遵循理論與上機(jī)循序漸進(jìn),基本實(shí)例與綜合實(shí)例有機(jī)結(jié)合

(一) 對(duì)書本知識(shí)進(jìn)行精心編排,注重背景知識(shí)和基本概念的結(jié)合

我們注意到,在VB程序設(shè)計(jì)語言的教材布局上,往往是先從基本的語法現(xiàn)象入手,比如先介紹數(shù)據(jù)類型常量變量等,實(shí)際上,教學(xué)過程中演示這些基本數(shù)據(jù)類型的例子本身就會(huì)涉及對(duì)象、屬性、事件、方法。VB課程的教學(xué)是面對(duì)非計(jì)算機(jī)專業(yè)學(xué)生,缺乏對(duì)windows程序運(yùn)行機(jī)制的相關(guān)背景知識(shí)。因此,VB教學(xué)中,講解基本概念和VB的事件驅(qū)動(dòng)機(jī)制、可視化程序設(shè)計(jì)必須結(jié)合在一起。如果教師在講解基本概念的時(shí)候照本宣科,演示數(shù)據(jù)類型的程序?qū)嵗臅r(shí)候,由于對(duì)VB的運(yùn)行機(jī)制和可視化程序設(shè)計(jì)的方式不了解,學(xué)生的注意力并不關(guān)注也不理解教師講解的內(nèi)容,而是去思考這個(gè)程序的實(shí)現(xiàn)過程是什么,可是由于沒有關(guān)于對(duì)象的基本概念,立刻造成了理解障礙,不但對(duì)應(yīng)該掌握的知識(shí)點(diǎn)一頭霧水,對(duì)程序設(shè)計(jì)也產(chǎn)生了一種恐懼心理,這個(gè)是我在VB教學(xué)中的深刻體會(huì)。

因此,在VB教學(xué)中教師應(yīng)當(dāng)時(shí)刻關(guān)心學(xué)生的知識(shí)結(jié)構(gòu),從學(xué)生的思維角度去考慮問題,必要的整合教材的相關(guān)知識(shí)點(diǎn),特別要注意相關(guān)知識(shí)點(diǎn)的穿插講解,打破學(xué)生的思維障礙。比如在講解VB循環(huán)結(jié)構(gòu)的時(shí)候,可以和后面的數(shù)組知識(shí)聯(lián)系起來,使學(xué)生明白為什么在有了變量這個(gè)概念以后還需要引入數(shù)組,而且通過循環(huán)結(jié)構(gòu)對(duì)數(shù)組元素的打印,深化對(duì)循環(huán)結(jié)構(gòu)的認(rèn)識(shí)。有機(jī)地改變課本知識(shí)的邏輯結(jié)構(gòu),以相關(guān)的知識(shí)點(diǎn)靈活組織課堂教學(xué),通過讓學(xué)生觀看,在實(shí)際操作中主動(dòng)模仿,領(lǐng)悟這些概念,最終引導(dǎo)學(xué)生明白抽象的理論知識(shí)并不神秘,讓學(xué)生在輕松愉快的氣氛中接受新知識(shí)。

(二)VB程序設(shè)計(jì)是面向應(yīng)用的科學(xué),注重理論和動(dòng)手的結(jié)合

1.注重基本問題的上機(jī)操作。對(duì)VB有恐懼心理的同學(xué)往往是在學(xué)習(xí)的初期沒有能夠理解VB的上機(jī)環(huán)境,數(shù)據(jù)類型,變量等最基本的概念,而這些概念通過上機(jī)的直接觀察是很容易理解的。教師在教學(xué)中一定要把握住學(xué)生的思維和背景知識(shí),一個(gè)簡單的概念經(jīng)常成為學(xué)生學(xué)習(xí)程序設(shè)計(jì)語言的重大障礙,對(duì)學(xué)生的自信心和學(xué)習(xí)熱情都會(huì)產(chǎn)生影響。因此,在VB教學(xué)的初期,要把基本的上機(jī)操作和基本的語法知識(shí)結(jié)合介紹相關(guān)的背景知識(shí)講透,為學(xué)生的上機(jī)操作和后續(xù)學(xué)習(xí)掃清不必要的障礙。

2.演示實(shí)例,引導(dǎo)學(xué)生模仿。教師可以通過對(duì)實(shí)例系統(tǒng)的調(diào)試、改進(jìn),開拓學(xué)生編程思路,融合相關(guān)的知識(shí)點(diǎn),必要時(shí)候允許學(xué)生通過模仿、達(dá)到熟練掌握的目的。模仿是學(xué)習(xí)程序設(shè)計(jì)重要的一環(huán),即使對(duì)熟練的程序設(shè)計(jì)人員而言,也常常需要參考,或者說模仿別人成熟的代碼,整個(gè)是程序開發(fā)的基本特點(diǎn)。因此,教師應(yīng)鼓勵(lì)學(xué)生采用模仿的方式去實(shí)現(xiàn)不同的應(yīng)用需求,達(dá)到靈活應(yīng)用,舉一反三。

3.深化實(shí)踐教學(xué),以理論課教學(xué)為基礎(chǔ),通過案例的整合,形成不同層次的上機(jī)項(xiàng)目,供學(xué)生選擇。對(duì)于理解能力強(qiáng)的學(xué)生而言,可以通過有一定難度的實(shí)踐課,達(dá)到培養(yǎng)學(xué)生分析問題和解決問題的能力,為今后的深入自學(xué)打下良好的基礎(chǔ)。對(duì)掌握綜合案例有困難的學(xué)生,老師更應(yīng)以基本案例為基礎(chǔ),強(qiáng)化基本知識(shí)點(diǎn),逐步提高這類學(xué)生對(duì)VB的學(xué)習(xí)能力。教師應(yīng)親自指導(dǎo),與學(xué)生一起上機(jī)實(shí)驗(yàn),隨時(shí)監(jiān)控學(xué)生實(shí)驗(yàn)過程。對(duì)學(xué)生提出的問題及時(shí)予以指導(dǎo),發(fā)現(xiàn)學(xué)生常犯的共性錯(cuò)誤,可在理論課上進(jìn)行點(diǎn)評(píng)。

(三)教學(xué)手段多樣化

根據(jù)程序設(shè)計(jì)課程的特點(diǎn),除了采用傳統(tǒng)的教學(xué)方法如:引入問題、問題討論、概念解析外,可以采用教學(xué)手段結(jié)合進(jìn)行:

1.獨(dú)立實(shí)例和綜合實(shí)例結(jié)合進(jìn)行

獨(dú)立實(shí)例教學(xué)法可以加強(qiáng)對(duì)每個(gè)知識(shí)點(diǎn)的運(yùn)用和理解,但對(duì)前后知識(shí)往往沒有連貫性,對(duì)學(xué)生的實(shí)際應(yīng)用能力提高不大。因此在教學(xué)實(shí)踐中體會(huì)到,除經(jīng)典的獨(dú)立實(shí)例外,將一個(gè)有實(shí)用價(jià)值的、典型的、規(guī)模較大的、綜合實(shí)例的實(shí)踐應(yīng)用于教學(xué)全過程,不但可以對(duì)整個(gè)VB應(yīng)用程序的開發(fā)有觀念上的認(rèn)識(shí),也可以全面提高學(xué)生的編程能力。如提出問題:設(shè)計(jì)一個(gè)“學(xué)生管理系統(tǒng)”。首先,用最基本的概念和最簡單的界面,給出該系統(tǒng)的第一個(gè)框架版本,以后的每一次課,都對(duì)該系統(tǒng)提出新的功能和結(jié)構(gòu)上的要求,并用本次課介紹的新概念和新方法對(duì)它進(jìn)行功能上的擴(kuò)充和結(jié)構(gòu)上的改進(jìn)。每次得到該系統(tǒng)的一個(gè)增強(qiáng)的新版本。學(xué)生隨著教學(xué)的深入,會(huì)更有興趣地積極投入到對(duì)實(shí)例系統(tǒng)的調(diào)試、改進(jìn)中,不但掌握了所學(xué)的基本知識(shí),同時(shí)也提高了編程能力。

2.通過分析上機(jī)錯(cuò)誤,引導(dǎo)學(xué)生理解課本上的概念,學(xué)習(xí)調(diào)試方法。

學(xué)生對(duì)數(shù)據(jù)類型、變量、運(yùn)算符、表達(dá)式等語言規(guī)則的掌握需要一個(gè)過程,對(duì)結(jié)構(gòu)化程序設(shè)計(jì)的知識(shí)需要不斷積累。經(jīng)常聽到學(xué)生反映能聽懂老師授課的內(nèi)容,但自己編制的程序往往在機(jī)器上難以運(yùn)行。課堂上,可以將容易出錯(cuò)的概念以反例形式展示給學(xué)生,讓學(xué)生主動(dòng)找錯(cuò)誤,通過上機(jī)運(yùn)行去發(fā)現(xiàn),比如下面錯(cuò)誤使用邏輯運(yùn)算符的例子。

用if語句編程計(jì)算下列分段函數(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

乍看起來,似乎程序沒有什么錯(cuò)誤,實(shí)際上學(xué)生把數(shù)學(xué)符號(hào)的用法和VB中符號(hào)的用法混淆了。在VB中0

(四)用直觀的方式培養(yǎng)學(xué)生利用程序設(shè)計(jì)語言理解和實(shí)現(xiàn)算法的能力

算法(Algorithm):計(jì)算機(jī)解題的基本思想方法和步驟。學(xué)生算法思維的形成是程序設(shè)計(jì)語言教學(xué)中的難點(diǎn),也是學(xué)好程序設(shè)計(jì)語言最重要因素。程序本質(zhì)上就是用一定的語法去實(shí)現(xiàn)算法思想,教學(xué)中,我往往采用直觀教學(xué)法來讓學(xué)生去理解算法,因?yàn)樗惴ū旧砭褪且环N解題方法和步驟,可以讓學(xué)生代表不同的數(shù)字排列起來,通過表演的方式模擬冒泡排序,課堂不但活躍,而且學(xué)生也非常輕松地理解了。

二、結(jié)束語

通過VB程序設(shè)計(jì)語言的教學(xué),使我逐步認(rèn)識(shí)到程序設(shè)計(jì)語言教學(xué)是一項(xiàng)復(fù)雜的系統(tǒng)工程,隨著計(jì)算機(jī)科學(xué)的發(fā)展,對(duì)教師的教學(xué)水平的要求也越來越高,盡管在教學(xué)實(shí)踐中總結(jié)的一些經(jīng)驗(yàn),獲得了一些效果,但與因材施教的教學(xué)模式仍有差距。教學(xué)上的改革和探索一定要與實(shí)際相結(jié)合,遵循因時(shí)、因地、因人而異的原則,采用靈活多樣的教學(xué)手段、教學(xué)方法,充分調(diào)動(dòng)學(xué)生的積極性,培養(yǎng)學(xué)生自主學(xué)習(xí)的能力,為學(xué)生今后各個(gè)領(lǐng)域的學(xué)習(xí)和研究打下堅(jiān)實(shí)的基礎(chǔ)。

參考文獻(xiàn):

程序設(shè)計(jì)語言范文第5篇

摘 要 針對(duì)學(xué)生學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)語言的困難,以提高學(xué)生的實(shí)際編程能力為目標(biāo),提出了分層次的基于問題(Problem Based Learning,PBL)的程序設(shè)計(jì)學(xué)習(xí)方法。包括:以激發(fā)學(xué)習(xí)興趣為目標(biāo)的教學(xué)情景案例、以培養(yǎng)“計(jì)算思維”為目標(biāo)的宏觀問題和以培養(yǎng)實(shí)際編程能力為目標(biāo)的微觀問題等。教學(xué)實(shí)踐表明基于PBL的教學(xué)取得了良好的效果。

關(guān)鍵詞 基于問題的學(xué)習(xí) 教學(xué)情景 宏觀問題 微觀問題

中圖分類號(hào):G424 文獻(xiàn)標(biāo)識(shí)碼: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 引言

計(jì)算機(jī)程序設(shè)計(jì)語言是學(xué)生們普遍認(rèn)同的學(xué)習(xí)難點(diǎn),過多的語法知識(shí)點(diǎn)以及在考核考評(píng)模式下,學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)語言應(yīng)有的根本目標(biāo)――編程能力沒有得到很好的鍛煉。當(dāng)前的教學(xué)模式是以教師為主體,教師是教學(xué)過程的主導(dǎo),學(xué)生是知識(shí)的被動(dòng)接受者和思想的跟隨者。因此,培養(yǎng)學(xué)生的創(chuàng)造力,構(gòu)建以學(xué)生“學(xué)”為中心的教學(xué)體系是非常必要的。

基于問題(Problem Based Learning,PBL)的教學(xué)模式率先由美國神經(jīng)病學(xué)教授Barrows創(chuàng)立。①PBL已從國際醫(yī)學(xué)界擴(kuò)展到工程、法學(xué)、工商管理等諸多學(xué)科,從大學(xué)高等教育逐步延伸到中小學(xué)教育。②③PBL在國內(nèi)的起步較晚,上世紀(jì)90年代才引起研究者的關(guān)注,全國教育科學(xué)“十五”項(xiàng)目規(guī)劃將PBL的網(wǎng)絡(luò)化設(shè)計(jì)列為重點(diǎn)課題。1994年開始,陸續(xù)有關(guān)PBL理論研究的文章發(fā)表,且側(cè)重于醫(yī)學(xué)教育領(lǐng)域,2000年后擴(kuò)展到其他領(lǐng)域,但理論研究比例較大。④⑤PBL在高等院校計(jì)算機(jī)程序語言學(xué)課程中的實(shí)踐,則較為少見。

本文引進(jìn)PBL教學(xué)模式,通過基于“問題”的學(xué)習(xí),探尋一條適合學(xué)生學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)語言的有效途徑,同時(shí)為教師在教學(xué)中提供可參考的方法和思路。

1 教學(xué)情景案例

1.1 什么是計(jì)算機(jī)語言

對(duì)于初學(xué)者而言,最直接的問題就是:“什么是計(jì)算機(jī)語言?”我們從《通靈芯片》一書⑥中對(duì)計(jì)算機(jī)語言既抽象又形象的解釋來闡述這一問題。

石頭上我蝕刻了一副圖案,內(nèi)有幾何圖形種種,在不明者眼中,顯得神秘而又復(fù)雜,但我明白,只要布局正確,這塊石頭將被賦予一種特殊的能力,即對(duì)一種至今無人說過的咒語做出反應(yīng)。我用這種語言提問,石頭會(huì)顯靈應(yīng)答:那是一個(gè)我用符咒創(chuàng)造的世界,一個(gè)在石頭圖案內(nèi)想象的世界。

石頭是硅片(硬件),咒語就是程序(軟件)。

1.2 計(jì)算機(jī)語言與人類語言的關(guān)系,學(xué)習(xí)計(jì)算機(jī)語言與學(xué)習(xí)外語的相似性

語言也是我們?nèi)祟惖闹饕涣魍緩?,要說對(duì)方能夠聽得懂的話。若我們想讓計(jì)算機(jī)遵從我們的意愿工作,就必須對(duì)計(jì)算機(jī)“說”它能夠“聽得懂”的“語言”。

學(xué)習(xí)和使用計(jì)算機(jī)語言與我們學(xué)期一門外語(如英語)一樣,有兩種方式:

先學(xué)習(xí)單詞、語法,再學(xué)習(xí)語義。

學(xué)習(xí)一定的語法,在使用(編程)中學(xué)習(xí)語義,融會(huì)貫通。

我們建議采用第二種學(xué)習(xí)方法,竭力避免為了語法而語法,死記硬背的學(xué)習(xí)是沒有意義的。

1.3 結(jié)構(gòu)化程序設(shè)計(jì)的好處

我們吃中餐都有這樣一個(gè)體會(huì),同樣一個(gè)菜品,在不同的飯店,由不同的廚師做出來的味道迥異。而比如KFC,無論在世界上的哪個(gè)店面,口味幾乎是一樣的。同學(xué)們想為什么呢?對(duì),因?yàn)镵FC建立了一套標(biāo)準(zhǔn)化的食品制作流程,每個(gè)環(huán)節(jié)都是規(guī)定好的,細(xì)致的,不需要個(gè)人主觀“發(fā)揮”的。同樣,程序設(shè)計(jì)既可以是“京醬肉絲”,也可以是“漢堡包”??梢允撬囆g(shù),也可以是工程。比較而言,我們更側(cè)重于用工程化的思想和方法來進(jìn)行程序設(shè)計(jì)。進(jìn)而,有了結(jié)構(gòu)化程序設(shè)計(jì)方法,就是為了規(guī)范程序設(shè)計(jì)的個(gè)人行為的。使得程序有更好的可讀性、可理解性和可移植性。

1.4 正確理解編譯器的提示信息

同學(xué)們?cè)谟镁幾g器對(duì)高級(jí)語言源程序進(jìn)行編譯的時(shí)候,若有語法錯(cuò)誤,通常編譯器會(huì)告知我們語法錯(cuò)誤出現(xiàn)在哪一行。有時(shí)僅僅有一個(gè)語法錯(cuò)誤,但是編譯器會(huì)顯示有很多行都有錯(cuò)誤。很多同學(xué)不理解,以為出了什么問題,其實(shí)這是可以解釋的,如圖1所示:

圖1 編譯器匹配規(guī)則

第一行有5個(gè)正確的匹配,如果我拿走了其中的一個(gè)(黃色一對(duì)中的一個(gè)),則高級(jí)語言順序編譯器根據(jù)至上而下檢查的原則,會(huì)出現(xiàn)4個(gè)(而不是一個(gè))失配的錯(cuò)誤。只要更正了黃色的部分,則所有錯(cuò)誤消失。

2 宏觀問題

(1)如何才能學(xué)好計(jì)算機(jī)程序設(shè)計(jì)語言?

回答:從模仿開始。

人類學(xué)習(xí)母語是模仿,學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)語言也可以從“照葫蘆畫瓢”開始,在模仿的過程中修正錯(cuò)誤,掌握知識(shí)點(diǎn),培養(yǎng)程序設(shè)計(jì)的思路、方法和技能。

類比,學(xué)習(xí)外語如英語的方法也不該只是大量地背單詞,應(yīng)該是從說話、閱讀、寫作當(dāng)中學(xué)習(xí),學(xué)會(huì)用是最終目的,否則再多的單詞也是沒有生命力的。

(2)if 語句和switch…case語句都能實(shí)現(xiàn)選擇分支,是不是二者用哪個(gè)都可以?

回答:雖然從語法上,switch…case結(jié)構(gòu)相當(dāng)于多個(gè)if嵌套。也有一些題目來考察兩者的相互轉(zhuǎn)換。但語法不該被亂用或?yàn)E用,switch…case結(jié)構(gòu)只有在特定的多分支選擇時(shí)才適合使用。

(3)條件表達(dá)式可以代替if語句,那么就多用條件表達(dá)式對(duì)嗎?

回答:這個(gè)問題類似于switch…case結(jié)構(gòu)一樣,不能被濫用。只有類似于下面的條件語句

if ( a>b )

Max = a;

else

Max = b;

才能使用 Max = a>b?a:b;來代替,不是任何if語句轉(zhuǎn)換成條件表達(dá)式都是合適和易于理解的。

(4)為什么C語言有“指針”?是必須的嗎?

回答:包括C語言在內(nèi)的任何一種計(jì)算機(jī)程序設(shè)計(jì)語言,都是從實(shí)用性出發(fā)的,而不像數(shù)學(xué)定理那樣追求“當(dāng)且僅當(dāng)”。C語言的指針并不是必須的,比如C#就沒有指針的概念,但有了“指針”,能夠使程序更具靈活性,在實(shí)現(xiàn)某些功能時(shí)更方便、快捷。當(dāng)然,C語言的指針也有一些負(fù)面的作用,如野指針。對(duì)初學(xué)者來說,C語言的指針也確實(shí)是一個(gè)難點(diǎn)。但無論如何,同學(xué)們完全可以通過勤學(xué)多練,掌握“指針”。隨著學(xué)習(xí)和應(yīng)用的深入,同學(xué)們會(huì)慢慢體會(huì)到C語言的“指針”不僅不是阻礙,而且還是解決問題的“利器”。

3 微觀問題

(1)數(shù)組既然是多個(gè)數(shù)據(jù)元素的集合,是否可以對(duì)數(shù)組所有元素進(jìn)行整體輸入和輸出?

例如:int a[10];

scanf(“%d”, a);

回答:C語言規(guī)定,數(shù)組的名字代表了數(shù)組首元素的地址(或理解為數(shù)組在內(nèi)存中的起始地址),雖然scanf的參數(shù)表列的要求是地址,但不允許用一個(gè)地址將數(shù)組所有元素都輸入,除非要輸入的字符串,且字符串是放到字符數(shù)組中,并當(dāng)作一個(gè)整體來看待的。

正確的方法是:

int a[10], i;

for (i=0; i<10; i++)

scanf(“%d”, &a[i]);

對(duì)于字符數(shù)組而言,可以:

int c[10];

scanf(“%s”, c);

(2)如何驗(yàn)證對(duì)浮點(diǎn)數(shù)在“足夠接近”情況下的等值。

回答:浮點(diǎn)數(shù)的定義決定它的絕對(duì)精確度會(huì)隨著其代表的值變化, 所以比較兩個(gè)浮點(diǎn)數(shù)的最好方法就要利用一個(gè)精確的閾值。這個(gè)閾值和作比較的浮點(diǎn)數(shù)值大小有關(guān)。不要用下面的代碼:

double a, b;

...

if (a == b) /*錯(cuò)!*/

要用類似下列的方法:

#include <math.h>

if (fabs(a - b) <= epsilon * fabs(a))

epsilon 被賦為一個(gè)選定的值來控制“接近度”。你也要確定a 不會(huì)為0。

(3)莫要亂寫“;”

C語言程序的一行是以“;”為結(jié)尾的,但不意味著任何一行程序的末尾都要加“;”。比如:

for ( i=0; i<100; i++ )

sum = sum + i;

有很多同學(xué)在for ( i=0; i<100; i++ )后加了一個(gè)“;”,這使得本來完成一個(gè)功能的語句,硬生生地被“分開”了。

4 結(jié)束語

熟練掌握一門計(jì)算機(jī)程序設(shè)計(jì)語言,無論是對(duì)計(jì)算機(jī)還是非計(jì)算機(jī)專業(yè)的學(xué)生都是非常重要的。教學(xué)實(shí)踐表明,通過不同層次基于問題的學(xué)習(xí),能夠顯著增強(qiáng)學(xué)生的主觀能動(dòng)性,提升學(xué)習(xí)興趣。本文是在我校教育教學(xué)改革項(xiàng)目的支持下的教學(xué)研究成果。期望在政策的指引下,通過師生的共同努力,探索出適合當(dāng)代大學(xué)生學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)語言和相關(guān)課程新道路。

參考文獻(xiàn)

2013.09,吉林大學(xué)本科教學(xué)改革研究項(xiàng)目,在線“非計(jì)算機(jī)專業(yè)計(jì)算機(jī)程序設(shè)計(jì)PBL教學(xué)”內(nèi)容研究,項(xiàng)目編號(hào):2013097;