底曉強,李錦青
(長春理工大學計算機科學技術(shù)學院,長春 130022)
計算機學科是一門新興的學科,僅有幾十年的歷史,但由于其發(fā)展異常迅速,因此高校本科教學計算機學科教學內(nèi)容的更新之快,是其他學科所不及的[1-2]。計算機學科是一門對科學性和實踐性要求都較高的學科,它不僅注重學生理論基礎的培養(yǎng),更注重學生實踐能力的培養(yǎng)[3]。實驗教學可以激發(fā)學生的學習興趣,培養(yǎng)學生發(fā)現(xiàn)問題和解決問題的能力,提高學生的實踐能力和創(chuàng)新能力[4-5]。因此,在計算機學科的教育中,實驗教學效果直接關(guān)系著學生對知識的掌握和理解。
《網(wǎng)絡程序設計》的教學大綱在實驗教學環(huán)節(jié)的目標是培養(yǎng)學生網(wǎng)絡程序的設計和編碼能力,加深對課堂教學內(nèi)容的理解,提高學生對《面向?qū)ο蟪绦蛟O計》《數(shù)據(jù)結(jié)構(gòu)》《操作系統(tǒng)》《計算機網(wǎng)絡》《數(shù)據(jù)庫原理》和《軟件工程》等前導課所學知識在網(wǎng)絡程序設計方面的綜合應用能力。
在現(xiàn)有的實驗教學環(huán)節(jié)中,實驗題目分為演示、驗證、設計和綜合這4種類型。學生們已經(jīng)有了程序設計語言的經(jīng)驗,結(jié)合《網(wǎng)絡程序設計》這門課的特點,不宜安排演示和驗證性的題目,否則學生會覺得和程序設計時的課程實驗沒有什么區(qū)別。學生的實驗課程比較集中,而且每次實驗只有兩個學時,如果每次安排一個設計或者綜合性實驗題目,學生沒有精力去完成。如果安排一個需要幾次課程完成的設計和綜合性題目,一部分學生又會覺得偏難,無從下手,還會有一部分同學,可能因前兩次實驗效果不好而無法完成后續(xù)的實驗。長此以往,會讓學生對實驗課程產(chǎn)生畏懼情緒,失去興趣。因此,必須打破傳統(tǒng)的實驗模式,制定更加務實的實驗題目,模糊演示、驗證、設計和綜合這四種實驗題目類型的邊界,在本文中我們稱之為系列化實驗題目。
根據(jù)前面的分析,系列化實驗題目應具備如下特點:
(1)各個實驗題目是獨立的,后一次實驗不依賴于前一次實驗的結(jié)果;
(2)題目容易理解與實現(xiàn),每一次實驗可以讓學生在2個學時內(nèi)完成;
(3)結(jié)合課程教學內(nèi)容,學生需要綜合應用前導課所學知識才能完成實驗題目;
(4)在系列化實驗進行過程中,能激發(fā)學生對相關(guān)課程領(lǐng)域知識的應用和思考;
(5)學生完成系列化實驗題目后,能實現(xiàn)課程實驗教學的目標。
為了達到實驗教學目標,首先要設計出符合系列化實驗特點的實驗題目。我們的實驗題目為模擬一臺ATM自動提款機。讓學生實現(xiàn):用戶登錄、存款、取款、轉(zhuǎn)賬和查看交易記錄等功能。程序架構(gòu)分為界面層、通信層和數(shù)據(jù)存儲層。
大多數(shù)學生都使用過銀行的ATM自動提款機,因此題目要求易于理解。為了體現(xiàn)系列化題目的特點,每次實驗的功能要求是完全相同的,但是每次實驗要求的界面層、通信層和數(shù)據(jù)層是不同的。下面詳細說明界面層、通信層和數(shù)據(jù)層的類型。
用戶界面層分為字符界面、AWT圖形界面和瀏覽器界面3種類型;通信層有單機通信、套接字通信和HTTP通信方法;數(shù)據(jù)層有內(nèi)存、數(shù)據(jù)庫、文本文件和XML文件4種存儲介質(zhì)。從這3層中選擇不同的類型,可以組合出48個實驗題目。
不同的通信方法和數(shù)據(jù)存儲介質(zhì)的組合,所要運用的前導課程的知識點是不同的,如表1列出了實現(xiàn)不同的通信層和存儲層所需的前導課程知識。為了讓學生更好地領(lǐng)會《面向?qū)ο蟪绦蛟O計》和《軟件工程》這兩門課程在實驗中的作用,進一步強化學生面向?qū)ο蟮脑O計思想和軟件工程意識,我們要求在完成所有的實驗后,學生只需要修改配置文件,就可以實現(xiàn)每次實驗的界面層、數(shù)據(jù)層和通信層的無縫切換。例如,能夠?qū)TM自動存款機的字符界面更換成瀏覽器界面,也能將通信層的套接字通信方法切換成瀏覽器通信方法。同樣,系統(tǒng)也要能在不同的存儲方式之間實現(xiàn)快速切換。
表1實驗題目所涉及的前導課程
學生在開始的幾次實驗中,并不要求他們能實現(xiàn)無縫切換的目標,他們可以逐漸達到這個目標。隨著學生參加實驗次數(shù)的增多,會逐漸重構(gòu)已經(jīng)完成的代碼,逐步利用面向?qū)ο蟮乃枷朐O計ATM自動提款機,而這個過程恰恰就是一個完整的軟件生命周期。完成各個系列化實驗題目,不僅需要掌握《網(wǎng)絡程序設計》課程本身的知識,還需要應用不同于前導課程所學的理論和方法,其中面向?qū)ο笤O計和軟件工程思想貫穿所有的系列化實驗題目,從而潛移默化提高了學生的面向?qū)ο笤O計能力和增進了對軟件工程思想的理解。
為了更好地達到系列化實驗的教學目標,我們還對學生參加實驗的方式進行了改革,學生采用“結(jié)對編程”完成實驗。與傳統(tǒng)的編程方式不同,新的編程方式是兩個學生合用一部計算機來完成代碼。“結(jié)對編程”的價值在于,在某個人思考時,另一個人就開始編碼。如果編碼的人陷入困境,兩個人可以交換位置。如果兩個人都陷入了困境,可以求助其他同學或者老師,結(jié)對工作可以讓實驗更順利地進行。更重要的是,它使得編程工作更具有互動性,可以激發(fā)學生們的學習興趣。
小組成員在共同的協(xié)作中還可以培養(yǎng)團隊協(xié)作精神,沒有和諧的團隊不可能順利完成任務。在實際的實驗過程中我們發(fā)現(xiàn):實驗開始階段,因為分工并不明確,小組成員的合作并不順利。隨著不斷的磨合以及明確的分工,小組成員間的合作逐漸默契,交流更加順暢,實驗的效率不斷提高。
一般來說,學生對課堂教學中教師的演示和驗證只是被動地加以接受。想讓學生真正明白教師所講和所演示的,最好的方法是讓學生在實踐中去感受和運用所學到的知識,這樣才能將被動的接受轉(zhuǎn)化為主動的吸收。系列化實驗題目,能讓學生在實驗環(huán)節(jié)真正做到理論知識和實踐技能的融合,提高學生的綜合應用能力。
當各個小組完成了系列化的所有實驗后,我們安排了一次實驗總結(jié)答辯,而不是傳統(tǒng)的實驗報告。傳統(tǒng)的實驗報告并不能真實地反映學生的實驗水平,而以答辯的方式可以使教師更直觀準確地了解實驗效果,掌握學生對知識的掌握程度。答辯不僅可以督促學生總結(jié)實驗結(jié)果和經(jīng)驗教訓,同時也為學生提供了一個互相學習和互相交流的平臺,是對分組協(xié)作的一種補充,是培養(yǎng)學生討論機制的一種延伸。同時,以答辯作為實驗的總結(jié)對學生來講也是一種鍛煉和挑戰(zhàn),更是對學生能力的一種提高。
在實際的實驗教學中我們發(fā)現(xiàn),由于缺少經(jīng)驗和知識面狹窄等原因,一部分學生考慮問題不全面,如果這個時候教師不適時介入,會導致實驗不能到達預期目標。因此,教師適時以指導者的身份在實驗中出現(xiàn)十分重要。同時,教師在實驗的過程中還可以向?qū)W生傳授一些先進的編程和設計思想,這對開闊學生思路和培養(yǎng)學生的科學素養(yǎng)十分有利。在實驗的最后階段,教師還是學生答辯的組織者和評審者,這對教師也提出了更高的要求。
[1] 李樹平,趙杰.基于任務驅(qū)動的探究性計算機實驗教學模式[J].職教論壇,2010(6):53-55.
[2] 陳克明,王春平.計算機實驗教學改革探討一得[J].中國成人教育,2011(2):153-154.
[3] 呂志峰,李曉峰.淺談我院計算機專業(yè)畢業(yè)設計的改革[J].科技創(chuàng)新導報,2009(29):217.
[4] 田燕,李貞雙,張新剛,等.計算機實驗教學改革探索與實踐[J].長沙大學學報,2012(2):125-127.
[5] 呂紅,任穎,李華偉,等.計算機實驗教學改革的思考[J].中國現(xiàn)代教育裝備,2009(11):87 -89.