李芬芬 高尚兵
摘 要:基于“理解和运用计算生态”的教学理念,以公选课、专业选修课、实习课程为基础,依托中国大学MOOC开设的《Python语言程序设计》国家精品在线课程,作者提出并实践了从程序设计入门到应用纵深的Python语言混合教学模式,针对不同类别和基础的学生提出了相应教学目标与考核方案,取得了较好的教学效果。
关键词:Python语言;在线开放课程;混合教学模式
中图分类号:G642 文献标志码:A 文章编号:1673-8454(2018)22-0061-03
Python语言在计算生态的大背景下诞生、发展与再生,以最接近自然语言及面向生态的设计理念得到了广泛的关注,目前已有超过14万个第三方库,支持从数据处理到人工智能、从Web解析到网络空间、从人机交互到艺术设计的所有计算领域的应用[1-2]。2016年教育部高等学校大学计算机课程教学指导委员会发布了《大学计算机基础课程教学基本要求》,首次建议将Python语言作为程序设计课程的教学语言,并给出了Python语言教学方案[3]。2017年12月,教育部考试中心发布了全国计算机等级考试(National Computer Rank Examination,简称NCRE)新增科目二级Python语言程序设计,该科目于2018年9月首次开考。在应用和应试的大背景下,笔者依托《Python语言程序设计》国家精品在线课程,面向淮阴工学院的计算机专业学生和非计算机专业学生开展了Python语言程序设计实践教学与课程教学,取得了较好的教学效果和反馈。
一、Python语言在线开放课程
Python语言诞生于1990年前后,经过近30年的改进与发展,以其开源通用、简洁优雅及高效生态的特点已经成为国际上最受欢迎的程序设计语言。搜索引擎Google的核心代码、迪士尼公司的动画和生成、豆瓣网的网站架构和相关应用的设计与开发都使用了Python语言。Python具有极其简单的语法,采用强制缩进方式体现程序格式框架,具有极强的可读性,是容易入门的程序设计语言。目前国际著名高校大都在开设Python程序设计课程,近3年,国内一批高校逐渐开设了Python语言课程,进行较好的教学实践。
2017年12月,根据《教育部关于加强高等学校在线开放课程建设应用与管理的意见》(教高[2015]3号)精神和《教育部办公厅关于开展2017年国家精品在线开放课程认定工作的通知》(教高厅函[2017]40号)要求,教育部认定490门课程为国家精品在线开放课程。爱课程(中国大学MOOC)有3门关于Python语言的在线开放课程被认定为国家精品在线开放课程,分别是北京理工大学嵩天等老师的《Python语言程序设计》、南京大学张莉老师的《用Python玩转数据》、哈尔滨工业大学车万翔老师的《高级语言程序设计(Python)》。由985高校开展Python语言教学的教师开设的在线开放课程,从课程定位到教学方法,从教学理念到教学资源,从考核目标到课程互动,均体现了一流大学的高水平教学。
Python在线开放课程提供了最先进的课程教学大纲、高质量的课程教学视频,适合系统化学习的课程资源(课件、实例、练习)和OJ平台,非常适合普通二本高校在教学资源缺乏、师资紧张的情况下开展翻转课堂教学,进行以学生为中心的课程改革、教学方式与学习方式变革,实现教育教学质量全面提高。
二、面向計算生态的Python语言课程教学
1. Python语言课程教学方案
“计算生态”,是“生态”概念在计算机技术中的对应,在此特指在程序设计领域构建的支撑计算机技术发展的生态体系,即以开源项目为组织形式,充分利用“共识原则”和“社会利他原则”组织人员,在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成技术的自我演化路径[4]。Python语言课程教学旨在培养学生理解、运用和构建计算生态的能力,学会使用第三方库,理解快速开发理念,建立对信息世界的新认识[2]。笔者基于中国大学MOOC在线开放课程《Python语言程序设计》,制定了课程教学方案、课程考核方案及课程评价与建议。
面向非计算机专业Python零基础学生开设公共选修课,教学目标定位为学生能掌握Python语言基础语法及理解计算生态,学时设置为32学时,由24讲授学时和8学时上机学时构成。面向计算机科学与技术专业学生,在《人工智能应用》专业选修课程中,主要介绍Python计算生态实例,由16讲授学时构成,教学目标定位为学生具有能运用计算生态的能力。
Python语言基础语法主要包括数字类型(int,float,complex)、字符串类型(str)、程序的控制结构、函数和代码复用、组合数据类型(元组、列表、集合和字典)、文件和数据格式化。
理解计算生态是指让学生广泛感知计算生态的存在[4]。课程内容主要包括常用的第三方库的应用,第三方库主要包括turtle库、math库、random库、time库、pyinstaller库、jieba库、PIL库、csv库、json库等。利用第三方库wordcloud,使用5行代码即可生成中英文词云[2]。
运用计算生态是指面向能力、围绕一系列第三方库培养学生掌握某一方面的基础能力[4]。如讲解PyQT,培养学生掌握GUI图形用户界面库;如讲解itchat,培养学生理解微信个人微信网页版接口。
在课堂教学中,通过12个生动有趣具有现代气息的实例把基础语法与计算生态紧密联系起来,包括温度转换、Python蟒蛇绘制、 天天向上的力量、文本进度条、身体质量指数BMI、利用蒙特卡洛方法计算圆周率、七段数码管绘制、科赫雪花小包裹、基本统计值计算、中英文词频统计、自动轨迹绘制、政府工作报告词云。
2.Python语言课程考核方案
《Python语言程序设计》课程是实践性强、逻辑性强的课程,教师和学生的互动时间主要在于课堂教学和上机操作。本课程的考核方案旨在于课堂之外建立有效途径,帮助建立学生自主学习、快速学习,进而培养其终身学习能力及团队合作能力。
(1)考核点一:平时OJ练习
在免费的OJ平台https://python123.io/ 上完成教师设置的课程单元练习内容,课程代码为hyitpython。单元类型设置为练习,特点是不限提交次数提交代码,根据测试用例,在线评测代码的准确度。学生通过在线提交代码查看得分,如对分数不满意修改代码,再次提交代码查看得分,如此反复直到自己对得分满意。
Python语言课程教学开设时间与北京理工大学国家精品在线开放课程《Python语言程序设计》保持相同的课程进度,建议学生在中国大学MOOC在线同步学习,学生通过实名认证后,系统提供相应练习、测试和考核页面的作业提交界面(见图1)作为作业依据。如果同期获得中国大学MOOC北京理工大学《Python语言程序设计》课程认证证书,证书可作为本课程认定成绩。
(2)考核点二:团队任务
本考核点成绩由团队任务的完成度决定。在课程教学过程中,建议学生根据自身程序设计能力组成Pair Team团队,完成团队任务。Pair Team组队完成3项子任务:①设计组队Logo,提交设计Logo的Python文件。②文本词频统计,团队自行选择感兴趣的文章或者小说,设计代码统计文章词频,提交分析文本的txt文件(.txt格式)、词频统计的Python文件(.py格式)和统计结果的词云图片(.png格式)。③根据学生自己专业的特点及特色,检索考察Python的第三方库应用,完成说明文档一篇(每个队1份)。可参考第三方库介绍的url链接:春色盎然中不可不知的 10 个 Python 计算生态(https://python123.io/index/monthly_packages/201803)。
每个团队的综合成绩由3项按比例加权计算得出,每个队员成绩等同团队成绩。
(3)考核点三:平时考勤数据统计实例设计
根据每位学生10次本课程课堂考勤签到数据的CSV文件,通过CSV标准库设计程序统计每位学生的出勤情况和座位习惯,比较分享每个人统计结果的异同,对于学生而言,是一件很有趣的事情。
3.Python语言课程评价与建议
基于移动平台的方便快捷,《Python语言程序设计》课程评价与建议是通过分享手机二维码完成的。对学生而言,拿起手机扫描课程评价二维码(如图2),是非常友好的课程总结与评价体验(如图3)。目前收到了机械设计制造及其自动化、软件工程、信息管理、工业工程、植物生产、新能源、通信工程、食品科学与工程、制药工程、工业工程、信息与计算科学、物理、车辆工程、材料等专业60份有效课程评价数据。物理专业2017级某同学说:“打开了新世界的大门,感觉眼界开阔了许多。”制药工程专业2017级某同学说:“结合中国大学慕课的上课形式挺好的,可以线上学习……” 在课程建议中,很多学生都提到希望开设后续课程,如Python进阶、Python与专业结合的应用课程等。车辆工程2017级某同学说:“以小组形式,希望老师指定计算机专业+非计算机专业组成Pair Team团队,便于相互帮助,达到1+1>2的学习效果。”
三、基于翻转课堂的Python语言实践教学
翻转课堂[5] (Flipped Classroom)旨在重视以学生为中心的教学,把学习的主动权还给学生,教师重在启发学生的学习兴趣和动机,帮助学生构建自主学习能力,并认同多元评量与多元价值。目前很多高校在课程教学中进行了课堂翻转[6][7],笔者在面向计算机科学与技术专业的《项目实习》实践选修(Python语言方向)课程中,尝试基于翻转课堂形式的实践教学。在实训前,根据时间安排,建议学生选修中国大学MOOC在线开放课程《Python数据分析与展示》(2017年秋);在实训过程中,要求学生对Python數据分析与展示课程中的概念性知识、程序性知识、元认识知识做进一步的主题讨论、实例编程;最后设置项目演示环节,学生通过合作演示展示了完整的项目开发,完美地完成了项目实习。
采用翻转课堂+项目实战形式,运用Python计算生态,培养学生实战项目能力,符合工程教育认证体系OBE培养目标要求。教学考核方案的考核等第由学生自评分、答辩得分、报告得分、综合扣分、综合得分按比例构成。其中学生自评总分包括实训过程自我态度、概念性知识、程序性知识、元认识知识、实训日志完成情况、Python实例完成情况、中国大学MOOC课程参与情况及课程证书取得情况、实训课题完成情况、实习报告的完整度和格式、文字与参考文献数量及相关、总结与课程建议。自评总分占20%,答辩得分占30%,报告得分占50%。通过线上学习和线下实战相结合的教学方法,本课程取得了很好的教学效果。通过中国大学MOOC在线学习,85%的学生取得了2017年秋季《Python数据分析与展示》优秀课程证书(如图4所示),有效调动了学生的对Python的学习兴趣,从而顺利完成了Python项目实习课题(如图5所示)。
基于“理解和运用计算生态”教学理念,笔者在本校公选课、专业选修课、实习课程中进行了基于在线开放课程的Python语言程序设计教学,学生反映热诚且积极,教学效果非常好,说明了Python语言混合教学模式很有效。2017年,笔者所在学院获批数据科学与大数据技术专业,目前已将Python语言作为该培养方案中的专业基础必修课程。随着人工智能与大数据时代的到来,Python语言的计算生态必会蓬勃发展,基于在线开放课程的Python语言混合式教学模式将会在不同专业的程序设计教学中得到广泛认可。
参考文献:
[1]嵩天,礼欣,黄天羽. Python语言程序设计基础(第2版) [M].北京:高等教育出版社, 2017.
[2]中国大学MOOC[EB/OL]. https://www.icourse163.
org/course/BIT-268001.
[3]教育部高等学校大学计算机课程教学指导委员会编制.大学计算机基础课程教学基本要求[M].北京:高等教育出版社,2016.
[4]嵩天,黄天羽,礼欣.面向计算生态的Python语言入门课程教学方案[J].计算机教育,2017(8):7-12.
[5]维基百科.翻转课堂概念[EB/OL]. https://zh.wikipedia.org/zh-hans/翻转课堂.
[6]张莉,金莹,张洁.基于MOOC的“用Python玩转数据”翻转课堂实践与研究[J].工业和信息化教育, 2017(3):70-76.
[7]冉娟,张钢.独立学院非计算机专业Python程序设计课程教学改革探索[J].计算机教育,2017(9):15-20.
(编辑:鲁利瑞)