Python系列课程的案例教学实践
2018-07-28柳青
柳青
摘要:针对在大数据背景下,对经管类专业学生程序设计能力提出新的要求的前提下,依据计算思维的方法,以Python系列课程为载体,从经管类专业Python系列课程体系设置、复杂系统约简案例、课程思政渗入案例三个方面阐述了一种计算机程序设计教学的案例实践方式。
关键词:大数据;计算思维;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 引言
面向計算思维的教学改革需要理解计算思维的时代性,即计算思维是基于计算机技术的科学思维,教学改革要符合并适应计算机技术的发展阶段[1]。而当今大数据的出现,必将颠覆传统的数据管理方式。在数据来源、数据处理方式和数据思维等方面都会对其带来革命性的变化[2]。这种转变对财经类院校的影响是巨大的,这就要求财经类院校专业人才的培养要跟上时代的发展和社会的潮流,适应社会需求,从而传授数据获取、数据分析等相关知识就成为必不可少的教学内容。在这样的大数据背景下,针对财经类院校的经管类专业的学生,更需要设计面向计算思维的课程教学体系以及具体的教学设计来培养学生的计算思维能力。
2 Python语言、数据分析与计算思维
Python语言是一种面向对象的解释性语言,语法结构简单,功能丰富,除了自带的库以外,还有种类和数量繁多且功能强大的第三方库。大数据时代的到来,给经管类专业的学生提出了更高的要求,数据分析成为经管类专业的学生必须掌握的基本技能之一。目前Python在国际上非常流行,可以完成许多任务,功能非常强大。在众多的编程语言和分析工具中,Python是最好的数据分析工具之一。TIOBE发布的2018年4月编程语言排行榜中,Python已经超过了C#位居第4位。而Python编程模式也非常符合人类的思维习惯,这将有助于我们将计算思维的教学理念融入实验教学中。
3 经管类专业Python系列课程体系设置
上海对外经贸大学是以经济管理类专业为主的国家财经类大学之一,是我国对外经贸人才的摇篮。2016 年,教育部高等学校大学计算机课程教学指导委员会才首次建议将 Python 语言作为程序设计入门课程的教学语言[3]。我校适应大数据时代发展的要求,从2015年开始就为经管类专业开设了Python程序设计的必修课,是全国财经类高校中较早开设Python程序设计的高等院校,经过几年的建设,又陆续开出一系列Python课程,走在财经类高校的前列。我校开出的Python系列课程有《Python程序设计》《Python高级程序设计》《Python数据分析》《数据挖掘》。
《Python程序设计》作为经管类专业学生的必修课,属于基础级的课程,主要讲述基本的数据类型、控制语句、函数、文件等基础知识,学生掌握基本语法和算法,能够利用计算机程序解决简单的问题;《Python高级程序设计》《Python数据分析》位列于通识教育课程中,供学生选修,这三门课相互依托、相互映衬,相辅相成。《Python高级程序设计》是学完必修课《Python程序设计》的进阶课程,以类和对象为起点,以网络爬虫技术为依托,学习推导式、正则表达式、爬虫框架、多线程、数据库等高级技术,学生掌握数据获取相关知识,为后续的数据分析及可视化提供数据来源。《Python数据分析》主要涉及数据分析工具pandas,使用numpy和scipy进行科学计算,了解matplotlib绘图库基本绘图功能,这些技术是经管类学生以后利用数据进行数据挖掘必不可少的技术准备,为他们以后的专业学习打下良好的基础。《数据挖掘》最早是为研究生开设的一门课程,主要是通过numpy计算库、matplotlib绘图库、sklearn机器学习库等来实现数据挖掘分类算法,如决策树、朴素贝叶斯、knn、支持向量机、关联规则挖掘算法、聚类算法等,并能利用这些算法解决具体的应用问题,将这些算法应用到各专业领域中。
4 案例教学实践
在以前的程序设计的教学中往往采用的均是水仙花数、百钱买百鸡等经典算法教学,学生学完以后不知能够做什么,感觉很迷茫,大大影响了教学效果。随着云计算、物联网、移动互联网、大数据、人工智能等重大技术和科技需求的不断发展,人们对计算问题及程序设计的认识发生了根本的转变,从以知识验证为主的问题求解转变为面向实际问题解决为主的计算求解[4]。这就需要我们在教学中与时俱进,重新设计案例,以期达到最好的教学效果。在案例教学中,我们根据具体教学内容和我校学生特点,运用计算思维的一系列方法(问题的约简、关注点分离、仿真、启发式推理、递归思维、回推等等)设计出一系列教学案例,通过这些案例给学生讲解最实用的方法和技巧,培养学生的计算思维能力。
4.1 以结合经管类专业特点的案例教学为基石,培养学生基本计算思维能力
我们的案例来自某一个系统的一部分。让学生直接上手一个系统显然是不合适的。我们根据计算思维中问题的约简、关注点分离等方法,把一个复杂的系统按照合理的方法,根据具体的教学内容分解成多个模块和小问题,学生只需逐个掌握小问题的解决方法,就能实现一个完整的系统。在《Python程序设计》课程中,当讲到多分支和选择结构嵌套的时候,我们设计了一个根据订货量、价格计算应付货款、折扣的案例。这个案例贯穿于选择、循环、文件始终。讲到多分支的时候,我们给学生设计的题目是:从键盘输入订货量、价格。根据订货量大小、价格给以不同的折扣,计算应付货款(应付货款=订货量×价格×(1-折扣))。订货量500以下,折扣为3%;订货量500及以上,1000以下,折扣5%;订货量1000及以上,2000以下,折扣8%;订货量2000及以上,折扣10%。这个问题可以通过多分支来完成。讲到选择结构嵌套的时候,我们给学生设计的题目是:输入客户类型、货品价格和订货量。根据客户类型和订货量给予不同的折扣,计算应付货款。如果是新客户:订货量800以下,没有折扣;否则折扣为2%。如果是老客户:订货量500以下,折扣为3%;订货量500及以上,1000以下,折扣5%;订货量1000及以上,2000以下,折扣8%;订货量2000及以上,折扣10%。老客户根据订货量享受的折扣就是前面通过多分支解决了的问题,只需再加一层条件判断新老客户即可,这就是选择结构的嵌套。再给学生留一个悬念,现在每次只能输入一次数据,如果需要多次输入怎么办?就要用循环结构来解决。讲到循环结构的时候,我们就顺势解决了这个不定循环次数的问题。然后又给学生留了另外一个悬念,当数据多了的时候一般不是在程序执行时通过键盘一个个来输入数据,而且从键盘输入的数据以及得到的结果均是一次性的,不能保存,那么如何解决这个问题?答案当然是将数据保存在文件中,那么当需要的数据在文件中的时候我们该如何将数据读出来为我们所用?另外计算出来的结果通过文件永久保存下来又将如何把数据写入文件?讲到文件的时候,我们就用文件的读写解决了这个问题。再次给学生留个悬念,当数据量大又涉及多个文件排序和查询的时候是否有更好的解决方法?当然就用数据库来解决。继而在《Python高级程序设计》课程中,我们是将数据保存在数据库中,教会学生如何做一个管理系统。因为在《Python程序设计》的初级课程中已经解决了基本的模块和小问题,为管理系统奠定了良好的基石,因而在《Python高级程序设计》的高级课程中,管理系统就像搭积木似的可以快速地搭建起来。
4.2 结合课程思政设计教学案例,教学案例结合综合任务,促进计算思维能力更上一层楼
“课程思政”是将思想政治教育融入课程教学的各环节、各方面,以“隐性思政”的功用,与“显性思政”——思想政治理论课一道,共同构建全课程育人格局[5]。立德树人是高校立身之本,所有课堂都有育人功能[6] 。高校通识教育要有灵魂,要成为培育和践行社会主义核心价值观的重要课堂,其使命就是在潜移默化中加强理想信念教育[7]。由于课程思政教育在课堂教学中的重要性,我们在《Python数据分析》课程中,将德育内涵和思政元素渗透到每一个教学环节中,使得这门数据分析课程不再是一门“冷冰冰”的只与计算机和数据打交道的课程,而是被打造成“一堂生机勃勃的正能量大课”,通过数据分析给予学生满满的正能量,激发学生对祖国日新月异发展的自豪感,实现知识的传授与价值引导的有机统一,激励学生成长成才。
计算思维是帮助学生模拟计算机的思维来思考解决现实问题的思想和方法,提升学生分析和解决问题的能力[8]。在这门课程中,我们采用的案例更多地融入正能量素材和主题,将时代的、社会的正能量内容引入课堂,运用计算思维的方法帮助学生解决现实问题。现在的学生喜欢看电影,在课堂中,我们以近期宣传正能量的主题电影如“战狼”为案例,爬取影评信息,分析电影评论,以此获得电影好评和差评的原因。课下,我们把学生分成不同的小组,以小组为单位完成几项综合任务:以政府工作报告为素材,让学生以词云的方式展示报告中提得最多的关键字,让学生了解时代的主题;爬取“红海行动”、“厉害了,我的国”等影评信息以及评论人所在地、性别、年龄等信息,分析电影评论中给予的好评和差评是否和个人所在区域、性别、年龄等相关。学生在完成综合任务,掌握课程知识的同时,潜移默化中培养了学生的爱国精神,让他们为祖国感到骄傲和自豪。而且小组项目是需要团队合作的,通过团队合作找出解决问题的方法,培养学生团队精神和探索精神,培养学生不畏艰难、不断追求的科学精神。
5 结论
程序设计是实践性很强的一门学科,编程能力不是仅靠教学就可以获取的,需要学习者通过大量的实践与应用逐渐培养[9]。在Python系列课程中,我们均以案例教学为主要形式,通过理论知识、案例、综合任务的强强结合,突出软件学习的应用性,从应用案例入手讲解知识点,既用简洁易懂的语言讲述理论方法,又同时进行实际案例的分析演示,提高学生处理数据的应用技能,增强学生的计算机动手能力和逻辑思维能力,掌握分析问题和解决问题的方法,为国家大数据战略提供人才支持。在课程教学案例设计中,还需要考虑运用和结合课程思政教育元素,在潜移默化之中,给学生灌输爱党、爱国和爱人民的思想,让学生为自己的祖國感到自豪和骄傲。
参考文献:
[1] 嵩天, 黄天羽, 礼欣. Python语言: 程序设计课程教学改革的理想选择[J]. 中国大学教学, 2016(2): 42-47.
[2] 孟小峰,慈祥. 大数据管理:概念、技术与挑战[J]. 计算机研究与发展, 2013,50(1):146-169.
[3] 教育部高等学校大学计算机课程教学指导委员会. 大学计算机基础课程教学基本要求[M]. 北京: 高等教育出版社, 2017.
[4] 嵩天,黄天羽. Python 语言程序设计教学案例新思维[J].计算机教育, 2017(12)11-14,19.
[5] 陆道坤. 课程思政推行中若干核心问题及解决思路——基于专业课程思政的探讨[J]. 思想理论教育, 2018(3): 65-69.
[6] 吴涛. 发挥专业特色,实施“课程思政”[J]. 电脑知识与技术, 2017,13(28): 143-144.
[7] 高德毅,宗爱东. 从思政课程到课程思政:从战略高度构建高校思想政治教育课程体系[J].中国高等教育, 2017(1): 43-46.
[8] 王亚萍. 计算思维培养视域下《Python程序设计》课程的教学改革实践[J]. 电脑知识与技术, 2018,14(02): 143-144.
[9] 赵广辉. 面向新工科的 Python 程序设计交叉融合案例教学[J].计算机教育, 2017(8)23-27.