- 相關推薦
論啟發(fā)式教學法在計算機專業(yè)學生系統(tǒng)能力培養(yǎng)的運用論文
引言
2013 年,教育部計算機科學與技術專業(yè)教學指導委員會系統(tǒng)研究組提出要加強學生系統(tǒng)能力培養(yǎng),明確指出學生的系統(tǒng)能力核心是:“在掌握計算系統(tǒng)基本原理的基礎上,熟悉如何進一步開發(fā)構建以計算技術為核心的應用系統(tǒng)!蓖瑫r建議把計算機專業(yè)課程分成三個層次,即:計算機系統(tǒng)基礎課程、重組內(nèi)容的核心課程和側重不同計算系統(tǒng)的若干相關平臺應用課程。操作系統(tǒng)課程被劃分到第二層次,是計算機系統(tǒng)能力培養(yǎng)最基本的核心課程。
操作系統(tǒng)課程具有概念抽象、系統(tǒng)性差、原理性強等特點,教師授課難度較大,學生在學習過程中也往往感到非常抽象和難以理解。要將課程中抽象的原理與具體繁瑣的操作系統(tǒng)實現(xiàn)技術有機結合起來,并以比較直觀的、易于理解和易于掌握的形式展現(xiàn),就必須輔以相應的實驗。然而,以知識傳授為核心的靜態(tài)實驗教學方式(即教師在課堂上把實驗原理、目的、步驟及注意事項均詳細講解一遍,學生只需按部就班地操作,用不著查資料,也不需思考實驗中還有沒有需要改進的地方。)會使學生完全處于被動狀態(tài),壓抑他們的學習興趣和主動參與實驗的積極性。“啟發(fā)式”教學法與傳統(tǒng)的灌輸式教學不同,它更強調(diào)學生在教師的引領和啟示下,主動參與到發(fā)現(xiàn)問題、尋求答案的過程中,從而提高他們獨立思考、解決問題的能力。下面以操作系統(tǒng)原理中經(jīng)典的“生產(chǎn)者-消費者”實驗為例,對在實驗課中應用“啟發(fā)式”教學法培養(yǎng)學生的系統(tǒng)能力進行初步探索。
1 問題描述
“生產(chǎn)者-消費者”是一個著名的進程同步問題。它描述的是:有一群生產(chǎn)者進程在生產(chǎn)產(chǎn)品,并將這些產(chǎn)品提供給消費者進程去消費。為使生產(chǎn)者進程和消費者進程能并發(fā)執(zhí)行,在兩者之間設置了一個具有n 個緩沖區(qū)的緩沖池,生產(chǎn)者進程可以將其所生產(chǎn)的產(chǎn)品放入一個緩沖區(qū)中;消費者進程可從一個緩沖區(qū)中取走產(chǎn)品去消費。盡管所有的生產(chǎn)者進程和消費者進程都是以異步方式運行的,但它們之間必須保持同步,既不允許消費者進程到一個空緩沖區(qū)去取產(chǎn)品,也不允許生產(chǎn)者進程向一個已裝滿產(chǎn)品且尚未被取走的緩沖區(qū)中投放產(chǎn)品。
“生產(chǎn)者-消費者”實驗安排在“經(jīng)典的進程同步問題”理論課之后。通過學習,學生已經(jīng)熟悉“生產(chǎn)者-消費者”模型,知道各進程應該互斥地使用緩沖池,且生產(chǎn)者進程和消費者進程之間需要用信號量同步。
2 組織實施
為減少學生對教師的依賴,加大他們在實驗中的參與度,培養(yǎng)他們的系統(tǒng)能力,我們把“生產(chǎn)者-消費者”實驗的組織劃分為三個階段:課前布置任務、課內(nèi)檢查引導、課后收集反饋。
2.1 課前布置任務
為加大學生對實驗的參與度,我們在實驗課前向?qū)W生明確實驗任務并提供相關API 函數(shù)的簡單說明,要求學生學習資料并思考“生產(chǎn)者-消費者”模型實現(xiàn)的方法。
2.1.1 明確實驗任務
在理解“生產(chǎn)者-消費者”模型的基礎上,利用多線程技術模擬實現(xiàn)一組生產(chǎn)者和消費者;并假設這些生產(chǎn)者和消費者等效,即:只要緩沖池未滿,生產(chǎn)者就可將產(chǎn)品送入緩沖池;只要緩沖池非空,消費者就可以從中取產(chǎn)品進行消費。
2.1.2 提供學習資料
由于大多數(shù)學生在本次實驗前未接觸過多線程編程,因此我們向?qū)W生提供一些與偽代碼中各操作相對應的WindowsAPI。“生產(chǎn)者-消費者”實驗涉及到創(chuàng)建生產(chǎn)者與消費者、操作信號量及使用臨界資源。我們整理了與之對應的三類函數(shù)供學生預習,分別是多線程操作函數(shù)、信號量操作函數(shù)和互斥量操作函數(shù)(通過互斥量保證生產(chǎn)者和消費者對臨界資源互斥訪問)。多線程操作函數(shù)包括創(chuàng)建線程的函數(shù)_beginthreadex()和等待多個線程結束的函數(shù)WaitForMultipleObject()。信號量操作函數(shù)包括創(chuàng)建信號量的函數(shù)CreateSemaphore()、申請信號量的函數(shù)WaitForSingleObject() 和釋放信號量的函數(shù)ReleaseSemaphore()。互斥量操作函數(shù)包括創(chuàng)建互斥量的函數(shù)CreateMutex()、申請互斥量的函數(shù)WaitForSingleObject()和釋放互斥量的函數(shù)ReleaseMutex()。當生產(chǎn)者和消費者完成所有工作后,需要銷毀線程、信號量和互斥量等資源。線程、信號量和互斥量都是內(nèi)核級資源,用CloseHandle()函數(shù)銷毀。需要注意的是,我們只對上述函數(shù)進行簡單說明,學生需要借助互聯(lián)網(wǎng)等資源學習它們的具體使用方法。
2.1.3 提出具體要求
提供預習資料的同時要求學生思考:實現(xiàn)“生產(chǎn)者-消費者”模型應考慮哪些技術細節(jié)?
2.2 課內(nèi)檢查引導
與教師詳細講解實驗原理、目的、步驟及注意事項,學生只需按部就班地操作不同,啟發(fā)式教學法注重發(fā)揮學生在實驗課上的主動性,積極引導學生思考并對學生的結論進行總結,從而完成實驗。本階段又可分為預習成果檢查和總結引導兩部分。
2.2.1 預習成果檢查
實驗課開始時我們通過提問檢查學生的預習情況,重點考察他們對實驗中可能會遇到的技術問題的思考。檢查預習的好處在于:一方面,教師的監(jiān)督可以強迫學生獨立思考,減少學生對教師的依賴;另一方面,通過提問教師能夠了解學生對實驗的理解程度,有助于總結引導。
2.2.2 總結引導
根據(jù)經(jīng)驗,大部分學生會對實驗中可能遇到的技術問題進行思考,但可能不夠全面。因此,在聽取學生對問題的回答后,應進行總結,并進一步啟發(fā)學生。我們以共用緩沖池(包含10個緩沖區(qū))的二個生產(chǎn)者和二個消費者為例,實現(xiàn)該“生產(chǎn)者-消費者”模型需要考慮以下三個技術細節(jié)。
、 該模型使用的數(shù)據(jù)結構;
⑵ 程序的流程;
、 實現(xiàn)生產(chǎn)者和消費者的具體操作。
以上三個技術細節(jié)的實現(xiàn)是本實驗的關鍵。學生在課前已經(jīng)對相關函數(shù)進行了預習,因此我們并不立即給出答案,而是啟發(fā)學生基于預習和已有的編程知識,嘗試解決這三個問題。
問題一:由表1 中偽代碼可知,生產(chǎn)者和消費者之間通過信號量同步,并互斥地訪問緩沖池。因此,信號量和臨界區(qū)是實現(xiàn)該模型必不可少的數(shù)據(jù)結構。
問題二:程序的流程在main 函數(shù)中設定。具體可分為數(shù)據(jù)結構的初始化、創(chuàng)建多線程和資源回收。其中,資源的初始化及回收可以直接調(diào)用相關函數(shù),較為復雜的是創(chuàng)建多線程。講解創(chuàng)建多線程的方法時可以這樣啟發(fā)學生:每調(diào)用一次_beginthreadex()函數(shù)可以創(chuàng)建一個線程(用來模擬生產(chǎn)者或消費者),因此,創(chuàng)建多個生產(chǎn)者和消費者要多次調(diào)用_beginthreadex(),這種重復執(zhí)行相同的動作顯然要用循環(huán)結構,從而引導學生寫出創(chuàng)建多線程的語句。創(chuàng)建2 個生產(chǎn)者和2 個消費者的示例代碼如下。
HANDLE thread;
for(i=0;i<2;i++)
thread[i]=(HANDLE)_beginthreadex(NULL,0,ProducerFun,
NULL,0,NULL);
for(i=2;i<4;i++)
thread[i]=(HANDLE)_beginthreadex(NULL,0,ConsumerFun,
NULL,0,NULL);
WaitForMultipleObjects(4,thread,true,INFINITE);
上述代碼中的ProducerFun 和ConsumerFun 分別是生產(chǎn)者和消費者線程的入口函數(shù),即生產(chǎn)者和消費者將執(zhí)行的具體操作,需要重點實現(xiàn)。
問題三:實現(xiàn)生產(chǎn)者和消費者的具體操作,即編程實現(xiàn)函數(shù)ProducerFun()和ConsumerFun()。由于生產(chǎn)者和消費者類似,我們以實現(xiàn)ProducerFun()函數(shù)為例,啟發(fā)學生在此基礎上獨立完成ConsumerFun()函數(shù)的編寫。
在本例中,信號量empty 的初始值為10,full 的初始值為0,它們的最大值與緩沖池中緩沖區(qū)的個數(shù)相同(都為10);互斥量mutex 保證緩沖池被互斥地訪問?筛鶕(jù)生產(chǎn)者的偽代碼對應寫出源程序。
2.3 課后收集反饋
學生的課后反饋是對實驗課的重要補充。可由課代表收集學生對本次實驗的感受和仍存在的疑問,統(tǒng)一反饋給教師。這種反饋能夠加強教師和同學之間的聯(lián)系,幫助教師掌握學生的整體情況,并對教學手段進行改進。在此階段,可以向編程基礎較差的學生提供示例代碼,并對其輔導,盡量照顧到各層次的學生。
3 結束語
以知識傳授為核心的靜態(tài)實驗教學方式要求學生按教師講解的步驟按部就班進行實驗,容易使學生陷于被動,失去對實驗課的興趣。本文針對操作系統(tǒng)課程的特點,提出了適用于操作系統(tǒng)實驗課的“啟發(fā)式”教學方法,并以“生產(chǎn)者-消費者”實驗為例,闡述了該方法在教學過程中的應用。經(jīng)驗證,采用啟發(fā)式教學法能夠加大學生在實驗課中的參與度,提高學生的獨立思考能力,對學生系統(tǒng)能力的培養(yǎng)取得了初步成效。同時,該方法對計算機操作系統(tǒng)課程其他問題及實驗的講解具有一定的借鑒作用。
【論啟發(fā)式教學法在計算機專業(yè)學生系統(tǒng)能力培養(yǎng)的運用論文】相關文章:
論外語能力的培養(yǎng)10-16
啟發(fā)式教學法在計算機網(wǎng)絡專業(yè)基礎課教學中的運用08-29
論器樂學生內(nèi)心聽覺能力的培養(yǎng)06-08
中等職業(yè)學校計算機專業(yè)學生實踐能力的培養(yǎng)的論文07-24
論對大學生道德選擇能力的培養(yǎng)08-04
構建舞蹈專業(yè)學生職業(yè)能力培養(yǎng)新方式論文06-18
工程能力解讀與交通工程專業(yè)實踐能力培養(yǎng)論文09-05
如何培養(yǎng)學生的寫作能力論文07-06