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