

摘要:針對專科層次大數(shù)據(jù)技術專業(yè)“Python”課程教學內(nèi)容缺乏跨語言整合、與專業(yè)核心課程及崗位要求脫節(jié)、知識體系可持續(xù)引導不足等問題,文章重構了包含Python基本語法、跨語言編程以及綜合實踐3個模塊的課程體系,增加了拓展學習板塊以強化知識體系的可持續(xù)引導。文章提出了“讀-析-測-拓”的教學形式。通過實踐,課程獲得了較滿意的教學效果。
關鍵詞:專科層次;大數(shù)據(jù)專業(yè);Python語言教學;教學內(nèi)容重構;教學形式實踐
中圖分類號:G420 "文獻標志碼:A
0 引言
大數(shù)據(jù)作為一種新興技術,在推動經(jīng)濟發(fā)展、優(yōu)化社會治理、提升國家治理能力等方面發(fā)揮重要作用,正成為國家基礎性戰(zhàn)略資源。《數(shù)字中國建設整體布局規(guī)劃》等文件,明確提出要加強大數(shù)據(jù)領域的人才培養(yǎng),推動大數(shù)據(jù)技術與教育的深度融合。教育部發(fā)布《職業(yè)教育專業(yè)目錄(2021年)》,將大數(shù)據(jù)技術專業(yè)正式列入目錄[1]。各高職院校根據(jù)其要求,結合區(qū)域產(chǎn)業(yè)、院校特色制定并實施大數(shù)據(jù)技術專業(yè)的人才培養(yǎng)方案。在知識與技能方面,主要聚焦于包括數(shù)據(jù)采集、存儲、清洗、分析、挖掘、可視化等基本理論和專業(yè)知識,掌握大數(shù)據(jù)平臺架構、分析能力及解決典型問題的能力[2]。在職業(yè)面向上,旨在培養(yǎng)能夠從事大數(shù)據(jù)平臺運維、數(shù)據(jù)采集、數(shù)據(jù)清洗、數(shù)據(jù)加工、數(shù)據(jù)可視化、系統(tǒng)開發(fā)、系統(tǒng)實施等工作的高素質(zhì)技術技能型人才[3]。在此過程中,對編程語言的熟練掌握被視為大數(shù)據(jù)領域就業(yè)市場的一項硬性標準[4]。Python語言憑借其語法結構的優(yōu)雅簡潔與第三方庫的強大支持,加之學習周期短、開發(fā)程序復雜度低的優(yōu)勢,成為眾多高校高級語言程序設計課程的首選語言[5]。
然而,在教學實踐中,筆者發(fā)現(xiàn)“Python”課程的教學效果與既定的培養(yǎng)目標之間仍存在一定差距。譬如:眾多高校在大數(shù)據(jù)專業(yè)設置中開設了“Java”“Python”等高級編程語言課程,但這些課程內(nèi)容大多聚焦于程序設計的基礎知識,側重于語法教學,鮮少將語言與解決實際問題緊密結合,導致這些語言在專業(yè)核心課的銜接上顯得相對薄弱,學生缺乏將所學知識應用于實踐場景的機會。反觀數(shù)據(jù)分析與挖掘、數(shù)據(jù)可視化、Spark技術與應用等專業(yè)核心課程,它們往往又陷入了重復講解編程語言語法的循環(huán)之中,這種教學模式不僅難以激發(fā)學生的學習熱情,也未能有效提升學習效果。因此,本文將聚焦高職院校大數(shù)據(jù)技術專業(yè)的“Python”課程教學內(nèi)容的重構與教學形式的探索,旨在構建滿足教學需求的課程內(nèi)容和教學形式,從而提高教學質(zhì)量,為培養(yǎng)既具備扎實理論基礎,又擁有較強實踐能力和創(chuàng)新思維的高素質(zhì)復合型人才打下堅實基礎[6]。
1 大數(shù)據(jù)技術專業(yè)“Python”課程現(xiàn)狀
1.1 教學內(nèi)容缺乏跨語言整合
本次調(diào)研對象為本區(qū)域29所高職院校,分析大數(shù)據(jù)技術專業(yè)培養(yǎng)方案發(fā)現(xiàn),在其課程體系中,有86%的高校開設“Python程序設計語言”課程。但從數(shù)據(jù)中發(fā)現(xiàn),有41%的高校存在多門程序語言課程并存的情況,同時開設“Python程序設計語言基礎”和“Java程序設計語言基礎”。
筆者在參考不同編程語言的專業(yè)核心課程的標準后發(fā)現(xiàn),其課程內(nèi)容包含該編程語言的基礎板塊,如“Spark技術與應用”中包含Scala語言基礎。由此,在慕課平臺、學堂在線平臺和智慧樹在線教育平臺等國家在線教育平臺中檢索相關專業(yè)核心課,通過課程大綱發(fā)現(xiàn),依然存在專業(yè)核心課程內(nèi)容包含編程語言的基礎板塊的現(xiàn)象,如陜西工商職業(yè)學院開設的“Python數(shù)據(jù)分析”第一章為Python編程基礎。同時,在檢索的國家“十四五”規(guī)劃教材中多本專業(yè)核心課程也有該現(xiàn)象。
不同編程語言的基礎板塊具有相通性。Python課程教學內(nèi)容缺乏跨語言整合,導致存在高校開設多門程序語言課程的情況。這造成了教學資源的浪費。專業(yè)核心課程教授編程語言基礎是一種重復教學現(xiàn)象。這在一定程度上浪費了教學資源,降低了教學效率。
1.2 教學內(nèi)容與專業(yè)核心課程及崗位需求脫節(jié)
近3年本校共畢業(yè)555人,其中升學155人,簽就業(yè)協(xié)議就業(yè)299人,服義務兵或其他101人。具體就業(yè)情況如表1所示。
從就業(yè)的行業(yè)及從事崗位來看,大數(shù)據(jù)技術專業(yè)直接對口性不強,盡管信息技術行業(yè)作為高科技領域的代表,對大數(shù)據(jù)技術的需求理應最為迫切,然而2023屆畢業(yè)生中僅有40人進入該行業(yè)就業(yè),占比僅為33.3%。通過問卷調(diào)查、定向問談,分析其原因包括人才培養(yǎng)過程中專業(yè)技能與崗位需求脫節(jié),學生雖然掌握了語言的基本語法和常用功能,但在實際崗位使用中卻難以將所學知識融會貫通,無法有效地將理論知識轉(zhuǎn)化為實踐能力。
映射在課程體系中,專業(yè)核心課和綜合實訓課應緊跟崗位需求,確保學生所學即所用,縮短從校園到職場的適應期。作為專業(yè)基礎課,“Python程序設計語言基礎”的教學內(nèi)容和形式也應進行相應優(yōu)化,既要為學生打下堅實的編程基礎,又要為后續(xù)的專業(yè)核心課和綜合實訓課做好鋪墊和銜接,形成連貫的知識體系。然而,在專業(yè)核心課的教學過程中,筆者發(fā)現(xiàn)學生普遍缺乏對一些相關基礎數(shù)據(jù)處理庫的認識和使用能力。這導致在實踐項目開展時,教師須要花費額外的時間來講解這些基礎庫的作用、安裝部署以及使用方法,從而影響了實踐項目的進度和效率。
1.3 知識體系的可持續(xù)引導不足
專科教育作為高等教育體系中的重要組成部分,承載著為社會培養(yǎng)高技能人才的重任。在這一教育階段,不僅要聚焦于學生當前技能的培養(yǎng),確保學生畢業(yè)后能夠迅速融入職場,勝任具體崗位的工作,還要高瞻遠矚,深刻關注學生的可持續(xù)發(fā)展能力,為其鋪設一條長遠而穩(wěn)健的職業(yè)發(fā)展道路。
針對重慶水利電力職業(yè)技術學院407位在校學生的問卷調(diào)查結果顯示,高達48%的學生將職業(yè)規(guī)劃鎖定在專升本這一目標上,這充分說明了學生對于提升自身學歷層次、拓寬知識視野的強烈渴望。然而,在對近3年升學學生的深入調(diào)研中,筆者發(fā)現(xiàn)了一個不容忽視的問題:在當前的大數(shù)據(jù)專業(yè)教育中,知識體系的可持續(xù)引導顯得尤為不足。盡管學生在校期間能夠掌握一定的技術技能,但對于深入研究其底層邏輯、算法原理等理論時,往往缺乏必要的學習能力和適應能力。這種“短視”的教育模式,不僅限制了學生個人的長遠發(fā)展,也在一定程度上影響了整個行業(yè)的人才培養(yǎng)和創(chuàng)新能力。
2 教學內(nèi)容重構
2.1 基礎語法
基礎語法板塊包含2部分內(nèi)容,分別是Python基礎語法和跨語言編程。
Python基礎語法根據(jù)大數(shù)據(jù)專業(yè)的縱向培養(yǎng)過程梳理而成,包括:Python語言概述與基礎語法規(guī)則、程序流程控制的精髓、序列數(shù)據(jù)類型的靈活運用、函數(shù)的定義與調(diào)用、文件的讀寫操作、面向?qū)ο缶幊獭_@一部分重點培養(yǎng)學生的編程思維和良好的編程習慣,讓學生掌握Python程序設計的基礎語法規(guī)則。如面向?qū)ο缶幊陶鹿?jié),掌握語法規(guī)則強調(diào)的是類的定義規(guī)則與使用方法,而非寫出一個良好設計的模板類,因此基本語法板塊在課程內(nèi)容上是由適合職業(yè)院校大數(shù)據(jù)技術專業(yè)的技能框架構成。
Java以其強大的企業(yè)級應用能力和跨平臺特性,在大數(shù)據(jù)處理框架如Hadoop中占據(jù)核心地位;而Scala則以其簡潔的語法和強大的函數(shù)式編程支持,在大數(shù)據(jù)分析和機器學習領域發(fā)揮作用。因此,跨語言編程著重教授大數(shù)據(jù)領域常用的編程語言即Java語言和Scala語言開發(fā)環(huán)境的搭建以及與Python語言的差異。旨在通過對比學習,掌握不同語言開發(fā)環(huán)境的搭建,了解不同集成開發(fā)環(huán)境的區(qū)別,學會在特定場景下選擇最合適的工具。通過基礎語法的對比學習,明確不同語言語法規(guī)則的緣由,能夠舉一反三地自主學習R語言的使用。幫助學生建立跨語言編程的廣闊視野,提高編程能力和適應性。
以變量的定義為例,不同語言的定義格式分別如下。
Python語法格式為:變量名=初始值
Java語法格式為:數(shù)據(jù)類型 變量名=初始值
Scala語法格式為:變量關鍵字 變量名:數(shù)據(jù)類型=初始值
其變量名均需要符合標識符的命名規(guī)則,而初始值均由該變量的數(shù)據(jù)類型決定。區(qū)別在于Python屬于弱類型語言,定義時不須要指明數(shù)據(jù)類型。而Java、Scala屬于強類型語言,在定義時須要指明數(shù)據(jù)類型。
2.2 綜合實踐
綜合實踐板塊,通過專業(yè)核心課程、企業(yè)實踐項目、技能競賽內(nèi)容等多方面橫向解構,剖析出與專業(yè)知識關系不大,但在實踐操作中必不可少的實踐項目,重構為綜合實踐。使課程緊密貼合大數(shù)據(jù)專業(yè)需求,直接面向未來就業(yè)崗位,全方位提升學生的專業(yè)技能與實踐能力。編排順序為:數(shù)學算式的表達,原數(shù)據(jù)的清洗、轉(zhuǎn)換與聚合,簡單模型的訓練與預測,數(shù)據(jù)特征的展示,靜態(tài)網(wǎng)頁數(shù)據(jù)的獲取與解析,大數(shù)據(jù)的操作與分析。綜合實踐板塊部分案例如表2所示。
這一部分強調(diào)項目實現(xiàn)的環(huán)境配置、邏輯過程。如大數(shù)據(jù)的操作與分析板塊中的詞頻統(tǒng)計實踐案例,學生需要學會使用教師提供的大數(shù)據(jù)平臺完成項目的構建,PySpark包的安裝,PySpark應用程序的創(chuàng)建,Main.py的編輯。詞頻統(tǒng)計是先對文段中每個單詞進行切分,再將單詞轉(zhuǎn)換為鍵值對形式,最后對相同鍵的值進行累加的邏輯流程以及代碼的調(diào)試運行。而將如何搭建大數(shù)據(jù)平臺交由大數(shù)據(jù)基礎應用課程講授,將Spark對象在集群中的運行架構等原理性知識交由Spark技術與應用課程講授。
2.3 拓展學習
將本科階段注重培養(yǎng)學生扎實的數(shù)理基礎、編程能力以及研究生階段注重培養(yǎng)高水平人才、增強學生跨學科知識的融合能力及綜合實踐能力[7] 內(nèi)容通過拓展學習板塊融入每個任務末尾,作為知識體系的可持續(xù)性拓展。基本語法板塊中的拓展學習,包括數(shù)據(jù)結構(如列表、棧、隊列)在Python中的實現(xiàn),提升程序健壯性、速度等的編程技巧,展開Python源碼分析,進行異常調(diào)試等。綜合實踐板塊中的拓展學習,包括數(shù)據(jù)采集原理、數(shù)據(jù)分析算法基本概念、小型算法的編程實現(xiàn)等,使用Python進行數(shù)據(jù)庫操作。
以提高程序代碼的健壯性拓展學習為例。在文件的讀寫操作中設置異常,引入一個健壯的程序能夠更好地應對各種異常情況。方式有以下3個。
(1)用戶輸入是程序中一個潛在的錯誤來源。通過驗證和清理用戶輸入,可以防止因為惡意輸入或者錯誤格式的輸入導致的問題。
(2)異常處理是保障程序健壯性的基石。合理地使用try和except語句,可以處理可能出現(xiàn)的異常情況,防止程序因為錯誤而崩潰。主要代碼如下。
try:
data=open(\"hamlet.txt\", \"r\").read()
except IOError as err:
print(\"File error:\"+str(err))
finally:
if 'data' in locals():
data.close()
(3)合適的日志記錄可以幫助理解發(fā)現(xiàn)程序運行過程中的問題。Python內(nèi)置的logging模塊提供了靈活的日志功能。
3 教學形式的實踐
“讀-析-測-拓”主要用于綜合實踐板塊教學,由于“Python程序設計”課程屬于專業(yè)基礎課,在授課階段學生還未學習數(shù)據(jù)采集、數(shù)據(jù)分析與挖掘、Spark技術與應用等專業(yè)核心課,對其原理缺乏理解,于是該教學形式從結果端出發(fā),引導學生閱讀Python項目,忽略項目實現(xiàn)的算法原理,從語法、功能層面理解程序目的,從而銜接大數(shù)據(jù)實施過程中對Python的使用。通過這一形式,學生可以在課堂上閱讀并調(diào)試完成多段程序,深化對Python語言在不同專業(yè)核心課程中使用的理解,而在專業(yè)核心課程中即可將授課重心放在原理教學,即算法原理。以綜合實踐模塊中sklearn庫創(chuàng)建決策樹為例,主要代碼如下。
df1=pd.read_csv('txt.csv')
tree=DecisionTreeClassifier(random_state=4)
tree.fit(X_train, Y_train)
data=t.export_graphviz(tree, out_file=None)
graph=graphviz.Source(data)
graph.render('result')
“讀”的階段,學生須要像閱讀英文文章一樣閱讀Python項目代碼。根據(jù)變量名命名特點,運用以往知識框架粗略地理解程序的功能和實現(xiàn)方式,記錄問題。
“析”的階段,是明確程序功能。學生要逐行分析代碼,理解代碼的功能以及代碼之間的邏輯關系,明確程序的功能,對于未見過的方法要像查字典一樣查閱對應庫的API。在理解程序功能以后,學生還可以對與實現(xiàn)該功能的代碼有異議的地方做相應的修改并記錄。如本段程序是使用read_csv函數(shù)讀取名為“txt.csv”的文件,創(chuàng)建一個決策樹分類器的實例,設置隨機狀態(tài)為4以確保結果的可重復性,使用X_train和Y_train來訓練決策樹模型,使用export_graphviz函數(shù)將訓練好的決策樹模型導出為DOT格式的字符串,使用graphviz的Source類創(chuàng)建一個圖形對象,該對象包含了決策樹的DOT格式數(shù)據(jù),將圖形對象渲染為一個文件,文件名為“result”。
“測”的階段,則是將程序調(diào)試運行,測試其功能。在這一階段,學生須要安裝sklearn包、graphviz包,創(chuàng)建并編輯.py文件,運行調(diào)試程序獲取計算結果,確保程序的正確性。
最后是“拓”的階段,教師從需求端開始到功能實現(xiàn)總結該項目,發(fā)布拓展訓練反復讀-析-測過程。
“讀-析-測-拓”教學形式的優(yōu)勢還在于,帶著問題理解代碼,強調(diào)了學生的主體地位。學生不僅可以鞏固拓展Python編程的基本知識和技能,還可以提高在大數(shù)據(jù)領域解決問題的能力。這有助于激發(fā)學生的學習興趣和積極性,使學生在學習過程中保持高度的專注和熱情。同時,學生可以根據(jù)興趣和需求選擇板塊閱讀,從而更加高效地掌握知識和技能。
4 教學實踐效果
“Python程序設計語言基礎”的教學實踐涉及2個班級,共82名學生,在為期一學期內(nèi)安排了64課時。綜合來看,本次教學實踐展現(xiàn)出多方面的優(yōu)化與進步:教學內(nèi)容更為豐富多元,難度設置合理,學生普遍表現(xiàn)出較高的接受度與學習熱情,其積極性相較于以往有顯著提升。教學成效顯著,課程最終評分達4.8分,充分體現(xiàn)了教學質(zhì)量的提升。在專業(yè)核心課程對接上,該課程展現(xiàn)出了良好的連貫性與支撐作用,有效延長了專業(yè)課的教學時長,為學生的專業(yè)知識體系奠定了基礎,促進了學生大數(shù)據(jù)素養(yǎng)的全面提升。
5 結語
專科層次大數(shù)據(jù)專業(yè)的“Python”課程教學面臨著與既定培養(yǎng)目標之間的差距,主要體現(xiàn)在教學內(nèi)容缺乏跨語言整合、教學實踐與專業(yè)核心課程及崗位實踐脫節(jié)以及知識體系可持續(xù)引導不足等方面。為了提升教學效果,在教學內(nèi)容上,本文構建了包含Python基本語法、跨語言編程以及綜合實踐3個核心模塊的課程體系,增加了拓展學習板塊以強化知識體系的可持續(xù)引導。在教學形式上,采用“讀-析-測-拓”的教學形式,引導學生從結果出發(fā),深化對Python在不同專業(yè)核心課程中使用的理解。這些策略旨在全方位提升學生的專業(yè)技能與實踐能力,為學生的職業(yè)發(fā)展奠定基礎。當然,在實施“讀-析-測-拓”教學形式的過程中,教師也須要注意一些問題。如教師須要關注學生的個體差異,根據(jù)實際情況進行個性化的指導和幫助;定期評估學生的學習成果和進步情況,以便及時調(diào)整教學策略和方法[8]。在未來的教學實踐中,教師要繼續(xù)探索和完善這一教學方法,為培養(yǎng)更多優(yōu)秀的編程人才做出貢獻。
參考文獻
[1]王鷺.大數(shù)據(jù)背景下民辦高職院校產(chǎn)教融合實踐教學研究:以J學院大數(shù)據(jù)與會計專業(yè)為例[J].才智,2024(31):161-164.
[2]馮小潔.基于大數(shù)據(jù)思維的大數(shù)據(jù)技術原理與應用教學改革[J].計算機教育,2020(4):133-137.
[3]任泰明.高職院校大數(shù)據(jù)技術與應用專業(yè)人才培養(yǎng)方案的探索與實踐[J].電腦知識與技術,2019(7):169-170.
[4]彭影.基于命名實體識別的大數(shù)據(jù)分析崗位能力要求研究[D].天津:天津財經(jīng)大學,2023.
[5]藍慶青.基于學科交叉的Python課程教學實踐[J].集成電路應用,2024(2):371-373.
[6]邊璐佳.基于OBE理念的教育學專業(yè)人才培養(yǎng)模式研究[J].學周刊,2024(31):45-48.
[7]張婧,田甜.面向大數(shù)據(jù)行業(yè)需求的人才培養(yǎng)模式創(chuàng)新研究:以研究生為例[J].教育教學論壇,2020(28):90-91.
[8]楊子琪,曹揚.“三師協(xié)同”下價值培養(yǎng)融入專業(yè)課程的路徑探索[J].現(xiàn)代商貿(mào)工業(yè),2024(23):225-227.
(編輯 王永超編輯)
Reconstruction and" form practice of teaching content for the “Python” course
in big data technology major
LI" Lin, QIAN" Neng, HU" Huiying
(Chongqing Water Resources and Electric Engineering College, Chongqing 402160, China)
Abstract: "Addressing issues such as the lack of cross-language integration in “Python” curriculum content for big data technology majors at the vocational college level, disconnection from professional core courses and job requirements, and insufficient sustainable guidance in the knowledge system, this article reconstructs a curriculum system that encompasses three major modules: basic Python syntax, cross-language programming, and comprehensive practice. Additionally, an extended learning section is introduced to enhance the sustainable guidance of the knowledge system. A teaching format of “read-analyze-test-expand” is proposed. Through practice, the course has achieved satisfactory teaching results.
Key words: vocational college level; big data major; Python language teaching; teaching content reconstruction; teaching form practice