程序設(shè)計范文
時間:2023-04-10 02:35:36
導(dǎo)語:如何才能寫好一篇程序設(shè)計,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
【關(guān)鍵詞】 JSP程序設(shè)計;應(yīng)用能力培養(yǎng);實踐
《JSP程序設(shè)計》是WEB技術(shù)的重要課程之一,由于JSP基于JAVA技術(shù),從安全性、穩(wěn)定性、跨平臺性等方面有著極大的優(yōu)越性,JSP技術(shù)已成為WEB技術(shù)的主流,因此,這門課程已成為高職院校網(wǎng)絡(luò)專業(yè)的一門重要專業(yè)課程,此課程為我院網(wǎng)絡(luò)各專業(yè)必修主干課程。同時,該課程也是學(xué)生畢業(yè)后從事網(wǎng)絡(luò)開發(fā)工作所需具備的基本技能。因此對JSP程序設(shè)計的教學(xué)進行研究并提出教學(xué)改革的思路,以期改善高職JSP程序設(shè)計課程的教學(xué)效果,提高教學(xué)質(zhì)量,更好地實現(xiàn)高職的培養(yǎng)目標有著重要意義。
1 目前JSP程序設(shè)計教學(xué)現(xiàn)狀分析
1.1 JSP程序設(shè)計教學(xué)的評價標準和高職的培養(yǎng)目標不一致。教育部長周濟指出:高等職業(yè)教育的主要任務(wù)是培養(yǎng)高技能人才,我們培養(yǎng)的學(xué)生既要能動腦,更要能動手,經(jīng)過實踐的鍛煉,能夠迅速成長為高技能人才,成為國家建設(shè)不可缺少的重要力量。JSP程序設(shè)計教學(xué)的主要目的是培養(yǎng)學(xué)生程序分析能力,程序設(shè)計能力,以及程序調(diào)試能力,而不在程序本身規(guī)則的學(xué)習(xí)。但JSP程序設(shè)計教學(xué)考核的主要關(guān)注點卻是語法規(guī)則,注重細節(jié)問題,當(dāng)然不能全面評價學(xué)生能力。
1.2 JSP程序本身特點帶來學(xué)習(xí)困難。比如,JSP語法限制不嚴格、程序設(shè)計自由度大本身是程序設(shè)計的優(yōu)點,但初學(xué)者往往能不清哪種表示正確,增加了程序理解的難度;程序設(shè)計本身比較抽象,學(xué)生相關(guān)計算機知識不夠;學(xué)習(xí)程序設(shè)計需要有較強的邏輯思維能力,而我們的學(xué)生在這方面訓(xùn)練不夠。這都給學(xué)生學(xué)習(xí)帶來較大困難。
1.3 傳統(tǒng)的教學(xué)模式也不利于發(fā)揮學(xué)生學(xué)習(xí)的主觀能動性。過去JSP程序設(shè)計的教學(xué)仍延續(xù)課堂教授、布置作業(yè)及實驗的“教本位”的教學(xué)模式,教師是課堂的中心,注重教的原發(fā)性和主動性,忽視了學(xué)生的主體性。不利于調(diào)動學(xué)生學(xué)習(xí)的積極性與主動性,發(fā)揮不了學(xué)生的主觀能動性。
2 JSP程序設(shè)計教學(xué)改革的措施
2.1 準確的定位課程目標。根據(jù)高職高專培養(yǎng)目標的要求,我們在教學(xué)大綱的制定中貫徹 “以應(yīng)用為目的、以必需、夠用為度”的原則。服務(wù)專業(yè)需要,同時注重學(xué)生綜合素質(zhì)、數(shù)學(xué)思維能力的培養(yǎng)。
2.2 采用先進的教學(xué)方法和手段,充分發(fā)揮學(xué)生的主觀能動性。本課程的重點JSP內(nèi)置對象、JSP與數(shù)據(jù)庫的連接、JavaBean與JavaServlet技術(shù),難點主要有:JSP內(nèi)置對象的屬性與方法、JavaBean與JavaServlet技術(shù)。我們的解決方案如下:
2.2.1 針對高職高專類學(xué)生的特點,盡可能使用通俗易懂、深入淺出的語言來敘述各章節(jié)內(nèi)容,并盡可能使用典型例題來說明各章節(jié)知識點的概念與使用方法,努力釋疑各章節(jié)的重點與難點,以求多數(shù)學(xué)生掌握知識的應(yīng)用。
2.2.3 采用同一例題用不同方法實現(xiàn)的教學(xué)手段,從而提高課堂的講課效率和效果。
2.2.4 針對高職高專類學(xué)生理論教學(xué)“必須夠用”的原則,略講了一些理論性較強而不太實用的內(nèi)容,增加了學(xué)生實驗實踐的內(nèi)容。
2.2.5 盡量采用案例、任務(wù)驅(qū)動的教學(xué)方式,針對重點與難點,通過老師演示講解,學(xué)生討論、實驗來增強學(xué)生的分析問題解決問題的能力。
2.2.6 充分采用現(xiàn)代教育技術(shù)來輔助教學(xué)。利用專用計算機做為服務(wù)器,在講課時使所做的程序當(dāng)時就能見到效果,提高學(xué)生的興趣和記憶力。
我們在實踐教學(xué)體系中努力突出職業(yè)技術(shù)教育高層次的個性特征與功能,按照高技能人才培養(yǎng)的特點要求確定知識、技能要求,主要由操作技能、實驗技能、專項能力訓(xùn)練、崗位見習(xí)、社會綜合實踐和畢業(yè)設(shè)計(頂崗實踐)等模塊組成。日常教學(xué)的實踐環(huán)節(jié)占教學(xué)總周數(shù)的比例為50%以上,通常情況下我們的實踐性教學(xué)分為實驗與實訓(xùn)兩部分。實驗課內(nèi)容主要為各章節(jié)的例題與習(xí)題和老師自行布置的典型題目,包含一些驗證性實驗和程序設(shè)計練習(xí),以及流行的開發(fā)平臺的使用技巧,基本上做到與課程教學(xué)同步;實訓(xùn)內(nèi)容一般為一些小型的綜合性應(yīng)用程序開發(fā)等。
由于我們在實踐教學(xué)中采用靈活、實用的教學(xué)方式,進一步激發(fā)了學(xué)生學(xué)習(xí)興趣,促進了學(xué)生主動學(xué)習(xí)的積極性,效果顯著。課程學(xué)完后,所有學(xué)生都達到了用JSP獨立開發(fā)小型網(wǎng)站的能力,畢業(yè)后有許多學(xué)生從事網(wǎng)站開發(fā)工作。
2.3 給學(xué)生搭建多種自主學(xué)習(xí)平臺。一是充分利用網(wǎng)絡(luò)資源,創(chuàng)建教學(xué)網(wǎng)站,提供教學(xué)課件,便于學(xué)生課后自主學(xué)習(xí)與復(fù)習(xí),建立不同層次的題庫與測試內(nèi)容,方便學(xué)生的自我檢查,開辟討論與答疑區(qū),隨時對學(xué)生的學(xué)習(xí)問題進行解答,并開展討論,提高學(xué)生的創(chuàng)新能力。二是開放機房,JSP程序設(shè)計是一門實踐性很強的課程,需要進行大量的上機調(diào)試,來發(fā)現(xiàn)問題、理解問題、掌握程序設(shè)計的方法。通過多種平臺的構(gòu)建,營造以學(xué)生為主體的學(xué)習(xí)環(huán)境與氛圍,充分調(diào)動學(xué)生學(xué)習(xí)欲望。
2.4 制定合適的考核標準。在考核評價方法上,探索多元化的考核評價方法,重視實踐考核,重視過程考核。采用現(xiàn)場實際操作、課題研究與論文寫作、開發(fā)實際項目等方式或幾種方式綜合運用的考核方法,同時考核評價應(yīng)提供多次機會。力求作出客觀地評價。建立以專業(yè)技術(shù)標準和職業(yè)素質(zhì)為基礎(chǔ)的考核體系。在考試考核內(nèi)容選擇方面,既要體現(xiàn)人才培養(yǎng)目標和課程(環(huán)節(jié))目標要求,又要有利于培養(yǎng)學(xué)生運用所學(xué)知識和技術(shù)分析問題和解決問題的能力。真正做到既考知識,又考能力(技能)和素質(zhì),體現(xiàn)應(yīng)知、應(yīng)會。 在考核評價的最終成績是綜合成績,使評價結(jié)果真正反映學(xué)生的實際能力和水平。
3 結(jié)束語
本文所提的教學(xué)改革措施,一切以學(xué)生為中心,充分調(diào)動學(xué)生學(xué)習(xí)的主動性和積極性,積極探索符合高職培養(yǎng)目標的教學(xué)方法和教學(xué)模式,始終以能力的培養(yǎng)為中心,貫徹能力為本位的職教思想。我們一直探索如何有效進行教學(xué),逐步形成了以項目驅(qū)動、實例教學(xué)為主的符合高職學(xué)生學(xué)習(xí)的教學(xué)模式。
參考文獻
[1] 黃榮梅.創(chuàng)新教育在高職計算機教學(xué)中的體現(xiàn)[J].四川職業(yè)技術(shù)學(xué)院學(xué)報,2007,11.
[2] 耿祥義,張躍平.JSP實用教程[M].清華大學(xué)出版社, 2003
篇2
一、前言
Windows提供強大的功能以及友好的圖形用戶界面(GUI),使得它不僅廣泛的用作管理事務(wù)型工作的支持平臺,也被工業(yè)領(lǐng)域的工程人員所關(guān)注。但Windows3.1并非基于優(yōu)先級來調(diào)度任務(wù),無法立即響應(yīng)外部事件中斷,也就不能滿足工業(yè)應(yīng)用環(huán)境中實時事件處理和實時控制應(yīng)用的要求。因此,如何在Windows環(huán)境中處理外部實時事件一直是技術(shù)人員尤其是實時領(lǐng)域工程人員所關(guān)注的問題。目前已有的方法大都采用內(nèi)掛實時多任務(wù)內(nèi)核的方式,如Windows下的實時控制軟件包FLX等,而iRMX實時操作系統(tǒng)則把Windows3.1當(dāng)作它的一個任務(wù)來運行。對于大型的工程項目,開發(fā)人員可采用購買實時軟件然后集成方式。
對中小項目,從投資上考慮就不很經(jīng)濟。如何尋找一種簡明的方法來處理外部實時事件依然顯得很必要。
本文首先闡述Windwos的消息機制及中斷機制,然后結(jié)合DPMI接口,給出一種保護模式下中斷程序的設(shè)計方法,以處理外部實時事件。經(jīng)實際運行結(jié)果表明,該方法具有簡潔、實用、可靠的特點,并同樣可運行于Win95。
二、Windows的消息機制
Windows是一消息驅(qū)動式系統(tǒng),見圖1。Windows消息提供了應(yīng)用程序與應(yīng)用程序之間、應(yīng)用程序與Windows系統(tǒng)之間進行通訊的手段。應(yīng)用程序要實現(xiàn)的功能由消息來觸發(fā),并靠對消息的響應(yīng)和處理來完成。
Windows系統(tǒng)中有兩種消息隊列,一種是系統(tǒng)消息隊列,另一種是應(yīng)用程序消息隊列。計算機的所有輸入設(shè)備由Windows監(jiān)控,當(dāng)一個事件發(fā)生時,Windows先將輸入的消息放入系統(tǒng)消息隊列中,然后再將輸入的消息拷貝到相應(yīng)的應(yīng)用程序隊列中。應(yīng)用程序中的消息循環(huán)從它的消息隊列中檢索每一個消息并發(fā)送給相應(yīng)的窗口函數(shù)中。一個事件的發(fā)生,到達處理它的窗口函數(shù)必需經(jīng)歷上述過程。值得注意的是消息的非搶先性,即不論事件的急與緩,總是按到達的先后排隊(一些系統(tǒng)消息除外),這就使得一些外部實時事件可能得不到及時的處理。
圖1
三、Windows的保護模式及中斷機制
1.Windows的保護模式
保護模式指的是線性地址由一個選擇符間接生成的,該選擇符指向描述表中的某一項;而實模式中則通過一個段/偏移量對來直接尋址。80386(486)CPU提供的保護模式能力包括一個64K的虛擬地址空間和一個4G的段尺寸。Windows3.1實現(xiàn)時有所差別,它支持標準模式和增強模式。標準模式針對286機器,不屬本文探討范圍。增強模式是對386以上CPU而言,Windows正是使用保護模式來打破1M的屏障并且執(zhí)行簡單的內(nèi)存保護。它使用選擇器、描述器和描述器表控制訪問指定內(nèi)存的位置和段。描述器表包括全局描述器表、局部描述器表、中斷描述器表。保護模式與實模式有許多不同。其中顯著的差異是訪問內(nèi)存的機制不同。
2.中斷機制
(1)實模式中斷
為了便于理解,我們先回顧實模式中斷。
在實模式下,中斷向量表IVT起到相當(dāng)重要的作用。無論來自外部硬件的中斷或是內(nèi)部的軟中斷INTn,在CPU中都產(chǎn)生同樣的響應(yīng)。
①CPU將當(dāng)前的指令指針寄存器(IP)、代碼段寄存器(CS)、標志寄存器壓入堆棧。
②然后CPU使用n值作為指向中斷向量表IVT的索引,在IVT中找出服務(wù)例程的遠地址。
③CPU將此遠地址裝入CS:IP寄存器中,并開始執(zhí)行服務(wù)例程。
④中斷例程總以IRET指令結(jié)束。此指令使存在堆棧中的三個值彈出并填入CS、IP和標志寄存器,CPU繼續(xù)執(zhí)行原來的指令。
(2)保護模式中斷
保護模式中斷過程與實模式中斷過程類似,但它不再使用中斷向量表IVT,而使用中斷描述符表(IDT)。值得一提的是,Windows運行時IVT還存在,應(yīng)用程序并不使用它,Windows仍然使用,但含義已不同。
①IVT結(jié)構(gòu):IVT在RAM的0000∶0000之上,占據(jù)開始的1024字節(jié)。
它仍然由BIOS啟動例程設(shè)置,由DOS填充到RAM中。
②IDT中斷描述符表:保護模式下,Windows操作系統(tǒng)為實現(xiàn)中斷機制而建立的一個特殊表,即中斷描述符表IDT。該表被用來保存中斷服務(wù)例程的線性地址,它們是真正的24位或32位地址,沒有段:偏移值結(jié)構(gòu)。中斷描述器表最多可含有256個例程說明,詳細說明請見【3】。I
DT結(jié)構(gòu)見圖2。
圖2
③當(dāng)中斷或異常發(fā)生時,處理過程與實模式類同。當(dāng)前的CS∶IP值和標志寄存器值被存儲。保存的內(nèi)容還包括CPU其他內(nèi)部寄存器的值,以及目前正在被執(zhí)行的任務(wù)的有關(guān)信息(若必須發(fā)生任務(wù)切換的話)。CPU設(shè)法獲取中斷向量后,以它為索引值,查找IDT中的服務(wù)例程遠地址,接著將控制轉(zhuǎn)移到該處的服務(wù)例程。這是與實模式轉(zhuǎn)移到IVT的不同所在。保護模式使用IDTR寄存器分配和定位內(nèi)存中的IDT中斷描述符表。IDT在內(nèi)存中是可移動的,與IVT固定在內(nèi)存中剛好相反。IDT中斷描述符表在Windows中起決定性的作用。理解了Windows下保護模
式的中斷機制。有助于我們理解中斷服務(wù)程序的設(shè)計,它的關(guān)鍵就在于如何將服務(wù)例程的地址放入IDT中斷描述符表中。當(dāng)中斷發(fā)生時,如何將斷點地址及CPU各寄存器值保護起來;中斷結(jié)束時,如何將保護的值恢復(fù)。Windows系統(tǒng)本身并不提供實現(xiàn)上述功能的API,而DOS保護模式接口DPMI正具備了上述的功能。
下面我們首先介紹DPMI接口,然后基于它實現(xiàn)Windows下中斷服務(wù)程序的設(shè)計。
四、DOS保護模式接口DPMI
Windows除了標準服務(wù)外,還支持一組特殊的DOS服務(wù),稱為DOS保護模式接口DPMI,由一些INT 2FH和INT 31H服務(wù)組成。它使應(yīng)用程序能夠訪問PC系列計算機的擴充內(nèi)存,同時維護系統(tǒng)的保護功能。DPMI通過軟件中斷31h來定義了一個新的接口,使得保護模式的應(yīng)用程序能夠用它作分配內(nèi)存,修改描述符以及調(diào)用實模式軟件等工作。
Windows為應(yīng)用程序提供DPMI服務(wù)。即Windows是DPMI的宿主(host),應(yīng)用程序是DPMI的客戶(client),可通過INT-31H調(diào)用得到DPMI服務(wù)。INT-31H本身提供多功能。其中它的中斷管理服務(wù)允許保護模式用于攔截實模式中斷,并且掛住處理器異常。有些服務(wù)能夠和DPMI宿主合作,以維護應(yīng)用程序的虛擬中斷標志。
可以用INT31H來掛住保護模式中斷向量,以中斷方式處理外部實時事件。利用INT31H,功能0205H:設(shè)置保護模式中斷向量,將特定中斷的保護模式處理程序的地址置入中斷向量里。調(diào)用方式:AX=0205H,BL=中斷號,CX∶(E)DX=中斷處理程序選擇符:偏移值。返回:執(zhí)行成功CF=清零,執(zhí)行失敗CF=置位。
掛住/解掛中斷向量的時機很重要。主窗口第一次被創(chuàng)建時會傳送它WM-CREATE消息,這時是掛住中斷向量的最好時機。退出時需解掛向量,否則Windows可能崩潰。主窗口接收到WM-DE-STROY之后進行解掛工作,是最適合的。解掛向量可先用INT35H,0204H功能將老的中斷向量保存,退出時用INT35H,0205H恢復(fù)。
五、編程實現(xiàn)
有了DPMI的支持,我們就可以很方便地處理數(shù)據(jù)采集、串行
通信等工業(yè)過程中的實時事件。下面以Windows3.1平臺下中斷方式實現(xiàn)的串行通信為例,說明中斷程序的編制和實現(xiàn)。為便于參考,給出了詳細的代碼。開發(fā)平臺BC3.1/BC4.5,其本身支持0.9版的DPMI,無需運行其它支持DPMI的軟件。編程語言C,可與C++混合編譯。
初始化COM1,9600波特率,每字符8bits,1個停止位,中斷接收,查詢發(fā)送。
//windows asy communication
//by Li Xiuming
//last modified on June 25,1996
#include〈windows.h〉
#include〈dos.h〉
void interrupt far DataReceive();
void interrupt far (*old-vector)();
unsigned char datacom-r[1024],datacom-s[1024];
int inflag=0;
unsigned int s8259;
int InitCom1()
{ //串口1初使化
s8259=inportb(0x21); //讀入8259當(dāng)前狀態(tài)并保存
outportb(0x21,s8259&0xe8); //初始化8259,允許0x0c號中斷
outportb(0x3fb,0x83);
outportb(0x3f8,0x0c);
outportb(0x3f9,0x00);
outportb(0x3fb,0x03);
outportb(0x3fc,0x08); //允許中斷信號送到8259A,以便能中斷
outportb(0x3f9,0x01); //0x01,中斷允許
return 1;
}
void interrupt far DataReceive()
{ //中斷接收子程序
static int i=0; //靜態(tài)局部變量
char rechar=0; //每中斷一次,i自動加1
rechar=inportb(0x3f8); //從數(shù)據(jù)口讀出發(fā)送過來的數(shù)據(jù)
if(inflag==0)
{
if(rechar!=s &&i==0) //幀起始
{
i=0;
goto ll;
}
datacom-r[i++]=rechar; //存入datacom-r[](通信緩沖區(qū))
if(rechar==e) //幀結(jié)束
{
inflag=1;
i=0;
}
}
ll:outportb(0x20,0x20); //回送中斷結(jié)束標志
}
//調(diào)用DPMI
//保存舊的0CH號保護模式中斷向量
//設(shè)置新的保護模式中斷服務(wù)例程
void InitCom(void)
{
asm{
cli
mov ax,204h
mov bl,0ch
int 31h
sti
}
old-vector=MK-FP(-CX,-DX);//保存
asm{ cli //設(shè)置新的0x0c中斷服務(wù)例程
mov ax,205h
mov bl,0ch
mov cx,seg datareceive
mov dx,offset datareceive
int 31h
sti
}
InitCom1();
}
//恢復(fù)8259狀態(tài)
//恢復(fù)0CH保護模式向量
void RestoreComm(void)
{
outportb(0x21,s8259);
asm{
cli
mov ax,205h
mov bl,0ch
mov cx,seg old-vector
mov dx,offset old-vector
int 31h
sti
}
}
在窗口第一次被創(chuàng)建時會傳送它WM-CREATE消息,這時調(diào)用InitCom()即可。在主窗口關(guān)閉時,即主窗口中收到WM-DESTROY消息時,調(diào)用RestoreComm()恢復(fù)原來的狀態(tài)。
這樣在對串口初始化,設(shè)置中斷服務(wù)例程后,通信事件發(fā)生時,會立即跳入中斷子程序中執(zhí)行,越過系統(tǒng)的消息隊列,達到實時處理通信事件的目的。而數(shù)據(jù)處理模塊可通過全局標志flag訪問全局的數(shù)據(jù)通信緩沖區(qū)獲取實時數(shù)據(jù)。這種實現(xiàn)方式與基于消息機制的Windows通信API實現(xiàn)相比具有實時性強的特點,因為它超過Windows系統(tǒng)的兩!極消息機制。
上述程序已在實際系統(tǒng)中得到應(yīng)用。在Windows 3.1支持下,同時運行三個Windows任務(wù):服務(wù)器SERVER(內(nèi)有實時串行通信,多個網(wǎng)絡(luò)數(shù)據(jù)子服務(wù)),客戶CLIENT,FOXPRO數(shù)據(jù)庫系統(tǒng)。整個系統(tǒng)運行良好。切換到WIN95平臺下(支持0.9版DPMI),系統(tǒng)也運行良好。
參考文獻
1 張豫夫、曹建文譯.【澳】Barry Kauler著.Windows匯編語言及系統(tǒng)程序設(shè)計.北京大學(xué)出版社,1995
篇3
關(guān)鍵詞:C程序設(shè)計;多媒體教學(xué);案例教學(xué);互動式教學(xué)
《C程序設(shè)計》是計算機專業(yè)的必修課,也逐漸成為非計算機專業(yè)學(xué)習(xí)的課程。它是學(xué)生入學(xué)后系統(tǒng)地學(xué)習(xí)與高級語言和程序設(shè)計有關(guān)的一門新課程,再加上C程序設(shè)計集抽象性、邏輯性、實踐性于一身,讓學(xué)生感覺十分難學(xué)。在C程序設(shè)計教學(xué)過程中,一方面要求教師能夠準確把握授課內(nèi)容,有效地組織教學(xué);另一方面要求教師應(yīng)用適當(dāng)?shù)慕虒W(xué)方法,充分調(diào)動學(xué)生學(xué)習(xí)積極性,這樣才能提高教學(xué)質(zhì)量。根據(jù)多年教學(xué)實踐,以現(xiàn)代教學(xué)理論和技術(shù)為基礎(chǔ),文章總結(jié)了適合于C程序設(shè)計課程的教學(xué)方法。
一、多媒體教學(xué)和傳統(tǒng)課堂講授有機結(jié)合
在C程序設(shè)計教學(xué)過程中,我們要根據(jù)教學(xué)內(nèi)容的特點,將傳統(tǒng)教學(xué)與多媒體教學(xué)有機結(jié)合。例如:對定義、概念較多,沒有深奧的理論也沒有多少邏輯推理的內(nèi)容,就采用多媒體教學(xué),克服傳統(tǒng)教學(xué)無法板書的缺點,課堂教學(xué)也不再顯得枯燥無味,優(yōu)化教學(xué)過程。在多媒體課件制作上,應(yīng)注重知識描述言簡意賅,而不僅僅是教材的簡單拷貝。但多媒體教學(xué)也有不利之處,不恰當(dāng)?shù)氖褂脮稚W(xué)生注意力,影響對主要問題的理解和想象力的發(fā)揮。例如:對于案例分析或算法分析,我們就要發(fā)揮傳統(tǒng)教學(xué)的優(yōu)勢,進行課堂討論、利用板書講解方法、思想,根據(jù)題目求解的過程,一步一步把結(jié)果“寫”出來,把問題層層剖析、層層深入,達到師生互動的效果,學(xué)生的想象力就會得到充分的發(fā)揮。在實踐平臺上,將該課程配套實驗平臺VC++6.0搭建于課堂之上,在語法知識點的講授后,通過所選案例,讓學(xué)生參與一起分析,一起寫出算法描述,并在課堂上同步編寫程序,然后調(diào)試和實現(xiàn)程序,使抽象的結(jié)果通過程序的運行得以實現(xiàn),讓學(xué)生眼見為實,減弱了程序設(shè)計的抽象性,加深了對程序設(shè)計過程的體驗,使學(xué)生較輕松地逐步掌握程序設(shè)計的一般方法步驟。
另外,教師可以充分利用網(wǎng)絡(luò)資源,將電子教案、課件、習(xí)題等放在網(wǎng)上,供學(xué)生自行調(diào)用,同時每位教師與所帶班級都可建立課程QQ群,方便提問和答疑,以彌補課堂教學(xué)的不足。教師要合理地將多媒體教學(xué)和傳統(tǒng)課堂講授有機地結(jié)合起來,以達到最佳的教學(xué)效果。
二、采用案例教學(xué),培養(yǎng)學(xué)生的興趣
C程序設(shè)計是應(yīng)用性很強的課程,它既有理論又有實踐,既講方法又講動手能力。對于一些既枯燥又比較抽象難懂的概念和語法,可以從案例入手,通過給學(xué)生演示、讓學(xué)生模仿,在實際應(yīng)用中去探究和領(lǐng)悟這些概念,并適時地加以歸納總結(jié)和概念的延伸,讓學(xué)生在輕松愉快的氣氛中學(xué)習(xí)新知識。
案例教學(xué)法打破了以教材為中心的傳統(tǒng)教學(xué)模式,不按教材的順序授課,而是以精選出的程序設(shè)計的案例為中心,把要學(xué)習(xí)的語法和概念融入到具體案例中來講解。整個教學(xué)過程中強調(diào)在應(yīng)用中學(xué)習(xí),從而避免了枯燥的理論說教,不僅能增進學(xué)生的學(xué)習(xí)興趣,而且對提高學(xué)生綜合分析和解決實際問題的能力也大有幫助。案例教學(xué)法是培養(yǎng)學(xué)生學(xué)習(xí)興趣的有效途徑一。
三、采用互動式教學(xué),提高學(xué)生的參與積極性
互動式教學(xué)就是要改變老師是課堂上唯一主體形式的狀況,讓學(xué)生也作為主體形式參與到課堂上來?;邮浇虒W(xué)可以提高學(xué)生的參與積極性,還可以避免學(xué)生上課注意力不集中的現(xiàn)象?;邮浇虒W(xué)在形式上有老師提問,讓學(xué)生上黑板演算、上教師機操作,讓學(xué)生討論,讓學(xué)生進行正誤判析,或者請有獨特思路的同學(xué)演示自己的方法或程序,對比各種方法的優(yōu)缺點,鼓勵大家再提出新方法。實踐證明,這種教學(xué)方法效果顯著,課堂活躍,學(xué)生的參與程度很高。
四、采用問題驅(qū)動教學(xué),加深知識理解的深度
在C程序設(shè)計課程中,有一些概念之間的差別和程序的設(shè)計步驟如果只通過教師講述,學(xué)生在字面上可以接受,但在理解深度上往往難以達到令人滿意的效果,如果能設(shè)計出一系列問題,讓學(xué)生在實踐和解決問題的過程中自己去探究和體驗,可以使學(xué)生更深入的理解。采用問題驅(qū)動法,一切都要求學(xué)生自己動手動腦設(shè)計,他們在操作過程中探究和解決問題的積極性和主動性得到了調(diào)動,從而達到了我們的教學(xué)目標。
五、加強上機實驗教學(xué)設(shè)計,輔助理論教學(xué)
學(xué)習(xí)《C程序設(shè)計》不能滿足于能看懂書上的程序,而應(yīng)當(dāng)熟練地掌握程序設(shè)計的全過程,即獨立編寫出程序,獨立上機調(diào)試程序,獨立運行程序和分析結(jié)果。C程序設(shè)計實驗教學(xué)的目的應(yīng)是:緊密配合理論教學(xué),通過相關(guān)實驗,幫助和加深對語句功能的理解;了解和熟悉C語言程序開發(fā)的環(huán)境;學(xué)會上機調(diào)試,善于發(fā)現(xiàn)程序中的錯誤,并能很快地排除這些錯誤,使程序能正確運行。為保證上機課質(zhì)量,在上機課前教師應(yīng)依據(jù)所教課程進度,精心設(shè)計上機內(nèi)容。要求學(xué)生在上機前準備好程序,上機是主要是編輯輸入程序和調(diào)試運行程序,學(xué)生上機目的明確,任務(wù)具體,避免了上機的盲目性,從而提高上機的效率和質(zhì)量??紤]學(xué)生的個體差異,教師可設(shè)置必做和選做實驗。這兩類實驗,前者目的在于幫助學(xué)生掌握基礎(chǔ)知識,后者則在于培養(yǎng)和鼓勵學(xué)生的學(xué)習(xí)興趣、擴大知識面以及培養(yǎng)學(xué)生的應(yīng)用能力和創(chuàng)新意識。
教師要督促學(xué)生及時做好上機總結(jié)。上機總結(jié)要明確上機任務(wù)完成情況以及是否達到了上機要求,對于上機過程中遇到的問題和解決情況要有分析說明,要總結(jié)上機后的收獲、取得的經(jīng)驗和教訓(xùn)。這樣才能真正反映出學(xué)生上機情況和水平,從而使知識和技能系統(tǒng)化,加深對實踐內(nèi)容的理解。教師應(yīng)對上機過程中學(xué)生出現(xiàn)的一些較普遍的問題總結(jié)整理,以便在下次課中講解說明,解疑答惑。
六、結(jié)束語
要教好C程序設(shè)計課程,關(guān)鍵在于教師要有效地組織教學(xué),激發(fā)學(xué)生的學(xué)習(xí)興趣,讓學(xué)生主動、愉快地學(xué)習(xí)。實踐證明,把多媒體課件教學(xué)和傳統(tǒng)教學(xué)有機結(jié)合起來,取長補短,采用適當(dāng)?shù)慕虒W(xué)方法,能達到好的教學(xué)效果,有效提高教學(xué)質(zhì)量。
參考文獻:
[1]譚浩強.C程序設(shè)計(第三版)[H].北京:清華大學(xué)出版社,2005
篇4
關(guān)鍵詞:多線程;類;接口;同步
中圖分類號:TP311.11 文獻標識碼:A 文章編號:1007-9599 (2013) 02-0000-02
1 引言
通常,需要將程序劃分為數(shù)個獨立執(zhí)行的子任務(wù),這些獨立的子任務(wù)即所謂的線程。線程是進程中的一個單一連續(xù)控制流程。一個進程可以擁有多個并行的線程。多線程序的用途很廣泛。一般說來,當(dāng)程序的某一部分與特定事件或資源捆綁在一塊時,程序其他部分的執(zhí)行不因此而擱置,于是便產(chǎn)生一個和該事件或該資源相關(guān)的線程,并且讓此線程不干擾主程序的運作。多線程可以減輕系統(tǒng)性能方面的瓶頸,提高CPU的處理器的效率。
2 線程的創(chuàng)建與生命周期
2.1 線程的創(chuàng)建
產(chǎn)生線程最簡單的方法,是通過繼承class Thread來實現(xiàn)。這個class擁有產(chǎn)生、運行線程的所有的必要機制。在Thread中,最重要的方法是run( ),通過覆寫此方法,使線程執(zhí)行指派的工作。這樣,run( )就和程序中的其他線程同時執(zhí)行。
2.2 線程的生命周期
(1)創(chuàng)建狀態(tài)。一個線程對象被創(chuàng)建。(2)可運行狀態(tài)。線程獲得了CPU的執(zhí)行時間,便可運行。雖然處于可運行狀態(tài),但自定義線程對象并不一定立即運行,其是否運行是由Java的運行系統(tǒng)來協(xié)調(diào)的。(3)阻塞狀態(tài)。阻塞狀態(tài)就是一個線程對象因為人為或系統(tǒng)原因必須暫停運行,以后還可以恢復(fù)運行的狀態(tài)。當(dāng)下面的幾種情況之一發(fā)生后,線程對象就由可運行狀態(tài)進入阻塞狀態(tài)。一是通過sleep( )讓線程進入休眠狀態(tài);二是通過suspend( )暫停線程;三是通過wait( )暫停線程;四是線程正在等待某個I/O動作的完成;五是線程試著調(diào)用另一個對象的synchronized函數(shù)。(4)終止?fàn)顟B(tài)。線程的正常結(jié)束方式,就是從其run( )中回返?;蛘呤欠钦=Y(jié)束,如調(diào)用了stop( )。
3 多線程實現(xiàn)方式
3.1 通過擴展Thread類來創(chuàng)建多線程
從程序中可以看出,每個線程分別對應(yīng)50套服裝,它們中間沒有其他聯(lián)系,也就是說,三個線程之間的地位是平等的,不存在誰先誰后的問題,因此,應(yīng)該是機會均等地得到CPU的處理。但實際上,這三個線程并不一定是交換依次運行,而是在三個線程同時被執(zhí)行的情況下,有的服裝會賣得遲一些,而有的服裝會提前賣完,所以,三個線程在真正工作時,有的被分配的CPU的時間多一些,而有的相反要少一些。
從上可知,通過繼承線程類而創(chuàng)建的多線程,在程序上看,代碼是一樣的,可是在執(zhí)行中,彼此沒有聯(lián)系,擁有自己的資源。
3.2 通過實現(xiàn)Runnable接口來創(chuàng)建多線程
4 線程同步
一個變量被多個線程訪問,會帶來沖突的問題,那么就需要相應(yīng)的機制解決沖突,這樣,就引入了synchronized 關(guān)鍵字。以下例說明,A和B兩人同管一個帳本,A負責(zé)存款事情,B負責(zé)取款事情。A使用帳本時,B被禁止使用,反之亦然。程序中是否需要多線程,要考慮它是否符合多線程的特點,多線程操作機制對線程通信和線程管理的強大支持才能有用武之地,這時使用多線程才是最合適的。
參考文獻:
[1]侯捷.Java編程思想[M].機械工業(yè)出版社,2005.
[2]聶哲,袁梅冷,楊淑萍.Java面向?qū)ο蟪绦蛟O(shè)計[M].高等教育出版社,2005.
[3]張居敏.Java程序設(shè)計經(jīng)典教程[M].電子工業(yè)出版社,2008.
篇5
摘 要 本文通過對基本遺傳算法添加初始化啟發(fā)信息、改進交叉算子和利用本身所固有的并行性構(gòu)架粗粒度并行遺傳算法等方法提高了遺傳算法的收斂性及其尋優(yōu)能力。 關(guān)鍵詞 遺傳算法;tsp;交叉算子 1 引言 遺傳算法是模擬生物在自然環(huán)境中的遺傳和進化過程而形成的一種自適應(yīng)全局優(yōu)化概率搜索算法??偟恼f來,遺傳算法是按不依賴于問題本身的方式去求解問題。它的目標是搜索這個多維、高度非線性空間以找到具有最優(yōu)適應(yīng)值(即最小費用的)的點[1]。 基本遺傳算法是一個迭代過程,它模仿生物在自然環(huán)境中的遺傳和進化機理,反復(fù)將選擇算子、交叉算子和變異算子作用于種群,最終可得到問題的最優(yōu)解和近似最優(yōu)解。 2 遺傳算法程序設(shè)計改進比較 2.1 基本遺傳算法對tsp問題解的影響 本文研究的遺傳算法及改進算法的實現(xiàn)是以c++語言為基礎(chǔ),在windows2000的版本上運行,其實現(xiàn)程序是在microsoft visual stadio 6.0上編寫及運行調(diào)試的。 1) 遺傳算法的執(zhí)行代碼 m_tsp.initpop(); //種群的初始化 for(int i=0;i<m_tsp.returnpop();i++) m_tsp.calculatefitness(i); //計算各個個體的適應(yīng)值 m_tsp.statistics(); //統(tǒng)計最優(yōu)個體 while(entropy>decen||variance>decvar)//m_tsp.m_gen<100) { //將新種群更迭為舊種群,并進行遺傳操作 m_tsp.alternate(); //將新種群付給舊種群 m_tsp.generation(); //對舊種群進行遺傳操作,產(chǎn)生新種群 m_tsp.m_gen++; m_tsp.statistics(); //對新產(chǎn)生的種群進行統(tǒng)計 } 2) 簡單的遺傳算法與分支定界法對tsp問題求解結(jié)果的對比 遺傳算法在解決npc問題的領(lǐng)域內(nèi)具有尋找最優(yōu)解的能力。但隨著城市個數(shù)的增加,已沒有精確解,無法確定遺傳算法求解的精度有多高。一般情況下,當(dāng)?shù)鷶?shù)增大時,解的精度可能高,但是時間開銷也會增大。因此可以通過改進遺傳算法來提高搜索能力,提高解的精度。 表1 10個城市的tsp問題求解結(jié)果數(shù)據(jù) 算法 試驗結(jié)果 簡單遺傳算法 分支定界法 最佳解 時間 精確解 時間 試驗1 2448.610037 5s 2448.610037 00:07:30 試驗2 2448.610037 13s 試驗3 2448.610037 9s 試驗4 2459.543054 10s 試驗5 2459.543054 7s 2.2 初始化時的啟發(fā)信息對tsp問題解的影響 1) 初始化啟發(fā)信息 在上述實驗算法的基礎(chǔ)上,對每一個初始化的個體的每五個相鄰城市用分支界定法尋找最優(yōu)子路徑,然后執(zhí)行遺傳算法。 2) 遺傳算法與含有啟發(fā)信息的遺傳算法求解結(jié)果的對比 當(dāng)城市數(shù)增至20個時,用分支定界法已經(jīng)不可能在可以接受的時間內(nèi)得到精確的解了,只能通過近似算法獲得其可接受的解。試驗設(shè)計中算法的截止條件:固定迭代1000代。表2中的平均最優(yōu)解為經(jīng)過多次試驗(10次以上)得到的最優(yōu)解的平均值,最優(yōu)解的出現(xiàn)時間為最優(yōu)解出現(xiàn)的平均時間,交叉操作次數(shù)為最優(yōu)解出現(xiàn)時交叉次數(shù)的平均值。 表2 20個城市的tsp問題求解結(jié)果數(shù)據(jù) 算法 交叉操作 次數(shù) 最優(yōu)解 出現(xiàn)時間 平均 最優(yōu)解 簡單遺傳算法 80244.4 79.4s 1641.8 含初始化啟發(fā)信息的ga 79000.2 37.4s 1398.9 從表2中可以看出,當(dāng)初始種群時引入啟發(fā)信息將提高遺傳算法的尋優(yōu)能力。同時縮短了遺傳算法的尋優(yōu)時間和問題的求解精度。 2.3 交叉算子對tsp問題解的影響 1)循環(huán)貪心交叉算子的核心代碼 for(i=1;i<m_chrom;i++) { flag=0; city=m_newpop[first].chrom[i-1]; //確定當(dāng)前城市 j=0; while(flag==0&&j<4) { sign=adjcity[city][j]; //adjcity數(shù)組的數(shù)據(jù)為當(dāng)前城市按順序排列的鄰接城市 flag=judge(first,i,sign); //判斷此鄰接城市是否已經(jīng)存在待形成的個體中 j++; } if(flag= =0) //如果所有鄰接城市皆在待擴展的個體中 { while(flag= =0) { sign=(int)rand()/(rand_max/(m_ chrom-1)); //隨機選擇一城市 flag=judge(first,i,sign); } } if(flag==1) m_newpop[first].chrom[i]=sign; } 2)問題描述與結(jié)果比較 下面筆者用經(jīng)典的測試遺傳算法效率的oliver tsp問題來測試循環(huán)貪心交叉算子的解的精度和解效率。oliver tsp問題的30個城市位置坐標如表3所示[2]。 表3 oliver tsp問題的30個城市位置坐標 城市編號 坐標 城市編號 坐標 城市編號 坐標 1 (87,7) 11 (58,69) 21 (4,50) 2 (91,83) 12 (54,62) 22 (13,40) 3 (83,46) 13 (51,67) 23 (18,40) 4 (71,44) 14 (37,84) 24 (24,42) 5 (64,60) 15 (41,94) 25 (25,38) 6 (68,58) 16 (2,99) 26 (41,26) 7 (83,69) 17 (7,64) 27 (45,21) 8 (87,76) 18 (22,60) 28 (44,35) 9 (74,78) 19 (25,62) 29 (58,35) 10 (71,71) 20 (18,54) 30 (62,32) 表4 貪心交叉與部分匹配交叉的比較(oliver tsp問題的30個城市) 交叉算子 交叉操作次數(shù) 平均時間 平均最優(yōu)解 部分匹配交叉 59760 31.2s 517.0 貪心交叉 15774 28.6s 433.4 從表4、圖1中可以看到,貪心交叉算子大大提高了遺傳算法的尋優(yōu)能力,同時也降低了交叉操作次數(shù)。在多次試驗中,貪心交叉算子找到的最優(yōu)解與目前記載的最佳數(shù)據(jù)的誤差率為2.7%。而部分匹配交叉算子找到的最優(yōu)解與目前記載的最佳數(shù)據(jù)的誤差率高達7%。從而可以得到交叉算子對于遺傳算法
的計算效率和計算結(jié)果起主導(dǎo)性作用[3]。
圖1 遺傳算法的收斂過程 2.4 并行遺傳算法消息傳遞實現(xiàn)的核心代碼 1)主程序代碼 //接收各個從程序的最優(yōu)個體 for(i=0;i<slave;i++) { mpi_recv(rchrom[i],chrom,mpi_unsigned,mpi_any_source,gen,mpi_comm_world,&status); } //計算接收各個從程序的最優(yōu)個體的回路距離 for(i=0;i<slave;i++) { fitness[i]=0.0; for(int j=0;j<chrom-1;j++) fitness[i]=fitness[i]+distance[rchrom[i][j]][rchrom [i][j+1]]; fitness[i]=fitness[i]+distance[rchrom[i][0]][rchrom [i][chrom-1]]; } //找到最優(yōu)的個體并把它記錄到文件里 for(i=0;i<slave;i++) { if(1/fitness[i]>min) { sign=i; min=1/fitness[i]; } } fwrite(&gen,sizeof(int),1,out); for(i=0;i<chrom;i++) fwrite(&rchrom[sign][i],sizeof(unsigned),1,out); fwrite(&fitness[sign],sizeof(double),1,out); //每九代向從程序發(fā)送一個最優(yōu)個體 if(gen%9==0) mpi_bcast(rchrom[sign],chrom,mpi_ unsigned,0,mpi_comm_world); 2)從程序代碼 //將上一代的最優(yōu)個體傳回主程序 mpi_send(rchrom1,chrom,mpi_unsigned,0,gen,mpi_comm_world); //每九代接收一個最優(yōu)個體并將其加入種群中替換掉最差個體 if(gen%9==0) { pi_bcast(rchrom2,chrom,mpi_unsigned,0,mpi_comm_world); tsp.indialternate(rchrom2); } //進行下一代的計算 tsp.aternate(); tsp.generation(); tsp.statistics(); 3)并行遺傳算法的性能 筆者在mpi并行環(huán)境下,用c++語言實現(xiàn)了一個解決tsp問題的粗粒度模型的并行遺傳算法。該程序采用的是主從式的mpi程序設(shè)計,通過從硬盤的文件中讀取數(shù)據(jù)來設(shè)置染色體長度、種群的規(guī)模、交叉概率和變異概率等參數(shù)。試驗環(huán)境為曙光tc1700機,測試的對象是oliver tsp問題的30個城市的tsp問題。 正如在測試串行遺傳算法所提到的數(shù)據(jù)結(jié)果,并行遺傳算法也沒有達到目前所記錄的最好解,但是它提高了算法的收斂性,并行遺傳算法的收斂趨勢如圖2所示[4]。 圖2 遺傳算法的收斂過程 3 結(jié)束語 本文通過對基本遺傳算法的不斷改進,證明了添加啟發(fā)信息、改進遺傳算子和利用遺傳算法固有的并行性都可以提高遺傳算法的收斂性,其中對遺傳算法交叉算子的改進可以大大提高遺傳算法的尋優(yōu)能力。 參考文獻 [1] 劉勇、康立山,陳毓屏著. 非數(shù)值并行算法-遺傳算法.北京:科學(xué)出版社 1995.1 [2] i m oliver d j smith and j r c holland,a study of permutation crossover operators on the traveling salesman[c]// problem of the second international conference on genetic algorithms and their application,erlbaum 1897: 224-230 [3] 于海斌,王浩波,徐心和. 兩代競爭遺傳算法及其應(yīng)用研究 .信息與控制,2000 vol.29,no.4:309-314 [4]穆艷玲,李學(xué)武,高潤泉. 遺傳算法解tsp問題的并行實現(xiàn).北京聯(lián)合大學(xué)學(xué)報(自然科學(xué)版),2006 vol.20 no.2: 40-43
篇6
摘要:本文指出程序設(shè)計語言教學(xué)的關(guān)鍵是講述程序設(shè)計的思想和方法,而不是拘泥于語言細節(jié),并探討了“高級語言程序設(shè)計”教學(xué)改革的思想和方法,介紹了我校的教學(xué)經(jīng)驗。
關(guān)鍵詞:程序設(shè)計;教學(xué)改革;C語言
中圖分類號:G642
文獻標識碼:B
1指導(dǎo)思想
目前計算機教育面向應(yīng)用,學(xué)生學(xué)習(xí)的主要目的是“應(yīng)用”程序設(shè)計語言,是學(xué)會如何用程序解決應(yīng)用領(lǐng)域的問題,這不需要細致地研究程序設(shè)計語言本身十分嚴格的語法和語義?;谶@種認識,我們開始嘗試程序設(shè)計課程在的教學(xué)改革,開始把授課重點轉(zhuǎn)移到“程序設(shè)計”上。經(jīng)過幾年的探討,逐漸形成了“以程序設(shè)計為主線”的指導(dǎo)思想。
2教學(xué)內(nèi)容
在“以程序設(shè)計為主線”的思想指導(dǎo)下,我們首先研究程序設(shè)計課程的教學(xué)內(nèi)容,對C語言本身采取“有所取、有所不取”的策略。對于那些常用的語言成分,穿插在程序設(shè)計過程中詳細準確的介紹;對于那些與程序設(shè)計方法聯(lián)系不太緊要,但還算常用的部分,放在最后簡單介紹;而對于那些與講述程序設(shè)計方法關(guān)系不太大,也不常用的部分,則根本不涉及。如表1所示。
3教學(xué)方法
采取以“案例”驅(qū)動的方法組織教學(xué),讓程序設(shè)計始終貫穿于整個教學(xué)過程之中。針對程序設(shè)計的每個知識模塊都采取如下模式講授:提出有意義的問題―設(shè)計算法―分析算法特點―編出程序―介紹使用的C語言成分―配合講述大量例題―課后習(xí)題。重點放在設(shè)計算法和講述算法特點上。針對各個知識模塊,選用案例如表2。
4教學(xué)手段
課堂教學(xué):利用現(xiàn)代化多媒體手段與傳統(tǒng)方式相結(jié)合的方式進行授課。整個教學(xué)過程直接在C編譯環(huán)境下進行,并且使用PPT演示和傳統(tǒng)的黑板版書互相配合。例題大部分在C編譯環(huán)境直接編譯運行,并得到結(jié)果;算法設(shè)計過程,邏輯分析使用傳統(tǒng)版書在黑板上進行;課程提綱、知識要點以及一些執(zhí)行過程等則使用PPT演示。與單純的傳統(tǒng)教學(xué)相比,此種方式既節(jié)約了傳統(tǒng)的板書時間,以更加整齊、生動和可重現(xiàn)方式展現(xiàn)課程內(nèi)容,增加了信息量,達到了提高教學(xué)效率和提升教學(xué)效果目的。
實踐教學(xué):包括課堂實踐、實驗課、課程設(shè)計、科技活動小組等。課堂上直接在C編譯環(huán)境下講授例題和習(xí)題,使學(xué)生初步感受實踐過程;實驗課學(xué)生自己動手完成有目的布置的實驗題目,使學(xué)生親身體驗程序設(shè)計的全過程;課程設(shè)計以3~5人的小組方式進行,使用較大型的程序讓學(xué)生深刻體會程序開發(fā)的全過程,初步體驗軟件工程方法,并培養(yǎng)責(zé)任感和團隊精神;科技活動小組由學(xué)生自愿組成,參與教師的科研項目或由教師指導(dǎo)選題,培養(yǎng)學(xué)生的初步科研能力和創(chuàng)新精神。
考核:包括理論課程考核、實驗課考核、課程設(shè)計考核。理論課考核采用閉卷考試與平時作業(yè)成績結(jié)合方式進行;實驗課考核采用實驗報告、平時實驗表現(xiàn)、綜合實驗成績相結(jié)合方式進行;課程設(shè)計考核按小組記分,每個小組一個分數(shù),采用檢查實驗結(jié)果和小組答辯相結(jié)合方式進行。
課程網(wǎng)站:包括了本課程的介紹、教學(xué)大綱、教材、多媒體CAI課件、多媒體的電子教案、遠程網(wǎng)絡(luò)課程、習(xí)題庫、習(xí)題解答、疑難問題解答等內(nèi)容,并且開辟了師生交流的專門空間,不僅為學(xué)生提供了新穎的教學(xué)通道而且增強了師生間的交流。
參考文獻
[1] 張長海,陳娟. 程序設(shè)計基礎(chǔ)[M]. 北京:高等教育出版社,2008.
[2] 張長海,陳娟. 程序設(shè)計基礎(chǔ)習(xí)題集及選解[M]. 北京:清華大學(xué)出版社,2008.
[3] 石峰. 程序設(shè)計基礎(chǔ)[M]. 北京:清華大學(xué)出版社,2003.
[4] 解閔等. 基于構(gòu)建主義的“C程序設(shè)計”分段教學(xué)[J]. 計算機教育,2007,(10).
篇7
一、前言
Windows提供強大的功能以及友好的圖形用戶界面(GUI),使得它不僅廣泛的用作管理事務(wù)型工作的支持平臺,也被工業(yè)領(lǐng)域的工程人員所關(guān)注。但Windows3.1并非基于優(yōu)先級來調(diào)度任務(wù),無法立即響應(yīng)外部事件中斷,也就不能滿足工業(yè)應(yīng)用環(huán)境中實時事件處理和實時控制應(yīng)用的要求。因此,如何在Windows環(huán)境中處理外部實時事件一直是技術(shù)人員尤其是實時領(lǐng)域工程人員所關(guān)注的問題。目前已有的方法大都采用內(nèi)掛實時多任務(wù)內(nèi)核的方式,如Windows下的實時控制軟件包FLX等,而iRMX實時操作系統(tǒng)則把Windows3.1當(dāng)作它的一個任務(wù)來運行。對于大型的工程項目,開發(fā)人員可采用購買實時軟件然后集成方式。
對中小項目,從投資上考慮就不很經(jīng)濟。如何尋找一種簡明的方法來處理外部實時事件依然顯得很必要。
本文首先闡述Windwos的消息機制及中斷機制,然后結(jié)合DPMI接口,給出一種保護模式下中斷程序的設(shè)計方法,以處理外部實時事件。經(jīng)實際運行結(jié)果表明,該方法具有簡潔、實用、可靠的特點,并同樣可運行于Win95。
二、Windows的消息機制
Windows是一消息驅(qū)動式系統(tǒng),見圖1。Windows消息提供了應(yīng)用程序與應(yīng)用程序之間、應(yīng)用程序與Windows系統(tǒng)之間進行通訊的手段。應(yīng)用程序要實現(xiàn)的功能由消息來觸發(fā),并靠對消息的響應(yīng)和處理來完成。
Windows系統(tǒng)中有兩種消息隊列,一種是系統(tǒng)消息隊列,另一種是應(yīng)用程序消息隊列。計算機的所有輸入設(shè)備由Windows監(jiān)控,當(dāng)一個事件發(fā)生時,Windows先將輸入的消息放入系統(tǒng)消息隊列中,然后再將輸入的消息拷貝到相應(yīng)的應(yīng)用程序隊列中。應(yīng)用程序中的消息循環(huán)從它的消息隊列中檢索每一個消息并發(fā)送給相應(yīng)的窗口函數(shù)中。一個事件的發(fā)生,到達處理它的窗口函數(shù)必需經(jīng)歷上述過程。值得注意的是消息的非搶先性,即不論事件的急與緩,總是按到達的先后排隊(一些系統(tǒng)消息除外),這就使得一些外部實時事件可能得不到及時的處理。
圖1
三、Windows的保護模式及中斷機制
1.Windows的保護模式
保護模式指的是線性地址由一個選擇符間接生成的,該選擇符指向描述表中的某一項;而實模式中則通過一個段/偏移量對來直接尋址。80386(486)CPU提供的保護模式能力包括一個64K的虛擬地址空間和一個4G的段尺寸。Windows3.1實現(xiàn)時有所差別,它支持標準模式和增強模式。標準模式針對286機器,不屬本文探討范圍。增強模式是對386以上CPU而言,Windows正是使用保護模式來打破1M的屏障并且執(zhí)行簡單的內(nèi)存保護。它使用選擇器、描述器和描述器表控制訪問指定內(nèi)存的位置和段。描述器表包括全局描述器表、局部描述器表、中斷描述器表。保護模式與實模式有許多不同。其中顯著的差異是訪問內(nèi)存的機制不同。
2.中斷機制
(1)實模式中斷
為了便于理解,我們先回顧實模式中斷。
在實模式下,中斷向量表IVT起到相當(dāng)重要的作用。無論來自外部硬件的中斷或是內(nèi)部的軟中斷INTn,在CPU中都產(chǎn)生同樣的響應(yīng)。
①CPU將當(dāng)前的指令指針寄存器(IP)、代碼段寄存器(CS)、標志寄存器壓入堆棧。
②然后CPU使用n值作為指向中斷向量表IVT的索引,在IVT中找出服務(wù)例程的遠地址。
③CPU將此遠地址裝入CS:IP寄存器中,并開始執(zhí)行服務(wù)例程。
④中斷例程總以IRET指令結(jié)束。此指令使存在堆棧中的三個值彈出并填入CS、IP和標志寄存器,CPU繼續(xù)執(zhí)行原來的指令。
(2)保護模式中斷
保護模式中斷過程與實模式中斷過程類似,但它不再使用中斷向量表IVT,而使用中斷描述符表(IDT)。值得一提的是,Windows運行時IVT還存在,應(yīng)用程序并不使用它,Windows仍然使用,但含義已不同。
①IVT結(jié)構(gòu):IVT在RAM的0000∶0000之上,占據(jù)開始的1024字節(jié)。
它仍然由BIOS啟動例程設(shè)置,由DOS填充到RAM中。
②IDT中斷描述符表:保護模式下,Windows操作系統(tǒng)為實現(xiàn)中斷機制而建立的一個特殊表,即中斷描述符表IDT。該表被用來保存中斷服務(wù)例程的線性地址,它們是真正的24位或32位地址,沒有段:偏移值結(jié)構(gòu)。中斷描述器表最多可含有256個例程說明,詳細說明請見【3】。I
DT結(jié)構(gòu)見圖2。
圖2
③當(dāng)中斷或異常發(fā)生時,處理過程與實模式類同。當(dāng)前的CS∶IP值和標志寄存器值被存儲。保存的內(nèi)容還包括CPU其他內(nèi)部寄存器的值,以及目前正在被執(zhí)行的任務(wù)的有關(guān)信息(若必須發(fā)生任務(wù)切換的話)。CPU設(shè)法獲取中斷向量后,以它為索引值,查找IDT中的服務(wù)例程遠地址,接著將控制轉(zhuǎn)移到該處的服務(wù)例程。這是與實模式轉(zhuǎn)移到IVT的不同所在。保護模式使用IDTR寄存器分配和定位內(nèi)存中的IDT中斷描述符表。IDT在內(nèi)存中是可移動的,與IVT固定在內(nèi)存中剛好相反。IDT中斷描述符表在Windows中起決定性的作用。理解了Windows下保護模
式的中斷機制。有助于我們理解中斷服務(wù)程序的設(shè)計,它的關(guān)鍵就在于如何將服務(wù)例程的地址放入IDT中斷描述符表中。當(dāng)中斷發(fā)生時,如何將斷點地址及CPU各寄存器值保護起來;中斷結(jié)束時,如何將保護的值恢復(fù)。Windows系統(tǒng)本身并不提供實現(xiàn)上述功能的API,而DOS保護模式接口DPMI正具備了上述的功能。
下面我們首先介紹DPMI接口,然后基于它實現(xiàn)Windows下中斷服務(wù)程序的設(shè)計。
四、DOS保護模式接口DPMI
Windows除了標準服務(wù)外,還支持一組特殊的DOS服務(wù),稱為DOS保護模式接口DPMI,由一些INT2FH和INT31H服務(wù)組成。它使應(yīng)用程序能夠訪問PC系列計算機的擴充內(nèi)存,同時維護系統(tǒng)的保護功能。DPMI通過軟件中斷31h來定義了一個新的接口,使得保護模式的應(yīng)用程序能夠用它作分配內(nèi)存,修改描述符以及調(diào)用實模式軟件等工作。
Windows為應(yīng)用程序提供DPMI服務(wù)。即Windows是DPMI的宿主(host),應(yīng)用程序是DPMI的客戶(client),可通過INT-31H調(diào)用得到DPMI服務(wù)。INT-31H本身提供多功能。其中它的中斷管理服務(wù)允許保護模式用于攔截實模式中斷,并且掛住處理器異常。有些服務(wù)能夠和DPMI宿主合作,以維護應(yīng)用程序的虛擬中斷標志。
可以用INT31H來掛住保護模式中斷向量,以中斷方式處理外部實時事件。利用INT31H,功能0205H:設(shè)置保護模式中斷向量,將特定中斷的保護模式處理程序的地址置入中斷向量里。調(diào)用方式:AX=0205H,BL=中斷號,CX∶(E)DX=中斷處理程序選擇符:偏移值。返回:執(zhí)行成功CF=清零,執(zhí)行失敗CF=置位。
掛住/解掛中斷向量的時機很重要。主窗口第一次被創(chuàng)建時會傳送它WM-CREATE消息,這時是掛住中斷向量的最好時機。退出時需解掛向量,否則Windows可能崩潰。主窗口接收到WM-DE-STROY之后進行解掛工作,是最適合的。解掛向量可先用INT35H,0204H功能將老的中斷向量保存,退出時用INT35H,0205H恢復(fù)。
五、編程實現(xiàn)
有了DPMI的支持,我們就可以很方便地處理數(shù)據(jù)采集、串行通信等工業(yè)過程中的實時事件。下面以Windows3.1平臺下中斷方式實現(xiàn)的串行通信為例,說明中斷程序的編制和實現(xiàn)。為便于參考,給出了詳細的代碼。開發(fā)平臺BC3.1/BC4.5,其本身支持0.9版的DPMI,無需運行其它支持DPMI的軟件。編程語言C,可與C++混合編譯。
初始化COM1,9600波特率,每字符8bits,1個停止位,中斷接收,查詢發(fā)送。
//windowsasycommunication
//byLiXiuming
//lastmodifiedonJune25,1996
#include〈windows.h〉
#include〈dos.h〉
voidinterruptfarDataReceive();
voidinterruptfar(*old-vector)();
unsignedchardatacom-r[1024],datacom-s[1024];
intinflag=0;
unsignedints8259;
intInitCom1()
{//串口1初使化
s8259=inportb(0x21);//讀入8259當(dāng)前狀態(tài)并保存
outportb(0x21,s8259&0xe8);//初始化8259,允許0x0c號中斷
outportb(0x3fb,0x83);
outportb(0x3f8,0x0c);
outportb(0x3f9,0x00);
outportb(0x3fb,0x03);
outportb(0x3fc,0x08);//允許中斷信號送到8259A,以便能中斷
outportb(0x3f9,0x01);//0x01,中斷允許
return1;
}
voidinterruptfarDataReceive()
{//中斷接收子程序
staticinti=0;//靜態(tài)局部變量
charrechar=0;//每中斷一次,i自動加1
rechar=inportb(0x3f8);//從數(shù)據(jù)口讀出發(fā)送過來的數(shù)據(jù)
if(inflag==0)
{
if(rechar!=s&&i==0)//幀起始
{
i=0;
gotoll;
}
datacom-r[i++]=rechar;//存入datacom-r[](通信緩沖區(qū))
if(rechar==e)//幀結(jié)束
{
inflag=1;
i=0;
}
}
ll:outportb(0x20,0x20);//回送中斷結(jié)束標志
}
//調(diào)用DPMI
//保存舊的0CH號保護模式中斷向量
//設(shè)置新的保護模式中斷服務(wù)例程
voidInitCom(void)
{
asm{
cli
movax,204h
movbl,0ch
int31h
sti
}
old-vector=MK-FP(-CX,-DX);//保存
asm{cli//設(shè)置新的0x0c中斷服務(wù)例程
movax,205h
movbl,0ch
movcx,segdatareceive
movdx,offsetdatareceive
int31h
sti
}
InitCom1();
}
//恢復(fù)8259狀態(tài)
//恢復(fù)0CH保護模式向量
voidRestoreComm(void)
{
outportb(0x21,s8259);
asm{
cli
movax,205h
movbl,0ch
movcx,segold-vector
movdx,offsetold-vector
int31h
sti
}
}
在窗口第一次被創(chuàng)建時會傳送它WM-CREATE消息,這時調(diào)用InitCom()即可。在主窗口關(guān)閉時,即主窗口中收到WM-DESTROY消息時,調(diào)用RestoreComm()恢復(fù)原來的狀態(tài)。
這樣在對串口初始化,設(shè)置中斷服務(wù)例程后,通信事件發(fā)生時,會立即跳入中斷子程序中執(zhí)行,越過系統(tǒng)的消息隊列,達到實時處理通信事件的目的。而數(shù)據(jù)處理模塊可通過全局標志flag訪問全局的數(shù)據(jù)通信緩沖區(qū)獲取實時數(shù)據(jù)。這種實現(xiàn)方式與基于消息機制的Windows通信API實現(xiàn)相比具有實時性強的特點,因為它超過Windows系統(tǒng)的兩極消息機制。
上述程序已在實際系統(tǒng)中得到應(yīng)用。在Windows3.1支持下,同時運行三個Windows任務(wù):服務(wù)器SERVER(內(nèi)有實時串行通信,多個網(wǎng)絡(luò)數(shù)據(jù)子服務(wù)),客戶CLIENT,FOXPRO數(shù)據(jù)庫系統(tǒng)。整個系統(tǒng)運行良好。切換到WIN95平臺下(支持0.9版DPMI),系統(tǒng)也運行良好。
參考文獻
1張豫夫、曹建文譯.【澳】BarryKauler著.Windows匯編語言及系統(tǒng)程序設(shè)計.北京大學(xué)出版社,1995
篇8
選好課程教材,對于程序設(shè)計課大有裨益。好的教材不僅讓學(xué)生更容易理解學(xué)習(xí),還可以加深課程印象從而更好地節(jié)省閱讀時間。達到事半功倍的效果。同樣,也可以方便教師教學(xué)并節(jié)省教師備課的時間。國內(nèi)有些教材是從英文原版教材翻譯而來,但是由于語境、地點、時間的改變,有些翻譯不能很好地表達原著的意思,給使用者帶來很大的閱讀障礙。所以在程序設(shè)計課程中,可以選擇英文原版教材加中文教學(xué)講義的形式。筆者建議選取原版教材,這樣可以減少學(xué)生對翻譯的依賴性。但是教材的可讀性要強,能夠更好地吸引學(xué)生的閱讀性。針對一些不太容易理解的概念,我們可以采用比喻、舉例和相應(yīng)的圖表來進行表述。
二、實驗課程教學(xué)
在程序設(shè)計類課程中實驗教學(xué)舉足輕重,在一些實踐性很強的課程當(dāng)中,實驗設(shè)計特別重要。其中國外很多的先進技術(shù)都值得我們借鑒參考。1.實驗就是課內(nèi)實驗跟課外練習(xí)。所謂的課內(nèi)實驗也就是讓學(xué)生在課內(nèi)完成的實驗,內(nèi)容比較簡單,其考核的結(jié)果列入日常的實驗成績中。而對于課外練習(xí)是依據(jù)大多數(shù)學(xué)生在課內(nèi)無法完成的難度來設(shè)置的,這要求學(xué)生能夠利用大量的課外時間來進行知識的復(fù)習(xí)與消化,并且能夠形成團隊意識來共同解決問題。2.曾有研究者提出將大實驗貫穿于每個階段當(dāng)中,知識是互聯(lián)的,我們通過一個大實驗來將所學(xué)的知識貫穿到一起,進而解決一個更大的問題。這樣不僅可以很好地復(fù)習(xí)所學(xué)知識,而且能夠使所學(xué)的知識貫穿起來,以便于更好地掌握。有時候往往單獨看問題會覺得比較容易,把這些簡單的問題貫穿到一起時會發(fā)現(xiàn)很多其他的問題;正是這種發(fā)現(xiàn)問題、糾正問題的過程跟能力是學(xué)習(xí)程序設(shè)計所必須掌握的技能。
三、教學(xué)改革
篇9
關(guān)鍵詞:精品課程;工學(xué)結(jié)合;任務(wù)驅(qū)動教學(xué)法;項目實訓(xùn)教學(xué)法
中圖分類號:TP312.2-4
精品課程建設(shè)是鄭州電子信息職業(yè)技術(shù)學(xué)院教學(xué)改革和教學(xué)質(zhì)量工程的重要內(nèi)容之一。Java程序設(shè)計是我院信息工程系計算機相關(guān)專業(yè)的專業(yè)核心課程,重點培養(yǎng)學(xué)生Java方向程序設(shè)計能力,是一門實踐性很強的課程。該課程的知識教育目標是使學(xué)生能夠熟練使用JDK(Java開發(fā)工具包),Eclipse,UltraEdit等常用編輯工具來開發(fā)Java程序;能力教育目標是培養(yǎng)學(xué)生運用面向?qū)ο蟮乃枷虢鉀Q實際問題的能力。思想教育目標是培養(yǎng)學(xué)生的團隊協(xié)作能力和愛崗敬業(yè)的職業(yè)素養(yǎng)。
1 精品課程建設(shè)基礎(chǔ)
1.1 硬件基礎(chǔ)
學(xué)院有先進的網(wǎng)絡(luò)教學(xué)環(huán)境和充足的實踐教學(xué)條件,Java程序設(shè)計的教學(xué)環(huán)境是我院多媒體中心,該中心下設(shè)30個多媒體教室。課程全面應(yīng)用多媒體方式授課,學(xué)生可以利用移動存儲設(shè)備下載教學(xué)資源。在網(wǎng)上為學(xué)生提供授課計劃、教學(xué)大綱、實訓(xùn)大綱、實驗指導(dǎo)書、課件、學(xué)習(xí)指南、上機習(xí)題與指導(dǎo)、模擬測試題、學(xué)習(xí)參考書目錄等網(wǎng)絡(luò)學(xué)習(xí)資源。另外,教師利用電子郵件、QQ進行答疑,探討師生共同關(guān)心的問題,了解學(xué)生的學(xué)習(xí)和其它方面的動態(tài),及時調(diào)整教學(xué)方法和進度。
Java程序設(shè)計的實訓(xùn)環(huán)境是我院計算機實訓(xùn)中心,現(xiàn)有22個實訓(xùn)室,近1500臺機器,實訓(xùn)室設(shè)備先進、功能齊全、管理嚴格規(guī)范,每個實訓(xùn)室自成局域網(wǎng)并接入了互聯(lián)網(wǎng)。實訓(xùn)室均安裝了JDK(java開發(fā)工具包)、MyEclipse、Tomcat、SQLsever及全國高等院校計算機等級考試模擬軟件,能夠保證人均一臺機器,學(xué)校實訓(xùn)室在課余及周末時間為學(xué)生開放,方便學(xué)生的上機實習(xí)。
此外,學(xué)院與鄭州東隅電子科技有限公司、鄭州華創(chuàng)科技有限公司、鄭州亞訊科技信息有限公司簽訂協(xié)議,確立為我系的校外實訓(xùn)實習(xí)基地。
1.2 軟件基礎(chǔ)
該課程教師隊伍共10人,其中專職教師8人,兼職教師2人,師生比1:45,是一支師資配置合理,執(zhí)教能力強、教學(xué)效果好的教學(xué)隊伍。以中青年教師為主,副高以上職稱占15%,研究生以上學(xué)歷占20%,“雙師型”教師占80%。
教學(xué)團隊中有畢業(yè)于鄭州大學(xué)、西南大學(xué)、上海師范大學(xué)、河南科技學(xué)院等各個高校的教師,教師知識結(jié)構(gòu)合理,年齡結(jié)構(gòu)合理。課程建設(shè)小組具有在省、市級課題研究等方面的經(jīng)歷,并且獲取省級和市級的獎項若干。課程建設(shè)小組成員組成結(jié)構(gòu)和科研條件均具備了相應(yīng)的研究條件。
學(xué)院每年都積極選派教師到企業(yè)學(xué)習(xí)。特別注重加強理論教學(xué)與實踐教學(xué)的結(jié)合,提升課程教學(xué)水平和質(zhì)量,從而逐步形成人員精干、教學(xué)水平高、教學(xué)效果好的師資隊伍。
2 精品課程建設(shè)內(nèi)容
2.1 課程建設(shè)目標
Java程序設(shè)計是我院信息工程系計算機相關(guān)專業(yè)(計算機應(yīng)用技術(shù)、計算機網(wǎng)絡(luò)技術(shù)、物聯(lián)網(wǎng))的一門非常重要的專業(yè)核心課程。該課程以C語言程序設(shè)計為先導(dǎo)課程,將會對JSP動態(tài)網(wǎng)頁編程課程的學(xué)習(xí)有著重要的影響。本課程在教學(xué)培養(yǎng)方案中起到承上啟下的作用。
本課程的目的是通過對Java程序設(shè)計的學(xué)習(xí),使學(xué)生具備高級技能專門人才所必須的計算機程序設(shè)計能力,培養(yǎng)學(xué)生的邏輯思維能力,為進一步應(yīng)用面向?qū)ο蟪绦蛟O(shè)計的方來進行項目開發(fā)打下基礎(chǔ)。具體的培養(yǎng)學(xué)生具有理解和應(yīng)用軟件開發(fā)規(guī)范、軟件開發(fā)流程的能力;學(xué)會將實際問題轉(zhuǎn)化成計算機語言表達模型的能力;會用計算機處理問題的思維方法閱讀和編寫程序的能力;具有進一步學(xué)習(xí)其他語言的能力;具有軟件開發(fā)團隊協(xié)作的能力。
2.2 課程建設(shè)內(nèi)容
Java程序設(shè)計精品課程建設(shè)主要包括課程體系、教學(xué)手段的改革、教學(xué)方法的改進、考試方法的變革和教材建設(shè)。我們以現(xiàn)代化教學(xué)手段為依托,充分利用多功能教室、多媒體教室、校園網(wǎng)等教學(xué)手段。實行啟發(fā)式、研討式、項目驅(qū)動式等多種教學(xué)方法,形成一套能夠使抽象內(nèi)容具體化、專業(yè)知識通俗化的課程教學(xué)模式。通過精品課程建設(shè),課程建設(shè)小組逐步落實Java程序設(shè)計成績評定方法,學(xué)生期末綜合考評分為理論考評和實踐考評兩大部分各占總成績的50%,理論考評中平時成績占30%,期末考試成績占70%。實踐考評中實驗報告占30%,實踐操作占70%??荚噧?nèi)容包括理論知識和實踐操作,真正反映教師的教學(xué)水平。
3 課程特色與創(chuàng)新
在Java程序設(shè)計教學(xué)中,我們必須突出高職高專院校的教育特色,采用先進的教育理念,把現(xiàn)代教育思想和課程的具體內(nèi)容相結(jié)合,改革傳統(tǒng)的教學(xué)手段和方法,形成自己特色鮮明的工學(xué)結(jié)合的教學(xué)模式。
3.1 工學(xué)結(jié)合教學(xué)模式
我們確立以“就業(yè)為導(dǎo)向、能力為核心”的專業(yè)人才培養(yǎng)方案,以職業(yè)能力培養(yǎng)為核心,有針對性采取工學(xué)交替、校企合作、理論與實踐相結(jié)合的課程教學(xué)模式。此模式在做中學(xué)、做中教。特別突出以生產(chǎn)性實訓(xùn)為特征的實踐教學(xué)模式。在實訓(xùn)環(huán)節(jié)上,每屆學(xué)生都安排了三個企業(yè)真實項目實訓(xùn)和半年的頂崗實習(xí),讓學(xué)生直接參與到項目開發(fā)中去,親身體驗職場的工作氛圍,熟悉面向?qū)ο缶幊痰乃枷?,為將來的就業(yè)打下堅實的基礎(chǔ)。
3.2 教學(xué)方法
項目實訓(xùn)教學(xué)法強調(diào)的是真實體驗,以項目的完成結(jié)果檢驗和總結(jié)學(xué)習(xí)過程。項目實訓(xùn)采用項目調(diào)研、開發(fā)、測試、驗收等教學(xué)流程,使學(xué)生帶著真實的目的在探索中學(xué)習(xí),讓學(xué)生獲得親身參與的體驗、培養(yǎng)學(xué)生發(fā)現(xiàn)問題和解決問題的能力。
任務(wù)驅(qū)動教學(xué)法強調(diào)的是“以任務(wù)為主線、教師為主導(dǎo)、學(xué)生為主體” 通過精選案例、明確任務(wù),以任務(wù)帶動理論知識點的學(xué)習(xí),真正做到了講練有機融合。通過在實踐中的學(xué)習(xí),可以激發(fā)學(xué)生的好奇心和創(chuàng)造力。
情景教學(xué)法是以案例或情景為載體引導(dǎo)學(xué)生自主探究性學(xué)習(xí),以提高學(xué)生分析和解決實際問題的能力。主要針對企業(yè)的工作場景和實際的工作流程,進行項目分析和任務(wù)分解,重現(xiàn)在企業(yè)中進行項目開發(fā)的任務(wù)環(huán)境。學(xué)生在實際操作的過程中模擬項目組中的各種角色,使用真實的企業(yè)項目、企業(yè)工作流程,協(xié)同完成項目,體驗和掌握各種角色的工作技能和工作經(jīng)驗。
3.3 特色教材建設(shè)
教材是培養(yǎng)人才最關(guān)鍵、最直接的因素。所以說教材建設(shè)是精品課程建設(shè)的重要組成部分。Java是1995年Sun公司開發(fā)的面向?qū)ο蟮木幊陶Z言,它憑借平臺無關(guān)性這一強大優(yōu)勢己經(jīng)成為Internet應(yīng)用的主要開發(fā)語言。從目前情況來看,Java教材出版的不少,但是很少有以工作任務(wù)為主的適合高職教育的教材,大多數(shù)都是以講Java 基本知識為主,枯燥的理論使學(xué)生很難學(xué)以致用。因此,我們對課程內(nèi)容進行了徹底的整合,采取用什么講什么,用多少講多少的原則,將那些直接支撐專業(yè)技術(shù)的知識從系統(tǒng)中提取出來,打造直接服務(wù)于崗位技術(shù)的知識鏈,建設(shè)符合高職院校特色的精品教材。在學(xué)院的大力支持下,我們課程組通過長期扎實的自我建設(shè),強化了課程體系,完善了教材內(nèi)容等方面的建設(shè)。
4 結(jié)束語
Java程序設(shè)計是一門實踐性很強的專業(yè)核心課程。我們通過不斷轉(zhuǎn)變教學(xué)理念、更新教學(xué)內(nèi)容、改進教學(xué)手段、完善教學(xué)方法,已基本構(gòu)建起比較完善的教學(xué)體系,形成了較鮮明的特色。綜上所述,該課程建設(shè)指導(dǎo)思想明確,擁有教學(xué)與科研相長的師資隊伍,教育教學(xué)思想與時俱進,教學(xué)模式多樣化,教學(xué)手段現(xiàn)代化,在計算機編程教育領(lǐng)域起著良好的示范作用。
參考文獻:
[1]王小芬,馬玉芳.《大學(xué)計算機應(yīng)用基礎(chǔ)》精品課程建設(shè)[J].計算機光盤軟件與應(yīng)用,2013,4.
篇10
1.沒有明確的教學(xué)目的,對課程重要性認識不足《匯編語言程序設(shè)計》課程教學(xué)是高校計算機、通信、電子以及自動化等相關(guān)專業(yè)課程中的基礎(chǔ)課程,對學(xué)生在學(xué)習(xí)過程中的創(chuàng)新能力以及實踐能力的提高有一定的促進作用。在對《匯編語言程序設(shè)計》課程的學(xué)習(xí)過程中,大多時候得不到學(xué)生以及教師重視,對其學(xué)習(xí)的重要性認識不足。而且,大多數(shù)老師在對這門課程進行教學(xué)的過程中,受到相應(yīng)教學(xué)的課時以及大綱限制,在課堂教學(xué)過程中過于偏重對具體指令的相關(guān)應(yīng)用以及功能的講解,從而缺少了對各個課程之間的特點串聯(lián)。這樣的問題導(dǎo)致教師在教學(xué)過程中,對學(xué)生的學(xué)習(xí)興趣不能充分的調(diào)動,從而導(dǎo)致學(xué)生對正確的學(xué)習(xí)方法不能很好的掌握。2.教學(xué)方法偏差,教學(xué)手段存在缺陷在對《匯編語言程序設(shè)計》課程進行教學(xué)的過程中,其在相應(yīng)的教學(xué)方法上存在一定程度的偏差,從而導(dǎo)致一些編程中非法指令經(jīng)常性出現(xiàn)。而且,教師在對這門課程進行教學(xué)的過程中,教學(xué)手段太過單一,在教學(xué)過程中主要就通過多媒體對課堂內(nèi)容進行講解。在教學(xué)過程中對多媒體的運用雖然存在直觀生動以及信息量大等相關(guān)優(yōu)勢,但其也在一定程度上使學(xué)生產(chǎn)生了學(xué)習(xí)惰性。
二、對《匯編語言程序設(shè)計》課程教學(xué)中相應(yīng)的問題進行改革
1.加強對課程重要性的認識在對《匯編語言程序設(shè)計》課程進行教學(xué)之前,對其相應(yīng)的重要性進行講解,從而使學(xué)生對匯編語言的具體特點進行充分掌握,對匯編語言相較于高級語言的具體優(yōu)勢進行具體明確,使學(xué)生對其在應(yīng)用領(lǐng)域中必要性有充分的了解。在對《匯編語言程序設(shè)計》課程進行學(xué)習(xí)的過程中,要注意對其實用性的具體教學(xué),使學(xué)生能夠做到對具體知識的學(xué)以致用,注重對教學(xué)內(nèi)容相關(guān)知識點的訓(xùn)練和拓展。另外,教師在教學(xué)過程中,還要注重對學(xué)生知識面的拓寬,從而使學(xué)生在對匯編語言的學(xué)習(xí)興趣得到相應(yīng)的提高。2.采用多樣化教學(xué),提高學(xué)生學(xué)習(xí)興趣在對《匯編語言程序設(shè)計》課程進行學(xué)習(xí)的過程中,想要對相應(yīng)的指令進行掌握,就要對其相關(guān)的尋址方式進行具體的理解和掌握。在對匯編語言進行教學(xué)的過程中,由于其相較高級語言而言,沒有足夠的易讀性,不容易學(xué)生的理解,所以,在教學(xué)的時候要掌握多樣化的教學(xué)方法以及教學(xué)手段,從而使學(xué)生在對其進行學(xué)習(xí)的過程中的學(xué)習(xí)興趣得到最大的提高,培養(yǎng)學(xué)生學(xué)習(xí)的自主性,使其對匯編語言的相關(guān)知識的理解和記憶更容易清晰地掌握。3.增加實踐環(huán)節(jié),提高學(xué)生具體的實踐能力在對《匯編語言程序設(shè)計》課程進行學(xué)習(xí)的過程中,對學(xué)生具體動手實踐課程進行加強,使學(xué)生在具體實踐的過程中對教材上的知識點進行具體的理解和掌握。在實際動手過程中學(xué)習(xí)實踐理論,使實踐與理論達到很好的結(jié)合,從而提升學(xué)生的學(xué)習(xí)效果。其中,在實踐的過程中,教師要注意對具體實驗內(nèi)容的控制,對實驗的重點著重突出,避免實驗的時間太過漫長。除此之外,還要注意積極引導(dǎo)學(xué)生多多參與相關(guān)實踐項目,在一定程度上為他們提供一些參與實際研究項目的機會。
三、結(jié)束語
熱門標簽
程序設(shè)計論文 程序法 程序畢業(yè)論文 程序?qū)嵱?xùn)總結(jié) 程序閱讀 程序公正 程序員 程序問題 程序設(shè)計 程序化 燃氣管理 燃氣管道 燃氣鍋爐 燃氣烘爐