前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的程序設(shè)計(jì)主題范文,僅供參考,歡迎閱讀并收藏。
(電子科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,四川 成都 611731)
摘要:針對(duì)程序設(shè)計(jì)課程存在的理論與編程實(shí)踐學(xué)時(shí)安排矛盾以及實(shí)驗(yàn)教學(xué)中師生配比不夠、實(shí)驗(yàn)輔導(dǎo)不足等問(wèn)題,提出加強(qiáng)預(yù)習(xí)干預(yù)引導(dǎo)、實(shí)戰(zhàn)演練、課堂教師輔導(dǎo)和實(shí)驗(yàn)指導(dǎo)以及增加學(xué)生分組互助學(xué)習(xí)、學(xué)生討論、成果演示等手段,結(jié)合目前國(guó)內(nèi)外取得良好教學(xué)效果的翻轉(zhuǎn)課堂教學(xué)法、微課視頻資源實(shí)現(xiàn)翻轉(zhuǎn)教學(xué),并擬在小班試點(diǎn)改進(jìn)后推廣。
關(guān)鍵詞 :程序設(shè)計(jì)課程;翻轉(zhuǎn)課堂;微課視頻;小班教學(xué)
第一作者簡(jiǎn)介:戴波,女,講師,研究方向?yàn)椴⑿兴惴ㄅc圖像處理,daibo@uestc.edu.cn。
0 引言
為了全面貫徹落實(shí) 《教育部關(guān)于全面提高高等教育質(zhì)量的若干意見》 (教高[2012]4 號(hào))精神,不斷深化本科人才培養(yǎng)模式改革,構(gòu)建研究型大學(xué)本科人才培養(yǎng)新體系,培養(yǎng)高素質(zhì)拔尖創(chuàng)新人才,《電子科技大學(xué)本科人才培養(yǎng)方案修訂指導(dǎo)意見》以通識(shí)課程、學(xué)科基礎(chǔ)課程、學(xué)科拓展課程、專業(yè)核心課程、實(shí)踐類核心課程、個(gè)性化課程6個(gè)課程模塊的構(gòu)建為核心,推動(dòng)課程的整合和優(yōu)化,搭建個(gè)性化、多元化的人才培養(yǎng)平臺(tái),促進(jìn)學(xué)生全面、個(gè)性發(fā)展,其理工類課程模塊與學(xué)時(shí)要求如圖1所示。
基于學(xué)校的培養(yǎng)理念,計(jì)算機(jī)科學(xué)與工程學(xué)院將培養(yǎng)目標(biāo)定位在培養(yǎng)掌握計(jì)算機(jī)基本理論和基本知識(shí),接受從事研究與應(yīng)用計(jì)算機(jī)的基本訓(xùn)練,具有研究和開發(fā)計(jì)算機(jī)軟、硬件基本能力的高級(jí)人才。程序設(shè)計(jì)課程是計(jì)算機(jī)專業(yè)的核心基礎(chǔ),涉及程序設(shè)計(jì)語(yǔ)言(C語(yǔ)言)、數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計(jì)與分析、面向?qū)ο笳Z(yǔ)言(C++/C#/Java)、設(shè)計(jì)模式和軟件工程等多門課程。我們分析當(dāng)前教學(xué)中存在的如課程分割零碎、課程之間連貫性差、不同課程內(nèi)容重復(fù)較多、對(duì)后續(xù)課程支撐力度不大、教學(xué)手段落后與師資隊(duì)伍建設(shè)不足等問(wèn)題,在課程、實(shí)驗(yàn)和團(tuán)隊(duì)建設(shè)等方面做了一系列研究探索,如采用遞增式的項(xiàng)目驅(qū)動(dòng)教學(xué)分級(jí)培訓(xùn)學(xué)生程序設(shè)計(jì)技能,組建程序設(shè)計(jì)基礎(chǔ)團(tuán)隊(duì),重新設(shè)計(jì)與整合關(guān)聯(lián)課程,采用自動(dòng)化批改程序軟件,建立題庫(kù)與項(xiàng)目庫(kù)等方案,并在小班連續(xù)2年進(jìn)行試點(diǎn),取得良好效果,2014年開始在全年級(jí)推廣[1]。
1 推廣后的程序設(shè)計(jì)課程現(xiàn)狀與調(diào)查分析
1.1 推廣后的程序設(shè)計(jì)課程現(xiàn)狀
小班試點(diǎn)在舊有培養(yǎng)方案的基礎(chǔ)上進(jìn)行,C語(yǔ)言和C++課程內(nèi)容有整合,但仍然與其他班級(jí)一樣分開教學(xué)和參加統(tǒng)一的期末考試,便于與其他班級(jí)對(duì)比教學(xué)效果。2014年,我們基于新的培養(yǎng)方案在全年級(jí)進(jìn)行合并后的程序設(shè)計(jì)語(yǔ)言教學(xué),同時(shí)面臨如下現(xiàn)狀。
(1)內(nèi)容多,時(shí)間緊,以前的兩門課程合并成為一門課程之后,課時(shí)數(shù)量是以前一門課程的課時(shí)數(shù)量,而不是兩門課程課時(shí)數(shù)量的總和。
(2)導(dǎo)論課沒(méi)有打下基礎(chǔ),如對(duì)于計(jì)算機(jī)硬件及工作流程的初步認(rèn)識(shí)、內(nèi)存管理方式的理解、鼠標(biāo)鍵盤的熟悉、操作系統(tǒng)和辦公軟件的熟悉與使用等。
(3)課程合并后,兩門課程的教師總數(shù)增加,班級(jí)人數(shù)由120人以上/班減少為70人/班,達(dá)不到學(xué)校120人/班配置助教的條件,沒(méi)有助教,作業(yè)批改量大,上機(jī)輔導(dǎo)忙不過(guò)來(lái),上機(jī)考試監(jiān)考教師人數(shù)不夠。實(shí)踐證明,每次實(shí)驗(yàn)課教師能夠輔導(dǎo)到的學(xué)生人數(shù)不超過(guò)10人。
1.2 推廣后的程序設(shè)計(jì)課程調(diào)查
課程結(jié)束后,7個(gè)班的7名教師和480名學(xué)生分別發(fā)放調(diào)查問(wèn)卷,其中回收的有效反饋調(diào)查表為教師7份,學(xué)生186份。
1) 教師調(diào)查反饋。
(1)合并后教學(xué)時(shí)間緊,學(xué)生掌握所有內(nèi)容有難度,存在部分學(xué)生學(xué)習(xí)積極性不高,如上課玩手機(jī)和到課率不高等情況。
(2)每班上機(jī)相關(guān)練習(xí)題、實(shí)驗(yàn)、綜合實(shí)驗(yàn)均超過(guò)20題,有的班級(jí)達(dá)到50道題以上。上機(jī)題目兼具應(yīng)用性和趣味性。
(3)導(dǎo)師輔導(dǎo)的上機(jī)訓(xùn)練題量大。
(4)基礎(chǔ)類型的實(shí)驗(yàn)和練習(xí)題完成情況良好,綜合性的實(shí)驗(yàn)和練習(xí)題只有部分學(xué)生能夠完成。
2)學(xué)生調(diào)查反饋。
(1)有編程基礎(chǔ)的學(xué)生在高中階段學(xué)習(xí)過(guò)的編程語(yǔ)言種類有8種,66%的學(xué)生學(xué)習(xí)過(guò)C/C++,普遍表現(xiàn)出對(duì)目前教學(xué)狀況非常滿意,在教師指導(dǎo)下比高中學(xué)習(xí)得更深入,能夠?qū)W習(xí)到很多原理性的東西;同時(shí)也表示希望能夠給予更多的課后學(xué)習(xí)指導(dǎo),提供工程訓(xùn)練機(jī)會(huì)。有編程基礎(chǔ)的部分學(xué)生仍然感覺(jué)上課速度快。
(2)沒(méi)有編程基礎(chǔ)的學(xué)生認(rèn)為目前教學(xué)難度合適的達(dá)73%, 較難/難的達(dá)22%,簡(jiǎn)單的達(dá)5%;普遍希望教師講解得更細(xì)致,課堂上能夠演示編程過(guò)程,再多增加上機(jī)輔導(dǎo)、上機(jī)作業(yè)和練習(xí)題,能夠有項(xiàng)目實(shí)踐機(jī)會(huì)。
1.3 推廣后的期末考試情況與教師試卷分析總結(jié)
推廣后的期末考試分?jǐn)?shù)對(duì)比見表1。
表1的平均比例表明不及格率占比最高,接近1/3,90分以上占比最低,不到10%;同時(shí)表明不同班級(jí)差別比較大,教師的教學(xué)經(jīng)驗(yàn)對(duì)于學(xué)習(xí)效果很重要,如教師1有多年C語(yǔ)言和C++語(yǔ)言教學(xué)經(jīng)驗(yàn),其余的教師只從事C語(yǔ)言或者C++語(yǔ)言教學(xué),因此雖然使用同樣的教材,但是由于教學(xué)經(jīng)驗(yàn)、教學(xué)手段、學(xué)生不同,使得學(xué)生掌握情況不同。教師6強(qiáng)調(diào)大學(xué)階段的學(xué)習(xí)自覺(jué)性,對(duì)學(xué)生管束比較少,教學(xué)方式比較靈活,最終考試效果最差,不及格率達(dá)到44.8%,說(shuō)明學(xué)生學(xué)習(xí)自覺(jué)性差,教師的恰當(dāng)約束對(duì)于當(dāng)前環(huán)境下的學(xué)生學(xué)習(xí)非常有必要。
7位教師總結(jié)學(xué)生的失分點(diǎn)基本一致,主要集中在填空題的細(xì)節(jié)問(wèn)題、讀程序、寫程序和判斷題,恰好是編程訓(xùn)練沒(méi)有過(guò)關(guān)的體現(xiàn),這也和各位教師根據(jù)考試情況的反思總結(jié)一致。教師都反映需要加強(qiáng)編程練習(xí)、上機(jī)輔導(dǎo)、課上程序演示、程序設(shè)計(jì)思維訓(xùn)練,但又都覺(jué)得編程練習(xí)已經(jīng)很多,上機(jī)量也很大,但訓(xùn)練效果卻不明顯。以冒泡排序?yàn)槔?,教師上課講,中期考核,期末復(fù)習(xí),但是該內(nèi)容在期末考試中仍然是大的失分點(diǎn)且全年級(jí)都呈現(xiàn)這樣的現(xiàn)象,這說(shuō)明在學(xué)習(xí)過(guò)程中有的學(xué)生不認(rèn)真做,有的學(xué)生做了但沒(méi)有真正理解和掌握算法原理、編程基礎(chǔ)、調(diào)試技術(shù)。
教師反思其中一個(gè)大的矛盾是理論教學(xué)與實(shí)踐教學(xué)的學(xué)時(shí)需求矛盾:①不講或者簡(jiǎn)單講解基礎(chǔ)理論及細(xì)節(jié),學(xué)生只能依葫蘆畫瓢而無(wú)法舉一反三,理論基礎(chǔ)不穩(wěn)固則技術(shù)不深入,有程序設(shè)計(jì)基礎(chǔ)的學(xué)生則不能進(jìn)行深入學(xué)習(xí);②詳細(xì)深入講解需要花費(fèi)大量時(shí)間;③無(wú)編程基礎(chǔ)的學(xué)生對(duì)理論學(xué)習(xí)普遍不感興趣且由于缺乏經(jīng)驗(yàn),對(duì)教師講解的理論理解不夠深入,教師在課堂上沒(méi)有時(shí)間進(jìn)行反復(fù)講解,而學(xué)生不得不在應(yīng)用過(guò)程中根據(jù)需要反復(fù)學(xué)習(xí)這些基礎(chǔ)知識(shí)。
為解決這些矛盾,各個(gè)教師根據(jù)教學(xué)經(jīng)驗(yàn)各有取舍,其中教師5與教師7是以實(shí)踐為主與理論講授為主比較突出的2個(gè)代表。教師5采用以上機(jī)實(shí)驗(yàn)為主、理論教授為輔的教學(xué)方式,設(shè)計(jì)上機(jī)相關(guān)題目超過(guò)50題且上機(jī)演示編程過(guò)程,編程輔導(dǎo)時(shí)間多,同時(shí)另外找了優(yōu)秀學(xué)生一起對(duì)學(xué)生進(jìn)行上機(jī)輔導(dǎo),但期末筆試90分以上的占比9.2%,不及格率為27.7%。教師7以理論講授為主,對(duì)于上機(jī)實(shí)驗(yàn)輔導(dǎo)嚴(yán)格按照培養(yǎng)方案的16學(xué)時(shí),期末筆試考試成績(jī)表明學(xué)生上機(jī)實(shí)驗(yàn)過(guò)少,理論掌握并不扎實(shí),90分以上的占比為0.00%,不及格率仍然達(dá)到23.1%。以上情況說(shuō)明“單腳大跨步”的教學(xué)方式效果欠佳,但兩者結(jié)合教學(xué)又存在學(xué)時(shí)數(shù)不夠的現(xiàn)實(shí)問(wèn)題,此外還存在如下問(wèn)題:學(xué)生認(rèn)為最難的不是理論學(xué)習(xí),而是將理論應(yīng)用于實(shí)際;不少學(xué)生需要督促,自覺(jué)性差,而教師只有一人,怎么辦?
2 改進(jìn)措施
針對(duì)程序設(shè)計(jì)課程在全年級(jí)推廣后出現(xiàn)的問(wèn)題,程序設(shè)計(jì)教學(xué)團(tuán)隊(duì)教師積極思考、討論并試圖尋找能夠解決現(xiàn)存問(wèn)題的教學(xué)方法。戴爾的經(jīng)驗(yàn)之塔[2]說(shuō)明單純的課堂教學(xué)平均只能夠達(dá)到20%的效果,而具有主動(dòng)學(xué)習(xí)的參與、討論、演講等教學(xué)方法可以達(dá)到50%~90%的教學(xué)效果。既要在有限的時(shí)間內(nèi)傳授基礎(chǔ)理論,深入講解原理和運(yùn)行機(jī)制且可以在實(shí)踐過(guò)程中能夠隨時(shí)查閱學(xué)習(xí)基礎(chǔ)理論,又要在教師人數(shù)有限的條件下給予足夠的上機(jī)實(shí)驗(yàn)演示和輔導(dǎo),教師就需要將一些以記憶和理解為主的知識(shí)點(diǎn)放到課前讓學(xué)生預(yù)習(xí),課堂上以項(xiàng)目驅(qū)動(dòng)的方式引導(dǎo)學(xué)生加強(qiáng)編程練習(xí)并給予輔導(dǎo)。此外,對(duì)于一些需要深入分析的問(wèn)題則可在學(xué)生預(yù)習(xí)的情況下,在課堂上以分組或者集體討論的方式解決,但存在部分學(xué)生不預(yù)習(xí)而等待教師上課講解或者學(xué)生預(yù)習(xí)目的性不強(qiáng)、自學(xué)能力不夠等問(wèn)題。教學(xué)團(tuán)隊(duì)教師經(jīng)過(guò)調(diào)研發(fā)現(xiàn),最近幾年在國(guó)內(nèi)外逐步發(fā)展的翻轉(zhuǎn)課堂教學(xué)[3]恰好滿足有教學(xué)理論研究支撐和國(guó)內(nèi)外優(yōu)秀教學(xué)經(jīng)驗(yàn)借鑒等條件,具體方案如下。
(1)將理論知識(shí)的講解以微課的形式錄制成視頻,達(dá)到學(xué)生在教師引導(dǎo)條件下自學(xué)的效果,同時(shí)在學(xué)生完成預(yù)習(xí)作業(yè)后,檢驗(yàn)其學(xué)習(xí)效果以便于學(xué)生根據(jù)自身情況決定是否還需要反復(fù)看視頻鞏固學(xué)習(xí);教師也可以通過(guò)學(xué)生完成預(yù)習(xí)作業(yè)的情況制訂課堂活動(dòng)安排,協(xié)助學(xué)生更好地掌握知識(shí)。
(2)教師將分析問(wèn)題、設(shè)計(jì)思路、流程圖繪制、編程、編譯鏈接、調(diào)試等演示案例的完整過(guò)程錄制成視頻,讓學(xué)生可以反復(fù)觀看臨摹,解決初期沒(méi)有教師在身邊編程入門難的問(wèn)題,達(dá)到課堂演示編程的效果,避免課堂上編程占用時(shí)間過(guò)多、編程代碼文字過(guò)小后排學(xué)生看不清楚等問(wèn)題。
(3)在課堂上指導(dǎo)學(xué)生進(jìn)行編程練習(xí),解決學(xué)生視頻學(xué)習(xí)過(guò)程中的疑問(wèn)、討論解決實(shí)際項(xiàng)目問(wèn)題的方法及方案的選擇。
(4)鼓勵(lì)優(yōu)秀學(xué)生幫助其他同學(xué),對(duì)于幫助其他同學(xué)的學(xué)生給予平時(shí)成績(jī)加分,解決缺乏編程輔導(dǎo)的問(wèn)題。
(5)在現(xiàn)有培養(yǎng)方案條件下擬用部分班級(jí)試點(diǎn)進(jìn)行翻轉(zhuǎn)教學(xué),部分班級(jí)不采用,然后進(jìn)行效果對(duì)比和進(jìn)一步分析與改進(jìn),使其更適合當(dāng)前的本科教學(xué)。
3 結(jié)語(yǔ)
基于“全面發(fā)展的創(chuàng)新教育”人才培養(yǎng)理念培養(yǎng)高素質(zhì)拔尖創(chuàng)新人才,除了構(gòu)建合理的人才培養(yǎng)體系外,還需改進(jìn)對(duì)學(xué)生培養(yǎng)更直觀有效的課程教學(xué)。翻轉(zhuǎn)課堂教學(xué)以實(shí)踐理論“戴爾的經(jīng)驗(yàn)之塔”和布魯姆認(rèn)知教育目標(biāo)分類模型理論[4]為基礎(chǔ),強(qiáng)調(diào)學(xué)生在教師的指導(dǎo)下學(xué)習(xí),學(xué)生是教育的主體,教師的教是為了不教,自主學(xué)習(xí)具有無(wú)可替代的價(jià)值[5]。翻轉(zhuǎn)課堂教學(xué)法以學(xué)生為主體進(jìn)行研究,能夠在有限的教學(xué)時(shí)間內(nèi)達(dá)到傳授知識(shí)、教授技能、培養(yǎng)自學(xué)能力的目的,可操作性強(qiáng),是解決現(xiàn)有程序設(shè)計(jì)課程改革問(wèn)題的有效方法,但效果和存在的問(wèn)題還有待多次試點(diǎn)改進(jìn)及全面推廣后具體分析及解決。
參考文獻(xiàn):
[1] 戴波, 周世杰, 曹晟, 等.“程序設(shè)計(jì)”課程教學(xué)模式的探索[J]. 實(shí)驗(yàn)科學(xué)與技術(shù), 2012(6): 309-311.
[2] 焦麗珍. 神奇的“經(jīng)驗(yàn)之塔”:“視聽教學(xué)法之理論”[J]. 現(xiàn)代教育技術(shù), 2012, 22(6): 126.
[3] 愛(ài)課程網(wǎng). 翻轉(zhuǎn)課堂教學(xué)法[EB/OL]. [2014-10-16]. http://icourse163.org/course/pku-21016#/info.
[4] Anderson L W, Kmthwohl D R. A Taxonomy for learning, teaching, and assessing: a revision of bloom’s taxonomy of educational objectives[M]. Complete Ed. London:Pearson, 2000: 38-62.
前幾年,OpenGL雖然是開放式的標(biāo)準(zhǔn),但是只能在具有UNIX操作系統(tǒng)的各種昂貴的工作站之間通用;盡管工作站上的OpenGL性能優(yōu)越、編程方便、生成圖形精真,但是只有少數(shù)人能體會(huì)其中樂(lè)趣,而令大多數(shù)PC機(jī)用戶望塵莫及。隨著計(jì)算機(jī)技術(shù)的發(fā)展,工作站與PC機(jī)的性能日趨接近。Microsoft公司首先將OpenGL圖形庫(kù)鏈接到Windows NT中,目前又將OpenGL動(dòng)態(tài)庫(kù)掛到最新Windows 95上,這樣,廣大PC機(jī)用戶就可充分享受OpenGL的樂(lè)趣了。更令人高興的是,目前國(guó)內(nèi)外出現(xiàn)了專門對(duì)OpenGL進(jìn)行硬件加速的三維圖形加速卡。這樣,普通用戶只
要擁有一臺(tái)Pentium 90以上、16MB RAM、520MB以上硬盤容量的PC機(jī)以及一臺(tái)43cm以上的大屏幕監(jiān)視器和一塊OpenGL三維圖形加速卡組成的系統(tǒng),就能與圖形工作站相媲美,但價(jià)格卻便宜數(shù)十倍。
本文作者一直從事計(jì)算機(jī)圖形應(yīng)用開發(fā)工作。原來(lái)是在SGI工作站上利用OpenGL開發(fā)圖形程序,后來(lái)又首先在國(guó)內(nèi)第一塊三維圖形加速卡AGC-3D上基于Windows NT的Visual C++2.0環(huán)境下繼續(xù)進(jìn)行開發(fā)。在開發(fā)過(guò)程中,同一OpenGL程序幾乎不用修改就能在兩個(gè)平臺(tái)間來(lái)回移植,效果甚好。
一、OpenGL特點(diǎn)及功能
OpenGL是一個(gè)開放的三維圖形軟件包,它獨(dú)立于窗口系統(tǒng)和操作系統(tǒng),能十分方便地在各平臺(tái)間移植。
OpenGL具有七大功能。
(1)建模 OpenGL圖形庫(kù)除了提供基本的點(diǎn)、線、多邊形的繪制函數(shù)外,還提供了復(fù)雜的三維物體(如球、錐、多面體、茶壺等)以及復(fù)雜曲線和曲面(如Bezier、Nurbs等曲線或曲面)繪制函數(shù)。
(2)變換 OpenGL圖形庫(kù)的變換包括基本變換和投影變換?;咀儞Q有平移、旋轉(zhuǎn)、變比和鏡像四種變換,投影變換有平行投影(又稱正射投影)和透視投影兩種變換。
(3)顏色模式設(shè)置 OpenGL顏色模式有兩種,即RGBA模式和顏色索引(Color Index)。
(4)光照和材質(zhì)設(shè)置 OpenGL光有輻射光(Emitted Light)、環(huán)境光(AmbientLight)、漫反射光(Diffuse Light)和鏡面光(Specular Light)。材質(zhì)是用光反射率來(lái)表示。場(chǎng)景(Scene)中物體最終反映到人眼的顏色是光的紅綠藍(lán)分量與材質(zhì)紅綠藍(lán)分量的反射率相乘后形成的顏色。
(5)紋理映射(Texure Mapping) 利用OpenGL紋理映射功能可以十分逼真地表達(dá)物體表面細(xì)節(jié)。
(6)位圖顯示和圖像增強(qiáng) 圖像功能除了基本的拷貝和像素讀寫外,還提供了融合(Blending)、反走樣(Antialiasing)和霧(fog)的特殊圖像效果處理。
(7)雙緩存(Double Buffering)動(dòng)畫 雙緩存即前臺(tái)緩存和后臺(tái)緩存,簡(jiǎn)而言之,后臺(tái)緩存計(jì)算場(chǎng)景、生成畫面,前臺(tái)緩存顯示后臺(tái)緩存已畫好的畫面。
此外,利用OpenGL還能實(shí)現(xiàn)深度暗示(Depth Cue)、運(yùn)動(dòng)模糊(Motion Blur)等特殊效果。
二、OpenGL for Windows NT圖形庫(kù)
OpenGL圖形庫(kù)一共有100多個(gè)函數(shù)。其中核心函數(shù)有115個(gè),它們是最基本的函數(shù),其前綴是gl;OpenGL實(shí)用庫(kù)(OpenGL utility library,GLU)的函數(shù)功能更高一些,如繪制復(fù)雜的曲線曲面、高級(jí)坐標(biāo)變換、多邊形分割等,共有43個(gè),前綴為glu; OpenGL輔助庫(kù)(OpenGL auxiliary library,GLAUX)的函數(shù)是一些特殊的函數(shù),包括簡(jiǎn)單的窗口管理、輸入事件處理、某些復(fù)雜三維物體繪制等函數(shù),共有31個(gè),前綴為aux。
此外,還有六個(gè)WGL函數(shù)非常重要,專用于OpenGL和Windows NT窗口系統(tǒng)的連接,其前綴為wgl,主要用于創(chuàng)建和選擇圖形操作描述表(rendering contexts)以及在窗口內(nèi)任一位置顯示字符位圖。這些功能是Windows NT對(duì)OpenGL的唯一補(bǔ)充,見表1所示。
表1 管理圖形操作描述表的WGL函數(shù)
另外,還有五個(gè)Win32函數(shù)用來(lái)處理像素格式(pixel formats)和雙緩存。由于它們是對(duì)Win32系統(tǒng)的擴(kuò)展,因此不能應(yīng)用在其他OpenGL平臺(tái)上,見表2所示。
表2 管理像素格式Win32函數(shù)
三、OpenGL for Windows NT程序設(shè)計(jì)
OpenGL for Windows NT的程序設(shè)計(jì)與OpenGL for UNIX的程序設(shè)計(jì)有一點(diǎn)小區(qū)別,關(guān)鍵就在于如何將OpenGL與不同操作系統(tǒng)下的窗口系統(tǒng)連接起來(lái)。如果調(diào)用OpenGL輔助庫(kù)窗口管理函數(shù),則不用考慮這些問(wèn)題。下面將主要介紹在Windows NT下OpenGL的程序設(shè)計(jì)關(guān)鍵。
1.圖形操作描述表
在Windows NT下窗口程序必須首先處理設(shè)備描述表(Device Contexts,DC),DC包含許多如何在窗口上顯示圖形的信息,即指定畫筆和刷子的顏色,設(shè)置繪圖模式、調(diào)色板、映射模式以及其他圖形屬性。同樣,OpenGL for Windows NT的程序也必須使用DC,這與其他Windows程序類似。但是,OpenGL for Windows NT必須處理特殊的DC圖形操作描述表,這是DC中專為OpenGL使用的一種。一個(gè)OpenGL應(yīng)用圖形操作描述表內(nèi)有OpenGL與Windows NT窗口系統(tǒng)相關(guān)的各種信息。一個(gè)OpenGL應(yīng)用首先必須創(chuàng)建一個(gè)圖形操作描述表,然后再啟動(dòng)它,最后在所定義的窗口內(nèi)按常規(guī)方式調(diào)用OpenGL函數(shù)繪制圖形。
一個(gè)圖形操作描述表不同于其他DC,它們調(diào)用每個(gè)GDI函數(shù)都需要一個(gè)句柄,而圖形操作描述表方式下只需一個(gè)句柄就可任意調(diào)用OpenGL函數(shù)。也就是說(shuō),只要當(dāng)前啟用了某個(gè)圖形操作描述表,那么在未刪除圖形操作描述表之前可以調(diào)用任何OpenGL函數(shù),進(jìn)行各種操作。
2.像素格式
在創(chuàng)建一個(gè)圖形操作描述表之前,首先必須設(shè)置像素格式。像素格式含有設(shè)備繪圖界面的屬性,這些屬性包括繪圖界面是用RGBA模式還是顏色表模式,像系緩存是用單緩存還是雙緩存,以及顏色位數(shù)、深度緩存和模板緩存所用的位數(shù),還有其他一些屬性信息。
(1)像素格式結(jié)構(gòu)
每個(gè)OpenGL顯示設(shè)備都支持一種指定的像素格式號(hào)。一般用一個(gè)名為PIXELFORMATDESCRIPTOR的結(jié)構(gòu)來(lái)表示某個(gè)特殊的像素格式,這個(gè)結(jié)構(gòu)包含26個(gè)屬性信息。Win32定義的PIXELFORMATDESCRIPTOR如下所示:
typedef struct tagPIXELFORMATDESCRIPTOR
{
WORD nSize;
WORD nVersion;
DWORD dwFlags;
BYTE iPixelType;
BYTE cColorBits;
BYTE cRedBits;
BYTE cRedShift;
BYTE cGreenBits;
BYTE cGreenShift;
BYTE cBlueBits;
BYTE cBlueShift;
BYTE cAlphaBits;
BYTE cAlphaShift;
BYTE cAccumBits;
BYTE cAccumRedBits;
BYTE cAccumGreenBits;
BYTE cAccumBlueBits;
BYTE cAccumAlphaBits;
BYTE cDepthBits;
BYTE cStencilBits;
BYTE cAuxBuffers;
BYTE ilayerType;
BYTE bReserved;
DWORD dwLayerMask;
DWORD dwVisibleMask;
DWORD dwDamageMask;
}
PIXELFORMATDESCRIPTOR,
*PPIXELFORMATDESCRIPTOR,
FAR *LPPIXELFORMATDESCRIPTOR;
(2)初始化PIXELFORMATDESCRIPTOR結(jié)構(gòu)
PIXELFORMATDESCRIPTOR中每個(gè)變量值的具體含義和設(shè)置可以參
考有關(guān)資料,下面舉出一個(gè)PIXELFORMATDESCRIPTOR初始化例子來(lái)簡(jiǎn)要
說(shuō)明相關(guān)變量的意義。定義PIXELFORMATDESCRIPTOR結(jié)構(gòu)的pfd如下:
PIXELFORMATDESCRIPTOR pfd=
{
sizeof(PIXELFORMATDESCRIPTOR),//結(jié)構(gòu)尺寸
l, //結(jié)構(gòu)版本
PFD-DRAW-TO-WINDOWS|PFD-SUPPORT-OPENGL,//特性標(biāo)志
PFD-TYPE-RGBA,//RGBA模式
24,//24位顏色
0,0,0,0,0,0,//不涉及這些屬性
0,0,0,0,0,0,0,//沒(méi)有alpha緩存和累積緩存
32,//32位深度緩存
0,0,//沒(méi)有模板緩存和輔助緩存
PFD-MAIN-PLANE,//主層類型
0,//保留結(jié)構(gòu)數(shù)
0,0,0,//不支持結(jié)構(gòu)數(shù)
};
在這個(gè)結(jié)構(gòu)里,前兩個(gè)變量的含義十分明顯。第三個(gè)變量dwFlags的值是PFD-DRAW-TO-WINDOWS|PFD-SUPPORT-OPENGL,表明應(yīng)用程序使用OpenGL函數(shù)來(lái)繪制窗口,第四個(gè)表明當(dāng)前采用RGBA顏色模式,第五個(gè)采用24位真彩色,即1.67千萬(wàn)種顏色,如果是256色系統(tǒng)則自動(dòng)實(shí)現(xiàn)顏色抖動(dòng);因?yàn)闆](méi)有使用alpha緩存和累積緩存,所以從變量cAlphaBits到cAccumAlphaBits都設(shè)置為0;深度緩存設(shè)置為32位,這個(gè)緩存能解決三維場(chǎng)景的消隱問(wèn)題;變量cAuxBuffers設(shè)置為0,在Windows NT下不支持輔助緩存;Windows NT下針對(duì)OpenGL變量ilayerType只能設(shè)置為PFD-MAIN-PLANE,但其他平臺(tái)也許支持PFD-OVERLAY-PLANE或PFD-UNDERLA
Y-PLANE;接下來(lái)bReserved變量只能設(shè)為0,而最后三個(gè)變量Windows NT都不支持,故全設(shè)置成0。
(3)設(shè)置像素格式
當(dāng)初始化PIXELFORMATDESCRIPTOR結(jié)構(gòu)后,就要設(shè)置像素格式。下面幾段從VC++ 2.0的MFC程序中摘出的代碼就是設(shè)置像素格式的方式。代碼如下:
CClientDC clientDC(this);
int pixelFormat=ChoosePixelFormat(clientDC.m-hDC,&pfd);
BOOL result=SetPixelFormat(clientDC.m-hDC,pixelFormat,&p
fd);
第一行語(yǔ)句說(shuō)明得到一個(gè)應(yīng)用窗口客戶區(qū)的設(shè)置描述表。
第二行調(diào)用ChoosePixelFormat()選擇一個(gè)像素格式,并將像素格式索引號(hào)返回給pixelFormat變量;函數(shù)中第一個(gè)參數(shù)是選擇像素格式的設(shè)置描述表的句柄,第二個(gè)參數(shù)是PIXELFORMATDESCRIPTOR結(jié)構(gòu)的地址。如果調(diào)用失敗則返回0;否則返回像素格式索引號(hào)。
第三行調(diào)用SetPixelFormat()設(shè)置像素格式,三個(gè)參數(shù)分別是設(shè)備描述表的句柄、像素格式索引號(hào)和PIXELFORMATDESCRIPTOR結(jié)構(gòu)的地址。如果調(diào)用成功則返回TURE;否則返回FALSE。
3.創(chuàng)建圖形操作描述表
正如前所述,必須創(chuàng)建圖形操作描述表并啟用它后,才能調(diào)用OpenGL函數(shù)在窗口內(nèi)進(jìn)行各種圖形操作。一般說(shuō)來(lái),利用MFC中增補(bǔ)的管理圖形操作描述表方法來(lái)編程比較方便。下面舉一例:
int CopenglView:: OnCreate(LPCREATESTRUCT lpCreateStruct
)
{
if(CView::OnCreate(lpCreateStruct)==-1)return -1;
// TODO: Add your specialized creation code here
PIXELFORMATDESCRIPTOR pfd=
{
sizeof(PIXELFORMATDESCRIPTIOR),
//structure sizel,
//structure version number
PFD-DRAW-TO-WINDOWS|PFD-SUPPORT-OPENGL,//property flags
PFD-TYPE-RGBA, //RGBA mode
24, //24bit color
0,0,0,0,0,0, //not concerned with these
0,0,0,0,0,0,0, //no alpha or accum buffer
32, // 32bit depth buffer
0,0, //no stencil or aux buffer
PFD-MAIN-PLANE, //main layer type
0, //reserved
0,0,0 //unsupported
};
CClientDC clientDC(this);
int pixelFormat=ChoosePixelFormat(clientDC.m-hDC,&pfd);
BOOL result=SetPixelFormat(clientDC.m-hDC,pixelFormat,&p
fd);
m-hRC=wglCreateContext(clientDC.m-hRC);
return 0;
}
void COpenglView::onDraw(CDC *pDC)
{
COpenglDoc* pDoc=GetDocument();
ASSERT-VAILD(pDoc);
//TODO: add draw code for native data here
wglMakeCurrent(pDC->m-hDC,m-hDC);
DrawMyOpenGL();
wglMakeCurrent(pDC->m-hDC,NULL);
}
void COpenglView::OnDestroy()
{
CView::OnDestroy();
// TODO: Add your message handler code here
wglDeleteContext(m-hRC);
}
在程序中,響應(yīng)WM-CREATE消息的函數(shù)OnCreate()僅僅只創(chuàng)建一個(gè)臨時(shí)的DC,當(dāng)函數(shù)返回時(shí),它自動(dòng)刪除。因此,在這里不可能啟用圖形操作描述表。當(dāng)應(yīng)用程序的窗口內(nèi)容得到更新后,MFC就調(diào)用OnDraw()函數(shù),在此啟用圖形操作描述表wglMakeCurrent()有效。然后,再調(diào)用自己用OpenGL寫的繪圖函數(shù)DrawMyOpenGL(),則程序就可進(jìn)行任意的OpenGL圖形操作了。當(dāng)繪圖結(jié)束后,再調(diào)用一次wglMakeCurrent(),但第二個(gè)參數(shù)設(shè)為NULL,意思是啟用圖形操作描述表無(wú)效,關(guān)閉圖形操作描述表。最后,當(dāng)應(yīng)用程序結(jié)束時(shí),MFC就調(diào)用OnDestroy()函數(shù)來(lái)響應(yīng)
關(guān)鍵詞:循環(huán)程序;循環(huán)控制;流程圖;算法;程序語(yǔ)句;VF QBASIC
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2010)08-1906-02
On Recycling Program Design
LIU Li-ming
(Zunyi City, Guizhou Province Vocational High Schools, Zunyi 563000, China)
Abstract: Loop structure is a structured program design, one of the basic structure of the three. but it's also the basis for program design. However, for the beginners, Loop structure is difficult to master, for it's different from the daily habit of thinking of the human mind. In this paper, VF, and QBASIC program design cycle described examples of the cycle of programming languages have in common. Therefore, in the course of study must first correctly understand the language loop statement, and then to prepare specific algorithm, find out the loop control the conditions under which to draw flowcharts, programming statement, on the machine to debug.
Key words: circulation procedures; loop control; flow algorithm; algorithm; program statements; VF QBASIC
順序、分支、循環(huán)是結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu),所以在高級(jí)語(yǔ)言程序設(shè)計(jì)課程中,掌握這三種結(jié)構(gòu)是學(xué)好程序設(shè)計(jì)的基礎(chǔ)。而循環(huán)結(jié)構(gòu)是這三者中最復(fù)雜的一種結(jié)構(gòu),幾乎所有的程序都離不開循環(huán)結(jié)構(gòu),但是對(duì)于那些沒(méi)有經(jīng)驗(yàn)的初學(xué)者來(lái)說(shuō),難度卻不小。特別是遇到更加復(fù)雜的多重循環(huán)程序,以及分支程序嵌套在一起就更加難以理解。因此這也是計(jì)算機(jī)等級(jí)考試高級(jí)語(yǔ)言程序設(shè)計(jì)的一大難點(diǎn)。
1 循環(huán)程序的基本原理
程序是能夠完成一定任務(wù)的命令的有序集合。存放程序的文件稱為程序文件。例如:我們要讓計(jì)算機(jī)屏幕顯示一句話:“I like computer!”。以QBASIC高級(jí)語(yǔ)言為例,編寫相應(yīng)的程序語(yǔ)句如下:
PRINT “I like computer!”
然后執(zhí)行它,就能得到相應(yīng)的屏幕顯示。然而在現(xiàn)實(shí)生活中往往會(huì)遇到一些按規(guī)律重復(fù)執(zhí)行的問(wèn)題,例如:要在計(jì)算機(jī)屏幕上顯示100行:“I like computer!”,采用循環(huán)結(jié)構(gòu)設(shè)計(jì)將使程序簡(jiǎn)練,減少程序的行數(shù),從而節(jié)省運(yùn)行時(shí)占用的內(nèi)存,因此引入并運(yùn)用了循環(huán)程序設(shè)計(jì)。通過(guò)相應(yīng)的循環(huán)程序設(shè)計(jì)語(yǔ)句讓PRINT “I like computer!”循環(huán)執(zhí)行100次就行了,編寫程序語(yǔ)句如下:
10 FOR I=1 TO 100 SETP 1
20 PRINT “I like computer!”
30 NEXT I
程序中采用了循環(huán)語(yǔ)句格式:FOR= TO STEP
NEXT
功能:這個(gè)語(yǔ)句指定循環(huán)變量取一系列數(shù)值,并且對(duì)循環(huán)變量的每一個(gè)值把循環(huán)體執(zhí)行一次。初值表達(dá)式、終值表達(dá)式和步長(zhǎng)值表達(dá)式都是算術(shù)表達(dá)式。步長(zhǎng)值可以是正數(shù)(叫做遞增循環(huán)),也可以是負(fù)數(shù)(叫做遞減循環(huán))。
結(jié)合圖1分析,該循環(huán)程序的控制過(guò)程是這樣的,令I(lǐng)的取值范圍為1到100,先將變量I賦值為1(即I=1),I的值屬于1到100的取值范圍(即滿足循環(huán)條件),執(zhí)行PRINT “I like computer!”一次;然后I的值按步長(zhǎng)數(shù)1依次遞增,從而反復(fù)執(zhí)行PRINT “I like computer!”語(yǔ)句100次。
從分析不難發(fā)現(xiàn)循環(huán)程序執(zhí)行的核心問(wèn)題就是判斷循環(huán)條件,即根據(jù)對(duì)循環(huán)條件的判斷來(lái)確定是否進(jìn)入循環(huán)體以及執(zhí)行循環(huán)體語(yǔ)句的次數(shù)。各種高級(jí)語(yǔ)言程序設(shè)計(jì)的基本原理都相同,即當(dāng)所給定的循環(huán)條件為真時(shí),就反復(fù)執(zhí)行其循環(huán)體(命令組);當(dāng)條件為假時(shí),則終止其循環(huán)體,而去執(zhí)行其后繼命令。
2 如何學(xué)習(xí)循環(huán)程序設(shè)計(jì)
2.1 循環(huán)程序語(yǔ)句
各種高級(jí)語(yǔ)言都有相應(yīng)的類似的循環(huán)程序語(yǔ)句。例如前面介紹的QBASIC中的:
FOR= TO STEP
NEXT
等循環(huán)語(yǔ)句。
又如VF中的:
DO WHILE
[命令組]
ENDDO
等循環(huán)語(yǔ)句,初學(xué)者在學(xué)習(xí)時(shí)首先要搞清楚這些循環(huán)語(yǔ)句的含義、特點(diǎn)和用法。例如VF中與DO WHILE循環(huán)語(yǔ)句配對(duì)的是ENDDO;與FOR循環(huán)語(yǔ)句配對(duì)的是ENDFOR。不能混淆使用,也不能將忘記書寫。
一般每種語(yǔ)言都有多種循環(huán)語(yǔ)句,要對(duì)它們進(jìn)行比較。在一些具體運(yùn)用中采用恰當(dāng)?shù)难h(huán)語(yǔ)句可能會(huì)使循環(huán)程序更加簡(jiǎn)潔明了。
2.2 流程圖
學(xué)習(xí)循環(huán)程序設(shè)計(jì)首先要學(xué)會(huì)看流程圖(亦稱程序框圖)。就是用一些簡(jiǎn)單的圖形符號(hào)和文字說(shuō)明,直觀地描述程序的處理步驟。程序流程圖不僅有助于程序設(shè)計(jì),而且也為閱讀、分析程序帶來(lái)方便。
2.3 算法
在具體的循環(huán)程序設(shè)計(jì)中遇到的問(wèn)題往往比較復(fù)雜,因此在設(shè)計(jì)前應(yīng)該認(rèn)真分析,要設(shè)定哪些變量,寫出哪些計(jì)算公式,擬出解決問(wèn)題的思路。
例:假定要求從鍵盤上依次輸入三個(gè)數(shù),求這三個(gè)數(shù)之和。
編寫算法:第一步:存和的內(nèi)存變量S清0。第二步:反復(fù)執(zhí)行下列操作3次,輸入一個(gè)數(shù)并存入X,計(jì)算S=S+X。第三步:輸出S。第四步:結(jié)束。
2.4 編寫語(yǔ)句
學(xué)習(xí)編寫循環(huán)程序之前應(yīng)該多閱讀一些相關(guān)的典型的程序語(yǔ)句,從易到難循序漸進(jìn)。編寫語(yǔ)句時(shí)應(yīng)該充分的結(jié)合流程圖來(lái)展開,要根據(jù)擬定的算法來(lái)設(shè)計(jì)循環(huán)條件。
3 循環(huán)程序的應(yīng)用
以VF程序設(shè)計(jì)為例,假定要求從鍵盤輸入一個(gè)郵政編碼,在“考生檔案”庫(kù)文件中查找。一個(gè)也查不到,則顯示“無(wú)此郵政編碼”。否則,每查到一個(gè),就顯示該考生的姓名與工作單位。直到全部查完為止。
過(guò)程分析:① 鍵盤輸入待查郵編并存入內(nèi)存變量YZBM;② 打開庫(kù)文件查詢郵編;③ 用EOF()函數(shù)進(jìn)行循環(huán)控制,即通過(guò)查找后是否到達(dá)文件尾作為條件來(lái)進(jìn)行循環(huán)控制;④ 如EOF()為真則退出循環(huán),并顯示“無(wú)此郵編”;⑤ 如EOF()假則循環(huán)顯示該考生的姓名、工作單位,然后繼續(xù)查找直到EOF()為真時(shí)停止查找并顯示“查找完畢”。
程序流程圖如圖2所示,其循環(huán)結(jié)構(gòu)由三部分組成。① 設(shè)置初值。包括循環(huán)操作中的初值和控制循環(huán)的初值兩部分,通過(guò)查找郵政編碼獲得EOF()函數(shù)的值是控制循環(huán)用的初值。② 循環(huán)的實(shí)際操作。這部分是循環(huán)中要反復(fù)執(zhí)行的操作,同是包括控制循環(huán)條件的修改,又叫“循環(huán)體”,輸出姓名和工作單位是循環(huán)操作,繼續(xù)查找既是循環(huán)操作的一部分,又是修改控制循環(huán)條件。③ 循環(huán)控制部分的核心是一個(gè)條件判斷,即EOF()函數(shù)的值是 “假”開始循環(huán),值為“真”退出循環(huán)。
程序設(shè)計(jì)如下:
ACCEPT "請(qǐng)輸入待查的郵政編碼(5位整數(shù)):"TO YZBM
USE 考生檔案
LOCATE ALL FOR 郵政編碼=YZBM
IF EOF()
?"經(jīng)查找,所有考生中無(wú)此郵政編碼!"
ELSE
DO WHILE .NOT. EOF()
?"姓名:"+姓名+SPACE(4)+"通訊地址:"+通訊地址
CONTINUE
ENDDO
?"已經(jīng)查完了!"
ENDIF
USE
在循環(huán)程序設(shè)計(jì)中一定要注意控制循環(huán)次數(shù)的控制,否則循環(huán)程序?qū)o(wú)法結(jié)束,即陷入“死循環(huán)”。通常的辦法有“計(jì)數(shù)控制”,“條件控制”。在本例中就采用了“條件控制”。
4 多重循環(huán)
一個(gè)循環(huán)語(yǔ)句中可以包含另一個(gè)循環(huán)語(yǔ)句,這種結(jié)構(gòu)叫做循環(huán)語(yǔ)句“嵌套”,在外層的叫外循環(huán),在內(nèi)層的叫內(nèi)循環(huán)。多重循環(huán)結(jié)構(gòu)的特點(diǎn)是:外層變一次,內(nèi)層變一遍。
比較典型的運(yùn)用例子就是設(shè)計(jì)打印乘法九九表的程序,即1*1=1,1*2=2,……,9*9=81。首先考慮如何打印1*1=1,1*2=2……,1*9=9,這用單循環(huán)很容易就能實(shí)現(xiàn)。但是對(duì)于整個(gè)程序的設(shè)計(jì)就要使用多重循環(huán)了。被乘數(shù)和乘數(shù)分別用A和B表示,A的值從1增加到9,B的值從1增加到9,每次都增加1,其乘積用P表示。每個(gè)A值都要使B從1變化到9,然后打印出相應(yīng)的乘積。用VF設(shè)計(jì)主要程序語(yǔ)句如下:
A=1
DO WHILE A
B=1
DO WHILE B
P=A*B
? A,"*",B,"=",P
B=B+1
ENDDO
A=A+1
ENDDO
5 結(jié)束語(yǔ)
許多問(wèn)題的求解歸結(jié)為重復(fù)執(zhí)行的操作,比如數(shù)值計(jì)算中的方程迭代求根,非數(shù)值計(jì)算中的對(duì)象遍歷。重復(fù)執(zhí)行就是循環(huán)。重復(fù)執(zhí)行不是簡(jiǎn)單地重復(fù),每次重復(fù),操作的數(shù)據(jù)(狀態(tài)、條件)都可能發(fā)生變化。重復(fù)的動(dòng)作是受控制的,因此循環(huán)程序設(shè)計(jì)的要點(diǎn)就是要做好循環(huán)控制的設(shè)計(jì)。
參考文獻(xiàn):
[1] 林卓然.BASIC語(yǔ)言簡(jiǎn)明教程[M].廣州:中山大學(xué)出版社,1995.
[2] 遲成文.全國(guó)計(jì)算機(jī)考級(jí)考試教程(二級(jí))[M].北京:電子工業(yè)出版社,1997.
一、立項(xiàng)
1.對(duì)預(yù)防調(diào)查對(duì)象的理解
一是“可能引發(fā)職務(wù)犯罪的隱患、非規(guī)范職務(wù)行為”,應(yīng)指未然的職務(wù)犯罪;二是“職務(wù)犯罪衍化的宏觀和微觀因素”,應(yīng)指已然的職務(wù)犯罪背后的深層次原因。這里的已然職務(wù)犯罪一般是指一個(gè)整體深層次因素引發(fā)的類案、行業(yè)、領(lǐng)域群體性職務(wù)犯罪等,而非個(gè)案。對(duì)于自偵部門查處的個(gè)案一般沒(méi)有必要預(yù)防調(diào)查,因?yàn)橥ǔ_@些案件經(jīng)自偵部門偵查后,其漏洞和隱患問(wèn)題已基本查清,無(wú)需再重復(fù)勞動(dòng),直接可以利用現(xiàn)有的資料進(jìn)行案例剖析、發(fā)出檢察建議或開展后續(xù)其他預(yù)防工作。
2.預(yù)防調(diào)查的啟動(dòng)條件
一是預(yù)防部門在開展預(yù)防咨詢、警示教育等預(yù)防活動(dòng)中,發(fā)現(xiàn)或經(jīng)群眾反映有關(guān)單位在制度上、管理上存在易發(fā)職務(wù)犯罪漏洞和潛在隱患問(wèn)題的。如2008年我省漳州市龍文區(qū)檢察院根據(jù)新聞媒體報(bào)道反映的市區(qū)路面超載車輛增多,造成多處路段損壞等現(xiàn)象,分析可能存在公路監(jiān)管部門執(zhí)法不到位等瀆職問(wèn)題。啟動(dòng)預(yù)防調(diào)查程序后,及時(shí)地發(fā)現(xiàn)有關(guān)部門涉嫌瀆職犯罪線索,移送自偵部門,從中立案6件,同時(shí)還通過(guò)開展預(yù)防警示教育,協(xié)助公路局及時(shí)修復(fù)路段損壞,加大超載車輛的打擊力度,促進(jìn)了依法行政。
二是偵查部門經(jīng)初查不具備立案條件,但反映出有關(guān)單位在制度、管理上存在易發(fā)職務(wù)犯罪漏洞和潛在隱患問(wèn)題,經(jīng)分管檢察長(zhǎng)交辦或上級(jí)檢察院批辦的。如2009年福建省廈門市海滄區(qū)對(duì)廈門第一農(nóng)場(chǎng)下屬的山邊洪管理區(qū)涉及征地賠償款的糾紛進(jìn)行預(yù)防調(diào)查,選擇了控申部門經(jīng)初查不具備立案條件,但反映出該農(nóng)場(chǎng)在制度、管理上存在易發(fā)職務(wù)犯罪漏洞和潛在隱患問(wèn)題的題材進(jìn)行立項(xiàng)調(diào)查。
三是某一行業(yè)或領(lǐng)域職務(wù)犯罪高發(fā)或呈上升趨勢(shì),需黨委、政府或主管部門采取相應(yīng)預(yù)防對(duì)策的。如2009年,我省寧德市兩級(jí)檢察機(jī)關(guān)查處機(jī)動(dòng)漁船燃油補(bǔ)貼系列職務(wù)犯罪案件40件,涉及作案人員57人,包括海洋與漁業(yè)部門工作人員、鄉(xiāng)鎮(zhèn)干部、村委成員和漁民等,案值高達(dá)707.5萬(wàn)元,影響很大。寧德市檢察院專門成立預(yù)防調(diào)查工作領(lǐng)導(dǎo)小組,采取查閱案卷、召開案情分析會(huì)、詢問(wèn)犯罪嫌疑人犯罪的主觀動(dòng)因、向漁民發(fā)放問(wèn)卷調(diào)查等形式,深入7個(gè)市、縣(區(qū))兩級(jí)海洋漁業(yè)、財(cái)政部門,了解國(guó)家“油補(bǔ)”政策出臺(tái)的背景、意義及存在問(wèn)題,形成《“油補(bǔ)”案件情況調(diào)查報(bào)告》和《“油補(bǔ)”案件引發(fā)的對(duì)國(guó)家油價(jià)補(bǔ)貼政策的思考及采取的防范對(duì)策》,并向市政府及海洋漁業(yè)的主管部門發(fā)出檢察建議。
有上述情況之一,預(yù)防部門可以組織人員和力量確定承辦,收集現(xiàn)有的相關(guān)材料,組織預(yù)防部門進(jìn)行討論開展預(yù)防調(diào)查的可行性和必要性,然后再由預(yù)防部門的承辦人填寫《預(yù)防調(diào)查立項(xiàng)審批表》,預(yù)防部門負(fù)責(zé)人簽署意見,報(bào)主管檢察長(zhǎng)決定,并報(bào)上一級(jí)人民檢察院預(yù)防部門備案。
二、組織調(diào)查
1.制作調(diào)查方案或提綱
預(yù)防調(diào)查立項(xiàng)后,由預(yù)防部門負(fù)責(zé)同志組織承辦人和其他人員,根據(jù)已掌握的有關(guān)材料,研究制定調(diào)查方案或調(diào)查提綱,分管檢察長(zhǎng)也可以參與討論。調(diào)查方案或調(diào)查提綱要列明:調(diào)查的來(lái)源或現(xiàn)有資料的總體評(píng)估分析、調(diào)查需要采取的措施、各承辦人的任務(wù)分配、調(diào)查所需的期限和步驟,調(diào)查要達(dá)到的預(yù)期效果等等,并將討論情況記錄在案,參與討論的人員要簽名。
2.組織調(diào)查的方式
組織調(diào)查要按照制定的預(yù)防調(diào)查方案分步驟開展,當(dāng)然調(diào)查方案或調(diào)查提綱在實(shí)際的調(diào)查中可以有所調(diào)整。在實(shí)踐中可以采取以下方式:與有關(guān)單位召開座談會(huì),相互通報(bào)有關(guān)情況,了解具體工作的流程;向有關(guān)人員了解、核實(shí)相關(guān)情況;查閱、調(diào)取為預(yù)防建議和糾正違法意見提供依據(jù)的相關(guān)資料以及用于調(diào)查分析的具體事件、項(xiàng)目和問(wèn)題的文件資料等;邀請(qǐng)專家對(duì)一些專業(yè)性的工作提供咨詢,為預(yù)防調(diào)查提供專業(yè)指導(dǎo)和幫助;走訪、問(wèn)卷調(diào)查、聘請(qǐng)預(yù)防聯(lián)絡(luò)員以及訊問(wèn)犯罪嫌疑人(包括服刑犯);復(fù)印案卷等一系列的有助于了解分析的調(diào)查方式。
3.調(diào)查需要注意的事項(xiàng)
在組織調(diào)查活動(dòng)中,應(yīng)當(dāng)注意三個(gè)方面事項(xiàng):一是對(duì)外開展預(yù)防調(diào)查時(shí),必須由兩名以上檢察人員持介紹信并出示檢察人員工作證;二是調(diào)查中向有關(guān)人員了解、核實(shí)情況,查閱、調(diào)取資料前,應(yīng)當(dāng)征得有關(guān)單位和人員的同意,并在被調(diào)查單位的紀(jì)檢監(jiān)察工作人員配合下進(jìn)行。三是預(yù)防調(diào)查不同于偵查,不能對(duì)被調(diào)查人采取拘傳、拘留和其他任何限制人身自由的強(qiáng)制措施,不得進(jìn)行訊問(wèn)、搜查,凍結(jié)存款、匯款等偵查手段,調(diào)查場(chǎng)所是單位或被調(diào)查人所在地,嚴(yán)禁將被調(diào)查對(duì)象帶入檢察院。
三、調(diào)查結(jié)果處置
1.發(fā)現(xiàn)相關(guān)職務(wù)犯罪線索
根據(jù)最高人民檢察院《關(guān)于推進(jìn)職務(wù)犯罪偵查和預(yù)防一體化工作機(jī)制建設(shè)的指導(dǎo)意見》的要求:“預(yù)防部門應(yīng)當(dāng)在預(yù)防工作中注意發(fā)現(xiàn)和受理案件線索,經(jīng)審查,認(rèn)為有初查必要的,應(yīng)當(dāng)及時(shí)移送偵查部門,并向舉報(bào)中心備案,偵查部門立案的,應(yīng)向預(yù)防部門反饋。”承辦人應(yīng)當(dāng)填寫《預(yù)防部門職務(wù)犯罪線索處置表》,及時(shí)移送偵查部門。
2.發(fā)現(xiàn)有違法違紀(jì)行為或涉嫌普通刑事案件
根據(jù)有關(guān)規(guī)定將相關(guān)線索和材料移交有關(guān)單位紀(jì)檢監(jiān)察部門或公安機(jī)關(guān)處理。
3.剖析犯罪原因,形成預(yù)防報(bào)告
完成對(duì)某一行業(yè)或領(lǐng)域職務(wù)犯罪原因的剖析和預(yù)防對(duì)策的研究,形成有分析、有對(duì)策的詳細(xì)預(yù)防調(diào)查報(bào)告。根據(jù)《最高人民檢察院關(guān)于實(shí)行懲治和預(yù)防職務(wù)犯罪年度報(bào)告制度的意見》,形成專項(xiàng)預(yù)防報(bào)告,報(bào)有關(guān)行業(yè)的主管部門和有關(guān)單位。
4.與發(fā)現(xiàn)存有職務(wù)犯罪的單位及時(shí)聯(lián)系
發(fā)現(xiàn)有關(guān)單位內(nèi)部機(jī)制不健全、管理混亂,明顯存在導(dǎo)致職務(wù)犯罪發(fā)生的機(jī)會(huì)和條件,需要有關(guān)方面采取預(yù)防措施的,與有關(guān)單位聯(lián)系溝通,開展必要的預(yù)防工作,如警示教育、發(fā)送預(yù)防職務(wù)犯罪檢察建議、糾正違法通知書等活動(dòng)。
當(dāng)然上述四種情況可能并存。針對(duì)上述情況,承辦人要提出具體的處理意見,并制作《預(yù)防調(diào)查情況報(bào)告》,報(bào)預(yù)防部門負(fù)責(zé)人審核后,經(jīng)分管領(lǐng)導(dǎo)批準(zhǔn)。情況報(bào)告內(nèi)容主要包括:立項(xiàng)調(diào)查來(lái)源、主要問(wèn)題、具體調(diào)查情況、調(diào)查結(jié)論、處理意見或建議以及承辦人、承辦日期等。若未發(fā)現(xiàn)以上四種情形的,立即終結(jié)預(yù)防調(diào)查工作,并將有關(guān)調(diào)查結(jié)果及時(shí)反饋被調(diào)查單位。
四、調(diào)查終結(jié)
1.調(diào)查終結(jié)的四種情形
預(yù)防調(diào)查情況報(bào)告的處置意見經(jīng)批準(zhǔn)后,一般在立項(xiàng)后的三個(gè)月內(nèi)完成。根據(jù)不同情況進(jìn)行處置后,相關(guān)單位落實(shí)并反饋的,預(yù)防調(diào)查可以終結(jié)。一是移送線索的,自偵部門已經(jīng)受理并立案;二是發(fā)現(xiàn)有違法違紀(jì)行為或涉嫌普通刑事案件的,相關(guān)單位紀(jì)檢監(jiān)察部門或公安機(jī)關(guān)已接收并反饋的;三是預(yù)防調(diào)查專項(xiàng)報(bào)告呈送后行業(yè)主管部門或相關(guān)單位引起重視并被采納的;四是有關(guān)單位內(nèi)部制度得到完善,取得預(yù)防效果的。
2.制作《預(yù)防調(diào)查終結(jié)報(bào)告》
根據(jù)上述完成情況,承辦人應(yīng)當(dāng)制作《預(yù)防調(diào)查終結(jié)報(bào)告》工作文書。列明立項(xiàng)調(diào)查來(lái)源、具體調(diào)查情況、承辦人處理意見或建議、主管檢察長(zhǎng)意見、處理意見落實(shí)情況、預(yù)防調(diào)查成效綜述等?!额A(yù)防調(diào)查終結(jié)報(bào)告》一式二份,一份立卷歸檔,一份報(bào)送上一級(jí)人民檢察院預(yù)防部門備案。
【關(guān)鍵詞】Java程序設(shè)計(jì);教學(xué)探索;教學(xué)方法
隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,Java以其簡(jiǎn)單、面向?qū)ο蟆⒎€(wěn)定、與平臺(tái)無(wú)關(guān)、多線程,動(dòng)態(tài)等特點(diǎn)成為軟件開發(fā)領(lǐng)域的主流程序設(shè)計(jì)語(yǔ)言之一,也成為高等院校計(jì)算機(jī)專業(yè)教學(xué)體系中一門重要的主干課程。但是并不是所有學(xué)生都能學(xué)好,這不僅僅是學(xué)生的問(wèn)題,也取決于教師如何完成該課程的教學(xué)工作。學(xué)生無(wú)興趣,學(xué)不會(huì),感覺(jué)壓力很大,種種現(xiàn)象反映出我們的教學(xué)工作出了問(wèn)題。我們需要尋求解決問(wèn)題的方法,提教學(xué)效果。
一、Java程序設(shè)計(jì)課程教學(xué)中存在的問(wèn)題及原因
傳統(tǒng)教學(xué)過(guò)程中,任課教師一般首先會(huì)按照教材對(duì)知識(shí)點(diǎn)進(jìn)行講解,然后編寫程序分析、演示所講知識(shí)點(diǎn),學(xué)生只是跟隨老師思路,被動(dòng)接受,學(xué)生不會(huì)主動(dòng)去思考,去尋求解決問(wèn)題的辦法,時(shí)間一長(zhǎng)就喜歡接受教師寫好的現(xiàn)成程序,當(dāng)自己獨(dú)立去解決實(shí)際問(wèn)題時(shí),就腦子空空,難以應(yīng)對(duì)。產(chǎn)生這些現(xiàn)象的原因主要有以下幾點(diǎn):
1.知識(shí)點(diǎn)沒(méi)有真正掌握
在學(xué)生的學(xué)習(xí)過(guò)程中,隨著課程的逐步展開,學(xué)習(xí)了更多新的知識(shí)點(diǎn)后,就把以前學(xué)過(guò)的基本的語(yǔ)法規(guī)則遺忘了。當(dāng)程序中需要使用以往的知識(shí)點(diǎn)時(shí),就要不斷的去翻書尋找,如變量如何定義,語(yǔ)句控制的相關(guān)用法等等,而對(duì)具體用法含義沒(méi)有真正領(lǐng)悟。
2.在解決問(wèn)題時(shí)編程方式和傳統(tǒng)思維方式存在差異
如變量的講解環(huán)節(jié),它的值是可隨著程序的調(diào)用而變化,具體的式子在傳統(tǒng)數(shù)學(xué)模式里是不成立。有些問(wèn)題看上去很簡(jiǎn)單,需要程序解決時(shí),又要循環(huán)又要中斷,就出現(xiàn)了整個(gè)思考過(guò)程要程序化。學(xué)生在剛開始學(xué)習(xí)程序時(shí),很難采用計(jì)算機(jī)的方式去解決問(wèn)題,另外完全依附于教師,教一點(diǎn)學(xué)一點(diǎn),下課后就算結(jié)束了,從不自己獨(dú)立思考,沒(méi)有讓學(xué)生養(yǎng)成良好的編程習(xí)慣,從而僵化了學(xué)習(xí)模式。
3.隨著難度增加,學(xué)習(xí)興趣逐漸降低
學(xué)生初學(xué)時(shí)興趣一般都大,但是,隨著學(xué)習(xí)的深入,知識(shí)點(diǎn)難度的增加,學(xué)習(xí)的興趣和積極性就會(huì)逐漸削弱。當(dāng)新鮮感沒(méi)有的時(shí)候,就會(huì)感覺(jué)到程序設(shè)計(jì)枯燥、難懂,也就不去聽、不去學(xué)了。
4.學(xué)習(xí)目的不明確,教學(xué)與實(shí)踐脫節(jié)
很多學(xué)生學(xué)習(xí)目的不明確,不知道為何而學(xué),學(xué)了干什么,很多學(xué)生學(xué)習(xí)這門課緊緊為了修學(xué)分,雖然書本中的知識(shí)掌握的很好,但是僅僅能夠完成書本上的題目,忽略了實(shí)際軟件研發(fā)的經(jīng)驗(yàn)的積累,從而造成了教學(xué)與實(shí)踐的嚴(yán)重脫節(jié)。
針對(duì)以上問(wèn)題,就需要授課教師改變自己的教學(xué)方法,探索新的教學(xué)理念,深入對(duì)Java程序設(shè)計(jì)進(jìn)行剖析,提高學(xué)生的學(xué)習(xí)興趣和動(dòng)手能力,真正感受到程序設(shè)計(jì)的魅力。
二、教學(xué)改進(jìn)措施
1.增加教學(xué)環(huán)節(jié)中實(shí)訓(xùn)課時(shí)
為了使學(xué)生能夠掌握所學(xué)的知識(shí)點(diǎn),靈活運(yùn)用去解決實(shí)際問(wèn)題,同時(shí)培養(yǎng)良好的團(tuán)隊(duì)意識(shí),激發(fā)自主創(chuàng)新能力,這就要求學(xué)生不能只停留在學(xué)的層面上,而要進(jìn)一步達(dá)到會(huì)的深度。為了使學(xué)生真正作到學(xué)會(huì)并靈活運(yùn)用這個(gè)目標(biāo),在教學(xué)上就應(yīng)該加大實(shí)踐操作的力度,要求教師形成一個(gè)從基本知識(shí)講解到實(shí)踐動(dòng)手操作的指導(dǎo)團(tuán)隊(duì)模式。在進(jìn)行課程教學(xué)的學(xué)期開始,就要求主講教師根據(jù)教學(xué)的具體內(nèi)容結(jié)合學(xué)生平時(shí)學(xué)習(xí)效果來(lái)設(shè)計(jì)適當(dāng)?shù)恼n程階段性項(xiàng)目,在學(xué)生上機(jī)操作實(shí)現(xiàn)的整個(gè)過(guò)程中對(duì)知識(shí)點(diǎn)進(jìn)行運(yùn)用,從而加深其印象。教師在指導(dǎo)的過(guò)程中,在解答專業(yè)知識(shí)點(diǎn)的同時(shí)要注重引導(dǎo)培養(yǎng)學(xué)生的創(chuàng)新自學(xué)能力。在必要時(shí)可根據(jù)學(xué)生的個(gè)性化要求進(jìn)行分組,實(shí)現(xiàn)不同的項(xiàng)目開發(fā)與制作。這樣就能夠增加學(xué)生的自信及提高對(duì)課程的興趣程度。教師在課堂上的知識(shí)點(diǎn)講解及實(shí)驗(yàn)實(shí)訓(xùn)的項(xiàng)目實(shí)踐應(yīng)用,都要做到任務(wù)分工明確,安排科學(xué)合理,效果檢驗(yàn)及時(shí),這樣就能根據(jù)教學(xué)進(jìn)度,結(jié)合學(xué)生掌握情況,調(diào)整教學(xué)方式,達(dá)到良好的教學(xué)效果。
2.拓展新的教學(xué)方法
(1)引導(dǎo)學(xué)生發(fā)散思維
程序演示是Java程序設(shè)計(jì)課程授課環(huán)節(jié)的一個(gè)重要組成,在程序演示過(guò)程老師應(yīng)該提出問(wèn)題,啟發(fā)學(xué)生思考,可提問(wèn)不同的學(xué)生,對(duì)不同的解決方案進(jìn)行比較、分析,同時(shí)可穿插舊的知識(shí)點(diǎn),幫助學(xué)生加強(qiáng)記憶。在提問(wèn)解決問(wèn)題的過(guò)程中要注重循序漸進(jìn)的引導(dǎo),讓學(xué)生從不知道,到找到解決問(wèn)題的辦法的過(guò)程中去思考,培養(yǎng)分析問(wèn)題、解決問(wèn)題的能力,同時(shí)針對(duì)該問(wèn)題進(jìn)行拓展,提出新的要求,從而達(dá)到開闊學(xué)生視野,激發(fā)潛能,加強(qiáng)認(rèn)識(shí)新知識(shí)點(diǎn),穩(wěn)固已經(jīng)掌握的知識(shí)點(diǎn)的目的。
(2)要適時(shí)表?yè)P(yáng)鼓勵(lì)
學(xué)生在學(xué)習(xí)的過(guò)程中,是否有興趣鉆進(jìn)去,取決于他是否取得進(jìn)步。假如自己已經(jīng)盡力學(xué)了,還是學(xué)不會(huì),當(dāng)然就很受打擊,從而失去再堅(jiān)持下去的念頭。在教學(xué)的過(guò)程中,無(wú)論是提問(wèn),還是學(xué)生在問(wèn)一些簡(jiǎn)單的問(wèn)題,就應(yīng)該適時(shí)捕捉他們?nèi)〉玫倪M(jìn)步,要肯定并鼓勵(lì)學(xué)生。讓學(xué)生有信心去學(xué),也就是說(shuō)只要認(rèn)真的學(xué)習(xí),就能不斷的提高。這樣學(xué)生的興趣不斷加濃,就會(huì)更用功的去尋求進(jìn)步,得到同學(xué)們,尤其是教師的認(rèn)可。學(xué)生的好勝心,成就感,在教學(xué)中得到應(yīng)用,會(huì)取得意想不到的效果。
(3)故意設(shè)置錯(cuò)誤啟發(fā)
教學(xué)過(guò)程中,程序的編寫及演示過(guò)程中,應(yīng)該把常見的錯(cuò)誤給學(xué)生故意暴露出來(lái)。問(wèn)題的解決通常情況下是出現(xiàn)了錯(cuò)誤,尋求解決錯(cuò)誤的有效方法。學(xué)生學(xué)習(xí)知識(shí)本就是要認(rèn)識(shí)錯(cuò)誤,得到如何糾正錯(cuò)誤的方法。這樣在代碼書寫及調(diào)試時(shí),制造矛盾,激發(fā)對(duì)錯(cuò)誤的認(rèn)識(shí)并解惑。在容易出現(xiàn)錯(cuò)誤的基本知識(shí)點(diǎn),無(wú)論是新學(xué)的還是已經(jīng)學(xué)過(guò)的,都要不失時(shí)機(jī)的在錯(cuò)誤中提高。這樣往往可以加深學(xué)生的印象,以后假如出現(xiàn)類似情況,他們也很快能夠找到應(yīng)對(duì)的方法。也可以在處理錯(cuò)誤時(shí)把錯(cuò)誤多樣化,同樣的環(huán)境,不同的錯(cuò)誤又該如何應(yīng)對(duì),就起到了,舉一反三的教學(xué)效果。
(4)搭建課程總體項(xiàng)目
在課程開始就給同學(xué)們規(guī)劃一個(gè)大的項(xiàng)目,此后知識(shí)點(diǎn)的逐一展開就是逐步完成目標(biāo)的過(guò)程。學(xué)習(xí)的各個(gè)章節(jié)可設(shè)置局部的小項(xiàng)目,明確目標(biāo)。要遵循事物發(fā)展,由易到難,由小到大的規(guī)律,小項(xiàng)目進(jìn)行排序,前面完成的就是后面要出現(xiàn)的基礎(chǔ),依此一環(huán)扣一環(huán),逐層推進(jìn)最終實(shí)現(xiàn)課程的總體項(xiàng)目。不然學(xué)生總會(huì)在學(xué)習(xí)中產(chǎn)生顧慮,到底學(xué)了有什么用,又用到那里。這樣學(xué)生就會(huì)努力的向目標(biāo)進(jìn)發(fā),有針對(duì)性的去提高,否則造成盲目學(xué)習(xí),其效果可想而知。
(5)教學(xué)過(guò)程讓學(xué)生有輕松感
教師應(yīng)該在教學(xué)中,在講解單調(diào)的程序類課程時(shí)要有足夠的幽默感,這樣就能夠調(diào)動(dòng)的課堂氣氛,使學(xué)生更專注于課程內(nèi)容。其實(shí)教學(xué)就是一門獨(dú)特的語(yǔ)言藝術(shù),教學(xué)就是在教與學(xué)的交流中進(jìn)行的,就要發(fā)揮教師的語(yǔ)言能力,感染和吸引學(xué)生,輕松的完成知識(shí)點(diǎn)的講解。往往有些教師就不注意這點(diǎn),只知道埋頭講知識(shí)點(diǎn),其實(shí)已經(jīng)喪失了教學(xué)良機(jī),也就談不上提高教學(xué)質(zhì)量了。
3.緊密與實(shí)踐相結(jié)合
老師在授課過(guò)程中,應(yīng)該讓學(xué)生知道自己所學(xué)知識(shí)的基本用途,了解該如何利用使用所學(xué)知識(shí)解決實(shí)際問(wèn)題。高校老師在授課之余也擔(dān)負(fù)著科研工作,因此可以將科研工作中的實(shí)際案例作為教學(xué)案例進(jìn)行剖析、講解,甚至可以讓學(xué)生參加在研項(xiàng)目,通過(guò)大量實(shí)際案例的分析、代碼的編寫使學(xué)生更加深入的了解Java的運(yùn)行原理。
4.改變傳統(tǒng)課程考核方式
目前高等院校期終考試一般采用筆試進(jìn)行,這樣以來(lái)就使學(xué)生更注重理論的死記硬背,而不關(guān)心實(shí)際的應(yīng)用,即使不會(huì)用程序解決實(shí)際問(wèn)題也不影響自己的課程成績(jī)。針對(duì)這種現(xiàn)象,應(yīng)當(dāng)引入上機(jī)考試的方式進(jìn)行考核??己藭r(shí),學(xué)生試題來(lái)源于試題庫(kù),老師在制作試題庫(kù)時(shí)就可以更加注重學(xué)生分析問(wèn)題、解決問(wèn)題的能力考核,同時(shí),學(xué)生平時(shí)學(xué)習(xí)也會(huì)更加注重動(dòng)手能力。平時(shí)課程課內(nèi)實(shí)訓(xùn)時(shí)就要灌輸學(xué)生學(xué)習(xí)要以用為主的思想,加強(qiáng)學(xué)生對(duì)知識(shí)點(diǎn)的理解和聯(lián)想,不斷提升學(xué)生的自覺(jué)能動(dòng)性。
三、結(jié)束語(yǔ)
隨著計(jì)算機(jī)軟件技術(shù)的飛速發(fā)展,基于Java的行業(yè)應(yīng)用在社會(huì)各個(gè)領(lǐng)域扮演重要角色,因此高等院校Java程序設(shè)計(jì)課程教學(xué)工作就顯的尤為重要。這就要求教師和學(xué)生就必須達(dá)到教與學(xué)的緊密有效的結(jié)合,及時(shí)發(fā)現(xiàn)問(wèn)題、解決問(wèn)題,形成良性循環(huán),使學(xué)生真正做到知識(shí)的深刻理解、掌握以及靈活運(yùn)用,高效的完成教學(xué)任務(wù)。
參考文獻(xiàn)
[1]廖福保.Java語(yǔ)言課程項(xiàng)目教學(xué)探討[J].廣東農(nóng)工商職業(yè)技術(shù)學(xué)院學(xué)報(bào),2012(2):29—31.
[2]史岳鵬.高職高?!禞ava程序設(shè)計(jì)》課程項(xiàng)目驅(qū)動(dòng)一體化教學(xué)模式研究[J].科技信息,2012(20):33—34.
[3]馬雪英,王桂平.以能力為導(dǎo)向的程序設(shè)計(jì)類課程教學(xué)體系[J].計(jì)算機(jī)教育,2011(4):74—78.
關(guān)鍵詞:VB程序設(shè)計(jì) 教學(xué)過(guò)程 能力
VB程序設(shè)計(jì)是大多高校必開的計(jì)算機(jī)基礎(chǔ)課程,在我校,VB也針對(duì)絕大多數(shù)院系開課。但由于課程比較枯燥難學(xué),學(xué)生對(duì)程序設(shè)計(jì)畏懼、對(duì)程序設(shè)計(jì)思想不理解等諸多原因,導(dǎo)致VB課程教學(xué)效果達(dá)不到預(yù)期效果。通過(guò)幾年的VB基礎(chǔ)教學(xué),我總結(jié)了一些教學(xué)經(jīng)驗(yàn),在此與大家分享。
一、好的開始是成功的一半,基礎(chǔ)必須打好
VB是一門面向?qū)ο?、事件?qū)動(dòng)機(jī)制的程序設(shè)計(jì)課程,為了以后能更好、更深入地學(xué)習(xí),必須在開始時(shí)就讓學(xué)生理解和掌握面向?qū)ο蠛褪录?qū)動(dòng)兩大特點(diǎn),這樣在后續(xù)學(xué)習(xí)中,學(xué)生才能合理地使用合適的對(duì)象和事件。
在具體教學(xué)過(guò)程中,我通過(guò)一個(gè)淺顯易懂的例子進(jìn)行詳細(xì)講解。比如“一行內(nèi)容在窗體左、右移動(dòng);移動(dòng)兩種方法:手動(dòng)和自動(dòng),當(dāng)自動(dòng)時(shí),文字閃爍顯示”,程序運(yùn)行界面如圖1所示:
講解過(guò)程中,首先讓學(xué)生看清楚題意,看清題目的目的和要求,提示學(xué)生找出這個(gè)題目中要進(jìn)行操作的對(duì)象是什么,該對(duì)象該如何在窗口中體現(xiàn),對(duì)對(duì)象的操作是什么。得出的結(jié)論是要操作的對(duì)象是“一行內(nèi)容”,可以用一個(gè)能夠顯示文本的控件實(shí)現(xiàn),操作是“左、右移動(dòng)”。然后運(yùn)行程序,通過(guò)演示程序運(yùn)行,讓學(xué)生們找出驅(qū)動(dòng)結(jié)果顯示的事件是什么。結(jié)論是單擊“手動(dòng)”和“自動(dòng)”按鈕,才能得到相應(yīng)的結(jié)果。通過(guò)多個(gè)簡(jiǎn)單例題的引導(dǎo),通過(guò)對(duì)學(xué)生提問(wèn),激發(fā)學(xué)生思考,讓學(xué)生真正掌握對(duì)象的含義和事件驅(qū)動(dòng)的含義,并能在給出的題目中說(shuō)出需要添加什么對(duì)象,用什么事件來(lái)驅(qū)動(dòng)。掌握好了這些,就為以后的學(xué)習(xí)奠定了堅(jiān)實(shí)的基礎(chǔ)。
二、實(shí)例教學(xué)和任務(wù)驅(qū)動(dòng)機(jī)制貫穿始終
VB語(yǔ)言內(nèi)容繁多,層次性較差,采用“案例引入,上機(jī)實(shí)踐,質(zhì)疑解惑”的方式,學(xué)生即學(xué)即練,上手快,興趣濃,有成就感。以VB的基礎(chǔ)內(nèi)容控件、控件屬性、事件和方法為例。單個(gè)講解的話很容易枯燥乏味,學(xué)生也難以真正體會(huì)其用途。教師應(yīng)設(shè)計(jì)一個(gè)綜合實(shí)例,實(shí)例應(yīng)注重知識(shí)的系統(tǒng)性、完整性和連貫性。我以學(xué)生最經(jīng)常接觸的“登錄界面”為例進(jìn)行了講解。程序運(yùn)行界面如圖1-4所示:
本實(shí)例包含兩個(gè)窗體,主要涉及窗體、標(biāo)簽、文本框、命令按鈕、圖片等控件,通過(guò)本例可以詳細(xì)講解每個(gè)控件適合用在什么情況,以及相應(yīng)屬性、事件和方法的使用。由于此例學(xué)生經(jīng)常遇到,所以可以很好地理解,便于掌握??丶庥^屬性如圖1-4設(shè)置。
窗體一的代碼如下:
Private Sub Command1_Click()‘按鈕單擊事件
Form1.Hide‘窗體一隱藏,hide方法的使用
Form2.Show ‘窗體二顯示,shoe方法的使用
End Sub
窗體二的代碼如下:
Private Sub Form_Load()
Command1.Enabled = False ‘按鈕可編輯屬性設(shè)置,
窗體剛
Command2.Enabled = False 加載時(shí)是不可編輯的
Picture1.Picture = LoadPicture(″e(cuò):\素材\002.bmp″)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) ‘文本框 接收輸入事件
Command1.Enabled = True ‘此時(shí)按鈕變?yōu)榭删庉?/p>
End Sub
Private Sub Command1_Click()
Picture1.Print ″用戶″; Spc(2); Text1.Text; Spc(2); ″登錄成功″
Command1.Enabled = False
Command2.Enabled = True
End Sub
Private Sub Command2_Click()
Picture1.Cls
Text1.Text = ″″
Text2.Text = ″″
Text1.SetFocus ‘文本框獲得焦點(diǎn)
End Sub
三、問(wèn)題求解能力的培養(yǎng)
Gagné說(shuō)過(guò):“教育的中心目標(biāo)就是教會(huì)人們思考,運(yùn)用他們的理性,成為更好的問(wèn)題解決者?!盫B的學(xué)習(xí)重點(diǎn)是程序設(shè)計(jì),是用它來(lái)編程實(shí)現(xiàn)生活中的問(wèn)題,所以單純地靠講解一些實(shí)例是遠(yuǎn)遠(yuǎn)不夠的,關(guān)鍵是要培養(yǎng)學(xué)生發(fā)現(xiàn)問(wèn)題、分析問(wèn)題和解決問(wèn)題的能力。我采取的方法是給出初始創(chuàng)意,讓學(xué)生給出擴(kuò)展功能及相關(guān)功能的解決思路,最終能夠轉(zhuǎn)換為程序。仍以上例為例,讓學(xué)生盡可能補(bǔ)充添加功能,并描述該用何方法,什么結(jié)構(gòu)等等來(lái)實(shí)現(xiàn),并以作業(yè)的形式交上來(lái),然后課堂上給予總結(jié),上機(jī)讓學(xué)生實(shí)現(xiàn),并給予指導(dǎo)。上例可以添加的功能很多,如輸入不能為空,如果為空給出錯(cuò)誤提示(分支語(yǔ)句和Msgbox的應(yīng)用);密碼校驗(yàn)功能(分支語(yǔ)句實(shí)現(xiàn));設(shè)置輸入次數(shù)不能超過(guò)3次(循環(huán)語(yǔ)句實(shí)現(xiàn))等等。這樣的方式使得學(xué)生能夠積極地思考,并能夠把理論知識(shí)同現(xiàn)實(shí)結(jié)合起來(lái),從而促進(jìn)了學(xué)生更多問(wèn)題的處理解決能力,形成了程序設(shè)計(jì)思維。
對(duì)一個(gè)題目要求用幾種方法來(lái)實(shí)現(xiàn),以此提高學(xué)生對(duì)程序的分析理解和舉一反三的綜合能力。例如,求1到100之間所有奇數(shù)的和。比較容易想到的是用For……Next循環(huán)語(yǔ)句實(shí)現(xiàn)。要求學(xué)生用Do While……Loop和Do……Loop While……來(lái)分別實(shí)現(xiàn),學(xué)生就必須考慮這三者之間的聯(lián)系和區(qū)別,以及各自的語(yǔ)句執(zhí)行特點(diǎn)、循環(huán)次數(shù)的控制和退出循環(huán)的方法等。這樣既使學(xué)生從多個(gè)角度考慮了問(wèn)題,也對(duì)這三種循環(huán)結(jié)構(gòu)有了更深的理解。更進(jìn)一步,要求學(xué)生求1到N之間所有奇數(shù)的和。循環(huán)變量的終止值需用變量N來(lái)表示,因此需要在程序的前面增加一條定義變量N的語(yǔ)句,還需要使用InputBox語(yǔ)句在程序運(yùn)行的過(guò)程中將終止值輸入給變量N,這就要求學(xué)生能夠把前面所學(xué)的知識(shí)綜合起來(lái)運(yùn)用,學(xué)生的創(chuàng)新思維和綜合編程能力可以得到訓(xùn)練和明顯提高。
四、抓好上機(jī)實(shí)踐環(huán)節(jié)
上機(jī)是提高學(xué)生實(shí)踐和動(dòng)手能力的關(guān)鍵,所以要嚴(yán)格要求。做法是嚴(yán)格上機(jī)制度,上機(jī)表現(xiàn)直接跟成績(jī)掛鉤。學(xué)生自主意識(shí)較差,如果不明確布置任務(wù),他們就會(huì)渾水摸魚,上機(jī)無(wú)事可做,所以每次必須要詳細(xì)分配任務(wù),并且任務(wù)要具備趣味性、應(yīng)用性和綜合性,由易到難、由簡(jiǎn)到繁,充分調(diào)動(dòng)他們的上機(jī)主動(dòng)性和自我發(fā)揮能力。并且要鼓勵(lì)學(xué)生積極提問(wèn)、互相幫助,耐心給學(xué)生指導(dǎo),充分利用好每一次上機(jī)課。
關(guān)鍵詞:程序設(shè)計(jì) 教學(xué) 算法
程序設(shè)計(jì)是我國(guó)高校各專業(yè)學(xué)生必修的一門核心課程,該課程的教學(xué)目的是使學(xué)生掌握程序設(shè)計(jì)的基本方法和理論,應(yīng)用某一程序設(shè)計(jì)語(yǔ)言編寫具體的程序。程序設(shè)計(jì)的教學(xué)質(zhì)量將影響到學(xué)生的程序設(shè)計(jì)能力,影響到學(xué)生創(chuàng)新思維的培養(yǎng)。
一、程序設(shè)計(jì)課程教學(xué)現(xiàn)狀
“程序設(shè)計(jì)”課程長(zhǎng)期沿襲傳統(tǒng)教學(xué)模式,即以一種高級(jí)語(yǔ)言的語(yǔ)句體系為脈絡(luò)展開教學(xué),詳細(xì)地講解其語(yǔ)句、語(yǔ)法甚至一些細(xì)節(jié)內(nèi)容,學(xué)生每學(xué)習(xí)一個(gè)語(yǔ)句需要做一些與該語(yǔ)句有關(guān)的習(xí)題。課程枯燥無(wú)味,學(xué)生學(xué)習(xí)積極性不高,很少動(dòng)手實(shí)踐。課程學(xué)完后,學(xué)生除了學(xué)到一些呆板的語(yǔ)句外,收獲甚微。
1.理論基礎(chǔ)薄弱
有些教師過(guò)分重視程序設(shè)計(jì)語(yǔ)言的教學(xué),而對(duì)于程序設(shè)計(jì)中所涉及的程序設(shè)計(jì)理論、程序設(shè)計(jì)的方法和算法的設(shè)計(jì)思想等理論知識(shí)的講解不夠深入、透徹。
2.學(xué)生缺乏創(chuàng)新能力
學(xué)生可以解決那些和已經(jīng)學(xué)過(guò)的知識(shí)有直接或有密切聯(lián)系的問(wèn)題,而面對(duì)一個(gè)需要用已經(jīng)學(xué)過(guò)的知識(shí)進(jìn)行綜合求解的程序設(shè)計(jì)問(wèn)題時(shí),就不知從何下手,對(duì)所學(xué)知識(shí)做不到舉一反三,缺乏程序設(shè)計(jì)的創(chuàng)新能力。
3.動(dòng)手能力不強(qiáng)
學(xué)生實(shí)際動(dòng)手能力差,具體表現(xiàn)在兩個(gè)方面。其一,學(xué)生上機(jī)調(diào)試程序的能力差,難以找到錯(cuò)誤產(chǎn)生的原因;其二,實(shí)際編寫程序的能力不強(qiáng),編寫的程序功能不夠完善,風(fēng)格不一,程序健壯性差。
針對(duì)以上出現(xiàn)的問(wèn)題,我們認(rèn)為應(yīng)該在教學(xué)過(guò)程中對(duì)學(xué)生各方面的編程素養(yǎng)進(jìn)行引導(dǎo)和培養(yǎng)。
二、編程方法引導(dǎo)
程序設(shè)計(jì)的觀念雖然發(fā)生過(guò)很多變化,但程序的基本結(jié)構(gòu)仍然是順序、選擇和循環(huán)三種。因此,在學(xué)生初學(xué)程序設(shè)計(jì)時(shí)就應(yīng)該注意滲透結(jié)構(gòu)化程序設(shè)計(jì)的思想,以便使學(xué)生養(yǎng)成良好的程序設(shè)計(jì)習(xí)慣。
我們這里談的不是純粹的程序設(shè)計(jì)方法,如結(jié)構(gòu)化的、面向?qū)ο蟮牡?,而是在教學(xué)中滲透程序設(shè)計(jì)的技巧。這里舉一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)的例子。
例:求100以內(nèi)的素?cái)?shù)。
經(jīng)過(guò)分析可以發(fā)現(xiàn),除了“2”以外,偶數(shù)不可能為素?cái)?shù),所以外循環(huán)有50次是多余的,同理在內(nèi)循環(huán)中,也不必用偶數(shù)測(cè)試。再進(jìn)行分析又發(fā)現(xiàn),一個(gè)合數(shù)最小的因子不會(huì)大于它的平方根,所以內(nèi)循環(huán)中的次數(shù)被再次減少。最后程序變?yōu)椋?/p>
通過(guò)不斷改進(jìn)程序,可以使程序效率得到不斷提高,當(dāng)然這些提高是在數(shù)據(jù)規(guī)模不斷增長(zhǎng)時(shí)才能體現(xiàn)出來(lái)。盡管現(xiàn)在很多人認(rèn)為硬件的速度發(fā)展很快,我們應(yīng)該把速度提高的任務(wù)交給硬件去實(shí)現(xiàn),這樣的想法未免過(guò)于武斷。姑且不論類似上述的技巧對(duì)于程序執(zhí)行效率的提高有多少益處,單從基于問(wèn)題的學(xué)習(xí)方法這個(gè)角度的出發(fā),程序的衍生對(duì)于提高程序員的編程水平也是一個(gè)很好的訓(xùn)練方法,所以這樣的編程技巧是不可多得的,我們?cè)诮虒W(xué)過(guò)程中就是要進(jìn)行這方面的引導(dǎo)。
三、編程風(fēng)格和規(guī)則引導(dǎo)
前面提到我們?cè)谶M(jìn)行程序設(shè)計(jì)教學(xué)時(shí),傳統(tǒng)教學(xué)模式比較少注意編程風(fēng)格和規(guī)則的引導(dǎo),所以很多時(shí)候,學(xué)生編制出來(lái)的程序都是一路下來(lái)齊刷刷,缺乏良好風(fēng)格,死套語(yǔ)法,缺乏考慮可能的不安全因素。
由于學(xué)習(xí)程序設(shè)計(jì)是一個(gè)循序漸進(jìn)的過(guò)程,所以在教學(xué)中如果潛移默化地引導(dǎo)學(xué)生從程序設(shè)計(jì)入門開始,就注意程序設(shè)計(jì)的一般風(fēng)格和應(yīng)該遵守的規(guī)則,就能讓學(xué)生更快更好地編制出高質(zhì)量的程序來(lái),并且具備良好的編程習(xí)慣。
舉例說(shuō)明。我們知道,free和delete都可以把指針?biāo)傅膬?nèi)存給釋放掉,比如:
這段程序運(yùn)行一定沒(méi)問(wèn)題,但如果在其后加上這樣一段代碼:
我們會(huì)發(fā)現(xiàn)出錯(cuò)了!這是因?yàn)?,p所指內(nèi)存被釋放,但是p存放的地址值仍然不變,即p成了“野指針”。盡管嘗試用if(p!=NULL)來(lái)判斷p的可用性,我們卻發(fā)現(xiàn)出錯(cuò)處理并沒(méi)有起作用。所以,良好的習(xí)慣是在free和delete后,都要對(duì)指針作置空處理,即p=NULL。有人會(huì)說(shuō)如果要這種情況出現(xiàn)在程序結(jié)束時(shí),一切指針也會(huì)消亡,動(dòng)態(tài)內(nèi)存也會(huì)作系統(tǒng)回收,所以P置空是多余的。但是如果有人將這段程序取出來(lái)用到其他地方會(huì)怎樣呢?結(jié)果不是我們想見到的。
四、算法設(shè)計(jì)概念的引入
程序=算法+數(shù)據(jù)結(jié)構(gòu)。這就提出我們?cè)谶M(jìn)行程序設(shè)計(jì)教學(xué)過(guò)程中,不僅要重視語(yǔ)法的講授,也要重視算法的講授,甚至是要將算法提到更為重要的地位。程序設(shè)計(jì)是要解決問(wèn)題,語(yǔ)言只不過(guò)是為解決問(wèn)題而使用的工具,真正解決問(wèn)題的是算法,難怪專家說(shuō)“算法是魂,程序是衣”。
如在C語(yǔ)言程序設(shè)計(jì)課程教學(xué)中,當(dāng)完成分支結(jié)構(gòu)程序、循環(huán)控制和數(shù)組,進(jìn)入內(nèi)容較多的算法設(shè)計(jì)教學(xué)后,我們將教學(xué)內(nèi)容分為以下五個(gè)方面。
(1)一般數(shù)據(jù)組織算法:查找、排序、字符串處理、求素?cái)?shù)、篩選、迭代、窮舉等;
(2)函數(shù)調(diào)用,函數(shù)嵌套歸、遞推及貪心算法等;
(3)指針?biāo)惴?,?dòng)態(tài)內(nèi)存分配,鏈表等;
(4)用矩形法、梯形法計(jì)算定積分、模擬算法的隨機(jī)抽樣、蒙特卡羅法等算法;
(5)文件數(shù)據(jù)處理。
在課堂上增加算法設(shè)計(jì)的分析和討論,強(qiáng)調(diào)算法設(shè)計(jì)的優(yōu)化和程序的優(yōu)化,是提高學(xué)生分析和解決實(shí)際問(wèn)題能力的有效方法。
五、開展研究性學(xué)習(xí)
在程序設(shè)計(jì)過(guò)程中,開展研究性學(xué)習(xí),是為了提高學(xué)生分析和解決實(shí)際問(wèn)題的能力,主要是通過(guò)對(duì)解決問(wèn)題的算法進(jìn)行研究而展開的。由于課時(shí)所限,并且學(xué)生沒(méi)有足夠的實(shí)踐經(jīng)驗(yàn),所以對(duì)算法問(wèn)題的研究也是初級(jí)的,主要是討論典型問(wèn)題的典型算法及其應(yīng)用。
1.通過(guò)研究性學(xué)習(xí),可以重構(gòu)知識(shí)體系,加深對(duì)算法的理解。
研究性學(xué)習(xí)是學(xué)生在教師的指導(dǎo)下,選定主題,然后搜集相關(guān)材料,對(duì)材料進(jìn)行歸納、加工處理、分析、總結(jié)得到相應(yīng)結(jié)論的學(xué)習(xí)活動(dòng)。在教學(xué)中,可以根據(jù)教學(xué)內(nèi)容,經(jīng)過(guò)反復(fù)研究,確定研究主題,并根據(jù)學(xué)生的自愿報(bào)名成立研究小組,如搜索算法研究小組等。然后各小組根據(jù)自己研究的算法,重新整理相應(yīng)的知識(shí),對(duì)知識(shí)進(jìn)行歸納、總結(jié)。通過(guò)對(duì)各種算法知識(shí)進(jìn)行整理、分類、小結(jié),加深學(xué)生對(duì)這些算法的理解。
2.通過(guò)研究性學(xué)習(xí),同學(xué)之間取長(zhǎng)補(bǔ)短,共同提高。
每個(gè)學(xué)生都有所長(zhǎng),也有所短,研究性學(xué)習(xí)一個(gè)重要特點(diǎn)就是:分工合作,共同討論,共同提高。我們可以根椐學(xué)生的特點(diǎn)、特長(zhǎng),對(duì)他們進(jìn)行分工,每位學(xué)生研究一種算法其中的一個(gè)問(wèn)題,然后整個(gè)小組一起討論,每位學(xué)生介紹自己的研究情況、研究成果,然后其他同學(xué)進(jìn)行補(bǔ)充,發(fā)表自己的見解,這樣每個(gè)學(xué)生都使自己的研究?jī)?nèi)容得到補(bǔ)充,同時(shí)也學(xué)習(xí)到了其他同學(xué)研究方面的知識(shí),可以取長(zhǎng)補(bǔ)短,共同提高。
3.通過(guò)研究性學(xué)習(xí),總結(jié)算法的應(yīng)用規(guī)律,提高程序設(shè)計(jì)能力。
在進(jìn)行研究性學(xué)習(xí)時(shí),除要求學(xué)生歸納、整理專題算法知識(shí)外,還要總結(jié)出算法的應(yīng)用規(guī)律、應(yīng)用算法解題的步驟和算法的框架。學(xué)生通過(guò)自己對(duì)算法應(yīng)用規(guī)律的總結(jié),對(duì)算法的應(yīng)用得到升華,進(jìn)一步提高算法的應(yīng)用能力和程序設(shè)計(jì)能力。
4.通過(guò)研究性學(xué)習(xí),提高分析問(wèn)題的能力、算法表達(dá)能力和歸納、綜合能力。
對(duì)算法的專題研究,不僅要對(duì)算法理論進(jìn)行總結(jié),算法應(yīng)用的研究也是很重要的一方面,通過(guò)算法的解題應(yīng)用,既提高了學(xué)生分析問(wèn)題的能力,也加深了學(xué)生對(duì)算法的理解,提高了學(xué)生的算法應(yīng)用能力。另外,我們?cè)谒惴ㄑ芯窟^(guò)程中,要求學(xué)生透徹理解算法內(nèi)容,用算法語(yǔ)言準(zhǔn)確描述算法,通過(guò)這種途徑進(jìn)一步加深學(xué)生對(duì)算法的理解,同時(shí)也提高了學(xué)生的算法表達(dá)能力和歸納、總結(jié)的能力。
結(jié)論
我們認(rèn)為在程序設(shè)計(jì)教學(xué)中,要改革舊的教學(xué)體系,需要用新的理念、新的內(nèi)容、新的方法組織教學(xué)。首先要用先進(jìn)的程序設(shè)計(jì)理論指導(dǎo)教學(xué),并加強(qiáng)編程算法、邏輯思維和編程方法的引導(dǎo)。其次,重視和鼓勵(lì)學(xué)生對(duì)具體問(wèn)題進(jìn)行分析和研究,勤于動(dòng)手和上機(jī)訓(xùn)練,養(yǎng)成良好的編程習(xí)慣。此外,對(duì)不同層次的學(xué)生可以進(jìn)行分階段教學(xué),前一階段講授基本的程序設(shè)計(jì)方法,除了講授程序設(shè)計(jì)語(yǔ)言的基本語(yǔ)法,還對(duì)學(xué)生進(jìn)行編程方法及程序設(shè)計(jì)風(fēng)格的引導(dǎo);后一階段主要講授程序設(shè)計(jì)的較高級(jí)的語(yǔ)法和功能,提高學(xué)生對(duì)算法的認(rèn)知和重視程序,并且在學(xué)生中開展研究性學(xué)習(xí),培養(yǎng)學(xué)生實(shí)際動(dòng)手能力。
參考文獻(xiàn):
[1]李云清等.程序設(shè)計(jì)創(chuàng)新能力的教學(xué)研究[A].全國(guó)計(jì)算機(jī)新科技與計(jì)算機(jī)繼續(xù)教育論文集2003.
[2]李海倫等.“程序設(shè)計(jì)”課程教學(xué)改革的研究與實(shí)踐[J].計(jì)算機(jī)教育, 2005.7.
[3]豐振.計(jì)算機(jī)程序設(shè)計(jì)教學(xué)方法研究[J]. 教學(xué)研究,2004.9.
[4]等.淺談程序設(shè)計(jì)語(yǔ)言課程教學(xué)方法[J].吉林大學(xué)學(xué)報(bào),2005.8第23卷.
關(guān)鍵詞:;SQL2000;JAVA課程
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)27-0070-02
Abstract: For the sake of convenience for teaching java and chatting between classmates and teacher, this paper designed and constructed website of Java Program Design. This website used and SQL2000 database, and it was totally divided into four modules: network examination center, on-line message, resources center, backstage management. Meanwhile, this website could release news and add the related chain connecting.
Key words: ;SQL2000; JAVA course
近年,Java面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言因其具有的跨平臺(tái)性、分布式及安全性等特點(diǎn)[1],在當(dāng)今網(wǎng)絡(luò)時(shí)代得到廣泛應(yīng)用和發(fā)展。作為一種有生產(chǎn)力的編程工具,學(xué)習(xí)《Java程序設(shè)計(jì)》課程有助于學(xué)生在掌握面向過(guò)程程序設(shè)計(jì)和可視化程序設(shè)計(jì)基礎(chǔ)上,能夠更深入地掌握面向?qū)ο缶幊碳夹g(shù),且更有利于開發(fā)網(wǎng)絡(luò)環(huán)境下的應(yīng)用程序。
目前師生之間Java課程的教與學(xué)多局限于課堂上面對(duì)面的方式,而課后教師與學(xué)生之間更深入的交流和探討,因缺少一定場(chǎng)地而受到限制,最終導(dǎo)致師生互動(dòng)的機(jī)會(huì)減少。針對(duì)此現(xiàn)狀,本文使用[2]技術(shù)和SQL2000數(shù)據(jù)庫(kù)[3]設(shè)計(jì)一個(gè)Java課程網(wǎng)上學(xué)習(xí)平臺(tái),以滿足在線學(xué)習(xí)及便于師生隨時(shí)隨地交流的目的。
1 需求分析
Java課程網(wǎng)站建設(shè)的目標(biāo)是使教學(xué)更加方便,方便學(xué)生自己學(xué)習(xí),提高學(xué)生自學(xué)能力,也節(jié)省學(xué)生、老師的時(shí)間。要求所設(shè)計(jì)系統(tǒng)操作方便、更新及時(shí)、易于維護(hù)管理。擁有動(dòng)態(tài)更改信息;網(wǎng)上答疑;課程教學(xué)等基本功能。學(xué)生進(jìn)入網(wǎng)站后可根據(jù)系統(tǒng)功能對(duì)該課程進(jìn)行信息瀏覽,查看課件,提出問(wèn)題及學(xué)習(xí)等;教師進(jìn)入網(wǎng)站后也可對(duì)課程的一些信息進(jìn)行瀏覽,對(duì)學(xué)生提出的問(wèn)題進(jìn)行回復(fù),而后臺(tái)教師需要進(jìn)入系統(tǒng)對(duì)網(wǎng)站進(jìn)行維護(hù),更新信息、修改信息或者刪除某些信息。
因此該系統(tǒng)需要滿足的需求為:具有良好的人機(jī)界面,以方便操作;學(xué)生查看教學(xué)信息,下載課件,網(wǎng)上發(fā)帖等;教師查看學(xué)生提出的問(wèn)題并進(jìn)行回答;教師,整理留言和教學(xué)資源等。
2 網(wǎng)站功能設(shè)計(jì)
按照需求分析的結(jié)果,網(wǎng)站總體結(jié)構(gòu)設(shè)計(jì)如圖1所示,角色上主要包括學(xué)生、教師和系統(tǒng)管理員;功能上主要包括網(wǎng)絡(luò)考試中心,在線留言,資源中心及后臺(tái)管理,同時(shí)還實(shí)現(xiàn)新聞和添加相關(guān)鏈接的功能。
3 網(wǎng)站主要功能分析
3.1用戶注冊(cè)及管理員登錄
用戶包括普通用戶和管理員,所有用戶先注冊(cè)然后登錄系統(tǒng),權(quán)限不同則登錄成功后相應(yīng)的界面不同。
3.2網(wǎng)站功能顯示
將網(wǎng)站的每個(gè)功能模塊顯示出來(lái),如圖2所示,包括:資源中心,考試中心,后臺(tái)管理,在線留言及使用幫助等。
3.3資源中心
資源中心主要功能包括查看與課程相關(guān)的文檔及任課教師等信息。
3.3.1電子文檔
圖3所示的主要功能是上傳和下載電子文檔。為便于學(xué)生課后復(fù)習(xí),教師可將課堂上教學(xué)用的Java課件等文檔進(jìn)行上傳供學(xué)生瀏覽。
3.3.2網(wǎng)站課程實(shí)踐
為加強(qiáng)學(xué)生動(dòng)手能力,從而將理論與實(shí)踐相結(jié)合,每個(gè)知識(shí)點(diǎn)都對(duì)應(yīng)有實(shí)踐環(huán)節(jié),每一實(shí)驗(yàn)都明確具體內(nèi)容及相關(guān)要求(圖4)。
3.4考試中心
圖5所示Java課程的網(wǎng)上考試閱卷,在時(shí)間和空間上都不必受傳統(tǒng)考試的限制,可提高考試和閱卷效率。
3.5后臺(tái)管理
管理員可以對(duì)科目、試題庫(kù)及的資源等信息進(jìn)行增加或修改等管理。
3.5.1 科目大類管理
如圖6所示,可以增加或刪除科目大類,同時(shí)給大類編號(hào)。
3.5.2 具體科目管理
學(xué)好Java,還應(yīng)該熟悉其課程體系,了解其所屬大類的與其相關(guān)的其他科目(圖7),從而明確該課程的重要性。
3.5.3試題庫(kù)管理
圖8所示為課程體系中各門課程的試題庫(kù)。
3.6在線留言
師生均可在線留言,但需要事先進(jìn)行注冊(cè)(圖9),然后通過(guò)登錄界面進(jìn)入留言板塊。
4 結(jié)束語(yǔ)
為便于學(xué)生在線學(xué)習(xí)及師生之間隨時(shí)隨地進(jìn)行Java課程教學(xué)的交流,本網(wǎng)站實(shí)現(xiàn)了Java教學(xué)資源管理與查看、試題庫(kù)管理與查看、在線留言及相關(guān)新聞等功能,有助于學(xué)生更方便更深入地掌握J(rèn)ava語(yǔ)言。
參考文獻(xiàn):
[1] 張白一, 崔尚森.面向?qū)ο蟪绦蛟O(shè)計(jì)―――Java[M] .西安: 西安電子科技大學(xué)出版社, 2013.
1汽車制動(dòng)系統(tǒng)發(fā)展?fàn)顩r
幾年來(lái)西方發(fā)達(dá)國(guó)家又興起了對(duì)車輛線控系統(tǒng)(X-BY-WIRE)的研究,線控(BRAKE-BY-WIRE)應(yīng)運(yùn)而生,由此展開了對(duì)電控機(jī)械制動(dòng)系統(tǒng)(ELECTROMECHANICALBRAKINGSYSTEM)的研究,簡(jiǎn)單來(lái)說(shuō)電控機(jī)械制動(dòng)系統(tǒng)就是把原來(lái)由液壓或者壓縮空氣驅(qū)動(dòng)的部分改為由電動(dòng)機(jī)來(lái)驅(qū)動(dòng),借以提高響應(yīng)速度、增加制動(dòng)效能等,同時(shí)也大大簡(jiǎn)化了結(jié)構(gòu)、降低了裝配和維護(hù)的難度。由于人們對(duì)制動(dòng)性能要求的不斷提高,傳統(tǒng)的液壓或者空氣制動(dòng)系統(tǒng)在加入了大量的電子控制系統(tǒng)如ABS、TCS、ESP等后,結(jié)構(gòu)和管路布置越發(fā)復(fù)雜,液壓(空氣)回路泄露的隱患也加大,同時(shí)裝配和維修的難度也隨之提高[1]。因此結(jié)構(gòu)相對(duì)簡(jiǎn)單、功能集成可靠的電子機(jī)械制動(dòng)系統(tǒng)越來(lái)越受到青睞,可以預(yù)見EMB將最終取代傳統(tǒng)的液壓(空氣)制動(dòng)器,成為未來(lái)車輛的發(fā)展方向。
2EMB系統(tǒng)的模型分析
2.1EMB系統(tǒng)工作原理
電子機(jī)械制動(dòng)系統(tǒng)工作原理為:當(dāng)汽車行駛時(shí)需要采取緊急剎車,駕駛者腳踏的力量信號(hào)傳到制動(dòng)踏板,該力量信號(hào)經(jīng)過(guò)EMB控制系統(tǒng)的三環(huán)調(diào)速系統(tǒng)調(diào)控后輸出電樞電壓直接作用于無(wú)刷直流力矩電機(jī)上,輸出的電機(jī)軸轉(zhuǎn)動(dòng)轉(zhuǎn)速信號(hào)傳遞給傳動(dòng)機(jī)構(gòu)進(jìn)行減速增矩,轉(zhuǎn)化成絲杠位移,再經(jīng)過(guò)制動(dòng)機(jī)構(gòu)作用轉(zhuǎn)化成制動(dòng)力,整個(gè)過(guò)程的時(shí)間極短,在0.1s作用[2]。
2.2EMB執(zhí)行系統(tǒng)
一個(gè)設(shè)計(jì)完整的EMB執(zhí)行系統(tǒng)包括無(wú)刷直流電機(jī)模塊(包括電機(jī)驅(qū)動(dòng)模塊)、傳動(dòng)模塊和制動(dòng)模塊。要完成EMB的動(dòng)力學(xué)仿真,首先要完成以上三個(gè)模塊的數(shù)學(xué)模型設(shè)計(jì)。EMB執(zhí)行系統(tǒng)結(jié)構(gòu)框圖如圖1所示。圖1中:Fd為制動(dòng)器的目標(biāo)夾緊力;AVI號(hào)為電機(jī)轉(zhuǎn)速控制信號(hào);DIR為電機(jī)正反轉(zhuǎn)控制信號(hào);Ua、Ub、Uc分別為電機(jī)定子每相繞組端電壓;Uh+、Uh-分別為霍爾傳感器供電高低電壓;n為電機(jī)軸轉(zhuǎn)速;ns為絲杠轉(zhuǎn)速;s為絲杠副中螺母的平動(dòng)位移;F為制動(dòng)器的夾緊力;Mb為制動(dòng)器的制動(dòng)力矩;Jc為傳動(dòng)機(jī)構(gòu)的轉(zhuǎn)動(dòng)慣量;TL為傳動(dòng)機(jī)構(gòu)的摩擦阻力矩;Sa、Sb、Sc分別為三個(gè)霍爾傳感器的信號(hào);Ia、Ib、Ic、分別為電機(jī)定子每相繞組電流[3]。
2.3EMB控制系統(tǒng)
電機(jī)的控制采用三環(huán)(電流環(huán)、轉(zhuǎn)速環(huán)和壓力環(huán))反饋控制,輸入為目標(biāo)夾緊力,輸出為電機(jī)電樞電壓。EMB電機(jī)的控制系統(tǒng)結(jié)構(gòu)框圖如圖2所示。電機(jī)的三環(huán)調(diào)速系統(tǒng)設(shè)計(jì)就是對(duì)控制器設(shè)計(jì),該三環(huán)調(diào)速系統(tǒng)包括夾緊力控制器、轉(zhuǎn)速控制器和電流控制器[4]。其設(shè)計(jì)方法是:從內(nèi)環(huán)開始,每次向外擴(kuò)展一環(huán),首先設(shè)計(jì)電流控制器,再將電流環(huán)當(dāng)作轉(zhuǎn)速調(diào)節(jié)系統(tǒng)中的一個(gè)部分設(shè)計(jì)轉(zhuǎn)速控制器,最后把轉(zhuǎn)速控制環(huán)當(dāng)作夾緊力調(diào)節(jié)環(huán)中的一個(gè)部分設(shè)計(jì)夾緊力控制器。上述的夾緊力控制器、轉(zhuǎn)速控制器、電流控制器均是PI控制器。電流控制器的輸入是目標(biāo)電流與實(shí)際電流的差值,輸出為電機(jī)的控制電壓;轉(zhuǎn)速控制器的輸入是目標(biāo)轉(zhuǎn)速與實(shí)際轉(zhuǎn)速的差值,輸出為電機(jī)電流的目標(biāo)值;夾緊力控制器的輸入是目標(biāo)制動(dòng)夾緊力與反饋制動(dòng)夾緊力的差值,輸出為電機(jī)轉(zhuǎn)速的目標(biāo)值。電機(jī)電流、電機(jī)轉(zhuǎn)速和夾緊力為需測(cè)量的量。在本控制系統(tǒng)中,通過(guò)無(wú)刷直流電機(jī)驅(qū)動(dòng)器上安裝的電流傳感器測(cè)量電機(jī)實(shí)時(shí)電流;通過(guò)光電編碼器測(cè)量電機(jī)實(shí)時(shí)轉(zhuǎn)速;通過(guò)壓力傳感器測(cè)量制動(dòng)夾緊力[5]。
3EMB系統(tǒng)的仿真模型
(1)無(wú)刷直流電流控制模塊,如圖3所示。
(2)電流-轉(zhuǎn)速雙閉環(huán)控制模塊,如圖4所示。
(3)無(wú)刷直流電機(jī)三環(huán)控制模塊,如圖5所示。
4仿真結(jié)果
4.1電流環(huán)仿真
當(dāng)電動(dòng)機(jī)處于空載時(shí),電流值比較小,所以應(yīng)當(dāng)在電機(jī)堵轉(zhuǎn)的情況下對(duì)電流環(huán)進(jìn)行調(diào)節(jié)[6]。電流環(huán)的試驗(yàn)結(jié)果如圖6所示??梢姡瑢?shí)際電流在初始階段有較大的超調(diào),但是在后期可以很好地跟蹤目標(biāo)電流。
4.2轉(zhuǎn)速環(huán)試驗(yàn)
轉(zhuǎn)速環(huán)在試驗(yàn)時(shí),應(yīng)處于空載狀態(tài)。轉(zhuǎn)速環(huán)的試驗(yàn)結(jié)果如圖7所示??梢?,在啟動(dòng)過(guò)程中電流能維持較大的值,從而使電動(dòng)機(jī)迅速達(dá)到目標(biāo)轉(zhuǎn)速。由于電動(dòng)機(jī)在旋轉(zhuǎn)過(guò)程中不斷換相會(huì)引起電流的抖動(dòng),所以電動(dòng)機(jī)轉(zhuǎn)速也一直在目標(biāo)值附近小幅抖動(dòng)。
4.3壓力環(huán)試驗(yàn)
壓力環(huán)的試驗(yàn)結(jié)果如圖8所示。可見,兩種工況下消除制動(dòng)間隙的時(shí)間均小于0.1s,且制動(dòng)壓力的超調(diào)小于5%,同時(shí)我們可以發(fā)現(xiàn)所設(shè)計(jì)的EMB執(zhí)行器能輸出足夠大的制動(dòng)壓力,而且響應(yīng)迅速。
級(jí)別:部級(jí)期刊
榮譽(yù):中國(guó)期刊全文數(shù)據(jù)庫(kù)(CJFD)
級(jí)別:部級(jí)期刊
榮譽(yù):中國(guó)期刊全文數(shù)據(jù)庫(kù)(CJFD)
級(jí)別:省級(jí)期刊
榮譽(yù):中國(guó)期刊全文數(shù)據(jù)庫(kù)(CJFD)
級(jí)別:省級(jí)期刊
榮譽(yù):中國(guó)期刊全文數(shù)據(jù)庫(kù)(CJFD)
級(jí)別:北大期刊
榮譽(yù):中國(guó)優(yōu)秀期刊遴選數(shù)據(jù)庫(kù)