前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的程序設計主題范文,僅供參考,歡迎閱讀并收藏。
(電子科技大學 計算機科學與工程學院,四川 成都 611731)
摘要:針對程序設計課程存在的理論與編程實踐學時安排矛盾以及實驗教學中師生配比不夠、實驗輔導不足等問題,提出加強預習干預引導、實戰(zhàn)演練、課堂教師輔導和實驗指導以及增加學生分組互助學習、學生討論、成果演示等手段,結(jié)合目前國內(nèi)外取得良好教學效果的翻轉(zhuǎn)課堂教學法、微課視頻資源實現(xiàn)翻轉(zhuǎn)教學,并擬在小班試點改進后推廣。
關鍵詞 :程序設計課程;翻轉(zhuǎn)課堂;微課視頻;小班教學
第一作者簡介:戴波,女,講師,研究方向為并行算法與圖像處理,daibo@uestc.edu.cn。
0 引言
為了全面貫徹落實 《教育部關于全面提高高等教育質(zhì)量的若干意見》 (教高[2012]4 號)精神,不斷深化本科人才培養(yǎng)模式改革,構(gòu)建研究型大學本科人才培養(yǎng)新體系,培養(yǎng)高素質(zhì)拔尖創(chuàng)新人才,《電子科技大學本科人才培養(yǎng)方案修訂指導意見》以通識課程、學科基礎課程、學科拓展課程、專業(yè)核心課程、實踐類核心課程、個性化課程6個課程模塊的構(gòu)建為核心,推動課程的整合和優(yōu)化,搭建個性化、多元化的人才培養(yǎng)平臺,促進學生全面、個性發(fā)展,其理工類課程模塊與學時要求如圖1所示。
基于學校的培養(yǎng)理念,計算機科學與工程學院將培養(yǎng)目標定位在培養(yǎng)掌握計算機基本理論和基本知識,接受從事研究與應用計算機的基本訓練,具有研究和開發(fā)計算機軟、硬件基本能力的高級人才。程序設計課程是計算機專業(yè)的核心基礎,涉及程序設計語言(C語言)、數(shù)據(jù)結(jié)構(gòu)、算法設計與分析、面向?qū)ο笳Z言(C++/C#/Java)、設計模式和軟件工程等多門課程。我們分析當前教學中存在的如課程分割零碎、課程之間連貫性差、不同課程內(nèi)容重復較多、對后續(xù)課程支撐力度不大、教學手段落后與師資隊伍建設不足等問題,在課程、實驗和團隊建設等方面做了一系列研究探索,如采用遞增式的項目驅(qū)動教學分級培訓學生程序設計技能,組建程序設計基礎團隊,重新設計與整合關聯(lián)課程,采用自動化批改程序軟件,建立題庫與項目庫等方案,并在小班連續(xù)2年進行試點,取得良好效果,2014年開始在全年級推廣[1]。
1 推廣后的程序設計課程現(xiàn)狀與調(diào)查分析
1.1 推廣后的程序設計課程現(xiàn)狀
小班試點在舊有培養(yǎng)方案的基礎上進行,C語言和C++課程內(nèi)容有整合,但仍然與其他班級一樣分開教學和參加統(tǒng)一的期末考試,便于與其他班級對比教學效果。2014年,我們基于新的培養(yǎng)方案在全年級進行合并后的程序設計語言教學,同時面臨如下現(xiàn)狀。
(1)內(nèi)容多,時間緊,以前的兩門課程合并成為一門課程之后,課時數(shù)量是以前一門課程的課時數(shù)量,而不是兩門課程課時數(shù)量的總和。
(2)導論課沒有打下基礎,如對于計算機硬件及工作流程的初步認識、內(nèi)存管理方式的理解、鼠標鍵盤的熟悉、操作系統(tǒng)和辦公軟件的熟悉與使用等。
(3)課程合并后,兩門課程的教師總數(shù)增加,班級人數(shù)由120人以上/班減少為70人/班,達不到學校120人/班配置助教的條件,沒有助教,作業(yè)批改量大,上機輔導忙不過來,上機考試監(jiān)考教師人數(shù)不夠。實踐證明,每次實驗課教師能夠輔導到的學生人數(shù)不超過10人。
1.2 推廣后的程序設計課程調(diào)查
課程結(jié)束后,7個班的7名教師和480名學生分別發(fā)放調(diào)查問卷,其中回收的有效反饋調(diào)查表為教師7份,學生186份。
1) 教師調(diào)查反饋。
(1)合并后教學時間緊,學生掌握所有內(nèi)容有難度,存在部分學生學習積極性不高,如上課玩手機和到課率不高等情況。
(2)每班上機相關練習題、實驗、綜合實驗均超過20題,有的班級達到50道題以上。上機題目兼具應用性和趣味性。
(3)導師輔導的上機訓練題量大。
(4)基礎類型的實驗和練習題完成情況良好,綜合性的實驗和練習題只有部分學生能夠完成。
2)學生調(diào)查反饋。
(1)有編程基礎的學生在高中階段學習過的編程語言種類有8種,66%的學生學習過C/C++,普遍表現(xiàn)出對目前教學狀況非常滿意,在教師指導下比高中學習得更深入,能夠?qū)W習到很多原理性的東西;同時也表示希望能夠給予更多的課后學習指導,提供工程訓練機會。有編程基礎的部分學生仍然感覺上課速度快。
(2)沒有編程基礎的學生認為目前教學難度合適的達73%, 較難/難的達22%,簡單的達5%;普遍希望教師講解得更細致,課堂上能夠演示編程過程,再多增加上機輔導、上機作業(yè)和練習題,能夠有項目實踐機會。
1.3 推廣后的期末考試情況與教師試卷分析總結(jié)
推廣后的期末考試分數(shù)對比見表1。
表1的平均比例表明不及格率占比最高,接近1/3,90分以上占比最低,不到10%;同時表明不同班級差別比較大,教師的教學經(jīng)驗對于學習效果很重要,如教師1有多年C語言和C++語言教學經(jīng)驗,其余的教師只從事C語言或者C++語言教學,因此雖然使用同樣的教材,但是由于教學經(jīng)驗、教學手段、學生不同,使得學生掌握情況不同。教師6強調(diào)大學階段的學習自覺性,對學生管束比較少,教學方式比較靈活,最終考試效果最差,不及格率達到44.8%,說明學生學習自覺性差,教師的恰當約束對于當前環(huán)境下的學生學習非常有必要。
7位教師總結(jié)學生的失分點基本一致,主要集中在填空題的細節(jié)問題、讀程序、寫程序和判斷題,恰好是編程訓練沒有過關的體現(xiàn),這也和各位教師根據(jù)考試情況的反思總結(jié)一致。教師都反映需要加強編程練習、上機輔導、課上程序演示、程序設計思維訓練,但又都覺得編程練習已經(jīng)很多,上機量也很大,但訓練效果卻不明顯。以冒泡排序為例,教師上課講,中期考核,期末復習,但是該內(nèi)容在期末考試中仍然是大的失分點且全年級都呈現(xiàn)這樣的現(xiàn)象,這說明在學習過程中有的學生不認真做,有的學生做了但沒有真正理解和掌握算法原理、編程基礎、調(diào)試技術。
教師反思其中一個大的矛盾是理論教學與實踐教學的學時需求矛盾:①不講或者簡單講解基礎理論及細節(jié),學生只能依葫蘆畫瓢而無法舉一反三,理論基礎不穩(wěn)固則技術不深入,有程序設計基礎的學生則不能進行深入學習;②詳細深入講解需要花費大量時間;③無編程基礎的學生對理論學習普遍不感興趣且由于缺乏經(jīng)驗,對教師講解的理論理解不夠深入,教師在課堂上沒有時間進行反復講解,而學生不得不在應用過程中根據(jù)需要反復學習這些基礎知識。
為解決這些矛盾,各個教師根據(jù)教學經(jīng)驗各有取舍,其中教師5與教師7是以實踐為主與理論講授為主比較突出的2個代表。教師5采用以上機實驗為主、理論教授為輔的教學方式,設計上機相關題目超過50題且上機演示編程過程,編程輔導時間多,同時另外找了優(yōu)秀學生一起對學生進行上機輔導,但期末筆試90分以上的占比9.2%,不及格率為27.7%。教師7以理論講授為主,對于上機實驗輔導嚴格按照培養(yǎng)方案的16學時,期末筆試考試成績表明學生上機實驗過少,理論掌握并不扎實,90分以上的占比為0.00%,不及格率仍然達到23.1%。以上情況說明“單腳大跨步”的教學方式效果欠佳,但兩者結(jié)合教學又存在學時數(shù)不夠的現(xiàn)實問題,此外還存在如下問題:學生認為最難的不是理論學習,而是將理論應用于實際;不少學生需要督促,自覺性差,而教師只有一人,怎么辦?
2 改進措施
針對程序設計課程在全年級推廣后出現(xiàn)的問題,程序設計教學團隊教師積極思考、討論并試圖尋找能夠解決現(xiàn)存問題的教學方法。戴爾的經(jīng)驗之塔[2]說明單純的課堂教學平均只能夠達到20%的效果,而具有主動學習的參與、討論、演講等教學方法可以達到50%~90%的教學效果。既要在有限的時間內(nèi)傳授基礎理論,深入講解原理和運行機制且可以在實踐過程中能夠隨時查閱學習基礎理論,又要在教師人數(shù)有限的條件下給予足夠的上機實驗演示和輔導,教師就需要將一些以記憶和理解為主的知識點放到課前讓學生預習,課堂上以項目驅(qū)動的方式引導學生加強編程練習并給予輔導。此外,對于一些需要深入分析的問題則可在學生預習的情況下,在課堂上以分組或者集體討論的方式解決,但存在部分學生不預習而等待教師上課講解或者學生預習目的性不強、自學能力不夠等問題。教學團隊教師經(jīng)過調(diào)研發(fā)現(xiàn),最近幾年在國內(nèi)外逐步發(fā)展的翻轉(zhuǎn)課堂教學[3]恰好滿足有教學理論研究支撐和國內(nèi)外優(yōu)秀教學經(jīng)驗借鑒等條件,具體方案如下。
(1)將理論知識的講解以微課的形式錄制成視頻,達到學生在教師引導條件下自學的效果,同時在學生完成預習作業(yè)后,檢驗其學習效果以便于學生根據(jù)自身情況決定是否還需要反復看視頻鞏固學習;教師也可以通過學生完成預習作業(yè)的情況制訂課堂活動安排,協(xié)助學生更好地掌握知識。
(2)教師將分析問題、設計思路、流程圖繪制、編程、編譯鏈接、調(diào)試等演示案例的完整過程錄制成視頻,讓學生可以反復觀看臨摹,解決初期沒有教師在身邊編程入門難的問題,達到課堂演示編程的效果,避免課堂上編程占用時間過多、編程代碼文字過小后排學生看不清楚等問題。
(3)在課堂上指導學生進行編程練習,解決學生視頻學習過程中的疑問、討論解決實際項目問題的方法及方案的選擇。
(4)鼓勵優(yōu)秀學生幫助其他同學,對于幫助其他同學的學生給予平時成績加分,解決缺乏編程輔導的問題。
(5)在現(xiàn)有培養(yǎng)方案條件下擬用部分班級試點進行翻轉(zhuǎn)教學,部分班級不采用,然后進行效果對比和進一步分析與改進,使其更適合當前的本科教學。
3 結(jié)語
基于“全面發(fā)展的創(chuàng)新教育”人才培養(yǎng)理念培養(yǎng)高素質(zhì)拔尖創(chuàng)新人才,除了構(gòu)建合理的人才培養(yǎng)體系外,還需改進對學生培養(yǎng)更直觀有效的課程教學。翻轉(zhuǎn)課堂教學以實踐理論“戴爾的經(jīng)驗之塔”和布魯姆認知教育目標分類模型理論[4]為基礎,強調(diào)學生在教師的指導下學習,學生是教育的主體,教師的教是為了不教,自主學習具有無可替代的價值[5]。翻轉(zhuǎn)課堂教學法以學生為主體進行研究,能夠在有限的教學時間內(nèi)達到傳授知識、教授技能、培養(yǎng)自學能力的目的,可操作性強,是解決現(xiàn)有程序設計課程改革問題的有效方法,但效果和存在的問題還有待多次試點改進及全面推廣后具體分析及解決。
參考文獻:
[1] 戴波, 周世杰, 曹晟, 等.“程序設計”課程教學模式的探索[J]. 實驗科學與技術, 2012(6): 309-311.
[2] 焦麗珍. 神奇的“經(jīng)驗之塔”:“視聽教學法之理論”[J]. 現(xiàn)代教育技術, 2012, 22(6): 126.
[3] 愛課程網(wǎng). 翻轉(zhuǎn)課堂教學法[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雖然是開放式的標準,但是只能在具有UNIX操作系統(tǒng)的各種昂貴的工作站之間通用;盡管工作站上的OpenGL性能優(yōu)越、編程方便、生成圖形精真,但是只有少數(shù)人能體會其中樂趣,而令大多數(shù)PC機用戶望塵莫及。隨著計算機技術的發(fā)展,工作站與PC機的性能日趨接近。Microsoft公司首先將OpenGL圖形庫鏈接到Windows NT中,目前又將OpenGL動態(tài)庫掛到最新Windows 95上,這樣,廣大PC機用戶就可充分享受OpenGL的樂趣了。更令人高興的是,目前國內(nèi)外出現(xiàn)了專門對OpenGL進行硬件加速的三維圖形加速卡。這樣,普通用戶只
要擁有一臺Pentium 90以上、16MB RAM、520MB以上硬盤容量的PC機以及一臺43cm以上的大屏幕監(jiān)視器和一塊OpenGL三維圖形加速卡組成的系統(tǒng),就能與圖形工作站相媲美,但價格卻便宜數(shù)十倍。
本文作者一直從事計算機圖形應用開發(fā)工作。原來是在SGI工作站上利用OpenGL開發(fā)圖形程序,后來又首先在國內(nèi)第一塊三維圖形加速卡AGC-3D上基于Windows NT的Visual C++2.0環(huán)境下繼續(xù)進行開發(fā)。在開發(fā)過程中,同一OpenGL程序幾乎不用修改就能在兩個平臺間來回移植,效果甚好。
一、OpenGL特點及功能
OpenGL是一個開放的三維圖形軟件包,它獨立于窗口系統(tǒng)和操作系統(tǒng),能十分方便地在各平臺間移植。
OpenGL具有七大功能。
(1)建模 OpenGL圖形庫除了提供基本的點、線、多邊形的繪制函數(shù)外,還提供了復雜的三維物體(如球、錐、多面體、茶壺等)以及復雜曲線和曲面(如Bezier、Nurbs等曲線或曲面)繪制函數(shù)。
(2)變換 OpenGL圖形庫的變換包括基本變換和投影變換。基本變換有平移、旋轉(zhuǎn)、變比和鏡像四種變換,投影變換有平行投影(又稱正射投影)和透視投影兩種變換。
(3)顏色模式設置 OpenGL顏色模式有兩種,即RGBA模式和顏色索引(Color Index)。
(4)光照和材質(zhì)設置 OpenGL光有輻射光(Emitted Light)、環(huán)境光(AmbientLight)、漫反射光(Diffuse Light)和鏡面光(Specular Light)。材質(zhì)是用光反射率來表示。場景(Scene)中物體最終反映到人眼的顏色是光的紅綠藍分量與材質(zhì)紅綠藍分量的反射率相乘后形成的顏色。
(5)紋理映射(Texure Mapping) 利用OpenGL紋理映射功能可以十分逼真地表達物體表面細節(jié)。
(6)位圖顯示和圖像增強 圖像功能除了基本的拷貝和像素讀寫外,還提供了融合(Blending)、反走樣(Antialiasing)和霧(fog)的特殊圖像效果處理。
(7)雙緩存(Double Buffering)動畫 雙緩存即前臺緩存和后臺緩存,簡而言之,后臺緩存計算場景、生成畫面,前臺緩存顯示后臺緩存已畫好的畫面。
此外,利用OpenGL還能實現(xiàn)深度暗示(Depth Cue)、運動模糊(Motion Blur)等特殊效果。
二、OpenGL for Windows NT圖形庫
OpenGL圖形庫一共有100多個函數(shù)。其中核心函數(shù)有115個,它們是最基本的函數(shù),其前綴是gl;OpenGL實用庫(OpenGL utility library,GLU)的函數(shù)功能更高一些,如繪制復雜的曲線曲面、高級坐標變換、多邊形分割等,共有43個,前綴為glu; OpenGL輔助庫(OpenGL auxiliary library,GLAUX)的函數(shù)是一些特殊的函數(shù),包括簡單的窗口管理、輸入事件處理、某些復雜三維物體繪制等函數(shù),共有31個,前綴為aux。
此外,還有六個WGL函數(shù)非常重要,專用于OpenGL和Windows NT窗口系統(tǒng)的連接,其前綴為wgl,主要用于創(chuàng)建和選擇圖形操作描述表(rendering contexts)以及在窗口內(nèi)任一位置顯示字符位圖。這些功能是Windows NT對OpenGL的唯一補充,見表1所示。
表1 管理圖形操作描述表的WGL函數(shù)
另外,還有五個Win32函數(shù)用來處理像素格式(pixel formats)和雙緩存。由于它們是對Win32系統(tǒng)的擴展,因此不能應用在其他OpenGL平臺上,見表2所示。
表2 管理像素格式Win32函數(shù)
三、OpenGL for Windows NT程序設計
OpenGL for Windows NT的程序設計與OpenGL for UNIX的程序設計有一點小區(qū)別,關鍵就在于如何將OpenGL與不同操作系統(tǒng)下的窗口系統(tǒng)連接起來。如果調(diào)用OpenGL輔助庫窗口管理函數(shù),則不用考慮這些問題。下面將主要介紹在Windows NT下OpenGL的程序設計關鍵。
1.圖形操作描述表
在Windows NT下窗口程序必須首先處理設備描述表(Device Contexts,DC),DC包含許多如何在窗口上顯示圖形的信息,即指定畫筆和刷子的顏色,設置繪圖模式、調(diào)色板、映射模式以及其他圖形屬性。同樣,OpenGL for Windows NT的程序也必須使用DC,這與其他Windows程序類似。但是,OpenGL for Windows NT必須處理特殊的DC圖形操作描述表,這是DC中專為OpenGL使用的一種。一個OpenGL應用圖形操作描述表內(nèi)有OpenGL與Windows NT窗口系統(tǒng)相關的各種信息。一個OpenGL應用首先必須創(chuàng)建一個圖形操作描述表,然后再啟動它,最后在所定義的窗口內(nèi)按常規(guī)方式調(diào)用OpenGL函數(shù)繪制圖形。
一個圖形操作描述表不同于其他DC,它們調(diào)用每個GDI函數(shù)都需要一個句柄,而圖形操作描述表方式下只需一個句柄就可任意調(diào)用OpenGL函數(shù)。也就是說,只要當前啟用了某個圖形操作描述表,那么在未刪除圖形操作描述表之前可以調(diào)用任何OpenGL函數(shù),進行各種操作。
2.像素格式
在創(chuàng)建一個圖形操作描述表之前,首先必須設置像素格式。像素格式含有設備繪圖界面的屬性,這些屬性包括繪圖界面是用RGBA模式還是顏色表模式,像系緩存是用單緩存還是雙緩存,以及顏色位數(shù)、深度緩存和模板緩存所用的位數(shù),還有其他一些屬性信息。
(1)像素格式結(jié)構(gòu)
每個OpenGL顯示設備都支持一種指定的像素格式號。一般用一個名為PIXELFORMATDESCRIPTOR的結(jié)構(gòu)來表示某個特殊的像素格式,這個結(jié)構(gòu)包含26個屬性信息。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中每個變量值的具體含義和設置可以參
考有關資料,下面舉出一個PIXELFORMATDESCRIPTOR初始化例子來簡要
說明相關變量的意義。定義PIXELFORMATDESCRIPTOR結(jié)構(gòu)的pfd如下:
PIXELFORMATDESCRIPTOR pfd=
{
sizeof(PIXELFORMATDESCRIPTOR),//結(jié)構(gòu)尺寸
l, //結(jié)構(gòu)版本
PFD-DRAW-TO-WINDOWS|PFD-SUPPORT-OPENGL,//特性標志
PFD-TYPE-RGBA,//RGBA模式
24,//24位顏色
0,0,0,0,0,0,//不涉及這些屬性
0,0,0,0,0,0,0,//沒有alpha緩存和累積緩存
32,//32位深度緩存
0,0,//沒有模板緩存和輔助緩存
PFD-MAIN-PLANE,//主層類型
0,//保留結(jié)構(gòu)數(shù)
0,0,0,//不支持結(jié)構(gòu)數(shù)
};
在這個結(jié)構(gòu)里,前兩個變量的含義十分明顯。第三個變量dwFlags的值是PFD-DRAW-TO-WINDOWS|PFD-SUPPORT-OPENGL,表明應用程序使用OpenGL函數(shù)來繪制窗口,第四個表明當前采用RGBA顏色模式,第五個采用24位真彩色,即1.67千萬種顏色,如果是256色系統(tǒng)則自動實現(xiàn)顏色抖動;因為沒有使用alpha緩存和累積緩存,所以從變量cAlphaBits到cAccumAlphaBits都設置為0;深度緩存設置為32位,這個緩存能解決三維場景的消隱問題;變量cAuxBuffers設置為0,在Windows NT下不支持輔助緩存;Windows NT下針對OpenGL變量ilayerType只能設置為PFD-MAIN-PLANE,但其他平臺也許支持PFD-OVERLAY-PLANE或PFD-UNDERLA
Y-PLANE;接下來bReserved變量只能設為0,而最后三個變量Windows NT都不支持,故全設置成0。
(3)設置像素格式
當初始化PIXELFORMATDESCRIPTOR結(jié)構(gòu)后,就要設置像素格式。下面幾段從VC++ 2.0的MFC程序中摘出的代碼就是設置像素格式的方式。代碼如下:
CClientDC clientDC(this);
int pixelFormat=ChoosePixelFormat(clientDC.m-hDC,&pfd);
BOOL result=SetPixelFormat(clientDC.m-hDC,pixelFormat,&p
fd);
第一行語句說明得到一個應用窗口客戶區(qū)的設置描述表。
第二行調(diào)用ChoosePixelFormat()選擇一個像素格式,并將像素格式索引號返回給pixelFormat變量;函數(shù)中第一個參數(shù)是選擇像素格式的設置描述表的句柄,第二個參數(shù)是PIXELFORMATDESCRIPTOR結(jié)構(gòu)的地址。如果調(diào)用失敗則返回0;否則返回像素格式索引號。
第三行調(diào)用SetPixelFormat()設置像素格式,三個參數(shù)分別是設備描述表的句柄、像素格式索引號和PIXELFORMATDESCRIPTOR結(jié)構(gòu)的地址。如果調(diào)用成功則返回TURE;否則返回FALSE。
3.創(chuàng)建圖形操作描述表
正如前所述,必須創(chuàng)建圖形操作描述表并啟用它后,才能調(diào)用OpenGL函數(shù)在窗口內(nèi)進行各種圖形操作。一般說來,利用MFC中增補的管理圖形操作描述表方法來編程比較方便。下面舉一例:
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);
}
在程序中,響應WM-CREATE消息的函數(shù)OnCreate()僅僅只創(chuàng)建一個臨時的DC,當函數(shù)返回時,它自動刪除。因此,在這里不可能啟用圖形操作描述表。當應用程序的窗口內(nèi)容得到更新后,MFC就調(diào)用OnDraw()函數(shù),在此啟用圖形操作描述表wglMakeCurrent()有效。然后,再調(diào)用自己用OpenGL寫的繪圖函數(shù)DrawMyOpenGL(),則程序就可進行任意的OpenGL圖形操作了。當繪圖結(jié)束后,再調(diào)用一次wglMakeCurrent(),但第二個參數(shù)設為NULL,意思是啟用圖形操作描述表無效,關閉圖形操作描述表。最后,當應用程序結(jié)束時,MFC就調(diào)用OnDestroy()函數(shù)來響應
關鍵詞:循環(huán)程序;循環(huán)控制;流程圖;算法;程序語句;VF QBASIC
中圖分類號:TP311文獻標識碼:A文章編號: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)化程序設計的三種基本結(jié)構(gòu),所以在高級語言程序設計課程中,掌握這三種結(jié)構(gòu)是學好程序設計的基礎。而循環(huán)結(jié)構(gòu)是這三者中最復雜的一種結(jié)構(gòu),幾乎所有的程序都離不開循環(huán)結(jié)構(gòu),但是對于那些沒有經(jīng)驗的初學者來說,難度卻不小。特別是遇到更加復雜的多重循環(huán)程序,以及分支程序嵌套在一起就更加難以理解。因此這也是計算機等級考試高級語言程序設計的一大難點。
1 循環(huán)程序的基本原理
程序是能夠完成一定任務的命令的有序集合。存放程序的文件稱為程序文件。例如:我們要讓計算機屏幕顯示一句話:“I like computer!”。以QBASIC高級語言為例,編寫相應的程序語句如下:
PRINT “I like computer!”
然后執(zhí)行它,就能得到相應的屏幕顯示。然而在現(xiàn)實生活中往往會遇到一些按規(guī)律重復執(zhí)行的問題,例如:要在計算機屏幕上顯示100行:“I like computer!”,采用循環(huán)結(jié)構(gòu)設計將使程序簡練,減少程序的行數(shù),從而節(jié)省運行時占用的內(nèi)存,因此引入并運用了循環(huán)程序設計。通過相應的循環(huán)程序設計語句讓PRINT “I like computer!”循環(huán)執(zhí)行100次就行了,編寫程序語句如下:
10 FOR I=1 TO 100 SETP 1
20 PRINT “I like computer!”
30 NEXT I
程序中采用了循環(huán)語句格式:FOR= TO STEP
NEXT
功能:這個語句指定循環(huán)變量取一系列數(shù)值,并且對循環(huán)變量的每一個值把循環(huán)體執(zhí)行一次。初值表達式、終值表達式和步長值表達式都是算術表達式。步長值可以是正數(shù)(叫做遞增循環(huán)),也可以是負數(shù)(叫做遞減循環(huán))。
結(jié)合圖1分析,該循環(huán)程序的控制過程是這樣的,令I的取值范圍為1到100,先將變量I賦值為1(即I=1),I的值屬于1到100的取值范圍(即滿足循環(huán)條件),執(zhí)行PRINT “I like computer!”一次;然后I的值按步長數(shù)1依次遞增,從而反復執(zhí)行PRINT “I like computer!”語句100次。
從分析不難發(fā)現(xiàn)循環(huán)程序執(zhí)行的核心問題就是判斷循環(huán)條件,即根據(jù)對循環(huán)條件的判斷來確定是否進入循環(huán)體以及執(zhí)行循環(huán)體語句的次數(shù)。各種高級語言程序設計的基本原理都相同,即當所給定的循環(huán)條件為真時,就反復執(zhí)行其循環(huán)體(命令組);當條件為假時,則終止其循環(huán)體,而去執(zhí)行其后繼命令。
2 如何學習循環(huán)程序設計
2.1 循環(huán)程序語句
各種高級語言都有相應的類似的循環(huán)程序語句。例如前面介紹的QBASIC中的:
FOR= TO STEP
NEXT
等循環(huán)語句。
又如VF中的:
DO WHILE
[命令組]
ENDDO
等循環(huán)語句,初學者在學習時首先要搞清楚這些循環(huán)語句的含義、特點和用法。例如VF中與DO WHILE循環(huán)語句配對的是ENDDO;與FOR循環(huán)語句配對的是ENDFOR。不能混淆使用,也不能將忘記書寫。
一般每種語言都有多種循環(huán)語句,要對它們進行比較。在一些具體運用中采用恰當?shù)难h(huán)語句可能會使循環(huán)程序更加簡潔明了。
2.2 流程圖
學習循環(huán)程序設計首先要學會看流程圖(亦稱程序框圖)。就是用一些簡單的圖形符號和文字說明,直觀地描述程序的處理步驟。程序流程圖不僅有助于程序設計,而且也為閱讀、分析程序帶來方便。
2.3 算法
在具體的循環(huán)程序設計中遇到的問題往往比較復雜,因此在設計前應該認真分析,要設定哪些變量,寫出哪些計算公式,擬出解決問題的思路。
例:假定要求從鍵盤上依次輸入三個數(shù),求這三個數(shù)之和。
編寫算法:第一步:存和的內(nèi)存變量S清0。第二步:反復執(zhí)行下列操作3次,輸入一個數(shù)并存入X,計算S=S+X。第三步:輸出S。第四步:結(jié)束。
2.4 編寫語句
學習編寫循環(huán)程序之前應該多閱讀一些相關的典型的程序語句,從易到難循序漸進。編寫語句時應該充分的結(jié)合流程圖來展開,要根據(jù)擬定的算法來設計循環(huán)條件。
3 循環(huán)程序的應用
以VF程序設計為例,假定要求從鍵盤輸入一個郵政編碼,在“考生檔案”庫文件中查找。一個也查不到,則顯示“無此郵政編碼”。否則,每查到一個,就顯示該考生的姓名與工作單位。直到全部查完為止。
過程分析:① 鍵盤輸入待查郵編并存入內(nèi)存變量YZBM;② 打開庫文件查詢郵編;③ 用EOF()函數(shù)進行循環(huán)控制,即通過查找后是否到達文件尾作為條件來進行循環(huán)控制;④ 如EOF()為真則退出循環(huán),并顯示“無此郵編”;⑤ 如EOF()假則循環(huán)顯示該考生的姓名、工作單位,然后繼續(xù)查找直到EOF()為真時停止查找并顯示“查找完畢”。
程序流程圖如圖2所示,其循環(huán)結(jié)構(gòu)由三部分組成。① 設置初值。包括循環(huán)操作中的初值和控制循環(huán)的初值兩部分,通過查找郵政編碼獲得EOF()函數(shù)的值是控制循環(huán)用的初值。② 循環(huán)的實際操作。這部分是循環(huán)中要反復執(zhí)行的操作,同是包括控制循環(huán)條件的修改,又叫“循環(huán)體”,輸出姓名和工作單位是循環(huán)操作,繼續(xù)查找既是循環(huán)操作的一部分,又是修改控制循環(huán)條件。③ 循環(huán)控制部分的核心是一個條件判斷,即EOF()函數(shù)的值是 “假”開始循環(huán),值為“真”退出循環(huán)。
程序設計如下:
ACCEPT "請輸入待查的郵政編碼(5位整數(shù)):"TO YZBM
USE 考生檔案
LOCATE ALL FOR 郵政編碼=YZBM
IF EOF()
?"經(jīng)查找,所有考生中無此郵政編碼!"
ELSE
DO WHILE .NOT. EOF()
?"姓名:"+姓名+SPACE(4)+"通訊地址:"+通訊地址
CONTINUE
ENDDO
?"已經(jīng)查完了!"
ENDIF
USE
在循環(huán)程序設計中一定要注意控制循環(huán)次數(shù)的控制,否則循環(huán)程序?qū)o法結(jié)束,即陷入“死循環(huán)”。通常的辦法有“計數(shù)控制”,“條件控制”。在本例中就采用了“條件控制”。
4 多重循環(huán)
一個循環(huán)語句中可以包含另一個循環(huán)語句,這種結(jié)構(gòu)叫做循環(huán)語句“嵌套”,在外層的叫外循環(huán),在內(nèi)層的叫內(nèi)循環(huán)。多重循環(huán)結(jié)構(gòu)的特點是:外層變一次,內(nèi)層變一遍。
比較典型的運用例子就是設計打印乘法九九表的程序,即1*1=1,1*2=2,……,9*9=81。首先考慮如何打印1*1=1,1*2=2……,1*9=9,這用單循環(huán)很容易就能實現(xiàn)。但是對于整個程序的設計就要使用多重循環(huán)了。被乘數(shù)和乘數(shù)分別用A和B表示,A的值從1增加到9,B的值從1增加到9,每次都增加1,其乘積用P表示。每個A值都要使B從1變化到9,然后打印出相應的乘積。用VF設計主要程序語句如下:
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é)束語
許多問題的求解歸結(jié)為重復執(zhí)行的操作,比如數(shù)值計算中的方程迭代求根,非數(shù)值計算中的對象遍歷。重復執(zhí)行就是循環(huán)。重復執(zhí)行不是簡單地重復,每次重復,操作的數(shù)據(jù)(狀態(tài)、條件)都可能發(fā)生變化。重復的動作是受控制的,因此循環(huán)程序設計的要點就是要做好循環(huán)控制的設計。
參考文獻:
[1] 林卓然.BASIC語言簡明教程[M].廣州:中山大學出版社,1995.
[2] 遲成文.全國計算機考級考試教程(二級)[M].北京:電子工業(yè)出版社,1997.
一、立項
1.對預防調(diào)查對象的理解
一是“可能引發(fā)職務犯罪的隱患、非規(guī)范職務行為”,應指未然的職務犯罪;二是“職務犯罪衍化的宏觀和微觀因素”,應指已然的職務犯罪背后的深層次原因。這里的已然職務犯罪一般是指一個整體深層次因素引發(fā)的類案、行業(yè)、領域群體性職務犯罪等,而非個案。對于自偵部門查處的個案一般沒有必要預防調(diào)查,因為通常這些案件經(jīng)自偵部門偵查后,其漏洞和隱患問題已基本查清,無需再重復勞動,直接可以利用現(xiàn)有的資料進行案例剖析、發(fā)出檢察建議或開展后續(xù)其他預防工作。
2.預防調(diào)查的啟動條件
一是預防部門在開展預防咨詢、警示教育等預防活動中,發(fā)現(xiàn)或經(jīng)群眾反映有關單位在制度上、管理上存在易發(fā)職務犯罪漏洞和潛在隱患問題的。如2008年我省漳州市龍文區(qū)檢察院根據(jù)新聞媒體報道反映的市區(qū)路面超載車輛增多,造成多處路段損壞等現(xiàn)象,分析可能存在公路監(jiān)管部門執(zhí)法不到位等瀆職問題。啟動預防調(diào)查程序后,及時地發(fā)現(xiàn)有關部門涉嫌瀆職犯罪線索,移送自偵部門,從中立案6件,同時還通過開展預防警示教育,協(xié)助公路局及時修復路段損壞,加大超載車輛的打擊力度,促進了依法行政。
二是偵查部門經(jīng)初查不具備立案條件,但反映出有關單位在制度、管理上存在易發(fā)職務犯罪漏洞和潛在隱患問題,經(jīng)分管檢察長交辦或上級檢察院批辦的。如2009年福建省廈門市海滄區(qū)對廈門第一農(nóng)場下屬的山邊洪管理區(qū)涉及征地賠償款的糾紛進行預防調(diào)查,選擇了控申部門經(jīng)初查不具備立案條件,但反映出該農(nóng)場在制度、管理上存在易發(fā)職務犯罪漏洞和潛在隱患問題的題材進行立項調(diào)查。
三是某一行業(yè)或領域職務犯罪高發(fā)或呈上升趨勢,需黨委、政府或主管部門采取相應預防對策的。如2009年,我省寧德市兩級檢察機關查處機動漁船燃油補貼系列職務犯罪案件40件,涉及作案人員57人,包括海洋與漁業(yè)部門工作人員、鄉(xiāng)鎮(zhèn)干部、村委成員和漁民等,案值高達707.5萬元,影響很大。寧德市檢察院專門成立預防調(diào)查工作領導小組,采取查閱案卷、召開案情分析會、詢問犯罪嫌疑人犯罪的主觀動因、向漁民發(fā)放問卷調(diào)查等形式,深入7個市、縣(區(qū))兩級海洋漁業(yè)、財政部門,了解國家“油補”政策出臺的背景、意義及存在問題,形成《“油補”案件情況調(diào)查報告》和《“油補”案件引發(fā)的對國家油價補貼政策的思考及采取的防范對策》,并向市政府及海洋漁業(yè)的主管部門發(fā)出檢察建議。
有上述情況之一,預防部門可以組織人員和力量確定承辦,收集現(xiàn)有的相關材料,組織預防部門進行討論開展預防調(diào)查的可行性和必要性,然后再由預防部門的承辦人填寫《預防調(diào)查立項審批表》,預防部門負責人簽署意見,報主管檢察長決定,并報上一級人民檢察院預防部門備案。
二、組織調(diào)查
1.制作調(diào)查方案或提綱
預防調(diào)查立項后,由預防部門負責同志組織承辦人和其他人員,根據(jù)已掌握的有關材料,研究制定調(diào)查方案或調(diào)查提綱,分管檢察長也可以參與討論。調(diào)查方案或調(diào)查提綱要列明:調(diào)查的來源或現(xiàn)有資料的總體評估分析、調(diào)查需要采取的措施、各承辦人的任務分配、調(diào)查所需的期限和步驟,調(diào)查要達到的預期效果等等,并將討論情況記錄在案,參與討論的人員要簽名。
2.組織調(diào)查的方式
組織調(diào)查要按照制定的預防調(diào)查方案分步驟開展,當然調(diào)查方案或調(diào)查提綱在實際的調(diào)查中可以有所調(diào)整。在實踐中可以采取以下方式:與有關單位召開座談會,相互通報有關情況,了解具體工作的流程;向有關人員了解、核實相關情況;查閱、調(diào)取為預防建議和糾正違法意見提供依據(jù)的相關資料以及用于調(diào)查分析的具體事件、項目和問題的文件資料等;邀請專家對一些專業(yè)性的工作提供咨詢,為預防調(diào)查提供專業(yè)指導和幫助;走訪、問卷調(diào)查、聘請預防聯(lián)絡員以及訊問犯罪嫌疑人(包括服刑犯);復印案卷等一系列的有助于了解分析的調(diào)查方式。
3.調(diào)查需要注意的事項
在組織調(diào)查活動中,應當注意三個方面事項:一是對外開展預防調(diào)查時,必須由兩名以上檢察人員持介紹信并出示檢察人員工作證;二是調(diào)查中向有關人員了解、核實情況,查閱、調(diào)取資料前,應當征得有關單位和人員的同意,并在被調(diào)查單位的紀檢監(jiān)察工作人員配合下進行。三是預防調(diào)查不同于偵查,不能對被調(diào)查人采取拘傳、拘留和其他任何限制人身自由的強制措施,不得進行訊問、搜查,凍結(jié)存款、匯款等偵查手段,調(diào)查場所是單位或被調(diào)查人所在地,嚴禁將被調(diào)查對象帶入檢察院。
三、調(diào)查結(jié)果處置
1.發(fā)現(xiàn)相關職務犯罪線索
根據(jù)最高人民檢察院《關于推進職務犯罪偵查和預防一體化工作機制建設的指導意見》的要求:“預防部門應當在預防工作中注意發(fā)現(xiàn)和受理案件線索,經(jīng)審查,認為有初查必要的,應當及時移送偵查部門,并向舉報中心備案,偵查部門立案的,應向預防部門反饋?!背修k人應當填寫《預防部門職務犯罪線索處置表》,及時移送偵查部門。
2.發(fā)現(xiàn)有違法違紀行為或涉嫌普通刑事案件
根據(jù)有關規(guī)定將相關線索和材料移交有關單位紀檢監(jiān)察部門或公安機關處理。
3.剖析犯罪原因,形成預防報告
完成對某一行業(yè)或領域職務犯罪原因的剖析和預防對策的研究,形成有分析、有對策的詳細預防調(diào)查報告。根據(jù)《最高人民檢察院關于實行懲治和預防職務犯罪年度報告制度的意見》,形成專項預防報告,報有關行業(yè)的主管部門和有關單位。
4.與發(fā)現(xiàn)存有職務犯罪的單位及時聯(lián)系
發(fā)現(xiàn)有關單位內(nèi)部機制不健全、管理混亂,明顯存在導致職務犯罪發(fā)生的機會和條件,需要有關方面采取預防措施的,與有關單位聯(lián)系溝通,開展必要的預防工作,如警示教育、發(fā)送預防職務犯罪檢察建議、糾正違法通知書等活動。
當然上述四種情況可能并存。針對上述情況,承辦人要提出具體的處理意見,并制作《預防調(diào)查情況報告》,報預防部門負責人審核后,經(jīng)分管領導批準。情況報告內(nèi)容主要包括:立項調(diào)查來源、主要問題、具體調(diào)查情況、調(diào)查結(jié)論、處理意見或建議以及承辦人、承辦日期等。若未發(fā)現(xiàn)以上四種情形的,立即終結(jié)預防調(diào)查工作,并將有關調(diào)查結(jié)果及時反饋被調(diào)查單位。
四、調(diào)查終結(jié)
1.調(diào)查終結(jié)的四種情形
預防調(diào)查情況報告的處置意見經(jīng)批準后,一般在立項后的三個月內(nèi)完成。根據(jù)不同情況進行處置后,相關單位落實并反饋的,預防調(diào)查可以終結(jié)。一是移送線索的,自偵部門已經(jīng)受理并立案;二是發(fā)現(xiàn)有違法違紀行為或涉嫌普通刑事案件的,相關單位紀檢監(jiān)察部門或公安機關已接收并反饋的;三是預防調(diào)查專項報告呈送后行業(yè)主管部門或相關單位引起重視并被采納的;四是有關單位內(nèi)部制度得到完善,取得預防效果的。
2.制作《預防調(diào)查終結(jié)報告》
根據(jù)上述完成情況,承辦人應當制作《預防調(diào)查終結(jié)報告》工作文書。列明立項調(diào)查來源、具體調(diào)查情況、承辦人處理意見或建議、主管檢察長意見、處理意見落實情況、預防調(diào)查成效綜述等?!额A防調(diào)查終結(jié)報告》一式二份,一份立卷歸檔,一份報送上一級人民檢察院預防部門備案。
【關鍵詞】Java程序設計;教學探索;教學方法
隨著計算機軟件技術的發(fā)展,Java以其簡單、面向?qū)ο蟆⒎€(wěn)定、與平臺無關、多線程,動態(tài)等特點成為軟件開發(fā)領域的主流程序設計語言之一,也成為高等院校計算機專業(yè)教學體系中一門重要的主干課程。但是并不是所有學生都能學好,這不僅僅是學生的問題,也取決于教師如何完成該課程的教學工作。學生無興趣,學不會,感覺壓力很大,種種現(xiàn)象反映出我們的教學工作出了問題。我們需要尋求解決問題的方法,提教學效果。
一、Java程序設計課程教學中存在的問題及原因
傳統(tǒng)教學過程中,任課教師一般首先會按照教材對知識點進行講解,然后編寫程序分析、演示所講知識點,學生只是跟隨老師思路,被動接受,學生不會主動去思考,去尋求解決問題的辦法,時間一長就喜歡接受教師寫好的現(xiàn)成程序,當自己獨立去解決實際問題時,就腦子空空,難以應對。產(chǎn)生這些現(xiàn)象的原因主要有以下幾點:
1.知識點沒有真正掌握
在學生的學習過程中,隨著課程的逐步展開,學習了更多新的知識點后,就把以前學過的基本的語法規(guī)則遺忘了。當程序中需要使用以往的知識點時,就要不斷的去翻書尋找,如變量如何定義,語句控制的相關用法等等,而對具體用法含義沒有真正領悟。
2.在解決問題時編程方式和傳統(tǒng)思維方式存在差異
如變量的講解環(huán)節(jié),它的值是可隨著程序的調(diào)用而變化,具體的式子在傳統(tǒng)數(shù)學模式里是不成立。有些問題看上去很簡單,需要程序解決時,又要循環(huán)又要中斷,就出現(xiàn)了整個思考過程要程序化。學生在剛開始學習程序時,很難采用計算機的方式去解決問題,另外完全依附于教師,教一點學一點,下課后就算結(jié)束了,從不自己獨立思考,沒有讓學生養(yǎng)成良好的編程習慣,從而僵化了學習模式。
3.隨著難度增加,學習興趣逐漸降低
學生初學時興趣一般都大,但是,隨著學習的深入,知識點難度的增加,學習的興趣和積極性就會逐漸削弱。當新鮮感沒有的時候,就會感覺到程序設計枯燥、難懂,也就不去聽、不去學了。
4.學習目的不明確,教學與實踐脫節(jié)
很多學生學習目的不明確,不知道為何而學,學了干什么,很多學生學習這門課緊緊為了修學分,雖然書本中的知識掌握的很好,但是僅僅能夠完成書本上的題目,忽略了實際軟件研發(fā)的經(jīng)驗的積累,從而造成了教學與實踐的嚴重脫節(jié)。
針對以上問題,就需要授課教師改變自己的教學方法,探索新的教學理念,深入對Java程序設計進行剖析,提高學生的學習興趣和動手能力,真正感受到程序設計的魅力。
二、教學改進措施
1.增加教學環(huán)節(jié)中實訓課時
為了使學生能夠掌握所學的知識點,靈活運用去解決實際問題,同時培養(yǎng)良好的團隊意識,激發(fā)自主創(chuàng)新能力,這就要求學生不能只停留在學的層面上,而要進一步達到會的深度。為了使學生真正作到學會并靈活運用這個目標,在教學上就應該加大實踐操作的力度,要求教師形成一個從基本知識講解到實踐動手操作的指導團隊模式。在進行課程教學的學期開始,就要求主講教師根據(jù)教學的具體內(nèi)容結(jié)合學生平時學習效果來設計適當?shù)恼n程階段性項目,在學生上機操作實現(xiàn)的整個過程中對知識點進行運用,從而加深其印象。教師在指導的過程中,在解答專業(yè)知識點的同時要注重引導培養(yǎng)學生的創(chuàng)新自學能力。在必要時可根據(jù)學生的個性化要求進行分組,實現(xiàn)不同的項目開發(fā)與制作。這樣就能夠增加學生的自信及提高對課程的興趣程度。教師在課堂上的知識點講解及實驗實訓的項目實踐應用,都要做到任務分工明確,安排科學合理,效果檢驗及時,這樣就能根據(jù)教學進度,結(jié)合學生掌握情況,調(diào)整教學方式,達到良好的教學效果。
2.拓展新的教學方法
(1)引導學生發(fā)散思維
程序演示是Java程序設計課程授課環(huán)節(jié)的一個重要組成,在程序演示過程老師應該提出問題,啟發(fā)學生思考,可提問不同的學生,對不同的解決方案進行比較、分析,同時可穿插舊的知識點,幫助學生加強記憶。在提問解決問題的過程中要注重循序漸進的引導,讓學生從不知道,到找到解決問題的辦法的過程中去思考,培養(yǎng)分析問題、解決問題的能力,同時針對該問題進行拓展,提出新的要求,從而達到開闊學生視野,激發(fā)潛能,加強認識新知識點,穩(wěn)固已經(jīng)掌握的知識點的目的。
(2)要適時表揚鼓勵
學生在學習的過程中,是否有興趣鉆進去,取決于他是否取得進步。假如自己已經(jīng)盡力學了,還是學不會,當然就很受打擊,從而失去再堅持下去的念頭。在教學的過程中,無論是提問,還是學生在問一些簡單的問題,就應該適時捕捉他們?nèi)〉玫倪M步,要肯定并鼓勵學生。讓學生有信心去學,也就是說只要認真的學習,就能不斷的提高。這樣學生的興趣不斷加濃,就會更用功的去尋求進步,得到同學們,尤其是教師的認可。學生的好勝心,成就感,在教學中得到應用,會取得意想不到的效果。
(3)故意設置錯誤啟發(fā)
教學過程中,程序的編寫及演示過程中,應該把常見的錯誤給學生故意暴露出來。問題的解決通常情況下是出現(xiàn)了錯誤,尋求解決錯誤的有效方法。學生學習知識本就是要認識錯誤,得到如何糾正錯誤的方法。這樣在代碼書寫及調(diào)試時,制造矛盾,激發(fā)對錯誤的認識并解惑。在容易出現(xiàn)錯誤的基本知識點,無論是新學的還是已經(jīng)學過的,都要不失時機的在錯誤中提高。這樣往往可以加深學生的印象,以后假如出現(xiàn)類似情況,他們也很快能夠找到應對的方法。也可以在處理錯誤時把錯誤多樣化,同樣的環(huán)境,不同的錯誤又該如何應對,就起到了,舉一反三的教學效果。
(4)搭建課程總體項目
在課程開始就給同學們規(guī)劃一個大的項目,此后知識點的逐一展開就是逐步完成目標的過程。學習的各個章節(jié)可設置局部的小項目,明確目標。要遵循事物發(fā)展,由易到難,由小到大的規(guī)律,小項目進行排序,前面完成的就是后面要出現(xiàn)的基礎,依此一環(huán)扣一環(huán),逐層推進最終實現(xiàn)課程的總體項目。不然學生總會在學習中產(chǎn)生顧慮,到底學了有什么用,又用到那里。這樣學生就會努力的向目標進發(fā),有針對性的去提高,否則造成盲目學習,其效果可想而知。
(5)教學過程讓學生有輕松感
教師應該在教學中,在講解單調(diào)的程序類課程時要有足夠的幽默感,這樣就能夠調(diào)動的課堂氣氛,使學生更專注于課程內(nèi)容。其實教學就是一門獨特的語言藝術,教學就是在教與學的交流中進行的,就要發(fā)揮教師的語言能力,感染和吸引學生,輕松的完成知識點的講解。往往有些教師就不注意這點,只知道埋頭講知識點,其實已經(jīng)喪失了教學良機,也就談不上提高教學質(zhì)量了。
3.緊密與實踐相結(jié)合
老師在授課過程中,應該讓學生知道自己所學知識的基本用途,了解該如何利用使用所學知識解決實際問題。高校老師在授課之余也擔負著科研工作,因此可以將科研工作中的實際案例作為教學案例進行剖析、講解,甚至可以讓學生參加在研項目,通過大量實際案例的分析、代碼的編寫使學生更加深入的了解Java的運行原理。
4.改變傳統(tǒng)課程考核方式
目前高等院校期終考試一般采用筆試進行,這樣以來就使學生更注重理論的死記硬背,而不關心實際的應用,即使不會用程序解決實際問題也不影響自己的課程成績。針對這種現(xiàn)象,應當引入上機考試的方式進行考核??己藭r,學生試題來源于試題庫,老師在制作試題庫時就可以更加注重學生分析問題、解決問題的能力考核,同時,學生平時學習也會更加注重動手能力。平時課程課內(nèi)實訓時就要灌輸學生學習要以用為主的思想,加強學生對知識點的理解和聯(lián)想,不斷提升學生的自覺能動性。
三、結(jié)束語
隨著計算機軟件技術的飛速發(fā)展,基于Java的行業(yè)應用在社會各個領域扮演重要角色,因此高等院校Java程序設計課程教學工作就顯的尤為重要。這就要求教師和學生就必須達到教與學的緊密有效的結(jié)合,及時發(fā)現(xiàn)問題、解決問題,形成良性循環(huán),使學生真正做到知識的深刻理解、掌握以及靈活運用,高效的完成教學任務。
參考文獻
[1]廖福保.Java語言課程項目教學探討[J].廣東農(nóng)工商職業(yè)技術學院學報,2012(2):29—31.
[2]史岳鵬.高職高專《Java程序設計》課程項目驅(qū)動一體化教學模式研究[J].科技信息,2012(20):33—34.
[3]馬雪英,王桂平.以能力為導向的程序設計類課程教學體系[J].計算機教育,2011(4):74—78.
關鍵詞:VB程序設計 教學過程 能力
VB程序設計是大多高校必開的計算機基礎課程,在我校,VB也針對絕大多數(shù)院系開課。但由于課程比較枯燥難學,學生對程序設計畏懼、對程序設計思想不理解等諸多原因,導致VB課程教學效果達不到預期效果。通過幾年的VB基礎教學,我總結(jié)了一些教學經(jīng)驗,在此與大家分享。
一、好的開始是成功的一半,基礎必須打好
VB是一門面向?qū)ο?、事件?qū)動機制的程序設計課程,為了以后能更好、更深入地學習,必須在開始時就讓學生理解和掌握面向?qū)ο蠛褪录?qū)動兩大特點,這樣在后續(xù)學習中,學生才能合理地使用合適的對象和事件。
在具體教學過程中,我通過一個淺顯易懂的例子進行詳細講解。比如“一行內(nèi)容在窗體左、右移動;移動兩種方法:手動和自動,當自動時,文字閃爍顯示”,程序運行界面如圖1所示:
講解過程中,首先讓學生看清楚題意,看清題目的目的和要求,提示學生找出這個題目中要進行操作的對象是什么,該對象該如何在窗口中體現(xiàn),對對象的操作是什么。得出的結(jié)論是要操作的對象是“一行內(nèi)容”,可以用一個能夠顯示文本的控件實現(xiàn),操作是“左、右移動”。然后運行程序,通過演示程序運行,讓學生們找出驅(qū)動結(jié)果顯示的事件是什么。結(jié)論是單擊“手動”和“自動”按鈕,才能得到相應的結(jié)果。通過多個簡單例題的引導,通過對學生提問,激發(fā)學生思考,讓學生真正掌握對象的含義和事件驅(qū)動的含義,并能在給出的題目中說出需要添加什么對象,用什么事件來驅(qū)動。掌握好了這些,就為以后的學習奠定了堅實的基礎。
二、實例教學和任務驅(qū)動機制貫穿始終
VB語言內(nèi)容繁多,層次性較差,采用“案例引入,上機實踐,質(zhì)疑解惑”的方式,學生即學即練,上手快,興趣濃,有成就感。以VB的基礎內(nèi)容控件、控件屬性、事件和方法為例。單個講解的話很容易枯燥乏味,學生也難以真正體會其用途。教師應設計一個綜合實例,實例應注重知識的系統(tǒng)性、完整性和連貫性。我以學生最經(jīng)常接觸的“登錄界面”為例進行了講解。程序運行界面如圖1-4所示:
本實例包含兩個窗體,主要涉及窗體、標簽、文本框、命令按鈕、圖片等控件,通過本例可以詳細講解每個控件適合用在什么情況,以及相應屬性、事件和方法的使用。由于此例學生經(jīng)常遇到,所以可以很好地理解,便于掌握??丶庥^屬性如圖1-4設置。
窗體一的代碼如下:
Private Sub Command1_Click()‘按鈕單擊事件
Form1.Hide‘窗體一隱藏,hide方法的使用
Form2.Show ‘窗體二顯示,shoe方法的使用
End Sub
窗體二的代碼如下:
Private Sub Form_Load()
Command1.Enabled = False ‘按鈕可編輯屬性設置,
窗體剛
Command2.Enabled = False 加載時是不可編輯的
Picture1.Picture = LoadPicture(″e:\素材\002.bmp″)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) ‘文本框 接收輸入事件
Command1.Enabled = True ‘此時按鈕變?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 ‘文本框獲得焦點
End Sub
三、問題求解能力的培養(yǎng)
Gagné說過:“教育的中心目標就是教會人們思考,運用他們的理性,成為更好的問題解決者。”VB的學習重點是程序設計,是用它來編程實現(xiàn)生活中的問題,所以單純地靠講解一些實例是遠遠不夠的,關鍵是要培養(yǎng)學生發(fā)現(xiàn)問題、分析問題和解決問題的能力。我采取的方法是給出初始創(chuàng)意,讓學生給出擴展功能及相關功能的解決思路,最終能夠轉(zhuǎn)換為程序。仍以上例為例,讓學生盡可能補充添加功能,并描述該用何方法,什么結(jié)構(gòu)等等來實現(xiàn),并以作業(yè)的形式交上來,然后課堂上給予總結(jié),上機讓學生實現(xiàn),并給予指導。上例可以添加的功能很多,如輸入不能為空,如果為空給出錯誤提示(分支語句和Msgbox的應用);密碼校驗功能(分支語句實現(xiàn));設置輸入次數(shù)不能超過3次(循環(huán)語句實現(xiàn))等等。這樣的方式使得學生能夠積極地思考,并能夠把理論知識同現(xiàn)實結(jié)合起來,從而促進了學生更多問題的處理解決能力,形成了程序設計思維。
對一個題目要求用幾種方法來實現(xiàn),以此提高學生對程序的分析理解和舉一反三的綜合能力。例如,求1到100之間所有奇數(shù)的和。比較容易想到的是用For……Next循環(huán)語句實現(xiàn)。要求學生用Do While……Loop和Do……Loop While……來分別實現(xiàn),學生就必須考慮這三者之間的聯(lián)系和區(qū)別,以及各自的語句執(zhí)行特點、循環(huán)次數(shù)的控制和退出循環(huán)的方法等。這樣既使學生從多個角度考慮了問題,也對這三種循環(huán)結(jié)構(gòu)有了更深的理解。更進一步,要求學生求1到N之間所有奇數(shù)的和。循環(huán)變量的終止值需用變量N來表示,因此需要在程序的前面增加一條定義變量N的語句,還需要使用InputBox語句在程序運行的過程中將終止值輸入給變量N,這就要求學生能夠把前面所學的知識綜合起來運用,學生的創(chuàng)新思維和綜合編程能力可以得到訓練和明顯提高。
四、抓好上機實踐環(huán)節(jié)
上機是提高學生實踐和動手能力的關鍵,所以要嚴格要求。做法是嚴格上機制度,上機表現(xiàn)直接跟成績掛鉤。學生自主意識較差,如果不明確布置任務,他們就會渾水摸魚,上機無事可做,所以每次必須要詳細分配任務,并且任務要具備趣味性、應用性和綜合性,由易到難、由簡到繁,充分調(diào)動他們的上機主動性和自我發(fā)揮能力。并且要鼓勵學生積極提問、互相幫助,耐心給學生指導,充分利用好每一次上機課。
關鍵詞:程序設計 教學 算法
程序設計是我國高校各專業(yè)學生必修的一門核心課程,該課程的教學目的是使學生掌握程序設計的基本方法和理論,應用某一程序設計語言編寫具體的程序。程序設計的教學質(zhì)量將影響到學生的程序設計能力,影響到學生創(chuàng)新思維的培養(yǎng)。
一、程序設計課程教學現(xiàn)狀
“程序設計”課程長期沿襲傳統(tǒng)教學模式,即以一種高級語言的語句體系為脈絡展開教學,詳細地講解其語句、語法甚至一些細節(jié)內(nèi)容,學生每學習一個語句需要做一些與該語句有關的習題。課程枯燥無味,學生學習積極性不高,很少動手實踐。課程學完后,學生除了學到一些呆板的語句外,收獲甚微。
1.理論基礎薄弱
有些教師過分重視程序設計語言的教學,而對于程序設計中所涉及的程序設計理論、程序設計的方法和算法的設計思想等理論知識的講解不夠深入、透徹。
2.學生缺乏創(chuàng)新能力
學生可以解決那些和已經(jīng)學過的知識有直接或有密切聯(lián)系的問題,而面對一個需要用已經(jīng)學過的知識進行綜合求解的程序設計問題時,就不知從何下手,對所學知識做不到舉一反三,缺乏程序設計的創(chuàng)新能力。
3.動手能力不強
學生實際動手能力差,具體表現(xiàn)在兩個方面。其一,學生上機調(diào)試程序的能力差,難以找到錯誤產(chǎn)生的原因;其二,實際編寫程序的能力不強,編寫的程序功能不夠完善,風格不一,程序健壯性差。
針對以上出現(xiàn)的問題,我們認為應該在教學過程中對學生各方面的編程素養(yǎng)進行引導和培養(yǎng)。
二、編程方法引導
程序設計的觀念雖然發(fā)生過很多變化,但程序的基本結(jié)構(gòu)仍然是順序、選擇和循環(huán)三種。因此,在學生初學程序設計時就應該注意滲透結(jié)構(gòu)化程序設計的思想,以便使學生養(yǎng)成良好的程序設計習慣。
我們這里談的不是純粹的程序設計方法,如結(jié)構(gòu)化的、面向?qū)ο蟮牡?,而是在教學中滲透程序設計的技巧。這里舉一個結(jié)構(gòu)化程序設計的例子。
例:求100以內(nèi)的素數(shù)。
經(jīng)過分析可以發(fā)現(xiàn),除了“2”以外,偶數(shù)不可能為素數(shù),所以外循環(huán)有50次是多余的,同理在內(nèi)循環(huán)中,也不必用偶數(shù)測試。再進行分析又發(fā)現(xiàn),一個合數(shù)最小的因子不會大于它的平方根,所以內(nèi)循環(huán)中的次數(shù)被再次減少。最后程序變?yōu)椋?/p>
通過不斷改進程序,可以使程序效率得到不斷提高,當然這些提高是在數(shù)據(jù)規(guī)模不斷增長時才能體現(xiàn)出來。盡管現(xiàn)在很多人認為硬件的速度發(fā)展很快,我們應該把速度提高的任務交給硬件去實現(xiàn),這樣的想法未免過于武斷。姑且不論類似上述的技巧對于程序執(zhí)行效率的提高有多少益處,單從基于問題的學習方法這個角度的出發(fā),程序的衍生對于提高程序員的編程水平也是一個很好的訓練方法,所以這樣的編程技巧是不可多得的,我們在教學過程中就是要進行這方面的引導。
三、編程風格和規(guī)則引導
前面提到我們在進行程序設計教學時,傳統(tǒng)教學模式比較少注意編程風格和規(guī)則的引導,所以很多時候,學生編制出來的程序都是一路下來齊刷刷,缺乏良好風格,死套語法,缺乏考慮可能的不安全因素。
由于學習程序設計是一個循序漸進的過程,所以在教學中如果潛移默化地引導學生從程序設計入門開始,就注意程序設計的一般風格和應該遵守的規(guī)則,就能讓學生更快更好地編制出高質(zhì)量的程序來,并且具備良好的編程習慣。
舉例說明。我們知道,free和delete都可以把指針所指的內(nèi)存給釋放掉,比如:
這段程序運行一定沒問題,但如果在其后加上這樣一段代碼:
我們會發(fā)現(xiàn)出錯了!這是因為,p所指內(nèi)存被釋放,但是p存放的地址值仍然不變,即p成了“野指針”。盡管嘗試用if(p!=NULL)來判斷p的可用性,我們卻發(fā)現(xiàn)出錯處理并沒有起作用。所以,良好的習慣是在free和delete后,都要對指針作置空處理,即p=NULL。有人會說如果要這種情況出現(xiàn)在程序結(jié)束時,一切指針也會消亡,動態(tài)內(nèi)存也會作系統(tǒng)回收,所以P置空是多余的。但是如果有人將這段程序取出來用到其他地方會怎樣呢?結(jié)果不是我們想見到的。
四、算法設計概念的引入
程序=算法+數(shù)據(jù)結(jié)構(gòu)。這就提出我們在進行程序設計教學過程中,不僅要重視語法的講授,也要重視算法的講授,甚至是要將算法提到更為重要的地位。程序設計是要解決問題,語言只不過是為解決問題而使用的工具,真正解決問題的是算法,難怪專家說“算法是魂,程序是衣”。
如在C語言程序設計課程教學中,當完成分支結(jié)構(gòu)程序、循環(huán)控制和數(shù)組,進入內(nèi)容較多的算法設計教學后,我們將教學內(nèi)容分為以下五個方面。
(1)一般數(shù)據(jù)組織算法:查找、排序、字符串處理、求素數(shù)、篩選、迭代、窮舉等;
(2)函數(shù)調(diào)用,函數(shù)嵌套歸、遞推及貪心算法等;
(3)指針算法,動態(tài)內(nèi)存分配,鏈表等;
(4)用矩形法、梯形法計算定積分、模擬算法的隨機抽樣、蒙特卡羅法等算法;
(5)文件數(shù)據(jù)處理。
在課堂上增加算法設計的分析和討論,強調(diào)算法設計的優(yōu)化和程序的優(yōu)化,是提高學生分析和解決實際問題能力的有效方法。
五、開展研究性學習
在程序設計過程中,開展研究性學習,是為了提高學生分析和解決實際問題的能力,主要是通過對解決問題的算法進行研究而展開的。由于課時所限,并且學生沒有足夠的實踐經(jīng)驗,所以對算法問題的研究也是初級的,主要是討論典型問題的典型算法及其應用。
1.通過研究性學習,可以重構(gòu)知識體系,加深對算法的理解。
研究性學習是學生在教師的指導下,選定主題,然后搜集相關材料,對材料進行歸納、加工處理、分析、總結(jié)得到相應結(jié)論的學習活動。在教學中,可以根據(jù)教學內(nèi)容,經(jīng)過反復研究,確定研究主題,并根據(jù)學生的自愿報名成立研究小組,如搜索算法研究小組等。然后各小組根據(jù)自己研究的算法,重新整理相應的知識,對知識進行歸納、總結(jié)。通過對各種算法知識進行整理、分類、小結(jié),加深學生對這些算法的理解。
2.通過研究性學習,同學之間取長補短,共同提高。
每個學生都有所長,也有所短,研究性學習一個重要特點就是:分工合作,共同討論,共同提高。我們可以根椐學生的特點、特長,對他們進行分工,每位學生研究一種算法其中的一個問題,然后整個小組一起討論,每位學生介紹自己的研究情況、研究成果,然后其他同學進行補充,發(fā)表自己的見解,這樣每個學生都使自己的研究內(nèi)容得到補充,同時也學習到了其他同學研究方面的知識,可以取長補短,共同提高。
3.通過研究性學習,總結(jié)算法的應用規(guī)律,提高程序設計能力。
在進行研究性學習時,除要求學生歸納、整理專題算法知識外,還要總結(jié)出算法的應用規(guī)律、應用算法解題的步驟和算法的框架。學生通過自己對算法應用規(guī)律的總結(jié),對算法的應用得到升華,進一步提高算法的應用能力和程序設計能力。
4.通過研究性學習,提高分析問題的能力、算法表達能力和歸納、綜合能力。
對算法的專題研究,不僅要對算法理論進行總結(jié),算法應用的研究也是很重要的一方面,通過算法的解題應用,既提高了學生分析問題的能力,也加深了學生對算法的理解,提高了學生的算法應用能力。另外,我們在算法研究過程中,要求學生透徹理解算法內(nèi)容,用算法語言準確描述算法,通過這種途徑進一步加深學生對算法的理解,同時也提高了學生的算法表達能力和歸納、總結(jié)的能力。
結(jié)論
我們認為在程序設計教學中,要改革舊的教學體系,需要用新的理念、新的內(nèi)容、新的方法組織教學。首先要用先進的程序設計理論指導教學,并加強編程算法、邏輯思維和編程方法的引導。其次,重視和鼓勵學生對具體問題進行分析和研究,勤于動手和上機訓練,養(yǎng)成良好的編程習慣。此外,對不同層次的學生可以進行分階段教學,前一階段講授基本的程序設計方法,除了講授程序設計語言的基本語法,還對學生進行編程方法及程序設計風格的引導;后一階段主要講授程序設計的較高級的語法和功能,提高學生對算法的認知和重視程序,并且在學生中開展研究性學習,培養(yǎng)學生實際動手能力。
參考文獻:
[1]李云清等.程序設計創(chuàng)新能力的教學研究[A].全國計算機新科技與計算機繼續(xù)教育論文集2003.
[2]李海倫等.“程序設計”課程教學改革的研究與實踐[J].計算機教育, 2005.7.
[3]豐振.計算機程序設計教學方法研究[J]. 教學研究,2004.9.
[4]等.淺談程序設計語言課程教學方法[J].吉林大學學報,2005.8第23卷.
關鍵詞:;SQL2000;JAVA課程
中圖分類號:TP393 文獻標識碼:A 文章編號: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計語言因其具有的跨平臺性、分布式及安全性等特點[1],在當今網(wǎng)絡時代得到廣泛應用和發(fā)展。作為一種有生產(chǎn)力的編程工具,學習《Java程序設計》課程有助于學生在掌握面向過程程序設計和可視化程序設計基礎上,能夠更深入地掌握面向?qū)ο缶幊碳夹g,且更有利于開發(fā)網(wǎng)絡環(huán)境下的應用程序。
目前師生之間Java課程的教與學多局限于課堂上面對面的方式,而課后教師與學生之間更深入的交流和探討,因缺少一定場地而受到限制,最終導致師生互動的機會減少。針對此現(xiàn)狀,本文使用[2]技術和SQL2000數(shù)據(jù)庫[3]設計一個Java課程網(wǎng)上學習平臺,以滿足在線學習及便于師生隨時隨地交流的目的。
1 需求分析
Java課程網(wǎng)站建設的目標是使教學更加方便,方便學生自己學習,提高學生自學能力,也節(jié)省學生、老師的時間。要求所設計系統(tǒng)操作方便、更新及時、易于維護管理。擁有動態(tài)更改信息;網(wǎng)上答疑;課程教學等基本功能。學生進入網(wǎng)站后可根據(jù)系統(tǒng)功能對該課程進行信息瀏覽,查看課件,提出問題及學習等;教師進入網(wǎng)站后也可對課程的一些信息進行瀏覽,對學生提出的問題進行回復,而后臺教師需要進入系統(tǒng)對網(wǎng)站進行維護,更新信息、修改信息或者刪除某些信息。
因此該系統(tǒng)需要滿足的需求為:具有良好的人機界面,以方便操作;學生查看教學信息,下載課件,網(wǎng)上發(fā)帖等;教師查看學生提出的問題并進行回答;教師,整理留言和教學資源等。
2 網(wǎng)站功能設計
按照需求分析的結(jié)果,網(wǎng)站總體結(jié)構(gòu)設計如圖1所示,角色上主要包括學生、教師和系統(tǒng)管理員;功能上主要包括網(wǎng)絡考試中心,在線留言,資源中心及后臺管理,同時還實現(xiàn)新聞和添加相關鏈接的功能。
3 網(wǎng)站主要功能分析
3.1用戶注冊及管理員登錄
用戶包括普通用戶和管理員,所有用戶先注冊然后登錄系統(tǒng),權限不同則登錄成功后相應的界面不同。
3.2網(wǎng)站功能顯示
將網(wǎng)站的每個功能模塊顯示出來,如圖2所示,包括:資源中心,考試中心,后臺管理,在線留言及使用幫助等。
3.3資源中心
資源中心主要功能包括查看與課程相關的文檔及任課教師等信息。
3.3.1電子文檔
圖3所示的主要功能是上傳和下載電子文檔。為便于學生課后復習,教師可將課堂上教學用的Java課件等文檔進行上傳供學生瀏覽。
3.3.2網(wǎng)站課程實踐
為加強學生動手能力,從而將理論與實踐相結(jié)合,每個知識點都對應有實踐環(huán)節(jié),每一實驗都明確具體內(nèi)容及相關要求(圖4)。
3.4考試中心
圖5所示Java課程的網(wǎng)上考試閱卷,在時間和空間上都不必受傳統(tǒng)考試的限制,可提高考試和閱卷效率。
3.5后臺管理
管理員可以對科目、試題庫及的資源等信息進行增加或修改等管理。
3.5.1 科目大類管理
如圖6所示,可以增加或刪除科目大類,同時給大類編號。
3.5.2 具體科目管理
學好Java,還應該熟悉其課程體系,了解其所屬大類的與其相關的其他科目(圖7),從而明確該課程的重要性。
3.5.3試題庫管理
圖8所示為課程體系中各門課程的試題庫。
3.6在線留言
師生均可在線留言,但需要事先進行注冊(圖9),然后通過登錄界面進入留言板塊。
4 結(jié)束語
為便于學生在線學習及師生之間隨時隨地進行Java課程教學的交流,本網(wǎng)站實現(xiàn)了Java教學資源管理與查看、試題庫管理與查看、在線留言及相關新聞等功能,有助于學生更方便更深入地掌握Java語言。
參考文獻:
[1] 張白一, 崔尚森.面向?qū)ο蟪绦蛟O計―――Java[M] .西安: 西安電子科技大學出版社, 2013.
一、弱電工程簡介
電力應用按照電力輸送功率的強弱可以分為強電與弱電兩類。一般情況下,弱電系統(tǒng)工程的應用主要包括:電視信號工程,如電視監(jiān)控系統(tǒng),有線電視;通信工程,如電話;智能消防工程;擴聲與音響工程,如酒店中的背景音樂廣播,建筑物中的背景音樂;綜合布線工程,主要用于計算機網(wǎng)絡。由此可見,弱電系統(tǒng)的應用深入到了我們?nèi)粘I畹姆椒矫婷?。弱電系統(tǒng)作為現(xiàn)代建筑物中智能化管理的重要組成部分,主要分為有兩類:一類是國家規(guī)定的安全電壓等直流電路,另一類是音頻、視頻線路、網(wǎng)絡線路、電話線路等載有語音、圖像、數(shù)據(jù)信息的信息源。而酒店的弱電系統(tǒng)主要通過加強設備管理的自動化、通信的自動化以及辦公的自動化三個方面,加強酒店的宏觀配置,使得住戶能夠在一個更加高檔、智能的社區(qū)生活。
二、星級酒店弱電工程的特點
(一)智能子系統(tǒng)多、線纜種類多
住宅酒店弱電系統(tǒng)由于受到技術及資金方面的限制,弱電的鋪設在以中心管理機房為中心的基礎上,還建立了許多子系統(tǒng)對酒店進行進一步的管理與控制,因而在酒店的各棟建筑中敷設了大量的線纜。又根據(jù)不同的傳輸要求,這些電纜具體可以分為銅芯電話電纜、光纜、視頻及射頻同軸電纜、屏蔽控制電纜及各類鎧裝電纜等不同種類,可謂種類繁多。這就導致了弱電系統(tǒng)在每個子系統(tǒng)的相同傳輸方向上,電纜的功能、數(shù)量造成了巨大的重復與浪費。
(二)地下管道多
一般星級酒店都需要在地下鋪設給水管、消防水管、排污管、高壓電纜、采暖空調(diào)的熱水(蒸汽)管及冷水管、煤氣管道等等,這些管道由于有明確的分管機構(gòu)(各自分屬于市話、廣電(有線電視)、供電、供水、煤氣等不同的市政部門),因而有明確的責任人,各管道的鋪設都需要與各個相關管理部門及其下屬專業(yè)施工單位進行溝通協(xié)商,因而能較嚴格的完成施工圖樣的設計,各部門間也能較好的協(xié)調(diào)與配合。但對于弱電工程內(nèi)部各子系統(tǒng)而言,由于監(jiān)管單位不明確,相關的規(guī)章制度不健全,因而造成了施工單位責任不清等原因,使得弱電系統(tǒng)的鋪設不能嚴格按照要求完成,從而無法保證其施工質(zhì)量。
(三)設計使用處于初步探索期
由于弱電系統(tǒng)在星級酒店中的運用還屬于初步的引進與探索期,因而其實際的技術應用與我國的具體國情還存在著一定的差異。譬如對于一些較為復雜的、交叉點較多的樓層間,由于用縱剖面圖也不能清楚地表示出弱電管道諸點的標高,因而要繞開交叉障礙物有一定的困難,因此其平面布線圖上的標注也無法起到較好的效果,因此在繪制草圖與實際平面圖時就對繪圖人員提出了更高的要求。而從住戶的角度來看,星級酒店的入住客人對于服務的品質(zhì)要求較高,因此酒店必須對其人身財產(chǎn)安全進行更加全面的保護,但是現(xiàn)行弱電系統(tǒng)在消防電氣設計方面還是空白,因而一旦發(fā)生火災,將對客人造成巨大損失。
三、合理進行星級酒店的弱電工程總體規(guī)劃
(一)合理選擇酒店中心機房的位置
選擇酒店管理中心機房的位置在整個星級酒店的總體規(guī)劃中扮演著舉足輕重的作用。因為中心機房是所有智能子系統(tǒng)的中心設備的控制地,所有的中心指令都由該機房起點向外輻射,將信息傳達到各個建筑的子系統(tǒng)中,所以酒店管理中心機房的位置是需要認真、審慎的進行選擇。其主要選址要求如下:其一,酒店管理中心機房應盡量選擇在整個酒店園區(qū)的中心或相對中心的位,使其無論是地上還是地下,都位于酒店的主干道及中心交叉點上,便于地下敷設管道,也便于弱電管道能夠沿酒店園區(qū)的主干道通向酒店各棟建筑;其二,應加大物業(yè)管理中心機房向外敷設弱電管道的方向數(shù),至少也應在兩個方向以上,從而避免出線方向少而導致弱電管道過于集中;其三,酒店管理中心機房應與管理中心辦事機構(gòu)建在一處,以便于相互聯(lián)絡及管理,也便于在出現(xiàn)問題時能夠第一時間進行調(diào)整。
(二)合理規(guī)劃交接配線區(qū)
對于規(guī)模較大的星級酒店,應根據(jù)工程的總體規(guī)劃及園區(qū)主干道,配合交接配線的布局,將整個酒店園區(qū)劃分為幾個大塊,分區(qū)進行管理,對其中心地帶設置交接配線區(qū)。交接配線的基本功能是:連接由酒店管理中心機房引來的干線線纜,通過配線間內(nèi)的配線設備對線纜進行配線及對弱電信號進行處理分配,使其翻譯成各支路電纜能夠識別的信號,再加強其信號,分送到配線區(qū)內(nèi)各個建筑內(nèi)。交接配線間還應具備穩(wěn)定可靠的市電或配備UPS不間斷電源,以應對突發(fā)事件的產(chǎn)生。該配線間還應該經(jīng)常有管理人員在內(nèi)對設備行及時的維護管理,并且在有條件的情況下,配線間面積還應適當?shù)募哟?,整個設備間的室內(nèi)應特別注意通風及防潮。
(三)合理進行線纜戴設
智能星級酒店常用的布線方式有鎧裝電纜直埋方式、地下室電纜橋架敷設方式、墻壁電纜方式等多種鋪設方式。結(jié)合智能星級酒店室外布線的特點,應根據(jù)酒店的具體情況,對線纜布線方式進行合理選擇。鎧苯電纜直埋方式。用鎧裝電纜直埋方式進行布線,主要用于在同一路徑上,敷設的電纜根數(shù)較少的區(qū)域,以及輻射范圍較窄的區(qū)域。如為美化環(huán)境以及應對緊急事件而設置的園區(qū)廣播系統(tǒng),就比較適合電纜直埋敷設的布線方式。地下室電纜橋架敷設方式。作為一種現(xiàn)代生活中常用的布線方式,根據(jù)現(xiàn)在在許多高檔的酒店都會有較多的、甚至是連成一片的地下室,如儲藏室,各類車庫,應急避難通道等等,電纜橋架在地下室內(nèi)敷設的方式為敷設弱電線纜提供了方便。墻壁電纜方式。這是一種在酒店改造項目中經(jīng)常見到的方式,一般相當于100對的電話電纜外徑及以下外徑的其它弱電電纜均可采用墻壁電纜方式敷設。在我國城市電話已經(jīng)進入到了尋常百姓的家的大背景下,管線裝設隱蔽、美觀,能夠降低市內(nèi)通話的成本已經(jīng)成為了線路鋪設的基本要求。
四、星級酒店弱電系統(tǒng)的發(fā)展趨勢
(一)整合網(wǎng)絡信道
目前許多星級酒店的有線電視、電話網(wǎng)、互聯(lián)網(wǎng)、局域網(wǎng)、控制網(wǎng)絡以及部分子系統(tǒng)都是通過不同的信道同時并存的,這就造成了大量的重復建設,造成了浪費的弊端。通過弱電系統(tǒng)的宏觀的規(guī)劃布局,應采用有局域網(wǎng)與互聯(lián)網(wǎng)相結(jié)合的模式來整合酒店的內(nèi)部網(wǎng)絡,以此保證酒店信息存儲的安全、信息交流的快捷并且降低了重復建設的成本。
(二)無線、有線相結(jié)合
利用無線城域網(wǎng)接入技術將星級酒店弱電系統(tǒng)的無線、有線相結(jié)合,從而使得住戶可以更加便捷的在酒店中使用wifi等無線技術隨時隨地的上網(wǎng),甩開了網(wǎng)線的困擾。
(三)智能化發(fā)展趨勢
通過弱電系統(tǒng)對酒店營運、管理、服務三個方面進行一個最優(yōu)化的綜合,以此形成一個安全舒適、高效便利、投入合理的星級酒店,就是酒店弱電系統(tǒng)智能化的趨勢。
(四)系統(tǒng)集成趨勢
由于酒店弱電系統(tǒng)構(gòu)建的不全面,因此現(xiàn)在許多的酒店弱電系統(tǒng)的運轉(zhuǎn)都是通過若干子系統(tǒng)各自遵照自身的管理級、通訊協(xié)議和操作聯(lián)合運轉(zhuǎn)的方式實現(xiàn)的,因此數(shù)據(jù)的傳輸并不統(tǒng)一。而系統(tǒng)的集成就是為了加強系統(tǒng)整體協(xié)調(diào)運行的能力,提升各子系統(tǒng)使用網(wǎng)關進行通訊時的效率,從而使酒店弱電系統(tǒng)的構(gòu)建更加合理、統(tǒng)一、高效。