廖俊國 梁偉 韓雪 龔波
摘? 要:Python語言程序設(shè)計課程是高校廣泛開設(shè)的公共通識課程。該文以財務(wù)管理專業(yè)學(xué)生為施教對象,分析該課程教學(xué)面臨的困難,探討項目驅(qū)動式教學(xué)方法。通過梳理教學(xué)內(nèi)容和知識點,構(gòu)建知識圖譜,結(jié)合專業(yè)背景設(shè)計應(yīng)用項目,把知識點的教學(xué)貫穿于應(yīng)用項目的開發(fā)中,同步遞進,把理論與實踐有機融合,傳授Python語言程序設(shè)計基礎(chǔ)知識的同時,培養(yǎng)學(xué)生解決問題的能力,達到學(xué)以致用的目的。
關(guān)鍵詞:Python語言;知識圖譜;項目驅(qū)動;財務(wù)管理專業(yè);教學(xué)方法
中圖分類號:G642? ? ? ? 文獻標(biāo)志碼:A? ? ? ? ? 文章編號:2096-000X(2024)04-0058-05
Abstract: Python Language Programming is a public general education course which is widely offered by colleges and universities. In this paper, the difficulties of the course teaching for Financial Management major are analyzed, and the project-driven teaching method is investigated. By discovering the relation between course content and knowledge points, the knowledge graph for the course is established. Combined with financial management major, the application project is designed. The teaching of knowledge points is carried out in the development of application project. The theory and practice are fully integrated. While the knowledge about Python Language Programming is teaching, the ability to solve problems is cultivated. The goal of learning for practice is reached.
Keywords: python language; knowledge graph; project-driven; Financial Management; teaching method
Python語言是一種開源的腳本語言,也是一種生態(tài)語言,具有簡潔、高效和擁有強大計算生態(tài)等特點,成為目前最熱門的計算機程序設(shè)計語言之一。當(dāng)下全國高校廣泛開設(shè)Python語言程序設(shè)計課程,不僅計算機專業(yè)開設(shè)該課程,而且也是非計算機專業(yè)開設(shè)語言類課程的首選[1]。Python語言程序設(shè)計是一門公共通識課程,文科、理科和工科專業(yè)均可開設(shè)該課程。對文科學(xué)生而言,Python語言是令人愛恨交織的課程。一方面,它滿足了廣大學(xué)生在大數(shù)據(jù)、人工智能時代對編程應(yīng)用的預(yù)期;另一方面,受限于邏輯分析、計算思維和動手操作能力的不足,很多文科學(xué)生的學(xué)習(xí)效果并不盡如人意[2]。因此,文科專業(yè)的Python語言程序設(shè)計課程教學(xué)存在以下主要問題:①學(xué)習(xí)目標(biāo)不明確,缺乏學(xué)習(xí)動力,學(xué)習(xí)興趣不大;②由于缺乏計算機相關(guān)知識和計算思維能力,學(xué)生對程序設(shè)計類課程有畏難心理[3]。
針對文科專業(yè)Python語言程序設(shè)計課程教學(xué)存在的問題,以財務(wù)管理專業(yè)學(xué)生為施教對象,探討學(xué)以致用的項目驅(qū)動式教學(xué)方法,設(shè)計與財務(wù)管理相關(guān)的應(yīng)用項目,梳理教學(xué)內(nèi)容和知識點,構(gòu)建知識圖譜,把所有知識點的教學(xué)貫穿于應(yīng)用項目的開發(fā)之中,采用滾雪球的方式逐步遞增知識點,分階段、階梯式地完成應(yīng)用項目的各項任務(wù),培養(yǎng)學(xué)生分析問題和解決問題的能力,提升教學(xué)質(zhì)量和教學(xué)效果。
一? 課程教學(xué)目標(biāo)定位
由于Python語言程序設(shè)計課程是廣泛開設(shè)的公共通識課程,施教對象包括文科、理科和工科專業(yè)學(xué)生。因此,應(yīng)根據(jù)該課程的內(nèi)涵和性質(zhì),結(jié)合施教對象所學(xué)專業(yè)的特色,準(zhǔn)確定位該課程的教學(xué)目標(biāo)。
(一)? 正確領(lǐng)悟課程內(nèi)涵
Python語言程序設(shè)計課程名稱顧名思義:程序設(shè)計是根本,是落腳點[4];Python語言是程序設(shè)計的工具。猶如英語演講課程一樣,演講是關(guān)鍵和重點,英語只是演講使用的語言。因此,Python語言程序設(shè)計的內(nèi)涵是用Python語言進行程序設(shè)計,要求學(xué)生不僅要掌握Python語言的基礎(chǔ)知識,而且還應(yīng)掌握程序設(shè)計的基本原理和方法[5]。
(二)? 準(zhǔn)確把握課程特點
湖南科技大學(xué)財務(wù)管理專業(yè)Python語言程序設(shè)計課程在大學(xué)一年級第二學(xué)期開設(shè),而且該課程之前沒有開設(shè)計算機基礎(chǔ)相關(guān)課程,所以,該專業(yè)學(xué)生計算機基礎(chǔ)薄弱、缺乏相關(guān)知識,不具有計算思維模式。財務(wù)管理專業(yè)屬于文科,所以該專業(yè)學(xué)生邏輯分析能力較弱。
(三)? 明確課程教學(xué)目標(biāo)
根據(jù)Python語言程序設(shè)計課程的內(nèi)涵,結(jié)合財務(wù)管理專業(yè)學(xué)生的特點,準(zhǔn)確定位該課程的教學(xué)目標(biāo):掌握程序設(shè)計的基本理論、方法,提高程序設(shè)計水平和計算機應(yīng)用能力;培養(yǎng)學(xué)生計算思維能力、創(chuàng)新能力、發(fā)現(xiàn)問題、分析問題和解決問題的能力[6];掌握Python語言的基礎(chǔ)知識及編程應(yīng)用。
二? 激發(fā)學(xué)生的學(xué)習(xí)興趣
財務(wù)管理專業(yè)在Python語言程序設(shè)計課程之前沒有開設(shè)計算機基礎(chǔ)相關(guān)課程,且該專業(yè)屬于文科。顯而易見,財務(wù)管理專業(yè)學(xué)生在學(xué)習(xí)該課程時既缺乏計算機基礎(chǔ)知識,又不具備計算思維能力。因此,財務(wù)管理專業(yè)學(xué)生學(xué)習(xí)該課程會覺得很難,學(xué)習(xí)興趣不大,學(xué)習(xí)積極性不高。俗話說:興趣是最好的老師。所以,只有提高學(xué)生的學(xué)習(xí)興趣,激發(fā)學(xué)生的學(xué)習(xí)熱情,讓學(xué)生主動學(xué)習(xí),才能學(xué)好該課程。
首先,讓學(xué)生明白為什么要學(xué)習(xí)該課程,領(lǐng)悟?qū)W習(xí)該課程的必要性和重要性。從表面上看,該課程與財務(wù)管理專業(yè)沒有什么關(guān)聯(lián),是否開設(shè)無關(guān)緊要。但是,在信息時代,任何人都離不開計算機,計算思維是每個人必須具備的思維模式。蘋果公司創(chuàng)始人斯蒂夫·喬布斯(Steve Jobs)曾經(jīng)說過:“在工作中是否要編程,未必那么重要,但你可以把它當(dāng)成一面鏡子,一面你思考的鏡子。我認(rèn)為學(xué)習(xí)思考是最有價值的。這個國家的每個人都應(yīng)該學(xué)習(xí)如何編寫程序,因為它教會你如何思考。正如人們學(xué)習(xí)法律未必要當(dāng)上律師,但學(xué)習(xí)法律可以告訴你如何從法律的角度思考問題。同樣地,編程是一種稍微不同的思考方法。因此,我認(rèn)為計算機科學(xué)是一門基礎(chǔ)學(xué)科。每個人應(yīng)該在一生中花費一年的時間學(xué)習(xí)如何編程”[7]。
然后,讓學(xué)生明白為什么要選擇Python語言。Python語言的創(chuàng)始人吉多·范羅蘇姆(Guido van Rossum)有一句名言:“Life is short, you need Python”[8]。目前,Python語言在TIOBE排行榜(世界上最權(quán)威的編程語言排行榜單)排名第一位[9],已經(jīng)成為世界上最受歡迎的程序設(shè)計語言,不僅功能強大,而且易于學(xué)習(xí)。
最后,通過演示Python程序,讓學(xué)生直觀感受其作用。結(jié)合專業(yè)背景,財務(wù)管理的數(shù)據(jù)報表往往涉及商業(yè)秘密或個人隱私,需要進行保密。因此,設(shè)計并實現(xiàn)一個薪資報表加解密的Python程序,運行該程序,實現(xiàn)對薪資報表的保密功能,讓學(xué)生認(rèn)識到自己可以編寫Python程序去做一些與所學(xué)專業(yè)相關(guān)的事情。
三? 設(shè)計學(xué)以致用的應(yīng)用項目
(一)? 梳理教學(xué)內(nèi)容和知識點
在思考和設(shè)計學(xué)以致用的應(yīng)用項目之前,對Python語言程序設(shè)計課程的教學(xué)內(nèi)容和知識點進行梳理,理清知識點之間的邏輯關(guān)系,為應(yīng)用項目的設(shè)計及知識圖譜的構(gòu)建提供依據(jù)。為了實現(xiàn)該課程的教學(xué)目標(biāo),該課程的教學(xué)內(nèi)容應(yīng)包含兩部分:一部分是程序設(shè)計知識,主要包括算法、程序設(shè)計步驟和方法等知識點;另一部分是Python語言知識,主要包括數(shù)據(jù)類型(數(shù)值、字符串、列表、元組、字典和集合等)、流程控制(順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu))、輸入/輸出、文件和異常處理等知識點。算法是程序設(shè)計的基礎(chǔ),是解決問題的方法描述;程序設(shè)計步驟是程序設(shè)計過程的具體操作及其先后順序。數(shù)據(jù)類型按由簡單到復(fù)雜的順序組織不同數(shù)據(jù)類型知識點。流程控制的三種結(jié)構(gòu)可以相互嵌套,從而構(gòu)建功能復(fù)雜的程序。輸入/輸出是程序的基本功能,用于程序與外界的交互。文件為數(shù)據(jù)的永久存儲提供方法和途徑,異常處理為程序的穩(wěn)定性和健壯性提供支持。
(二)? 設(shè)計應(yīng)用項目
1? 應(yīng)用項目的設(shè)計原則
由于應(yīng)用項目的好壞直接影響教學(xué)效果,因此,應(yīng)高度重視應(yīng)用項目的設(shè)計[10]。應(yīng)用項目的設(shè)計應(yīng)考慮以下因素:①專業(yè)性強,應(yīng)用項目應(yīng)屬于施教學(xué)生所學(xué)專業(yè)領(lǐng)域的相關(guān)問題;②綜合性強,應(yīng)用項目應(yīng)涵蓋課程所有的知識點;③實用性強,應(yīng)用項目應(yīng)能夠解決專業(yè)領(lǐng)域的某個具體應(yīng)用問題,達到學(xué)以致用的教學(xué)目標(biāo)。
2? 應(yīng)用項目的實例
對于財務(wù)管理專業(yè),薪酬發(fā)放是一個單位最常見的工作之一,薪酬發(fā)放之前需根據(jù)相關(guān)信息和規(guī)則生成月薪資報表。因此,選擇“月薪資報表的自動生成”作為驅(qū)動教學(xué)的應(yīng)用項目,該應(yīng)用項目主要包括以下功能:設(shè)置基本工資級別和崗位等級、錄入員工基本信息、錄入績效獎勵和其他補貼、計算五險一金、計算個人所得稅、生成月薪資報表和保存文件等功能。員工基本信息包括員工號、姓名、年齡、性別、職稱/職務(wù)、基本工資級別、崗位和崗位等級等信息,月薪資報表包括員工號、姓名、基本工資、崗位津貼、績效獎勵、其他補貼、應(yīng)得薪資、基本養(yǎng)老保險、基本醫(yī)療保險、失業(yè)保險、工傷保險、生育保險、住房公積金、個人所得稅和實發(fā)薪資等信息。
(三)? 厘清應(yīng)用項目與知識點的關(guān)系
“月薪資報表的自動生成”應(yīng)用項目的開發(fā)包含了Python語言程序設(shè)計課程的教學(xué)內(nèi)容,基本涵蓋了所有知識點,該應(yīng)用項目功能模塊與課程知識點之間的涵蓋關(guān)系見表1。
(四)? 構(gòu)建與應(yīng)用項目關(guān)聯(lián)的知識圖譜
根據(jù)Python語言程序設(shè)計課程的教學(xué)內(nèi)容,梳理所有知識點,并把每個知識點應(yīng)用到“月薪資報表的自動生成”應(yīng)用項目的開發(fā)中,構(gòu)建與應(yīng)用項目關(guān)聯(lián)的知識圖譜,如圖1所示,圓圈表示知識點,單向箭頭表示知識點之間的包含關(guān)系,矩形表示知識點應(yīng)用于應(yīng)用項目的示例(說明:受圖幅限制僅列舉一個示例),雙向箭頭表示知識點和應(yīng)用項目示例之間的關(guān)聯(lián)關(guān)系。在圖1中,以“數(shù)據(jù)”為中心層層展開,體現(xiàn)了知識點之間的內(nèi)在關(guān)系,脈絡(luò)清晰。在第一層,圍繞“數(shù)據(jù)”的知識點是“類型”“輸入/輸出”和“處理”;在第二層,圍繞“類型”的知識點是“數(shù)值”“字符串”“列表”“元組”“字典”和“集合”,圍繞“輸入/輸出”的知識點是“終端”和“文件”,圍繞“處理”的知識點是“流程控制”“函數(shù)”和“異?!保辉诘谌龑?,圍繞“數(shù)值”的知識點是“整數(shù)”“實數(shù)”“復(fù)數(shù)”和“布爾數(shù)”,圍繞“流程控制”的知識點是“順序結(jié)構(gòu)”“選擇結(jié)構(gòu)”和“循環(huán)結(jié)構(gòu)”。最后一層的知識點關(guān)聯(lián)應(yīng)用項目示例,把知識點與應(yīng)用項目開發(fā)有機結(jié)合起來,讓學(xué)生直觀地感受到學(xué)以致用的效果,培養(yǎng)學(xué)生綜合運用所學(xué)知識解決實際問題的創(chuàng)新能力和實踐能力。
四? 因地制宜的項目驅(qū)動式教學(xué)方法
(一)? 項目驅(qū)動的滾雪球式施教過程
為了達到學(xué)以致用的教學(xué)目標(biāo),以結(jié)合專業(yè)背景設(shè)計的應(yīng)用項目“月薪資報表的自動生成”的開發(fā)為主線,以堆積木方式對應(yīng)用項目的各個功能模塊逐個開發(fā),對各個功能模塊開發(fā)所涉及的知識點進行詳細(xì)講解。隨著應(yīng)用項目的開發(fā),知識點像滾雪球一樣逐步遞增,直至所有知識點均被講解,構(gòu)成完整的知識體系。
(二)? 形式多樣的因地制宜教學(xué)手段
由于施教對象財務(wù)管理專業(yè)學(xué)生缺乏計算機基礎(chǔ)知識和計算思維能力。因此,在教學(xué)過程需要根據(jù)實際情況采用形式多樣的教學(xué)方式,因材施教,因地制宜。
1? 比喻式
由于計算機的概念比較抽象,學(xué)生難于理解和想象,常常感到迷茫和困惑。為了幫助學(xué)生理解抽象的概念,往往需要借助學(xué)生熟悉的生活實例作比喻,不僅讓學(xué)生易于理解概念,而且讓教學(xué)生動有趣,提高學(xué)生的學(xué)習(xí)興趣。
2? 手把手式
由于施教對象財務(wù)管理專業(yè)學(xué)生第一次學(xué)習(xí)計算機程序設(shè)計語言,沒有編寫過計算機程序。因此,剛開始時,學(xué)生很難用所學(xué)的語言獨立編寫計算機程序。在此種情況下,為了培養(yǎng)學(xué)生的信心和興趣,必須選擇一些具有代表性的經(jīng)典案例,分析如何編寫程序去解決問題,手把手地教學(xué)生逐行編寫代碼,并進行詳細(xì)講解,讓學(xué)生緊跟著老師的思維,沉浸式感受編寫程序的整個過程,逐漸培養(yǎng)學(xué)生的計算思維能力和編寫程序的實踐能力。
3? 啟發(fā)自主式
通過手把手式教學(xué)生編寫具有代表性的程序,啟發(fā)式引導(dǎo)學(xué)生舉一反三,鼓勵學(xué)生嘗試自己獨立編寫類似的程序,體會編寫程序的樂趣,掌握編寫程序的知識和技巧,積累編寫程序的經(jīng)驗。日積月累之后,學(xué)生就能運用所學(xué)的程序設(shè)計語言編寫程序去解決實際問題,達到學(xué)以致用的教學(xué)目標(biāo)。
五? 教學(xué)效果評價
Python語言程序設(shè)計課程的考試分為設(shè)計和實驗兩部分,均采用機考方式。湖南科技大學(xué)2022級財務(wù)管理專業(yè)共有學(xué)生98人,96名學(xué)生參加考試,2名學(xué)生申請緩考,課程考試成績分布見表2。由表2可知,參加考試的96名學(xué)生中,只有2名學(xué)生沒有通過設(shè)計考試,通過率達到97.9%,設(shè)計考試平均分78.27,80分以上學(xué)生人數(shù)46人,占比47.9%;3名學(xué)生沒有通過實驗考試,通過率達到96.9%,實驗考試平均分81.68,80分以上學(xué)生人數(shù)62人,占比64.6%。
表2表明,絕大部分學(xué)生掌握了Python語言程序設(shè)計的基礎(chǔ)知識,具備了使用Python語言編寫程序去解決問題的實踐能力。而且,由表2可知,學(xué)生的實驗成績比設(shè)計成績更好,說明學(xué)生解決實際問題的編程能力更強。由此可見,學(xué)以致用的項目驅(qū)動式教學(xué)方法培養(yǎng)了學(xué)生分析問題和解決問題的能力,提高了學(xué)生的實踐能力,提升了教學(xué)質(zhì)量和教學(xué)效果,達到了預(yù)期的學(xué)以致用教學(xué)目標(biāo)。
參考文獻:
[1] 段韶鵬,賈博文.基于成果導(dǎo)向理論的Python課程教學(xué)改革與實踐[J].計算機教學(xué)與教育信息化,2020,16(20):120-121.
[2] 王曉靜,索菲,張楊.面向新文科Python語言程序設(shè)計的課程思政教育融入式教學(xué)研究[J].遼寧大學(xué)學(xué)報(自然科學(xué)版),2021,48(3):283-288.
[3] 王偉.“課程思政”背景下Python語言程序設(shè)計教學(xué)改革探究[J].電腦知識與技術(shù),2021,17(28):243-244,249.
[4] 龔俊,吳福英,柯勝男,等.工程教育專業(yè)認(rèn)證下的程序設(shè)計課程群教學(xué)改革[J].計算機教育,2023(6):109-115.
[5] 楊蕊.以O(shè)BE為導(dǎo)向的Python語言程序設(shè)計實踐教學(xué)體系建設(shè)與研究[J].信息與電腦,2022(4):242-244.
[6] 賀國平.Python語言程序設(shè)計課程中的OBE模式應(yīng)用[J].電子技術(shù),2022,51(2):140-141.
[7] 喬布斯.遺失的訪談(1995)[EB/OL].http://open.163.com/movie/2013/5/N/R/M8TBJIK7D_M8TBLIINR.html.
[8] 趙璐.Python語言程序設(shè)計教程[M].上海:上海交通大學(xué)出版社,2021:5.
[9] Tiobe Index for May 2023[EB/OL].https://www.tiobe.com/tiobe-index/.
[10] 佟強,蔣玉茹,趙淳,等.課程設(shè)計項目驅(qū)動的“C語言程序設(shè)計”教學(xué)方法探索[J].教育教學(xué)論壇,2021(51):138-141.
基金項目:湖南省高校教學(xué)改革項目“新工科背景下《Python程序設(shè)計》課程思政教學(xué)研究”(HNJG-2022-0792);湖南省高校教學(xué)改革項目“基于能力導(dǎo)向的Java Web課程實驗教學(xué)改革”(HNJG-2022-1410);湖南省學(xué)位與研究生教學(xué)改革研究項目“‘IPD+QM’融合方式下計算機類非全日制研究生的培養(yǎng)改革與探索”(2022JGYB130)
第一作者簡介:廖俊國(1972-),男,漢族,湖南衡陽人,博士,教授,博士研究生導(dǎo)師。研究方向為信息安全、計算機應(yīng)用。