1引言
隨著高考錄取率的不斷提高,再加上近年來自主招生的實行,高職生源的質(zhì)量也在不斷下降,越來越多的學生已經(jīng)從曾經(jīng)的滿腔熱情、求知若渴的心態(tài)轉(zhuǎn)變?yōu)橐粫r的心血來潮,進校后很快就進入了被動學習、敷衍了事,甚至厭學逃學的狀態(tài)[1]。正是因為當前高職學生主動學習意識的嚴重缺失,在高職教育活動中,除了傳授必要的專業(yè)知識外,更重要的是激發(fā)學生的學習興趣,增強學生自主學習的意識[2]。只有學生具有了一定的學習興趣和自主學習意識,接下來討論用什么方法,設置什么教學內(nèi)容,才有現(xiàn)實意義。否則再好的教學方法、再實用的專業(yè)知識,也只是一廂情愿,對牛彈琴。本文從高職軟件專業(yè)學生的學習現(xiàn)狀分析入手,深度剖析其背后的成因,在教師課堂教學層次,針對性地提出一些教學方法改革措施,并在實際教學中展開改革實踐探索與嘗試。
2高職軟件專業(yè)學生學習現(xiàn)狀和成因分析
以多年的軟件專業(yè)課程教學經(jīng)歷為基礎,并多方面與其他軟件專業(yè)教師及學生進行交流溝通,對當前高職學生學習軟件開發(fā)專業(yè)課程的現(xiàn)狀及存在的問題進行深度剖析,總結(jié)出當前高職院校軟件開發(fā)專業(yè)學生的學習現(xiàn)狀具有如下幾方面的特點:1)學習過程隨著時間的推移難以為繼。入學時學生們滿腔熱情,蜂擁而入,大多學生懷著對這個神秘的高科技行業(yè)的崇拜而來,同時又受到行業(yè)高額的薪資和優(yōu)越的工作環(huán)境所誘惑,家長也極力支持學生選擇該專業(yè)。然而在真正的專業(yè)學習過程中,大多學生又表現(xiàn)出嚴重的畏難情緒,無法繼續(xù)堅持學習,最終徹底放棄,尤其隨著時間的推移和課程難度的加深,這種狀況表現(xiàn)的愈加明顯[3]。2)主動學習意識欠缺。正是因為大部分學生都是奔著行業(yè)的薪資和工作環(huán)境而來,他們是因為外界原因而選擇了該專業(yè),大多數(shù)學生對專業(yè)的特性和難度并未作深入地了解,所以其主動學習意識不強,其學習效果可想而知。3)學習方法欠缺。進入高職的學生大多都缺乏合適的學習方法,而軟件開發(fā)課程在高職各專業(yè)中是難度較大的專業(yè)課程類別,如果缺乏合適的學習方法,要將抽象度高、邏輯思維強的軟件專業(yè)課程學懂學透是極具挑戰(zhàn)性的。4)數(shù)學和英語知識匱乏。由于在程序編寫過程中,需要大量的英語和數(shù)學知識,然而大多數(shù)高職學生這兩方面支持都比較薄弱,這種狀況直接導致上完第一門語言課之后,大部分原本滿腔熱情的學生對軟件開發(fā)其他的專業(yè)課程都望而卻步。5)不肯動腦,缺乏邏輯思維能力和主動思考的能力。軟件產(chǎn)品是人類思維的結(jié)晶,軟件開發(fā)工作是一項高強度的腦力勞動,絕不是照搬照抄能夠?qū)崿F(xiàn)的[4],而當前高職學生普遍缺乏邏輯思維能力的現(xiàn)狀,是在軟件開發(fā)學習過程中一道難以逾越的鴻溝。6)缺乏程序的排錯糾錯意識和能力。這主要體現(xiàn)在當程序出錯時,大部分同學就束手無策,嚴重缺乏排錯糾錯的能力,錯誤排除不了,他們就失去了繼續(xù)學習的信心和動力了。
3專業(yè)課程教學方法改革的創(chuàng)新與探索
眾所周知,影響人類行為的因素有內(nèi)因與外因兩方面,內(nèi)因來自興趣和需求,外因來自引導和壓力,其中內(nèi)因起決定性因素,而外因只是起到加速或減緩的作用。因此,在軟件技術(shù)專業(yè)課程教學過程中,論文從這兩個方面入手,開展一些嘗試性的課程教學方法改革創(chuàng)新和探索。
3.1興趣培養(yǎng)和需求激發(fā)
對于學生學習興趣培養(yǎng)和需求激發(fā)屬于人文素質(zhì)教育范疇,在專業(yè)的課程教學中不可能耗費大量的時間和精力去開展相關(guān)的教育活動,可能需要家長、輔導員等其他相關(guān)人員貫穿到學生的日常學習和生活中。這里僅從專業(yè)的角度對學生進行有限的興趣培養(yǎng)和需求的激發(fā)。1)體驗應用場景,信息化時代,軟件的應用場景非常廣泛,涉及學生們?nèi)粘I畹姆椒矫婷妫瑢τ诿恳婚T軟件開發(fā)課程,教師都可以從學生的現(xiàn)實生活中挖掘出本課程可以開發(fā)的目標軟件產(chǎn)品,引導學生逐步轉(zhuǎn)變角色,從一個軟件的使用者,逐步轉(zhuǎn)變?yōu)檐浖拈_發(fā)者,并且能夠自由地在兩種角色間轉(zhuǎn)換,以新的視角看待軟件的使用和開發(fā),讓學生體驗出作為軟件的使用者和軟件的開發(fā)者具有不同的心理訴求和感受。學生在使用軟件時,引導學生去思考軟件的某個功能是如何設計和實現(xiàn)的,使得軟件開發(fā)過程不再那么的抽象,與此同時,學生在開發(fā)軟件時,引導學生去體會作為用戶使用軟件時的真實感受,通過使用軟件的過程使其對軟件產(chǎn)品建立直觀印象[5]。2)展示就業(yè)現(xiàn)狀,對于每一門軟件開發(fā)課程,一定要在第一次課程介紹中,向?qū)W生充分展現(xiàn)出該課程未來的發(fā)展方向和目前的就業(yè)現(xiàn)狀。課前,教師可以充分利用豐富的互聯(lián)網(wǎng)就業(yè)招聘資源,搜索收集一些與本課程相關(guān)的就業(yè)崗位,并在課堂上給學生展示該就業(yè)崗位的基本待遇以及知識技能要求等信息,一方面可以讓學生對自己未來就業(yè)萌發(fā)憧憬之心,激發(fā)其內(nèi)部的興趣和動力,另一方面也可以讓學生在學習過程中了解本課程中哪些內(nèi)容正是市場上相關(guān)工作崗位所需要的知識技能點,提醒學生需要重點關(guān)注和掌握,以滿足相關(guān)工作崗位的需求。3)介紹優(yōu)秀學長,作為教師,在平時也要注意聯(lián)絡自己帶過的一些優(yōu)秀畢業(yè)生,收集他們目前的工作狀況以及他們在專業(yè)學習過程中的經(jīng)驗和歷程,通過分享這些優(yōu)秀學長的成功經(jīng)歷,可以給學生們提供激勵和借鑒作用,必要時還可以邀請這些優(yōu)秀的畢業(yè)生,進入課堂與學生們面對面的交流,這將更具真實感,讓學生對自己的未來充滿希望,對學生會產(chǎn)生更大的激勵作用。4)發(fā)掘身邊成功案例,在授課過程中,可以動員班級學生發(fā)掘自己身邊的親戚、朋友和同學在軟件開發(fā)工作崗位上的成長歷程和成功經(jīng)驗,并且定期輪流安排個別學生將自己身邊的這些成功的案例在課堂上與大家分享,利用這些具有正能量的真實案例,或多或少也會給學生一定的激勵作用。5)幫助學生挖掘身邊的軟件開發(fā)需求并協(xié)助實施,在高職層次的軟件開發(fā)課程教學中,大多以某門開發(fā)語言或者開發(fā)技術(shù)的基本語法和語義為教學重點,缺少真實有趣的案例開發(fā)教學,即使有些學校引入了一些企業(yè)項目案例,開展任務驅(qū)動型的項目式教學,由于企業(yè)項目一般都比較復雜,而且還需要一定的領域知識,方可真正理解并實現(xiàn)企業(yè)項目的開發(fā),這對師生來說難度都很大。不過,教師可以以團隊的形式組織班級學生挖掘身邊的軟件開發(fā)需求,比如學生自己、朋友或者親戚存在某個實際軟件開發(fā)需求,就可以讓團隊免費承接這樣的軟件開發(fā)項目,由需求方提出真實的功能需求,團隊內(nèi)分工協(xié)作,教師協(xié)助并指導團隊實施整個軟件開發(fā)過程,對于這些身邊的真實案例,一方面便于交流和溝通,另一方面,也讓學生們更具有成就感,通過自己的所學為自己或者自己的親戚朋友做些實事,并且學有所用,學生們會樂此不疲。
3.2具體的教學方法改革措施
1)以學生為中心展開教學和實訓,如定期安排優(yōu)秀學生課下收集專業(yè)方面的專題知識,再到課堂上與大家分享,或者安排優(yōu)秀的學生上臺現(xiàn)場編寫和調(diào)試代碼,老師在臺下分析和闡述編程思路,指導和啟發(fā)臺上學生如何進行編碼和測試,真正做到以學生為中心的教學方式[6],雖然這種教學方式比較耗時,但效果很好。2)主動試錯,出錯后演示糾錯排錯過程,培養(yǎng)學生糾錯排錯意識和能力。目前高職學生在糾錯排錯能力上相當匱乏,遇到錯誤往往束手無策,同時對調(diào)試工具也很少使用,這種現(xiàn)狀對于學生未來的發(fā)展是相當不利的。因此,老師上課時首先要簡要的闡述和演示開發(fā)平臺中調(diào)試工具的使用,然后在編程中主動設置一些錯誤,并引導學生學會如何查閱錯誤提示?如何根據(jù)錯誤提示查閱相關(guān)資料?如何判斷錯誤發(fā)生位置和原因?如何找到錯誤的解決方案?逐步培養(yǎng)學生的糾錯和排錯意識,指導學生練習使用各種調(diào)試工具,提高學生的糾錯和排錯能力[7]。同時引導學生將開發(fā)過程中遇到的各種錯誤提示、錯誤原因以及最終解決方法收集整理歸檔,以便于后期學習和查詢。3)理論聯(lián)系實際,結(jié)合人們的日常生活經(jīng)歷來闡述軟件開發(fā)過程中深奧難懂的抽象原理。比如在講到JavaWeb中的Session對象時,讓學生明白會話過程是學習Session對象的重難點,此時,可以通過引入大家耳熟能詳?shù)拇螂娫挼倪^程來進行類比,幫助學生理解抽象的Session會話過程。軟件開發(fā)專業(yè)課程中,很多知識點都是非常抽象的,單純按照書本概念去講解,學生很難理解,此時,老師在備課時就要做好教學設計,盡量從現(xiàn)實生活中挖掘出類似的事物,利用大家熟悉的事物來幫助學生理解這些抽象的專業(yè)知識原理[8],否則學生會很快失去聽課的耐心,從而失去對該課程的學習興趣。4)實訓教學時要求學生邊讀邊寫邊測。由于實訓時學生已經(jīng)有了參考源碼,大部分同學都是照抄源碼,等全部源碼敲完后,才進行調(diào)試運行,這種情況下,基本上都會出現(xiàn)大量的錯誤,而學生又缺乏有效的糾錯排錯能力,大部分學生在嘗試若干次糾錯后,仍不能把所有錯誤排除,無法看到正確的運行結(jié)果,這對學生的學習信心會產(chǎn)生很大的打擊,大部分學生都因此而最終失去耐心,半途而廢。因此,要求學生在實訓中一邊讀代碼,一邊寫代碼,讀懂多少寫多少,寫完一個小功能后,立即進行測試運行,查看運行結(jié)果,通過運行結(jié)果檢驗學生對代碼段的理解正確與否,如果能出現(xiàn)預期的結(jié)果,說明代碼理解和輸入正確,讓學生看到階段成果會讓學生立刻萌發(fā)成就感,正是這種成就感對學生具有強大的正向激勵作用,讓學生得以保持強大的內(nèi)在動力繼續(xù)完成后續(xù)的開發(fā)。即使出現(xiàn)錯誤,由于代碼段很短,錯誤排除難度也很小。所以,切忌把軟件開發(fā)實訓課上成了“打字課”,一定要讓學生在看懂代碼的基礎上再去敲代碼,再去運行和調(diào)試程序。5)利用技術(shù)手段采集學生項目調(diào)試過程中的異常和錯誤,進行典型分析和精準指導。由于多種原因,老師很難為每一位同學排除程序中的異常和錯誤,現(xiàn)在可以利用大數(shù)據(jù)采集軟件Flume對所有學生機上產(chǎn)生異常報錯進行實時采集,然后再進行集中匯總統(tǒng)計,找出出錯頻率高的問題,然后對典型問題進行集中講解和分析,同時還可以根據(jù)采集上來的數(shù)據(jù),快速定位到每個問題發(fā)生的機器,在合適的時候,還可以進行精準指導。6)案例的演示不只是展現(xiàn)結(jié)果,更重要的是展現(xiàn)過程,深度剖析學習和理解的過程,如在講授JavaWeb開發(fā)環(huán)境和JSP文件的執(zhí)行過程時,大多老師都會按照“JavaWeb開發(fā)環(huán)境的構(gòu)成→環(huán)境搭建→創(chuàng)建測試項目→部署運行”的流程給學生講解JavaWeb開發(fā)環(huán)境,當看到了正確的運行結(jié)果后,再按照“*.JSP→*.java→*.class→*.html”的流程闡述一下JSP文件的執(zhí)行過程。表面上看,這個過程已經(jīng)很詳細完整了,但是站在學生的角度,他們只看到了最終的運行結(jié)果,至于整個中間環(huán)節(jié)他們基本上是知之甚少。其實這個中間環(huán)節(jié)是相當復雜的,而且對于這個中間環(huán)節(jié)的理解,對學生以后深入學習JavaWeb程序也是相當重要的。此時就非常有必要對這一過程作進一步的展開和剖析,重點分析這一過程的每個環(huán)節(jié)都是如何進行的?都產(chǎn)生了哪些結(jié)果?每個環(huán)節(jié)中各軟件都發(fā)揮了什么作用?教師可以通過在磁盤中找到項目創(chuàng)建時源文件所在的位置和部署后項目的實際位置,增加學生的直觀映像,讓學生明白部署階段做了什么工作,讓學了解真正執(zhí)行的程序是部署后的程序;同時可以打開Tomcat下的Work文件夾,找到JSP文件執(zhí)行過程中產(chǎn)生的*.java和*.class這兩個中間文件,讓學生更直觀地理解和記憶JSP文件的執(zhí)行過程,與此同時,借助于這兩個中間文件,正好可以闡述Tomcat和JDK在JSP文件執(zhí)行過程中所起的作用。這一系列中間環(huán)節(jié)的展示和闡述,讓學生對JavaWeb環(huán)境搭建、JSP文件的執(zhí)行過程、Tomcat等軟件的作用以及他們之間的作用有了更加直觀和深刻的理解。7)重視學習方法的傳授,正所謂授人以魚不如授人以漁,授課過程中,每每遇到課程中的重難點,首先應該向?qū)W生闡述的這個知識點的學習方法,剖析掌握和理解該知識點的關(guān)鍵所在。然后再嘗試利用此方法帶領學生來學習該知識點,此舉可謂是一舉兩得,通過利用有效的學習方法掌握了這個具體的專業(yè)知識點,與此同時,利用一個具體的知識點訓練了如何使用這個學習方法,并逐步引導學生進行舉一反三,再利用此方法去學習其他相關(guān)的知識點[9]。例如,在講到Java對象方法的使用時,首先需要告訴學生的并不是某個具體方法如何使用,而是要把Java對象方法的一般用法和學習要點告訴學生,要求學生始終抓住方法的四個要點內(nèi)容,即方法的名稱、功能、參數(shù)和返回值,對于對象名稱和功能的學習以記憶為主,哪怕只是模糊的映像,當以后在項目中遇到待解的問題時,可以通過記憶中的一系列對象方法和功能,初步判斷大概可以通過哪個對象的哪個方法可能會解決該問題,隨后再利用豐富的網(wǎng)絡教學資源進一步詳細了解該方法的具體語法格式、參數(shù)和返回值。然后再現(xiàn)場演示對該方法的調(diào)用,驗證其調(diào)用效果。隨后再安排一名同學上臺按照此學習流程嘗試調(diào)用其他類似的方法,老師此時可以在臺下一邊監(jiān)督其他學生,一邊根據(jù)臺上學生的表現(xiàn)進行針對性的指導,協(xié)助其完成任務。通過對學習方法的闡述,并且老師和學生分別進行兩輪演示,學生對該知識點會有更加深刻的映像,至少臺上的學生會取得很好的學習效果。8)培養(yǎng)學生查閱專業(yè)資料,學習新知識的能力。在教學過程中,一定要學生明白課堂和書本的知識非常有限,IT技術(shù)飛速發(fā)展,知識更新?lián)Q代迅速,僅憑課本上的知識是遠遠不夠的,而且書本知識大多比較陳舊。引導和培養(yǎng)學生學會如何查閱專業(yè)技術(shù)資料,并根據(jù)相關(guān)資料快速學習新知識和新技能在軟件開發(fā)課程教學中尤為重要。
4總結(jié)
隨著軟件開發(fā)技術(shù)與云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)及人工智能等技術(shù)應用的深度結(jié)合,市場對軟件開發(fā)人才的需求會日趨強烈,在這龐大的人才需求市場中,職業(yè)教育必定有其一席之地。對于高職院校來說,培養(yǎng)滿足市場需求的高技能職業(yè)人才是我們的當務之急,而作為教書育人的踐行者,教師需要不斷自我反思、自我革新,在教書育人的實踐中,不斷地探索和創(chuàng)新教育教學方法改革,方可與時俱進,培養(yǎng)出滿足市場需求的專業(yè)技能人才,實現(xiàn)自我人生價值。