啟發(fā)式程序設(shè)計實訓探索與實踐
時間:2022-06-17 03:29:32
導(dǎo)語:啟發(fā)式程序設(shè)計實訓探索與實踐一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
隨著以工業(yè)互聯(lián)網(wǎng)為代表的“第四次工業(yè)革命”的到來,以及“新工科”概念的提出,國家對工科學生的創(chuàng)新實踐能力的培養(yǎng)提出了新的要求[1-2]。對于軟件工程專業(yè)的學生而言,利用編程語言編寫軟件程序來解決實際問題是必須掌握的一項基本能力,然而在學生學習編程的過程中,依然存在著重理論輕實踐的現(xiàn)象。首先,目前的教材多偏向于理論講解且缺乏導(dǎo)向性[3],絕大多數(shù)教材中的示例比較乏味,而且脫離實際,以至學生不愿意主動去動手實踐。其次,課堂教學受場地、設(shè)備等限制,往往只能采取講授式教學。這種教學方法不能有效調(diào)動學生的學習積極性,導(dǎo)致學生能理解理論知識,但是實踐能力還是沒有得到鍛煉[4]。最后,學生為了取得高績點,主觀上更愿意將精力放在理論的記憶和理解,而忽略了實際編程能力的訓練,導(dǎo)致許多學生考試能得高分,卻仍然不會編寫程序。針對以上問題,一些教師將項目案例引入程序設(shè)計的教學過程中,對激發(fā)學生編程興趣起到了促進作用[5-6],但是這些方法只是對課堂教學的一種補充。為了進一步提高學生的編程實踐能力,越來越多的高校將程序設(shè)計實訓作為一個獨立的實踐環(huán)節(jié)加入培養(yǎng)方案中。重慶大學軟件工程專業(yè)將程序設(shè)計實訓作為大一年級的專業(yè)必修課,作為實踐教學體系中重要的一環(huán)[7]。
1程序設(shè)計實訓實施現(xiàn)狀分析
1.1程序設(shè)計實訓的目標。學生在進行實訓之前已經(jīng)初步掌握了面向?qū)ο蟮某绦蛟O(shè)計思想以及基本的編程理論知識,通過實訓,學生需要達到以下目標。(1)學生應(yīng)理解面向?qū)ο蟪绦蛟O(shè)計的基本知識,掌握面向?qū)ο蠓治鰡栴}的基本方法。(2)學生應(yīng)該具有運用一種主流程序開發(fā)環(huán)境(如MicrosoftVisualStudio),將面向?qū)ο蠓治龊唵螁栴}并將其轉(zhuǎn)化成C++語言代碼的能力以及跟蹤調(diào)試程序錯誤的能力。(3)學生應(yīng)具備運用面向?qū)ο蟮乃枷敕治鰧嶋H問題,并將其進行編程實現(xiàn)的能力。1.2程序設(shè)計實訓中存在的問題。(1)學生習慣了課堂教學中,教師講授為主的授課方式,在實踐環(huán)節(jié)中往往表現(xiàn)出主動性不強,過于依賴老師的指導(dǎo)。(2)學生缺乏將實際問題轉(zhuǎn)換成代碼的能力,同時也缺乏調(diào)試代碼和獨立解決程序錯誤的能力。(3)對學生的實訓結(jié)果評價方式單一,導(dǎo)致學生又回到了以成績?yōu)槟康牡膽?yīng)試思維模式,使得學生對實踐能力的培養(yǎng)失去信心[8]。1.3問題的原因分析(1)學生第一次接觸實踐類課程,還不適應(yīng)新的教學內(nèi)容和教學環(huán)境,過于依賴老師的指導(dǎo)[9]。因此,教學方式一旦由老師教授,變?yōu)楠毩㈤_發(fā),就感到無所適從。(2)實訓所涉及的項目除了需要用到面向?qū)ο蟪绦蛟O(shè)計的知識,還需要用到圖形編程,網(wǎng)絡(luò)通信以及數(shù)據(jù)庫等知識。而這些知識并沒有在大一的時候?qū)W習,因此對部分學習能力較差的學生造成了障礙。(3)學生還保留著高中時期的應(yīng)試教育的學習習慣,還以考試為目的來學習。對于實訓的認識不足,還是以分數(shù)為導(dǎo)向,忽略了自身實踐能力的培養(yǎng)。
2項目驅(qū)動的啟發(fā)式程序設(shè)計實訓方法
2.1設(shè)計以興趣激發(fā)為目的的實訓項目案例。實訓項目作為程序設(shè)計實訓的重要依托,既需要涵蓋一定范圍的編程知識,又需要激發(fā)學生的興趣。根據(jù)程序設(shè)計實訓的課程目標,結(jié)合工程實踐的特點,按每個人獨立完成一個項目的要求,保證每位學生具有一定量的代碼編寫量;項目類型以基本單機應(yīng)用、圖形化界面等方面為主。結(jié)合學生基礎(chǔ)和具體課程安排,擬定實訓項目供學生選擇。實施的時候?qū)⒏鶕?jù)學生的測評成績、興趣方向等進行選擇。表1中列出了部分實訓項目案例。這些案例都是根據(jù)真實軟件項目經(jīng)過簡化后的仿真項目??梢宰寣W生真切地感受到從無到有的軟件創(chuàng)造過程,將看不見摸不著的理論學習,變成可以得到實實在在成果的軟件項目,從而讓學生獲得較大的成就感和自信心。2.2采用結(jié)合線上多媒體知識補強和線下項目實踐的實訓方案。為了有效對實訓中涉及的知識進行補強,將程序設(shè)計實訓分為2個階段:線上知識補強階段與線下項目實踐階段。2.2.1線上知識補強階段。在進行實際的項目實訓之前,利用網(wǎng)絡(luò)資源,包括PPT課件、課程視頻、慕課等多媒體技術(shù),提前學習實訓中所需要的知識。通過一個小課題的實踐,結(jié)合理論知識的講解,快速掌握項目開發(fā)必備的知識和技能。知識補強以邊學邊做的形式,避免學習的枯燥,提高學習興趣和效果。同時,小課題的練習將極大地提升學生的學習信心,對后面的項目實踐起到較好的示范作用。從而有效彌補學生實際能力與實訓任務(wù)之間的鴻溝。2.2.2線下項目實踐階段。在此階段學生將通過9天的線下項目實踐,完成自己所選項目的任務(wù)。在實施過程中,通過以下步驟對學生的實訓過程進行有效推進和管理。(1)學生根據(jù)自己的興趣自由選擇項目。(2)結(jié)合項目階段需求進行重點和難點的理論講授,同時結(jié)合項目進行練習,邊學邊練、學以致用,減少純理論授課的枯燥感覺。(3)按照軟件能力成熟度集成模型(CapabilityMaturityModelIntegration,CMMI),開展軟件工程實踐。學生將結(jié)合軟件工程的理論知識和CMMI項目管理流程,逐步加強系統(tǒng)分析和設(shè)計建模能力,完成從項目啟動到最后驗收交付的全過程。(4)使用任務(wù)管理工具,明確個人的項目任務(wù)。在任務(wù)管理工具中記錄任務(wù)完成情況,并以任務(wù)完成情況作為個人的考核。(5)通過網(wǎng)絡(luò)提供有關(guān)的課件、視頻、知識庫等資源,使學生可以通過這些渠道學習、溫習課程內(nèi)容,加強對技術(shù)的掌握,加深對項目的理解。(6)通過現(xiàn)場指導(dǎo)老師每天的任務(wù)檢查跟蹤,查看學生日志,及時發(fā)現(xiàn)存在的問題并予以解決。通過階段性評審和總結(jié),使學到的知識和技術(shù)得到鞏固。2.3建立多維度的程序設(shè)計實訓的評價方法。鑒于程序設(shè)計實訓的特點,需要改變單一評價方法。通過建立一種多維度的案例教學評價方法,打破學生一直以來的應(yīng)試思維。該評價方法主要由過程監(jiān)督及項目評價兩個部分組成。1)過程監(jiān)督。過程監(jiān)督主要由出勤情況、日報制度、項目總結(jié)3方面組成。(1)出勤情況。實訓的地點由學院統(tǒng)一安排,學生每天需要準時到達實訓教室。學生的出勤情況直接反映出學生的學習狀態(tài),對于經(jīng)常遲到、早退以及缺勤的學生及時糾正,并將出勤情況計入最終成績。(2)日報制度。讓學生每天將實訓的進展情況形成日報的形式,總結(jié)當天的進展及存在的問題,制定第二天的計劃安排,從日報中發(fā)現(xiàn)學生的總體進展情況。(3)項目總結(jié)。學生在項目完成后,需進行項目總結(jié),評估實訓成果,并以此收集學生反饋意見。2)項目評價。在完成了整個實訓后,通過項目驗收,完成項目交付。項目驗收包括對代碼規(guī)模、功能實現(xiàn)、文檔質(zhì)量等方面的驗收。驗收的結(jié)果與考核密切相關(guān)。對學生的項目主要從如下10個維度進行評價。功能:功能完整、準確,符合應(yīng)用需求;界面:界面設(shè)計美觀,符合規(guī)范;技術(shù):應(yīng)用最新技術(shù),技術(shù)難度高;創(chuàng)新:是否有創(chuàng)新點;演示效果:講解清晰、演示流暢、重點突出;文檔:符合規(guī)范,主要是需求、設(shè)計、用戶手冊等文檔;規(guī)模:代碼數(shù)量、數(shù)據(jù)庫記錄數(shù)量;易用性:軟件易于理解、學習和使用,如完善的表單驗證等;可靠性:出錯率低、容錯性強、易于恢復(fù);可維護性:可適應(yīng)不同場景進行靈活設(shè)置,易于識別錯誤和改正等。
3項目驅(qū)動的啟發(fā)式程序設(shè)計實訓實施效果
將實訓方法應(yīng)用到重慶大學軟件工程專業(yè)2017級大一本科生的程序設(shè)計實訓中,取得了較好的效果。通過問卷調(diào)查的形式,了解了學生對實訓效果的主觀評價。本次發(fā)出問卷189份,收回144份,有效問卷133份。1)學生對實訓的總體滿意度。學生對實訓的總體滿意度如圖1所示。該問題是針對學生對實訓情況的總體評價,評價指標分為5個等級:非常滿意、滿意、一般、不滿意、非常不滿意。從圖1中可以看出,“非常滿意”加上“滿意”為78%,說明學生對本次實訓總體上是認可的。2)學生對自己編程能力的評價(滿分5分)。學生對自己編程能力的評價如圖2所示。該問題旨在通過量化的方式讓學生對自己實訓之前和實訓之后的編程能力進行自評,評價指標由低到高分為1~5分。從圖2(a)中可以看出,在實訓前認為自己編程能力只有1分或2分(即編程能力較差)的學生總共占到了53%。而從圖2(b)中可以看出,實訓后認為自己編程能力只有1分或2分的學生僅占到8%。說明大部分認為自己編程能力較差的學生在實訓后編程能力都得到了較大提升。圖2(c)中,反映了學生編程能力的提升幅度,其中有82%的學生認為通過實訓,自己的編程能力有不同程度的提升。通過分析具體的數(shù)據(jù),我們發(fā)現(xiàn)在能力提升了2分和3分的學生中,大多是實訓認為自己編程能力只有1分或2分的學生。說明通過實訓,對于不擅長編程甚至畏懼編程的學生,編程能力得到了較大的提升。當然從圖2(c)中,同樣可以看出有18%的學生認為通過實訓,自己的編程能力沒有得到提高。通過具體數(shù)據(jù)分析,我們發(fā)現(xiàn)這部分學生大都在實訓前就有4或者5分的自評分,說明他們在實訓前已經(jīng)擁有了較好編程能力。因此實訓對于這部分學生的編程能力提升不明顯。3)學生對線上知識補強的評價。學生對線上知識補強的評價如圖3所示。該問題旨在分析線上知識補強環(huán)節(jié)對學生的幫助有多大,評價指標同樣分為5個等級:幫助非常大、幫助比較大、有一定幫助、幫助比較小、沒有幫助。從圖3中可以看出,87%的學生認為線上知識補強對自己有不同程度的幫助。4)學生對項目選題的難度評價。項目選題難度的評價如圖4所示。該問題旨在了解學生對所做項目的難易度進行評價,評價指標分為5個等級:非常難、比較難、適中、簡單、非常簡單。該問題實際上存在兩個影響因素,一個是項目本身難易度,另一個則是學生自身的能力。即使同一個項目,對于不同的學生可能得到不同的評價結(jié)果。從圖4中看出,41%的學生認為項目選題具有一定難度,55%的學生認為項目選題難度適中。說明項目選題具有較好的區(qū)分度,且學生可以根據(jù)自身情況,靈活選擇不同難度的項目。5)學生對所選項目的主觀評價(多選)。學生對所選項目的主觀評價如圖5所示。該問題為多選題,旨在了解學生對項目屬性的評價,一共有4個選項:有趣的、實用的、創(chuàng)造性的、新穎的。由于選項無法窮盡,題目中僅列出我們關(guān)心的幾個選項。從圖5中可以看出,認為項目是有趣的學生多于其他選項,說明項目的案例設(shè)計達到了激發(fā)學生興趣的目的。同時也有接近一半的學生認為項目是實用的。說明學生在選擇項目時也關(guān)注項目的實用性。6)學生對項目評分機制的評價。學生對項目評分機制的評價如圖6所示。該問題旨在了解學生對評價機制的認可度,評價指標分為5個等級:非常合理、比較合理、一般、不太合理、非常不合理。從圖6中可以看出,91%的學生對項目的評分機制是認可的,對評價機制不滿意的學生僅占1%。說明多維度、全過程監(jiān)督的項目評分機制能夠有效地對學生的知識、能力、素質(zhì)進行有效的評價。綜上所述,大部分學生對實訓效果感到滿意。大部分學生都認為通過實訓自身的編程能力以及解決問題的能力得到了較大的提高,而且對編程不再畏懼,反而越來越感興趣,同時也十分認可項目的評分機制,說明本項目達到了預(yù)期的效果。
4結(jié)語
目前軟件工程專業(yè)的學生在學習程序設(shè)計時,普遍存在注重理論學習,而實踐能力不強的問題。針對這一問題,許多高校將程序設(shè)計實訓加入到了軟件工程專業(yè)的培養(yǎng)體系中,以提高學生編程實踐能力。結(jié)合重慶大學軟件工程專業(yè)在程序設(shè)計實訓中的實際情況,提出的一個項目驅(qū)動的啟發(fā)式程序設(shè)計方法,通過讓學生獨立完成一個真實的程序設(shè)計項目來激發(fā)學生興趣,從而鍛煉學生的編程能力。實訓過程采用模擬企業(yè)環(huán)境的管理方式,并采取多維度的方法對學生能力進行綜合評價。通過對學生進行問卷調(diào)查分析,該方法受到學生普遍認可,并能有效提高學生程序設(shè)計能力。
作者:曾駿 文俊浩 熊慶宇 吳映波 單位:重慶大學
熱門標簽
啟發(fā)性教育 啟發(fā)式教學 啟發(fā)式教育 啟發(fā)式教學案例 啟發(fā)式教學法 啟發(fā) 啟發(fā)教學 啟發(fā)式 啟發(fā)式教學理論 啟發(fā)教學法 心理培訓 人文科學概論