APP下载

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

2023-11-07刘海桥袁丹丹

电脑知识与技术 2023年26期
关键词:章节专业课程案例

刘海桥,袁丹丹

(海军工程大学电子工程学院,湖北武汉 430000)

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库的编程实践能力。

图1 大数据工程专业的课程建设(部分)

在决策树章节,主要讲解如何构建决策树。决策树算法在数据预处理阶段需要对数据进行读取、去除无效数据等操作,而这些操作都需使用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函数对比等。

结合上述原则,对Python课程的教学案例进行设计,案例如表1 所示,这里篇幅原因,给出前3 章节的知识架构。通过对专业课程知识的梳理,引导程序设计课程案例的构建,将大数据工程专业领域的知识技能很好地融入Python课程教学中。

表1 任务驱动教学模式下案例设计

3.3 明确创新驱动评价指标,激发学生动力

课程的评价如图2 所示,包含期末成绩和过程性成绩,过程性成绩中有实验、期中等。为激发学生的学习动力,提出新的指标“创新实践”。“创新实践”指标的难点在于如何衡量“创新”,以及如何评价“创新”。

图2 课程考核方式

编程的创新可以分为算法上的创新和应用创新。算法创新又可以进一步分为:

1)减少代码量,比如100行的代码用50行实现;

2)挖掘已有方法的新功能,比如sum 函数,可以设置第二个参数作为初始值;

3)降低算法复杂度,比如对素数求解问题,给出新的高效的算法。

应用上的创新,可以有:

1) 利用现有的知识解决实际问题,比如利用turtle库设计一个倒计时;

2)挖掘新的有意思的第三方库,比如二维码生成库、Office办公类的库、GUI开发库等。

明确好创新类型后,梳理每个章节的知识点,给出可以创新的具体评价指标,并给出分值,如表2所示。

这些指标及内容可以在授课前,就给学生明确,这样更有利于学生的主动思考。同时,需要积极反馈学生的成果,好的作品、好的思路需要作为模板共享给学生,这样一方面能给学生明确创新方向,还能激发学生之间的竞争力。

4 结束语

在大数据工程专业教学过程中,学生对Python语言掌握不精,实验内容不能高效开展,主要原因是课程内容脱离专业实践、授课对象缺乏主观能动以及考核评价没有专业特色。针对上述问题,给出基于大数据工程专业人才培养目标的Python 语言教学方法的探索。在教学内容方面,结合专业背景,设计与数据处理相关的教学内容,以数据挖掘与机器学习专业课程为例,梳理出和程序设计相关的知识,设计出专业背景下的教学案例,融合到Python 教学内容中;在教学模式方面,采用任务驱动式的教学模式,旨在提高教学质量,在实验课环节,分析教学目标,设计实验任务,通过任务驱动,引导学生自主学习,激发学生学习的兴趣;在评价指标方面,明确基于创新驱动的评价指标,旨在激发学生学习动力,通过构建创新指标,规定创新点,确定评价指标。通过对Python语言教学内容的设计,激发学生学习的主动性,提高教学质量,为后续专业课程中实验内容的高效开展打下良好基础。

表2 创新驱动评价指标

猜你喜欢

章节专业课程案例
案例4 奔跑吧,少年!
电大学前教育专业课程改革探讨——以福建电大为例
随机变量分布及统计案例拔高卷
高中数学章节易错点提前干预的策略研究
素养之下,美在引言——《“推理与证明”章节引言》一节比赛课的实录
发生在你我身边的那些治超案例
中美综合大学在音乐专业课程上的比较与启示
中俄临床医学专业课程设置的比较与思考
一个模拟案例引发的多重思考
黄廖本《现代汉语》词汇章节中的几个问题