时间:2024-05-04
刘亚辉,郭祥云,李桂芝
(1.北京信息科技大学 信息管理学院,北京 100192;2. 北京信息科技大学 计算中心,北京 100192)
Python语言以其接近自然语言、代码编写高效以及侧重问题求解等特点,已在数据分析、自然语言处理、图像处理、计算机视觉等领域被广泛应用。各高校已开设的Python语言课程,一般将其作为大一基础语言教学,或替代C语言作为新生入门语言。但是,在计算机或信息管理等对计算机编程要求较高的专业,C语言与Java语言仍以自身特色占有一定地位。如果不是作为第一门编程语言开设,则专业应用导向将对教学内容的深度与特色体现提出了更高的要求。传统的编程语言教学与实践多围绕经典算法、数学问题展开,专业性体现不突出,初学编程的学生常常对编程语言的具体应用感到困惑,致使学习动力欠缺。同时,在学时有限的情况下,怎样充分利用开放式在线教学方法,并将其与课堂教学有效结合,实现翻转课堂,达到较好的教学效果,也是值得研究的问题[1-2]。
Python语言是一种解释型、面向对象、动态数据类型的高级程序设计语言。具有简洁、可读性强、灵活性好、跨平台及开源等特点。文献[3]提到Python语言的教学层次,如果Python语言作为入门语言开课,重点则是编程基础知识教学;而如果学生学过C、C++或Java等编程语言,则侧重Python生态圈,针对具体专业应用学习相应的第三方库知识。对信息管理类学生,如果Python作为专业应用基础教学,则可以侧重数据分析应用。Python的教学目标根据授课对象不同,主要划分成两种: 一种是对没有编程基础的大一学生,需要侧重Python程序设计的基础知识点讲解与简单应用,Python语言的优势是入门容易、趣味性强,可结合图形图像、简单的第三方库使用讲授;如果针对大二有编程基础的学生,适宜将重点放在Python生态圈的应用,如Pandas、Numpy、Matplotlib等。
如果Python作为新生第一门编程语言,一般会循序渐进地从变量、表达式、程序设计结构、数据类型、函数、列表以及字典等基本知识点出发逐步讲授,重点是让学生理解程序设计方法,能够利用所学知识编写基本应用程序。然而,对解决实际问题及专业特色应用上,难以深入讲解。各高校不同专业的课程设置有所不同,因而不能一概而论。针对信息管理专业,如果学生在先修了C或Java后,再开设Python,除了简要介绍Python程序设计的基本知识点外,更多则要考虑本门课与后续课程的衔接。如果在大三开设大数据的相关课程,作为先修课程的Python语言,可侧重Python的实践应用,如基本数据分析方法。具体教学内容设计方案见图1。
图1 信息管理类Python语言教学内容设计
首先,对程序设计中常见的知识点进行简要介绍,但Python语言的列表、字典、元组以及集合的操作与使用需要系统讲解。同时,学生编程过程中的常见问题,如字符编码、异常捕获与正则表达式等需要进行必要的介绍。Python语言可以利用丰富的第三方库,使其在机器学习、图像处理、中文检索、科学计算以及可视化等方面解决实际问题时凸显优势。因此,教学将第三方库的使用作为讲解和实践的一个重点。特别在数据分析案例教学中,将Numpy库、Pandas库作为重点,Matplotlib库与seaborn库作为数据分析结果展示,也是必要内容。此外,对数据爬取中的requests和beautifulsoup4也要进行简要介绍。
(1)针对学过编程语言的学生,在有限的学时内授课内容不能面面俱到,适宜精讲细练。例如,讲解Python基本概念中的变量、数据类型、运算符、程序结构以及输入输出等内容时,可以采用对比已学过的编程语言,相似之处无需赘述,但易错地方要有示例。像列表、元组、字典与集合等基本知识点,学生以前不了解之处,需适当详细讲解。对数据分析模块的第三方库的使用与案例分析,需要重点讲解,详略得当,合理安排有限学时。
(2)要充分利用学科专业优势和现代教育技术,建设开放式在线教学平台。由于本学院内包含多个专业,学生的学习基础有差异,这种局部知识点紧凑讲法不够细致,如果学生编程基础薄弱,掌握有困难,教师可以把每一知识点录成视频,让学生课后补充缺漏。将课堂教学与在线教学有效结合可以提高课堂教学效果[4]。
(3)数据分析主要用到数据预处理、回归、分类、聚类等知识,需要本着因材施教的原则选择适合的算法。信息管理学院涉及的专业有信息系统、管理科学、电子商务与审计等,综合案例可以结合专业方向进行案例设计,让学生了解Python在本专业的应用,为后续大数据课程教学奠定基础。根据学生接受能力,基本算法讲解可以由浅入深、通俗易懂地引导学生练习基本使用方法。例如,证券交易数据波动随时间的变化关系怎样编程实现?再如,根据身高、体重分析人的胖瘦,主要流程如下:
·利用已有数据集,读入数据;
·划分训练集与测试集;
·使用信息熵作为划分标准,对决策树训练;
·测试结果输出;
·计算准确率与召回率等评价指标。
(4)共享校外开放平台课程资源。学生在学习过程中,有限的校内教学资源往往不能满足优秀学生的求知欲。引导学生利用校外丰富的共享资源辅助学习,对培养学生专业实践能力与提高学生自学能力起到较好的作用。
在学习Python基本知识后,对于信息管理类学生,如果在大三后开设大数据专业课程,则可在教学中引入简单的数据分析机器学习算法应用作为综合教学案例,为学生后续专业课的学习奠定基础。首先,需要对sklearn库进行必要的介绍,学生在后续专业课程学习中会遇到信息管理相关的数据分析问题,通过综合实例的讲解,让学生了解数据分析中涉及的基本算法及编程思路。
(1)用线性回归模型解决广告成本与点击量问题。深入浅出地根据计算思维理论引导学生循序渐进地理解算法。首先,让学生明确要解决的问题,IPO对应的是什么?为了简化问题,可将数据存储在xlsx、csv等表中,将数据划分为训练集与测试集,然后调用第三方库中函数对模型进行训练与测试,最后进行数据结果分析并可视化。其中,需要重点讲清线性回归的原理,数据训练模型、参数设定以及如何用训练集与测试集进行数据预测的思路。
(2)充分利用网络资源,搜集通俗易懂的小例子。如利用KNN算法[5]根据身高与脚码判断性别问题。首先,KNN类似是一个“少数服从多数”的问题,可以结合图2(a)讲清算法的基本原理。对于其中涉及的归一化必要性、过拟合等问题的描述用图示说明,如图2(b)所示。通过举例、数据计算对比讲解,结果通过可视化第三方库展示。例如,判断测试样本F(168,43)的性别。选取身高(cm)与脚码作为特征值训练样本, 分布如下:
图2 KNN算法应用
A[(180,43),男 ]、B[(179,42),男 ]、C[(166,37),女 ]、D[(176,42),男 ]、E[(161,36),女 ]
通过解决实际问题,学生对利用Python进行数据分析有了初步的认识。更深入的算法内容可以借助开放式教学平台辅助完成。
(1)实验内容设计主要从夯实基础与提高专业应用角度出发,主要针对Python基本知识点的运用、利用第三方库解决实际问题方面进行安排。实践教学受学时限制,需要结合课内练习与课外实践,采用任务驱动方式,让学生以小组方式完成教师布置的任务。实验内容设计见图3,实验内容在基本知识点模块,重点练习列表、元组、字典与集合的使用方法,这一部分学时较少;Numpy、Pandas及Matplotlib/Seaborn的使用,是在问题解决中引导学生理解并掌握[6]。在综合实践中,侧重于Sklearn库的使用,让学生加深对已学算法的理解。
此外,由于授课与实践学时有限,学生可以充分利用校内、外网络教学平台资源辅助理解所学内容,如中国大学MOOC、好大学在线等。
图3 信息管理类Python实验教学内容设计
Python程序设计的考核方式,有的学校采用在线考核方式,但是受自动判题系统性能的影响,这种方式也存在局限性。因为学时有限,本校大二学生开设课程学时为40学时,其中课堂教学24学时,实验16学时。学生在掌握本门课程的系统性上略显不足,则采用上机编程+开卷考核方式。编程考试与平时成绩分别占80%、20%。
综上所述,Python程序设计是需要结合应用实践,才能展现其魅力的一门课程。
笔者通过分析信息管理类学生的现有程序设计课程情况,针对已有编程基础的学生如何开展Python语言教学问题展开研究,围绕信息管理类专业的Python教学内容、教学手段与实践内容进行探讨,提出了有专业侧重点的教学模式、教学内容、实验设计与考核方案,旨在通过课堂授课与实践内容的合理设计,辅助学生快速入门并掌握用Python解决实际问题的方法。基础知识点要重点突出、精讲细练;通过实践让学生快速掌握python的基本使用方法;对第三方库的使用,则通过典型案例与一定量的配套练习不断巩固与加深理解。综合练习的目标是依据计算思维理论指导学生实践,提高学生利用所学知识解决实际问题的能力。让学生在有限学时内掌握python在数据分析、机器学习等方面的基本使用方法,目的是为学生后续大数据课程学习奠定基础。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!