王婷
【摘 要】隨著人工智能技術在金融行業的深入應用,對金融專業學生的計算機水平要求也越來越高。計算思維能力的提升有助于學生更有效地使用計算機及進行二次開發,對金融生而言尤為重要。文章以Python程序設計課程的教學為依托,提供了培養金融生計算思維的一些思路和手段,實踐表明取得了良好效果。
【關鍵詞】計算思維;Python;金融專業
一、引言
計算機技術正在以前所未有的速度改變著大量行業的生態。員工們的職責,從相對低技術含量的數據收集整理、加工分析,過渡到流程分析控制、程序設計和決策方向。金融專業的各個方向,諸如銀行、證券、財會的人力市場,已經開始感受到沖擊:2017年,世界四大會計師事務所不約而同地推出了各自的智能財務機器人;2018年,商業銀行裁員達到七萬人以上[1];2020年3月,匯豐銀行提出3.5萬人裁員計劃。投資銀行也在持續裁員,但與之相對應的是,高盛加大了程序員的招聘數量。這些趨勢,要求我們轉變對金融專業學生的培養思路,增加更多的計算技術訓練,以適應發展和轉型的需要。
計算思維與邏輯思維、實證思維并列為三大科學思維[2]。它來源于計算技術的發展,促使我們用自動化、批處理的思路去分析問題、解決問題。自2006年,周以真教授提出計算思維的概念以來,計算思維的研究進展非常快。我國教育部高等學校大學計算機課程教學指導委員會在2015年發布的《大學計算機基礎課程教學基本要求》中明確指出,計算機通識課程改革,要以計算思維為導向[3]。對于金融專業的學生來說,掌握計算思維并投入實際應用,將成為他們的必備技能。
二、金融生程序設計語言的選擇
從無到有的創造,對每一個學生來說,都具有強大的吸引力。新生代大學生,由于長期接觸電子產品,對程序的“無所不能”,早已心懷向往。從公共選修課的選課數據來看,微信小程序、app設計、網頁設計、游戲設計等課程,供不應求。在這些課程里,最能讓學生體會到計算思維魅力的,當屬程序設計。對于非計算機專業的學生來說,能分配在程序學習上的時間有限,如果語法過于繁瑣,一學期結束時,仍在語法細節上糾纏,看不到多少實際的運行效果,更看不到對本專業學習和工作的支撐作用,勢必打擊學生編程的興趣,甚至進而影響到其學習其它計算機課程的積極性。所以需要選擇一門合適的入門編程語言。
本校的計算機基礎教學體系,本著以學生為中心的原則,在教育部高教司及高等學校計算機課程教指委的指導下,經過了多輪改革。從早期《大學計算機基礎》的單一教學,到中期的1+N課程試點,直至建立目前的“寬專融”課程體系。其中程序設計課程,也經歷過VB、C語言和Python的多種嘗試。目前看來,Python比較適合用來做非計算機專業學生的編程啟蒙和計算思維啟蒙。
Python的主要弱點是執行速度較慢,硬件技術的飛速發展在一定程度上可以抵消這個弱勢,而Python的優點則非常突出:
1)語法優雅簡單,易學易懂;結構直觀,以縮進的方式明確層次關系,便于理解和調試;面向對象,代碼易于復用。
2)提供多達13萬個標準庫和擴展庫,涉及數據計算、分析和處理的有NumPy、pandas、arch、pylab等,它們可以有效屏蔽底層的實現細節,以相對更接近金融學公式的寫法來實現程序的設計思路,有助于學生將關注點聚焦于問題分析和處理方法。
3)有大量的字符串內置函數和推導式,便于矩陣類數據運算,為金融數據建模和計算提供了便利。
三、針對金融專業的Python教學設計與實施
(一)教學目標
教學目標主要設計為三個層次:語法教學方面,要求熟練掌握Python語言的基本語法,了解程序的調試方法,理解面向對象編程的相關概念和函數式編程模式,能熟練使用常用庫。能力方面,要求學生熟悉常用計算機算法,能獨立分析問題并編寫代碼形成自動化的解決方案。素養方面,提升學生的計算思維能力,包括進一步加深對計算機硬軟件機制的了解,理解抽象、構造、遞歸和迭代等計算思維常用手段。
(二)教學內容
由于需要實現的目標比較多,我們將課程分為課內和課外兩個部分,課內教學48課時課外自修24課時。在48個課時里,綜合考慮語法、計算思維和金融專業三方面的結合,將理論知識充分融進實踐應用中,有效提升學生用計算思維去分析解決問題的能力。
在教材的選擇上,由于沒有現成的面向金融專業的Python入門級課本,所以目前仍然選擇了通用型Python教材,以董付國的《Python程序設計基礎與應用》為主,適當補充數據分析處理方面的章節和案例,學時分配如表1所示:
課外學時主要用于學習知識點,課內教學主要以案例串聯起相關知識點,實現學以致用、知行合一。案例按關鍵知識點分組,主要案例組設計如表2所示:
各案例組既有獨立性,也有關聯性。例如繪圖中的數據,來源于數據分析和向量組。在每個案例組中,通常有兩個漸進式的例題,由易至難或由共性到專業。例如階梯式計算,由貼近日常的水電費計算,過渡到與金融相關的個稅計算。在數據分析中,由學生的成績分析,擴展至證券數據分析。比較復雜的案例,會使用兩周的時間來完成。
(三)教學手段
由于時間緊,任務重,傳統的課堂教學形式已經不能適應課程需要,所以本課程在開課之初的設計時,就穿插了多種教學手段,充分借鑒了目前比較成熟的翻轉課堂模式。
在課外自學課時中,要求學生利用超星學習通、微信雨課堂等平臺觀看小視頻進行預習并完成相應章節測試。在這個過程中,教師可以通過平臺收集的數據,例如視頻的重復觀看次數,每個小題的得分率等,了解到學生在哪些知識點的學習上遇到的阻礙比較大,從而及時調整后續課堂教學的重點。有的放矢的教學,有效提高了學習效率。
課堂教學主要在實驗室進行。課前以統調數據和測試成績為依據,按每個班的特點,將學生劃分為幾種類型,例如語法細節掌握比較好的、算法思路清晰的、調試耐心的、表達能力強的等。在此基礎上,將學生分成5人小組,每一組中盡量包含更多類型的學生。教師先進行知識點總結,然后引出課堂主要案例,提出部分思路,接下來由小組各自討論實現的方法并編寫代碼進行驗證。最終各小組形成解決該類問題的要點文檔,并在班級群內傳閱,以開闊大家的思路。這個分析、驗證和總結的過程,就是不斷錘煉學生計算思維的過程,讓他們逐漸明了,哪些問題,用哪些手段,就可以變成計算機能解決的問題。讓他們深刻理解到,有時候為了方法的通用性更強,代碼的魯棒性更好,我們會引入一些讓問題看上去更復雜的元素。
課后作業要求獨立完成,有選做和必做兩個部分。選做題難度較高,不要求上交,正確答案一周后會直接公布在班級群中。
(四)評價標準
評價體系中增加對計算思維的考查部分,主要方法有二:一是將平時成績在總評成績中的占比提高到百分之五十,二是在期末考試中增加分析類題型。平時成績中,除了常規的考勤、課前成績和作業成績外,小組的總結文檔成績占到百分之四十。文檔不規定具體的形式,學生上交的有條目式、表格式、流程圖式和思維導圖式等。這部分成績要求教師在日常教學中勤觀察、嚴要求,避免有學生混水摸魚。
(五)實施效果
以上教學施行了兩個學期,從考查結果來看,百分七十三的學生初步建立了編程分析二維數據的能力,能生成直觀化的數據分析圖形,遠高于前期C語言教學時百分之二十一的數據。程序設計題的得分率達到百分之八十三,為后續的金融大數據分析和金融時間序列分析等課程打下了良好的基礎。
從收集的反饋數據來看,學生普遍表示難度適中,多數實驗能夠獨立完成或檢索資料后獨立完成;在編程的過程中能體驗到成就感,加強了學習計算機的興趣和信心。部分同學主動提出,希望能得到后期自學的渠道和素材。
四、結語
為適應新形勢下的工作環境,迎接人工智能時代的到來,金融專業的學生應及時轉變計算機課程體系的重心,注重計算思維的培養和編程能力的提升。通過合理的設計,程序課與金融專業課可以起到一個良好的互相促進作用。專業課為程序課提供素材,提高代碼的實用性,程序課為專業課提供實現手段,促進學生對公式和計算思維、自動化處理的理解。在后續階段,一方面嘗試引入各類競賽和考級,以考促學,進一步激發學生的學習興趣。另一方面,仍需加強跨專業合作,與金融專業教師增加交流和探討,提供更多與專業結合更緊密的項目和案例。
【參考文獻】
[1] 李焱、中國基金報(ID:chinafundnews 記者:喬麥)等. 21世紀經濟報道[OL]. https://baijiahao.baidu.com/s?id=1652004691191396559&wfr=spider&for=pc ,2019.12
[2] 朱亞宗. 論計算思維———計算思維的科學定位、基本原理及創新路徑[J].計算機科學,2009.4
[3] 教育部高等學校大學計算機課程教學指導委員會.大學計算機基礎課程教學基本要求[M]. 北京: 高等教育出版社, 2016: 1