柳青
摘要:針對在大數(shù)據(jù)背景下,對經管類專業(yè)學生程序設計能力提出新的要求的前提下,依據(jù)計算思維的方法,以Python系列課程為載體,從經管類專業(yè)Python系列課程體系設置、復雜系統(tǒng)約簡案例、課程思政滲入案例三個方面闡述了一種計算機程序設計教學的案例實踐方式。
關鍵詞:大數(shù)據(jù);計算思維;Python;案例教學;課程思政
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2018)15-0133-02
The Case Teaching Practice of Python Series Course
LIU Qing
(School of statistics and Information,Shanghai University of International Business and Economics, Shanghai 201620, China)
Abstract:Under the background of big data, the ability of the programming capability set new requirements to the students majoring in economics and management. On the basis of computational thinking method, taking Python series curriculum as the carrier, this paper expounds a case practice mode of computer programming teaching combined with three aspects of the Python series curriculum system setting, the case of complex system reduction and the case of ideological and political education of course.
Key words:big data; computational thinking; Python; case teaching; ideological and political education of course
1 引言
面向計算思維的教學改革需要理解計算思維的時代性,即計算思維是基于計算機技術的科學思維,教學改革要符合并適應計算機技術的發(fā)展階段[1]。而當今大數(shù)據(jù)的出現(xiàn),必將顛覆傳統(tǒng)的數(shù)據(jù)管理方式。在數(shù)據(jù)來源、數(shù)據(jù)處理方式和數(shù)據(jù)思維等方面都會對其帶來革命性的變化[2]。這種轉變對財經類院校的影響是巨大的,這就要求財經類院校專業(yè)人才的培養(yǎng)要跟上時代的發(fā)展和社會的潮流,適應社會需求,從而傳授數(shù)據(jù)獲取、數(shù)據(jù)分析等相關知識就成為必不可少的教學內容。在這樣的大數(shù)據(jù)背景下,針對財經類院校的經管類專業(yè)的學生,更需要設計面向計算思維的課程教學體系以及具體的教學設計來培養(yǎng)學生的計算思維能力。
2 Python語言、數(shù)據(jù)分析與計算思維
Python語言是一種面向對象的解釋性語言,語法結構簡單,功能豐富,除了自帶的庫以外,還有種類和數(shù)量繁多且功能強大的第三方庫。大數(shù)據(jù)時代的到來,給經管類專業(yè)的學生提出了更高的要求,數(shù)據(jù)分析成為經管類專業(yè)的學生必須掌握的基本技能之一。目前Python在國際上非常流行,可以完成許多任務,功能非常強大。在眾多的編程語言和分析工具中,Python是最好的數(shù)據(jù)分析工具之一。TIOBE發(fā)布的2018年4月編程語言排行榜中,Python已經超過了C#位居第4位。而Python編程模式也非常符合人類的思維習慣,這將有助于我們將計算思維的教學理念融入實驗教學中。
3 經管類專業(yè)Python系列課程體系設置
上海對外經貿大學是以經濟管理類專業(yè)為主的國家財經類大學之一,是我國對外經貿人才的搖籃。2016 年,教育部高等學校大學計算機課程教學指導委員會才首次建議將 Python 語言作為程序設計入門課程的教學語言[3]。我校適應大數(shù)據(jù)時代發(fā)展的要求,從2015年開始就為經管類專業(yè)開設了Python程序設計的必修課,是全國財經類高校中較早開設Python程序設計的高等院校,經過幾年的建設,又陸續(xù)開出一系列Python課程,走在財經類高校的前列。我校開出的Python系列課程有《Python程序設計》《Python高級程序設計》《Python數(shù)據(jù)分析》《數(shù)據(jù)挖掘》。
《Python程序設計》作為經管類專業(yè)學生的必修課,屬于基礎級的課程,主要講述基本的數(shù)據(jù)類型、控制語句、函數(shù)、文件等基礎知識,學生掌握基本語法和算法,能夠利用計算機程序解決簡單的問題;《Python高級程序設計》《Python數(shù)據(jù)分析》位列于通識教育課程中,供學生選修,這三門課相互依托、相互映襯,相輔相成。《Python高級程序設計》是學完必修課《Python程序設計》的進階課程,以類和對象為起點,以網(wǎng)絡爬蟲技術為依托,學習推導式、正則表達式、爬蟲框架、多線程、數(shù)據(jù)庫等高級技術,學生掌握數(shù)據(jù)獲取相關知識,為后續(xù)的數(shù)據(jù)分析及可視化提供數(shù)據(jù)來源?!禤ython數(shù)據(jù)分析》主要涉及數(shù)據(jù)分析工具pandas,使用numpy和scipy進行科學計算,了解matplotlib繪圖庫基本繪圖功能,這些技術是經管類學生以后利用數(shù)據(jù)進行數(shù)據(jù)挖掘必不可少的技術準備,為他們以后的專業(yè)學習打下良好的基礎。《數(shù)據(jù)挖掘》最早是為研究生開設的一門課程,主要是通過numpy計算庫、matplotlib繪圖庫、sklearn機器學習庫等來實現(xiàn)數(shù)據(jù)挖掘分類算法,如決策樹、樸素貝葉斯、knn、支持向量機、關聯(lián)規(guī)則挖掘算法、聚類算法等,并能利用這些算法解決具體的應用問題,將這些算法應用到各專業(yè)領域中。
4 案例教學實踐
在以前的程序設計的教學中往往采用的均是水仙花數(shù)、百錢買百雞等經典算法教學,學生學完以后不知能夠做什么,感覺很迷茫,大大影響了教學效果。隨著云計算、物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等重大技術和科技需求的不斷發(fā)展,人們對計算問題及程序設計的認識發(fā)生了根本的轉變,從以知識驗證為主的問題求解轉變?yōu)槊嫦驅嶋H問題解決為主的計算求解[4]。這就需要我們在教學中與時俱進,重新設計案例,以期達到最好的教學效果。在案例教學中,我們根據(jù)具體教學內容和我校學生特點,運用計算思維的一系列方法(問題的約簡、關注點分離、仿真、啟發(fā)式推理、遞歸思維、回推等等)設計出一系列教學案例,通過這些案例給學生講解最實用的方法和技巧,培養(yǎng)學生的計算思維能力。
4.1 以結合經管類專業(yè)特點的案例教學為基石,培養(yǎng)學生基本計算思維能力
我們的案例來自某一個系統(tǒng)的一部分。讓學生直接上手一個系統(tǒng)顯然是不合適的。我們根據(jù)計算思維中問題的約簡、關注點分離等方法,把一個復雜的系統(tǒng)按照合理的方法,根據(jù)具體的教學內容分解成多個模塊和小問題,學生只需逐個掌握小問題的解決方法,就能實現(xiàn)一個完整的系統(tǒng)。在《Python程序設計》課程中,當講到多分支和選擇結構嵌套的時候,我們設計了一個根據(jù)訂貨量、價格計算應付貨款、折扣的案例。這個案例貫穿于選擇、循環(huán)、文件始終。講到多分支的時候,我們給學生設計的題目是:從鍵盤輸入訂貨量、價格。根據(jù)訂貨量大小、價格給以不同的折扣,計算應付貨款(應付貨款=訂貨量×價格×(1-折扣))。訂貨量500以下,折扣為3%;訂貨量500及以上,1000以下,折扣5%;訂貨量1000及以上,2000以下,折扣8%;訂貨量2000及以上,折扣10%。這個問題可以通過多分支來完成。講到選擇結構嵌套的時候,我們給學生設計的題目是:輸入客戶類型、貨品價格和訂貨量。根據(jù)客戶類型和訂貨量給予不同的折扣,計算應付貨款。如果是新客戶:訂貨量800以下,沒有折扣;否則折扣為2%。如果是老客戶:訂貨量500以下,折扣為3%;訂貨量500及以上,1000以下,折扣5%;訂貨量1000及以上,2000以下,折扣8%;訂貨量2000及以上,折扣10%。老客戶根據(jù)訂貨量享受的折扣就是前面通過多分支解決了的問題,只需再加一層條件判斷新老客戶即可,這就是選擇結構的嵌套。再給學生留一個懸念,現(xiàn)在每次只能輸入一次數(shù)據(jù),如果需要多次輸入怎么辦?就要用循環(huán)結構來解決。講到循環(huán)結構的時候,我們就順勢解決了這個不定循環(huán)次數(shù)的問題。然后又給學生留了另外一個懸念,當數(shù)據(jù)多了的時候一般不是在程序執(zhí)行時通過鍵盤一個個來輸入數(shù)據(jù),而且從鍵盤輸入的數(shù)據(jù)以及得到的結果均是一次性的,不能保存,那么如何解決這個問題?答案當然是將數(shù)據(jù)保存在文件中,那么當需要的數(shù)據(jù)在文件中的時候我們該如何將數(shù)據(jù)讀出來為我們所用?另外計算出來的結果通過文件永久保存下來又將如何把數(shù)據(jù)寫入文件?講到文件的時候,我們就用文件的讀寫解決了這個問題。再次給學生留個懸念,當數(shù)據(jù)量大又涉及多個文件排序和查詢的時候是否有更好的解決方法?當然就用數(shù)據(jù)庫來解決。繼而在《Python高級程序設計》課程中,我們是將數(shù)據(jù)保存在數(shù)據(jù)庫中,教會學生如何做一個管理系統(tǒng)。因為在《Python程序設計》的初級課程中已經解決了基本的模塊和小問題,為管理系統(tǒng)奠定了良好的基石,因而在《Python高級程序設計》的高級課程中,管理系統(tǒng)就像搭積木似的可以快速地搭建起來。
4.2 結合課程思政設計教學案例,教學案例結合綜合任務,促進計算思維能力更上一層樓
“課程思政”是將思想政治教育融入課程教學的各環(huán)節(jié)、各方面,以“隱性思政”的功用,與“顯性思政”——思想政治理論課一道,共同構建全課程育人格局[5]。立德樹人是高校立身之本,所有課堂都有育人功能[6] 。高校通識教育要有靈魂,要成為培育和踐行社會主義核心價值觀的重要課堂,其使命就是在潛移默化中加強理想信念教育[7]。由于課程思政教育在課堂教學中的重要性,我們在《Python數(shù)據(jù)分析》課程中,將德育內涵和思政元素滲透到每一個教學環(huán)節(jié)中,使得這門數(shù)據(jù)分析課程不再是一門“冷冰冰”的只與計算機和數(shù)據(jù)打交道的課程,而是被打造成“一堂生機勃勃的正能量大課”,通過數(shù)據(jù)分析給予學生滿滿的正能量,激發(fā)學生對祖國日新月異發(fā)展的自豪感,實現(xiàn)知識的傳授與價值引導的有機統(tǒng)一,激勵學生成長成才。
計算思維是幫助學生模擬計算機的思維來思考解決現(xiàn)實問題的思想和方法,提升學生分析和解決問題的能力[8]。在這門課程中,我們采用的案例更多地融入正能量素材和主題,將時代的、社會的正能量內容引入課堂,運用計算思維的方法幫助學生解決現(xiàn)實問題。現(xiàn)在的學生喜歡看電影,在課堂中,我們以近期宣傳正能量的主題電影如“戰(zhàn)狼”為案例,爬取影評信息,分析電影評論,以此獲得電影好評和差評的原因。課下,我們把學生分成不同的小組,以小組為單位完成幾項綜合任務:以政府工作報告為素材,讓學生以詞云的方式展示報告中提得最多的關鍵字,讓學生了解時代的主題;爬取“紅海行動”、“厲害了,我的國”等影評信息以及評論人所在地、性別、年齡等信息,分析電影評論中給予的好評和差評是否和個人所在區(qū)域、性別、年齡等相關。學生在完成綜合任務,掌握課程知識的同時,潛移默化中培養(yǎng)了學生的愛國精神,讓他們?yōu)樽鎳械津湴梁妥院馈6倚〗M項目是需要團隊合作的,通過團隊合作找出解決問題的方法,培養(yǎng)學生團隊精神和探索精神,培養(yǎng)學生不畏艱難、不斷追求的科學精神。
5 結論
程序設計是實踐性很強的一門學科,編程能力不是僅靠教學就可以獲取的,需要學習者通過大量的實踐與應用逐漸培養(yǎng)[9]。在Python系列課程中,我們均以案例教學為主要形式,通過理論知識、案例、綜合任務的強強結合,突出軟件學習的應用性,從應用案例入手講解知識點,既用簡潔易懂的語言講述理論方法,又同時進行實際案例的分析演示,提高學生處理數(shù)據(jù)的應用技能,增強學生的計算機動手能力和邏輯思維能力,掌握分析問題和解決問題的方法,為國家大數(shù)據(jù)戰(zhàn)略提供人才支持。在課程教學案例設計中,還需要考慮運用和結合課程思政教育元素,在潛移默化之中,給學生灌輸愛黨、愛國和愛人民的思想,讓學生為自己的祖國感到自豪和驕傲。
參考文獻:
[1] 嵩天, 黃天羽, 禮欣. Python語言: 程序設計課程教學改革的理想選擇[J]. 中國大學教學, 2016(2): 42-47.
[2] 孟小峰,慈祥. 大數(shù)據(jù)管理:概念、技術與挑戰(zhàn)[J]. 計算機研究與發(fā)展, 2013,50(1):146-169.
[3] 教育部高等學校大學計算機課程教學指導委員會. 大學計算機基礎課程教學基本要求[M]. 北京: 高等教育出版社, 2017.
[4] 嵩天,黃天羽. Python 語言程序設計教學案例新思維[J].計算機教育, 2017(12)11-14,19.
[5] 陸道坤. 課程思政推行中若干核心問題及解決思路——基于專業(yè)課程思政的探討[J]. 思想理論教育, 2018(3): 65-69.
[6] 吳濤. 發(fā)揮專業(yè)特色,實施“課程思政”[J]. 電腦知識與技術, 2017,13(28): 143-144.
[7] 高德毅,宗愛東. 從思政課程到課程思政:從戰(zhàn)略高度構建高校思想政治教育課程體系[J].中國高等教育, 2017(1): 43-46.
[8] 王亞萍. 計算思維培養(yǎng)視域下《Python程序設計》課程的教學改革實踐[J]. 電腦知識與技術, 2018,14(02): 143-144.
[9] 趙廣輝. 面向新工科的 Python 程序設計交叉融合案例教學[J].計算機教育, 2017(8)23-27.