基于大数据工程专业人才培养目标的Python语言教学改革探析

作者: 刘海桥 袁丹丹

摘要:针对大数据工程专业授课过程中,因学生Python语言编程能力欠缺引起的专业课实验无法高效开展的问题,以大数据工程专业人才培养目标为基点,结合专业课程知识体系,围绕教学内容、教学模式和评价指标三个方面,对Python语言程序设计基础课程的教学方法进行探索,旨在提高学生编程的主动性、实践性,加强通识课程与专业课程之间的连贯性,以便学生能更好地适应专业课程的学习。

关键词:Python语言;大数据工程;任务驱动;教学方法

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

文章编号:1009-3044(2023)26-0142-04

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

0 引言

随着科技的发展,计算机成为各领域不可或缺的计算工具[1]。程序设计基础是大学生了解计算机,学习算法,建立计算思维非常重要的通识课程[2]。由于Python语言具有简单、高效、跨平台等特点,逐渐成为相关专业的首选程序设计语言,学生可以不必拘泥于底层的实现,而是更好地关注问题本身,更高效地设计算法[3]。与此同时,学生的编程能力也将直接影响相关专业课程的开展,比如算法与数据结构、数据挖掘与机器学习、数据可视化等课程。

随着大数据技术的应用,大数据工程专业要求学生掌握大数据技术原理、数据挖掘、数据可视化等方面的专业知识,涉及的专业课程包含数据挖掘与机器学习、人工智能、数据可视化等,而这些专业课程在实验开展环节都需要借助程序设计语言,首选的便是Python语言。所以学生的Python编程能力一定程度上决定了专业课实验能否高效地开展。

现有的Python语言教学,主要围绕语法、算法及简单应用展开,与后继专业课程结合度较低,脱离专业的应用背景。如何将通识课程与专业课程建设进行交叉融合,对培养综合型人才具有重要意义[5-6],所以基于大数据工程专业人才培养目标对Python语言教学方法进行探索很有必要。本文分析了Python语言课程现状,结合数据挖掘与机器学习专业课程教学,从教学内容、教学模式、评价指标三个方面对Python语言教学方法进行探索,以期专业课实验的高效开展。

1 课程现状

大数据工程专业首选的编程语言是Python语言,所学习的便是Python语言程序设计基础,根据人才培养目标,后续会接触很多和数据处理、挖掘、可视化等相关的专业课程。从教学效果看,学生对Python语言的掌握不透彻,不具备实现复杂算法的编程能力,从而影响专业课实验的高效开展。下面结合专业本身和Python语言教学,对这一现状产生的原因进行梳理。

1.1 课程内容脱离专业实践

Python语言程序设计基础课程的教学总体目标是通过课程内容的学习,使得学生能够掌握程序设计的基本方法,具备程序设计、编写、维护的能力,使用Python语言解决实际问题的手段,同时具备基于生态的编程思维方式。鉴于此,课程明确三层目标:知识层、能力层和思维层。比如在能力层,要求学生掌握pyinstaller库、jieba分词库的应用,同时要求学生能够将Python语言运用在人机交互、网络爬虫等专业特色不明显的应用场景。

课程的教学目标和教学内容的结构清晰,通过学生提交的作品,可以看出学生具备了利用Python语言解决简单问题的能力。但是在专业课的教学过程中,可以发现学生缺乏对一些基础的数据处理库的掌握与应用,使得实验开展过程中,需要花费大量时间讲解这些基础库的用法,影响实验的高效开展。

上述问题出现的原因在于Python语言课程的内容设计上,没有考虑到专业特色,没有相关生态库的介绍和铺垫,没有培养学生利用科学计算相关库的编程习惯。

1.2 授课对象缺乏主观能动

学生举一反三的能力较弱,习惯于被动地接受知识,编程的主动性难以调动。此外,学生创新实践能力较弱,现有的考核内容,很难检验学生编程的综合能力。

1.3 考核评价没有专业特色

现有的考核方式包含形成性考核和终结性考核。在考核内容方面,主要参考计算机等级考试二级的题型,比如在综合应用方面,主要考核文本的分析及处理、简单的算法设计、Turtle绘图等。这些考核内容不能体现专业特色,比如缺乏对数据的预处理、对表格文件和图片文件的读取和分析等知识的考核,而这些专业知识在后续专业课程的教学中至关重要。

2 教学设计

首先在教学内容上,重新梳理知识体系,保留基本语法、程序结构、综合应用三层结构不变,并在原有课程内容的基础上,思考如何与后继专业课程相结合。为此,需要分析大数据工程专业课程的教学计划,从中提炼出与专业知识关联性不强,但在专业课实验开展过程中不可或缺的Python编程知识,比如涉及的生态库等知识,然后结合Python课程的知识架构,将这些提炼出的知识点融入Python教学中。这样不仅能够加强Python教学的实践性,还能为后续专业课实验的开展做好铺垫。

其次在教学方法上,注重任务驱动教学模式。根据教学目标,合理设计任务,激发学生解决问题的好奇心和内在动力,引导学生认真听课,积极思考,主动编程。通过任务驱动的教学模式,学生能够更好地掌握知识,发现问题并解决问题。

此外,为了提高学生编程的主动性,除了任务驱动的教学模式,合理的考核指标也相当重要。课程现有的形成性考核占比40%,主要包含学生的实验、课堂表现、期中成绩。现基于成果导向原则,可以将课堂表现的10%分值改为创新实践,用于检验学生编程的综合能力。教学过程、教学方法最终要通过学生的学习成果来检验,所以学生掌握知识的程度才是衡量教学效果最有力的指标。

3 教学实施

3.1 设计数据处理教学内容,结合专业背景

