刘姝

摘要:针对数据智能时代高校本科生计算思维与数据素养培养需求,分析Python数据分析通识课程建设挑战和思路,提出以赋能为主线的分层渐进式教学内容设计,探讨信息化平台辅助的线上线下精准教学、“点-线-面”结合的实用型案例与实践、以学生为中心的分组学习与研讨,过程化多元考核评价等教学实践,从知识点难易反馈、应用能力评价角度说明教学效果。

关键词:Python;数据分析;通识课程;课程设计;教学实践

中图分类号:G642        文献标识码:A

文章编号:1009-3044(2021)28-0220-03

开放科学(资源服务)标识码(OSID):

1 引言

大数据、人工智能等作为新一轮科技革命和产业革命的驱动力,正深刻影响着经济社会发展。我国发布实施了《中国制造2025》《促进大数据发展行动纲要》《新一代人工智能发展规划》等重大发展战略,以新技术、新业态、新产业为特征的经济形态繁荣发展,全面进入数据智能时代。

数据分析能力已经成为数据智能时代人才的必备能力。2018年教育部发布的《教育信息化2.0行动计划》指出,提升信息素养对于落实立德树人目标、培养创新人才具有重要作用。数据无处不在,数据的收集、处理和应用已成为金融、会计、政务等领域的必备技能,也是数据智能时代信息素养的重要组成部分[1,2]。高校教育顺应经济社会发展,积极推进新形势下的人才培养方案改革和课程建设。如何面向本科生开展信息类通识课程的建设与教学,培养学生的计算思维和数据素养,是备受关注的问题。Python数据分析通识课程能够很好地融合计算思维和数据分析能力培养目标。

2 Python数据分析课程现状与挑战

Python程序设计或者基于Python的数据挖掘分析通常是各高校计算机类专业的重要课程,课程内容较为深入全面[3,4]。有些高校开设Python程序设计公共课程,以培养学生编程和计算思维[5,6]。 Python数据分析通识课程的定位与培养目标与两者不同。通识教育旨在培养较为广泛的基本知识、技能和态度,强调“识”与“通”,而并非“专”,要使学生获得较为合理的知识结构、科学素养和能力[7]。Python程序设计公共课大多以学习编程语法和设计思维为主,不强调数据分析。Python数据分析通识课程教学设计充分考虑学生无编程基础的学情以及通识课程知识结构、能力和素养构建的目标,培养学生更宽的知识面和解决复杂问题的综合知识和能力。

从2019年春季学期开始我校面向非计算机专业开设Python数据分析公共课程。该课程主要面临的问题如下,对教学内容设计以及教学实施提出了挑战。

1) 编程知识枯燥,需调动学习积极性。通识课程各专业学生大多零编程基础,特别人文社科专业学生对计算机和编程语言学习存在一定畏难情绪。Python程序设计语言与C语言、Java等相比语法简洁灵活,对非计算机专业人员更为友好,并且在数据分析挖掘、人工智能领域占重要地位。为适应学生学科背景,Python语言相关知识点的教学内容组织要明了易懂,教学方案要形象、趣味、实用,枯燥的语法和知识点讲解不利于激发学生学习兴趣。

2)计算机程序设计与数据分析的融合与权衡。Python数据分析通识课程需要很好地融合计算思维和数据分析能力培养目标,教学过程以语法为主还是以分析为主,先语法后实践还是语法与实践融合是不同的设计思路,需科学地组织教学内容,构建渐进式、以应用牵引的教学内容体系,并且在知识深度和广度上做适当权衡。

3)程序设计思维建立和数据分析方法灵活应用难度高。Python数据分析通识课程教学难点不只在于使学生掌握Python的语法、数据分析常用的函数库,更重要的是培养学生的计算思维和应用能力。特别对于初接触计算机编程的学生,难以建立将现实问题转换为计算机表示的思维方式,遇到实际问题时,不知如何选择合适的数据结构,无法确定程序实现的流程。

4)需适应线上线下混合教学需求。线上线下混合教学可以充分利用互联网优势,发挥教师引导作用,调用学生学习积极性。特别受疫情影响,要充分应用在线教学平台和信息化手段,合理设计教学内容和实施过程,提升教学效果。

3 Python数据分析课程教学研究

针对上述问题,本节提出Python数据分析通识课程的教学内容设计,并探讨教学实施方案。

3.1 课程定位与设计思路

本课程将Python语言作为数据分析的支撑技术,全面贯穿数据获取、数据预处理、数据分析、数据可视化等过程,既能在编程语言学习和应用中培养学生的基本编程能力和计算思维,又能够以数据分析应用为目标,使学生认识数据并利用数据解决现实问题,培养具有数据素养和数据分析能力的复合型人才。更重要的是要激发学生对大数据、人工智能等新一代信息技术的学习兴趣和应用意识、创新意识,为高年级的学习和终身学习建立基本的技能。

3.2以赋能为主线的分层渐进式教学内容设计

