摘要:文章針對新商科對經(jīng)管類專業(yè)學生提出的計算思維能力新要求,以及目前Python程序設計語言教學所面臨的問題,提出一種基于案例教學法的解決方案。從案例庫建設、案例教學流程、ChatGPT助力教學案例設計三個方面進行了教學設計和實踐。研究結果表明,案例教學顯著提升了學生對Python程序設計的學習興趣和積極性,培養(yǎng)了學生的編程解決專業(yè)問題的計算思維能力。
關鍵詞:新商科;計算思維;Python程序設計;案例教學
中圖分類號:G642" " " 文獻標識碼:A
文章編號:1009-3044(2025)12-0128-03
開放科學(資源服務) 標識碼(OSID)
0 引言
新商科是商科教育主動服務新經(jīng)濟的戰(zhàn)略型調(diào)整[1]。新商科旨在培養(yǎng)適應數(shù)字經(jīng)濟的具有交叉學科能力的創(chuàng)新型商業(yè)人才。這要求商科學生同時具有專業(yè)思維和計算思維。山東工商學院作為一所財經(jīng)類高校,大一開設的公共基礎課Python程序設計承擔了連接專業(yè)思維和計算思維的橋梁作用。為專業(yè)問題進行數(shù)學建模,并轉換為Python程序?qū)崿F(xiàn),就體現(xiàn)了計算思維的本質(zhì)——抽象和自動化。由于Python語言開發(fā)效率高,靈活易上手、擁有豐富的第三方庫,目前已廣泛應用于數(shù)據(jù)分析、機器學習、深度學習等領域。Python程序設計課程為商科專業(yè)的學生將來進從事金融數(shù)據(jù)分析與智能決策打下了堅實基礎。
山東工商學院從2019年開始面向統(tǒng)計學和會計學專業(yè)開設Python程序設計公共課,并逐步推廣到電子商務、資源管理、工商管理、物流管理等專業(yè)。這些專業(yè)領域在人工智能和大數(shù)據(jù)的沖擊下,正在不斷地進行升級和重構,需要大量既懂技術又懂業(yè)務邏輯的商科人才[1],這就要求在Python程序設計這門課中,培養(yǎng)學生具有專業(yè)問題求解的計算思維能力[2]。案例教學法最大的優(yōu)勢就在于緊密聯(lián)系實際,有利于培養(yǎng)學生分析問題、解決問題的能力[3]。在Python程序設計課程中采用大量商科專業(yè)情境案例進行教學,可以幫助學生建立起商科思維和計算思維的橋梁,盡快適應數(shù)字經(jīng)濟對商科人才的新要求。
1 Python教學中存在的問題
在6年的教學實踐中,山東工商學院的Python程序設計公共課教學采用了包括案例教學在內(nèi)的一系列教學方法。當前教學案例主要集中于經(jīng)典數(shù)學問題(如水仙花數(shù)、百錢買百雞) ,而關注經(jīng)管專業(yè)問題的案例相對較少。傳統(tǒng)教學案例的針對性比較強,有助于學生快速掌握某個知識點(如“求 1 到 100 的和”這一案例可以讓學生快速掌握循環(huán)語句) [4],但離現(xiàn)實生活距離較遠,與學生專業(yè)應用沒有結合點,學生的學習興趣不高,學后無以致用。而且由于計算機專業(yè)的教師缺乏經(jīng)管專業(yè)知識,提供的專業(yè)情境案例較為簡單或者不夠符合專業(yè)邏輯。
另外,隨著以ChatGPT、文心一言為代表的生成式人工智能的普及,簡單情境問題的解決已經(jīng)可以由生成式大語言模型自動生成Python代碼,已經(jīng)不能引發(fā)學生的獨立思考和學習興趣。
因此,以前以知識驗證為主的教案案例必須向面向?qū)嶋H問題求解的教學案例轉變,面向單一數(shù)學情境的教學案例應向面向復雜專業(yè)情境的教學案例轉變[5]。
2 Python程序設計課程案例教學實踐
2.1 針對商科專業(yè)特點,建立教學案例庫
為適應新商科的教學需求,課程組設計符合各章節(jié)教學內(nèi)容的案例。表1列出了每個章節(jié)的部分案例。這些案例中,有一些是針對某個知識點的教學案例,如計算個人所得稅是針對程序控制結構中的多分支結構設計的教學案例;有一些是漸進式教學案例,如快餐店點餐系統(tǒng)。漸進式案例是綜合了多個章節(jié)知識點的案例,情境更復雜,功能更全面。有些功能需要掌握了一定的Python基礎知識才能實現(xiàn)。漸進式案例可在第一節(jié)Python課時便開始介紹其應用情境和功能,激發(fā)學生學習Python的欲望[6]。然后將案例分成幾個功能模塊,在后續(xù)課程中,配合案例漸進式展開教學內(nèi)容,對各個功能模塊逐個擊破。漸進式案例情境更復雜,更貼近實際,可持續(xù)激發(fā)學生學習興趣、培養(yǎng)學生解決實際問題的能力。
2.2 案例教學流程
1) 引入案例
在課程的開始,為了讓學生對Python語言的實際應用有一個具體的認識,筆者將漸進式案例快餐店點餐系統(tǒng)給學生進行功能演示。該系統(tǒng)的功能包括:
①向顧客展示菜單中所有菜品及價格;
②顧客可以多次點餐,按“q”鍵表示點餐結束,同時記錄顧客點的菜品;
③計算訂單總價,并向顧客展示訂單中的菜品名稱、單價和訂單總價。
通過案例演示,向?qū)W生展示相關知識點,包括:
①用于存儲菜單和訂單的Python特有的內(nèi)置對象——字典。通過對字典的簡單介紹,從而引出Python用于數(shù)據(jù)存儲的其他容器類對象——列表、元組、集合、字符串的不同應用場合。
②程序控制結構。該案例用到的程序控制結構有:while循環(huán)結構用于實現(xiàn)允許顧客不限次數(shù)持續(xù)點餐,直到按“q”鍵退出;分支結構用于實現(xiàn)判斷顧客是否按“q”鍵退出點餐以及顧客點的菜品是否在菜單中;for循環(huán)結構用于遍歷菜單和顧客訂單,進行輸出顯示。
③sum()、str()等Python內(nèi)置函數(shù)以及運算符“+”等。sum()函數(shù)用于計算訂單中的菜品總價,str()函數(shù)用于將價格數(shù)字轉換為文本輸出。運算符“+”用作字符串連接。通過以上內(nèi)容引出Python內(nèi)置函數(shù)和運算符的概念。
快餐店點餐系統(tǒng)案例與學生生活聯(lián)系緊密,也是經(jīng)管類專業(yè)學生將來工作中會面臨的場景,學生接受程度高,代入感強。通過該案例,將該課程的章節(jié)和知識點進行梳理,讓學生對Python程序設計課程有總體的認識,消除迷茫和對編程的恐懼感,樹立學好這門課的信心。
2) 分模塊逐個擊破
該案例涉及的知識點分布在三個不同的章節(jié)。將該案例分成不同的模塊,在各個章節(jié)的學習中逐個擊破。例如在程序控制結構這一章,講到循環(huán)結構的部分,可以采用該案例幫助學生理解for循環(huán)和while循環(huán)應用場景的不同。for循環(huán)用于循環(huán)次數(shù)已知的循環(huán),while循環(huán)用于循環(huán)次數(shù)未知,但知道循環(huán)結束條件的循環(huán)。教師可以啟發(fā)學生思考,顧客點餐應該采用哪種循環(huán)方式。同學們通過討論認為,因為顧客點餐的商品數(shù)量是不定的,所以應該采用while循環(huán),同時應設定一個循環(huán)結束的條件,這里設定為顧客按“q”鍵退出點餐。這時適時地給學生講解while true: if ... break這種常用的循環(huán)結構,同時講解break,continue這兩種用于中途跳出循環(huán)的語句的使用方法。
又如講到字典這一章,我們可以啟發(fā)學生,該案例中菜單中不同菜品對應不同單價,這種一一對應關系適合用什么樣Python內(nèi)置對象來存儲?在前面的章節(jié)中,已經(jīng)講過的列表、元組、集合等容器類對象,顯然并不適合存儲成對出現(xiàn)的數(shù)據(jù)。這時可以適時地引入字典對象,并介紹字典存儲鍵值對數(shù)據(jù)的特點。在該案例中,菜品對應鍵,單價對應值。通過for循環(huán)遍歷字典的鍵值對,可以向顧客展示菜單的所有菜品和價格。接下來進一步深入講解字典的items()方法和values()方法。for循環(huán)默認遍歷的是字典的鍵(該案例中是菜品名稱) ,需要遍歷字典的鍵值對需要使用字典的items()方法。計算顧客訂單總價時,只需對字典的鍵求和,這就需要使用到字典的values()方法。快餐店點餐系統(tǒng)的代碼如圖1所示。
3) 拓展案例
讓學生組成小組討論顧客點餐案例可以改進的地方,并給出改進策略。有的學生指出,該系統(tǒng)每個菜品只能點一次,多點不能記錄數(shù)量。這時,教師不失時機地引出字典的get()方法。get()方法可以返回當前字典中指定鍵對應的值,沒有該鍵時返回默認值。此時引導學生思考,怎樣使用get()方法記錄一種菜品被點的次數(shù)?學生們經(jīng)過思考和討論后,將圖1代碼中else的部分修改為圖2的形式。表示訂單的字典order不再記錄顧客點的菜品和對應的價格,而改為記錄菜品和對應的數(shù)量。當顧客點一種菜品時,用get()方法獲取訂單字典order中該菜品item對應的鍵(數(shù)量) 。如果該菜品還沒有被點過,則返回0;如果已經(jīng)點過,則返回其數(shù)量。無論返回0還是數(shù)量,都在這個基礎上加1。
有學生進一步指出,訂單字典order改為記錄顧客點的菜品和數(shù)量,那么計算訂單總價的方法是不是也要發(fā)生改變?學生們又經(jīng)過一番討論得出結論:原來的order求總價,只需要對字典的所有的值進行求和sum(order.values()),而現(xiàn)在order的值是菜品的數(shù)量,則需要用單價乘以數(shù)量,其中單價記錄在菜單字典menu中。總價等于order中每個菜品item在menu中對應的值(單價) 乘以item在order中對應的值(數(shù)量) 。則計算訂單總價的代碼改為如圖3所示。
通過對點餐程序的拓展,學生們對字典的特點——通過鍵訪問值,字典的items()、values()、get()方法都有了初步的掌握。這時候,再適時地給出幾個類似的實例讓學生鞏固和消化。學生對字典的應用就比較純熟了。
2.3 ChatGPT助力教學案例設計
ChatGPT是新興的生成式大語言模型,可以通過對話的形式,根據(jù)人的要求生成文本、程序、圖片、音頻、視頻等多模態(tài)數(shù)據(jù)[7]。國內(nèi)類似的大語言模型有文心一言等,使用起來更加方便。由于講授Python程序設計的計算機專業(yè)老師對經(jīng)管專業(yè)的知識了解不夠深入,在設計教學案例時思路狹窄,或者描述問題情境不夠?qū)I(yè)和精確,因此借助ChatGPT可以幫助教師進行教學案例設計。教師對ChatGPT提出需要的問題情境,ChatGPT就會生成一個教學案例并給出解決方案。例如,教師可以向ChatGPT提出“根據(jù)個人所得稅計算編寫一道Python程序設計題目”。那么,ChatGPT給出如下的題目:
編寫一個Python程序,根據(jù)用戶輸入的年收入、專項附加扣除金額和社保公積金扣除金額,計算并輸出用戶應繳納的個人所得稅金額。計算規(guī)則如下:
個人所得稅=應納稅所得額×適用稅率-速算扣除數(shù)。
應納稅所得額=個人年收入-免稅額-專項附加扣除(子女教育、贍養(yǎng)老人、大病醫(yī)療、住房貸款利息等) -社保公積金扣除
免稅額:每年60 000元。
稅率級距和速算扣除數(shù)如下:
示例輸入:
請輸入您的年收入:150 000
請輸入您的專項附加扣除金額:24 000
請輸入您的社保公積金扣除金額:30 000
示例輸出:
您應繳納的個人所得稅金額為:3 390元。
通過上例可以發(fā)現(xiàn),通過ChatGPT的輔助可以大大減少教師收集數(shù)據(jù)、設計題目和錄入文字的工作量,并為教師設計案例擴寬了思路。教師只需在ChatGPT給出的案例內(nèi)容進行驗證和修改,就可以獲得適合自己課堂的完美案例。另外,教師還可以讓學生在ChatGPT給出的案例和代碼基礎上進行功能拓展,既培養(yǎng)了學生的發(fā)散思維,又鍛煉了學生的編程能力。
3 教學實施效果
多年教學實踐表明,大多數(shù)經(jīng)管類大一學生認為程序設計公共課和專業(yè)聯(lián)系不大,學習編程是計算機專業(yè)學生的事情,自己將來在專業(yè)學習和工作中肯定用不到,導致學習興趣不高,不愿意付出努力深入學習。通過兩年的案例教學實踐,研究發(fā)現(xiàn),用和學生專業(yè)相關的案例進行教學,更容易讓學生對程序設計課程產(chǎn)生認同感和興趣。 這不僅有助于學生在短時間內(nèi)建立應用問題與Python語言程序設計相關概念間的邏輯對應或關聯(lián)關系[6],而且有助于培養(yǎng)經(jīng)管類專業(yè)學生用計算機工具解決專業(yè)問題的能力和信心,激發(fā)學生自主學習與實踐的動力與愿望。有些學生會主動拿著自己在專業(yè)學習中遇到的問題來問老師“這個問題是否可以用Python編程來解決?”,通過和學生的一番探討,教師加深了對學生專業(yè)的了解,學生也對Python編程解決專業(yè)問題有了更深的認識。
4 結束語
Python程序設計課程中采用與商科專業(yè)結合的案例教學,激發(fā)了學生的學習興趣,培養(yǎng)了學生的計算思維能力。通過該課程,學生具備了用Python解決專業(yè)問題的意識和基礎編程能力,為山東工商學院下一步開設Python大數(shù)據(jù)分析、Python與人工智能的相關公共課程奠定了基礎。
參考文獻:
[1] 齊佳音,張國鋒,吳聯(lián)仁.人工智能背景下的商科教育變革[J].中國大學教學,2019(S1):58-62.
[2] 柳青.新商科背景下Python程序設計課程混合式教學方法與實踐[J].電腦知識與技術,2022,18(20):133-135.
[3] 鞠小林,張艷梅,王皓晨,等.基于大語言模型輔助教學的Python編程課程教學探索[J].計算機教育,2024(9):33-37.
[4] 黃思思.語言學案例驅(qū)動的Python教學方法探索[J].計算機教育,2024(1):179-182.
[5] 嵩天,黃天羽.Python語言程序設計教學案例新思維[J].計算機教育,2017(12):11-14,19.
[6] 文一憑,張進良,姜磊,等.應用驅(qū)動的漸進式Python案例教學探索與實踐[J].當代教育理論與實踐,2020,12(3):51-56.
[7] 盧宇,余京蕾,陳鵬鶴,等.生成式人工智能的教育應用與展望:以ChatGPT系統(tǒng)為例[J].中國遠程教育,2023(4):24-31,51.
【通聯(lián)編輯:王 力】