为符合大数据工程专业人才培养目标,使得学生能够很好地完成后续专业课程的高效开展,需要将专业课程中相关知识,进行合理划分,对Python课程教学内容进行有效融合。首先需要对大数据工程的专业课程进行分析。大数据工程专业的课程建设如图1所示,主要分3层,可以看出程序设计基础是众多专业课程的核心通识课程。

以数据挖掘与机器学习课程为例,课程的内容包含模型评估、降维等数学理论知识,以及大量的机器学习算法,比如决策树、神经网络、支持向量机等。下面对数据挖掘与机器学习这门专业课程中的内容进行分析、提炼。

在模型评估章节,主要讲解评估方法、性能度量等指标,这些内容更多的是涉及数值的计算,比如查全率、查准率、方差、标准差计算等,可以将其作为案例应用在Python语言程序设计课程的“数值类型”章节;而错误率、精度是机器学习过程中计算最为频繁的指标,可以应用在“组合数据类型”章节,从而有效地将专业课程与通识课程相结合。

在线性模型章节,主要讲解线性回归、线性判别分析等内容,这个章节需要使用numpy库进行矩阵的运算。结合Python课程教学内容,可以在“组合数据类型”章节中引入numpy库,利用二元一次方程,凸显numpy库的强大功能。需要注意的是,numpy库已经被列入计算机等级二级考试的提纲,对numpy库的学习变得很有必要,尤其是大数据工程专业,更应具备使用numpy库的编程实践能力。

在决策树章节,主要讲解如何构建决策树。决策树算法在数据预处理阶段需要对数据进行读取、去除无效数据等操作,而这些操作都需使用pandas库,那么对应的可以放在Python课程的“二维文本文件处理”章节,通过和内置的open函数作比较,让学生感受pandas处理数据的高效性,同时让学生具备数据预处理的能力。

在神经网络章节,主要讲解感知机和简单的BP神经网络,这里采用手写字体识别案例,涉及对图片数据的处理,所以需要讲解pillow库,这个库可以放在Python语言程序设计课程的“二进制文件处理”章节讲解,让学生了解图片数据的本质,以及如何将图片数据转换为numpy数据。

在支持向量机章节,主要讲解支持向量机的推导过程及对偶问题。关于对偶问题的求解,需要利用SMO算法,而SMO算法本质上就是一个while循环算法,可以作为案例应用在Python语言程序设计课程的“循环”章节。但是需要对问题进行简化处理,目的是脱离SMO算法本身,让学生体会while循环语句的应用场景。同样的,在聚类章节,K-Means算法也涉及while循环语句的思想,也可以引入到“循环”章节作为案例使用。

在机器学习算法求解过程中涉及的图表,比如柱状图、协方差图、AGNES算法的树状图等,需要利用matplotlib库实现绘制,这个库是科学计算中常见的可视化库,可以引用在“计算生态”章节。

上述给出了数据挖掘与机器学习课程部分章节内容如何与Python课程相融合。同样在其他专业课程中,也会存在相应的需求,需要逐一梳理。这项跨团队的工作,需要教师团队深入到专业课程建设中,挖掘经典、高效的案例素材,切实做到通识课程和专业课程建设的连贯性,能够让学生很好地进行学科之间的迁移。

需要注意的是在案例的选取和讲解过程中需避免过于生硬,不能为了引入而强行引入。要多用对比,比如在讲解numpy库时,先利用list列表,计算多元一次方程的求解问题,然后再引入numpy库进行求解,通过对比让学生感受numpy库处理数据过程的高效性。再比如讲解pandas库时,可以先后利用open函数和pandas库读取csv文件,然后对数据进行处理,凸显pandas库的强大和高效。

引入新的知识点,就意味着有新的挑战,如果案例的设计不够吸引学生,反而会适得其反。下面将进一步提出采用任务驱动教学模式,旨在提高教学质量。

3.2 采用任务驱动教学模式,提高教学质量

上一小节以数据挖掘与机器学习课程为例,给出专业课程与Python程序设计基础课程之间知识体系的融合方案。教学内容明确后,还需要设计好教学任务,从而驱动学生学习。好的任务设计,可以很好地激发学生内在学习动力,同时也能让课程教学主线明确,结构清晰。良好的教学任务设计应该满足以下几点原则:

1) 基于Python课程教学计划

依据专业课程,在Python知识架构中,构建新的案例,但是需要注意的是,这些案例知识点一定是依据原有的教学计划,比如pillow、numpy等第三方库,不要为了结合专业课程,将教学内容复杂化,甚至超纲。Python课程内容的设计是依据课程教学计划,结合专业课程的教学实际,构建合理的案例,并且能够和现有的知识有机融合。

2) 简单到深入层层递进

案例应该由浅入深,层层递进,不要割裂知识结构,要抓住主线。比如,在组合数据类型章节中引入numpy,不是为了讲解矩阵计算,而是为了引入一种全新的组合数据类型,这种类型不是Python内置的数据类型。先通过对list案例的设计,逐步引出numpy这种新的组合数据类型,结合案例,分析矩阵类型处理数据的特点,培养学生矩阵处理数据的思维方式。再比如,在讲解pillow库时,要明确pillow库是为了处理二进制文件,而图片是最常见的二进制文件。open函数可以读取二进制文件,但是无法对里面的bit流进行高效解析,除非精通图片的压缩算法,否则需要借助第三方库。总之,案例的引入,要抓住教学主线,由浅入深。

3) 有对比有启发

案例的设计要有对比,通过对比,学生能够得到很好的启发,理解为什么这么用,达到综合创造的层次(布鲁姆教育分类法的后两层),也就是进一步地改进问题。比如numpy库可以和原有的list对比,pillow处理后的图片和处理前的图片对比;pandas和原生的open函数对比等。

上一篇 点击页面呼出菜单 下一篇