课程教学内容设计如图1所示,以Python为技术支撑,以知识结构与能力建设为主线,按照“认识数字化——数据存储访问——数据处理与分析——数据可视化”逐层展开。其中,认识数字化是建立编程语言基础,理解现实世界与计算机数字化的表达关系;后三层按照数据分析的主要过程,以应用为牵引,逐步构建完整的数据分析知识结构,在数据分析应用中继续深化和巩固Python程序设计,提升实践能力。

第一层,认识数字化与编程基础应用。该部分从浅入深,引导学生掌握基本的Python程序设计、开发方法,能够用Python程序实现简单应用问题,建立初步的计算思维。首先使学生逐步认识计算机编程语言的特点,理解程序、数据、变量、表达式、数据类型等基本概念,掌握Python 语言的语法,构建计算机数字化表达的思维,并掌握基于IDLE开发环境进行程序编写、调试、运行的逻辑,能够与计算机流畅“交流”。然后进一步深入讲解字符串、列表、元组、字典、集合等序列数据结构的特点、典型操作和应用场景,以及函数的定义和使用,丰富学生程序语言表达的能力,并且建立代码复用和模块化程序设计的思想。

第二层,数据存储访问与应用提高。该部分使学生了解各类数据来源、存储与访问形式,重点讲解目录和txt、csv等常用文件的操作,能够通过程序进行数据获取与操作。

第三层,数据处理分析与应用进阶。该部分基于Numpy和Pandas学习数据处理与分析常用的操作,建立完整的数据分析过程,学会查看数据、提出问题、灵活应用分析方法,在应用中巩固Python编程思维。Numpy支持多维数组的创建、运算、排序、统计等操作,Pandas提供了大量标准数据模型和分析工具。使用这些扩展库,学生可以学习数据预处理的原因及常用预处理方法,掌握行列选择、排序、频数统计、分组查询、数据透视表等分析方法。

第四层,数据可视化与综合应用。数据可视化可用于洞察数据集,以及直观清晰地呈现数据分析结果。该部分基于matplotlib、seaborn等,使学生掌握散点图,折线图,直方图,条形图和饼图等基本可视化方法,以及箱线图、热度图、雷达图、词云等数据分析常用图形。各类可视化图形适用的数据表达场景,对数据形式的要求和图形的关键设置是重点。至此,学生可以灵活地选用视觉化、图像化方式,准确进行数据分析结果的表达,完成数据分析完整过程。

3.3教学实施方案

针对Python编程与数据分析能力培养中常见的知识枯燥、程序设计思维难以建立、灵活应用难度高及线上线下教学需求等问题,从信息化建设以及教、学、评全过程探讨教学方案。

3.3.1 信息化平台辅助的线上线下精准教学

采用雨课堂辅助教学过程,包括课前预习资料推送、课堂互动、随堂测试、学习调查反馈等。课前通过雨课堂推送PPT等学习资料,学生可以初步了解讲授的知识点,通过点击“不懂”反馈难点和问题,教师授课讲解更具有针对性。学生学习中能够抓住每节课的知识点并且学懂学通,必然会提升教学效果。为了解学生课堂知识点的掌握情况,可进行课堂测试、课堂实时互动、知识点掌握情况调查等,基于学生预习、互动、测试、调查反馈等学习数据,全方位评估每一位学生的学习情况,总结课程难点和常见问题,实施"精准教学"。另外,雨课堂也为线上线下混合教学提供支撑,可以结合微信实时答疑等构建线上教学环境。

3.3.2 “点-线-面”结合的实用型案例与实践

为提升学生学习兴趣并提高学以致用的能力。课程教学中采用的案例多源自学生现实生活中常见的场景或主题,并且案例教学中,首先注意引导学生开展思路分析,然后逐步分解,构建计算机程序,再通过程序的不断演化和改进逐步展开知识点讲解,帮助学生构建计算思维,掌握程序设计和数据分析过程、方法。如程序结构教学中,使用猜数字的小游戏,从if分支判断到for、while循环,再到break和continue的使用逐步深入;在数据分析中,使用超市营业数据,引导学生首先提出可以分析的问题,再逐步讲解数据观察、数据预处理、描述统计、交叉表等内容,在多个分析问题的案例中,反复练习数据分析的思路与过程,不断引入新的分析方法。课程实践也采用类似思路,在实践题型设计上从“知识点-模块-综合应用”逐步深入,不断巩固和迭代所学知识。

3.3.3 以学生为中心的分组学习与研讨

初学编程的学生由于还不能熟练掌握计算机程序设计的思路,较为复杂知识点和应用常会遇到困难。为调动学生学习积极性,促进学生间的研讨交流,培养学生分析问题、解决问题的能力,采用分组学习与研讨。每组由3~4名学生组成,对较复杂的编程实践练习,分组进行讨论交流和评价。每次作业由小组长提交,包括组内每名成员的代码,组内实践经验、难点和问题、组内互评结果等。课堂上每组实践汇报,教师针对每组的共性问题、以及各组有特点的地方进行评价和讲解,如程序设计思路、数据分析方法、Python语言使用技巧等,通过组内、组外两层学习循环反馈,加深学生对知识的理解和应用。

3.3.4过程化多元考核评价

Python数据分析不仅包括语法知识,还涉及应用能力、计算思维等培养,单一闭卷考核并不能全面考察学生的学习情况。课程总评成绩由过程性考核成绩和期末考核成绩得出。过程性考核成绩包括随堂课堂测试、平时作业(包括分组编程实践)、出勤与课堂表现成绩;期末考核主要采用综合大作业方式。通过过程化考核督促学习,辅助教学改进。为提升学生的学习主动性,课堂出勤以及教学互动等参与度也一定程度考虑在内。

开放式综合大作业作为期末考核。教师提供多个主题的数据集,学生也可以自行搜集感兴趣的数据。学生自主设计数据分析目标,利用课程所学知识或者自学的方法,完成数据导入导出、数据预处理、数据分析、数据可视化等操作。大作业完成后需提交项目报告,包括选题背景、数据集及来源、数据预处理与分析过程、结论等,并将 Python 代码操作过程录制为20分钟内的短视频,讲解项目设计、代码实现与结果。大作业不仅巩固并考察了学生对所学知识点的理解与应用,重点是在资料搜集、选题、分析和解决问题的过程中,培养了学生的自主学习能力、运用知识解决实际问题能力、创新能力和表达沟通能力。另外,数据集和项目选题通常以社会经济发展的统计数据、疫情统计数据、环境监测数据等重点、热点数据等为主,在数据分析中能够潜移默化地融入课程思政。

4 教学实践效果分析

2020年春季学期在线教学中,面向金融专业本科二年级开设Python数据分析课程。学生在一年级通过《计算机基础》学习了Word、PowerPoint以及Excel使用,无编程基础。课程共14周56学时,包括24理论学时、32实践学时。课前对学生进行了初步调查,90%认为该课程将对未来发展与就业有帮助,71%担心学习程序设计会有难度。期末总评表明,75%的学生知识掌握与综合应用达到良好以上。

4.1 知识难点分析

根据调查问卷和过程性考核结果分析,各部分知识难易度如图2所示。Python编程基础相对较容易学习,难点主要在程序控制结构和函数。使用Numpy、Pandas进行数据分析的难点是多维数组、Series和Dataframe对象使用。数据可视化的评价中认为难的比例较高。Python可视化涉及图形选择、数据的形式转换、图的格式设置等,较学生以往使用的Excel可视化而言需要进一步熟悉程序语言。这些知识难点是教学中需要特别关注的内容。

4.2 应用能力评价

综合大作业提供了股票数据、疫情统计数据等多个数据集供学生自主选择,并自主设计分析问题,考核要求中明确了各过程分数占比及评分细则。考核采用百分制,其中数据导入导出(10%)、数据预处理(30%)、数据分析(40%)、数据可视化(10%),课程报告与讲解(10%)。评价结果如图3所示,多数学生能够较好地掌握和应用Python数据分析知识。

以综合大作业各评分维度的得分率作为能力评价指标,结果如图4所示。数据预处理和数据分析得分率相对较高,问题的提出、对分析结果的洞察和释义是数据分析部分的难点;数据可视化方面,图形选择的合理性以及表达的准确性等方面需加强。

5 结语

大数据、人工智能等新一代信息技术背景下,高校顺应经济社会发展需求推进教育改革,Python数据分析通识课程能够契合具备计算思维、数据分析能力的高校本科复合型人才培养需求。中华女子学院作为全国妇联直属本科高校,设有女性学、法律、社会工作、社会学、金融学、应用心理学等24个专业,致力于应用型女性人才培养,学校人才培养方案中将科技素养作为通识教育的重要组成部分。目前已在金融专业开展了多轮Python数据分析课程的建设与教学实践探索,基本实现了预期培养目标,教学效果好。后续将针对学校各专业特点进一步扩充教学案例,优化教学方法,提高教学效果。

参考文献:

[1] 黄如花,李白杨.数据素养教育:大数据时代信息素养教育的拓展[J].图书情报知识,2016(1):21-29.

[2] 张璇,孟祥保.面向数字人文的高校数据素养教育案例研究[J].大学图书馆学报,2019,37(5):87-94.

[3] 焦李成,李阳阳,侯彪.人工智能学院本硕博培养体系[M].北京:清华大学出版社,2019:56-57.

[4] 李莎莎,周竞文,唐晋韬,等.数据科学与大数据人才专业课程体系分析[J].计算机工程与科学,2018,40(S1):109-113.

[5] 嵩天,黄天羽,礼欣.Python语言:程序设计课程教学改革的理想选择[J].中国大学教学,2016(2):42-47.

[6] 刘亚辉,郭祥云,李桂芝.信息管理类专业的Python语言教学模式探讨[J].计算机教育,2018(9):44-47.

[7] 王红雨,张瑞中.通识课程如何面向职业素养?——斯坦福大学通识课程的目标、实践与生成逻辑[J].现代大学教育,2019(6):47-55,112.

【通联编辑:王力】