OBE背景下人工智能专业Python课程案例式教学探讨

2023-09-12 12:39毕卉周新文张继
科教导刊 2023年15期
关键词:教学探讨

毕卉 周新文 张继

摘要 OBE理念是一种以学生为中心,以成果为导向的教学新理念,引导着本科阶段的教学。人工智能专业作为新兴本科专业,培养计划的制订上仍需探讨。Python作为人工智能领域最常用的编程语言,在人工智能专业的本科教育阶段至关重要。文章从OBE理念出发,开展案例驱动的教学方法,将实例贯穿整个课程的教学中,可以帮助学生针对算法开展Python程序语言的学习,不仅可以增强学生的编程基础,而且可以提高学生对于人工智能领域算法的熟悉度,从而具备分析和解决实际问题的能力,真正实现学以致用。

关键词 Python程序设计;人工智能专业;教学探讨

中图分类号:G642文献标识码:ADOI:10.16400/j.cnki.kjdk.2023.15.011

OBE理念指的是以成果为导向、以学生为中心的新型教育理念,在本科阶段的教学过程中起着指导性的作用。人工智能专业是随着人工智能领域的发展和成熟新兴起来的本科专业。人工智能是信息技术领域引领性的学术成果,也是推动社会智能化发展的决定性力量。随着人工智能新技术和新应用的不断涌现,迫切需要人工智能课程建设能够与学科发展相适应。人工智能专业于2018年首次招生,迄今已经成为热点专业之一。然而,人工智能专业是在研究生教育阶段发展起来的,如何针对性开展本科阶段的课程教学仍需进一步探讨。

Python作为人工领域最常用的编程语言,是人工智能专业本科教育阶段重要的基础课程。在传统的计算机学科的教学过程中,Python课程的教学方法多與计算机二级考试接轨,倾向于基本语法、变量类型、运算符等基础知识。纵观这些知识,大部分与C语言极其相似,导致了教学工作的繁复和学生的不重视。实际上,对于Python的教学来说,应该将其与C语言进行区分教学:一方面应该加强学生面向对象编程,在教学中更加强调区分性,重视Pyhton编程语言中面向对象的编程思想介绍,使学生有能力将基础编程转向面向对象编程。通过问卷调查的教学反馈也发现,传统方式教学对于面向对象的课时较少,且缺乏针对性的实验课时,使得学生对于面向对象的理解欠缺,需要通过调整教学方法帮助学生对此知识点进行深入理解。另一方面应该强化学生应用编程,增加学生对于Python生态环境的理解。这是因为Python除了具备基本函数库外,还具有丰富的涉及方方面面应用的第三方支持库。最重要的是,人工智能算法均是基于已经开发完成的第三方工具包开发的,比如面向计算机视觉的opencv-python、面向自然语言处理的NLTK以及深度学习框架pytorch等,这些基于Python开发的第三方库会让学生对于人工智能算法的应用理解和入门都更加容易。

针对上面提到的情况,为了帮助学生更好地进行Python课程的学习,作者根据学生的反馈在实际教学采取中了相应的措施,通过引入案例的方法开展相关内容的教学,增强了学生面向对象编程和应用编程的能力,提高了学生的学习效果和学习兴趣。本文将分别从面向对象的案例式教学、针对第三方库的案例式教学和错误异常教学体系三个角度展开进行详细介绍。

1面向对象的案例式教学体系探讨

面向对象作为一种编程思维,与过程式编程截然不同。过程式编程强调对于工程进行流程化管理。由于学生最初接触的是C语言编程,更加熟悉过程式编程,很难构建对于面向对象的编程思维。

对于面向对象的编程语言来说,如何建立面向对象的思维至关重要。现有的教材往往是对于概念性的语言进行强调,学生对于此概念的理解往往停留在教材上的知识,比如面向对象的三大属性、面向对象的优点等文字层面,缺乏深入的思考和理解,对于如何进行面向对象的编程理解不够透彻。因此,作者尝试在教学中从案例出发,结合实际案例,完成面向对象内容的教学过程。

教学从真实场景的案例出发,案例内容为:分别构建上海银行和北京银行两个银行系统,实现存钱、取钱和转账的操作。第一步,教师从案例和真实生活出发,分析银行系统应该具备的特征和功能,进而抽象出其包含的属性和函数,完成面向对象的类声明部分的课程内容讲授;第二步,教师通过对属性和函数的进一步分析,抽取出两个银行共有的属性和函数,引出父类和子类的概念,完成相关内容的教学;第三步,在父类和子类教学的基础上对于两个银行进行进一步引申,完成面向对象中重要的继承知识点的讲授;第四步,学生基于面向对象的思维,基于教师给出的部分代码,学生对代码空缺部分进行补全、自行完成银行系统的搭建,开展编程练习。整个过程的开展,从教师理论讲授和学生动手练习两个方面出发,学生可以更好地理解面向对象的概念,进而建立面向对象的编程思维。

在完成该案例教学后,教师进一步开展理论化教学,引导学生通过自己的体会梳理出过程式编程和面向对象编程的区别。在4个课时理论教学的基础上,将紧接着开展4个实验课时的练习,给出面向对象编程的具体实例,让学生通过自己编程进一步增强面向对象的编程思维。通过该教学体系,将真正针对面向对象的教学环节贯彻OBE理念,真正构建成果导向的教学体系。

2针对第三方库的案例式教学体系探讨

针对第三方库的案例式教学将从一套具体应用的完整搭建出发,以目标为起点,讲授系统涉及的所有第三方库,从第三方库的导入和使用两个角度进行教学过程的开展。以数据挖掘中数据分类为例,执行读取数据出发,数据的可视化和数据分析的全过程,进而完成整套智能分类系统的搭建。具体教学过程将从矩阵运算第三方库numpy出发,依次介绍Matplotlib绘图库/Bubbly绘图库,进而借助Sklearn机器学习算法库完成对数据的分类。通过此案例的系统教学,对数据分类任务开展针对性分析,帮助学生构建针对实际问题的解决思路和代码流程。

以鸢尾花分类为案例展开。首先对于数据进行分析,然后对数据进行可视化,最后利用机器学习算法支持向量机(SupportVectorMachine,SVM)对数据进行分类,教学过程包括csv文件的读取、数据的2D/3D展示和算法应用三个部分。

2.1图像分类案例讲解

通过对csv里的数据进行分析可以得到鸢尾花数据集为四维向量,包括萼长度、花萼宽度、花瓣长度、花瓣宽度,鸢尾花卉类别有Setosa,Versicolour,Virginica三个种类。可以得出:数据特征格式为4×1,标签格式为1×1。

2.2所涉及的第三方库讲解

①基础运算库。Numpy库作为矩阵运算库,是人工智能领域最基本的计算库,也是大部分计算库的基础依赖库。

②数据可视化绘图库。Matplotlib是Python 2D绘图领域使用比较广泛的第三方库。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。利用Matplotlib可以将数据很好地进行呈现,从而便于从数据分布中挖掘信息。Matplotlib支持多种绘图方法,让学生通过不同的绘图体现数据的呈现方式。

Bubbly可以进行3D绘图,能够使数据可视化效果更加立体。通过本案例可以发现,同一数据不同的表示方法带来的视觉效果并不相同,合适的图像呈现方法可以帮助我们更好地分析数据。

③机器学习算法库。sklearn(也称为Scikit-learn)是针对Python程序语言开发的第三方机器学习库,它包括支持向量机、随机森林、梯度提升、k均值等基础机器学习算法。本案例的目的是利用SVM算法对于鸢尾花数据集进行分类。通过该案例,可以帮助学生更好地理解如何利用數据特征进行数据分类,以及如何使用sklearn包含的算法对已有数据进行分析。

通过上述案例的全过程讲授,学生不仅对第三方库的使用和导入及具体的应用场景有了更加深入的体会,而且对于具体应用场景和人工智能算法的结合有了初步的认识。

3异常和错误在案例化教学中的探讨

学生在Python学习的初期,会出现代码异常和错误的情况,学生不能够根据出现的错误有的放矢地进行调试。这在案例化教学中表现尤为突出。但是,对于编程学习来说,了解异常和错误的类型,有针对性地进行代码调试,是独立编程所需具备的最基本的能力。

从教学过程中收集错误信息,对学生学习Python前半学期最常见的错误异常类型进行列表,经过统计排序,重点教学。另外,梳理其他常见的错误进行理论课程讲授。同时,在实验环节对学生进行1对1指导,在调试代码的过程中,结合实际对如何解决出现的错误进行针对性指导,形成理论―实践闭环型教学。

进一步地,将代码调试与学习、生活结合起来,让学生明白不是所有的事情都是一蹴而就的,有些事情往往需要克服重重困难才能取得成功。鼓励学生面对挫折要充满信心,找对解决方法,就能做好事情。同时,提醒同学们事前多思考,对于一些问题进行预判,提升学生的风险防范意识,要为这些异常后果也准备好相应的应急预案。

4小结

通过针对性开展面向对象和实例的案例型教学,突出面向对象的编程思维,将Python编程语言和人工智能算法紧密结合,取得了不错的教学效果。为了更好地推行案例化教学,课程组对于考核比重进行了调整,将项目能力与理论教学提升至相同的等级,各占50%,更好地促进了学生动手编程的积极性。

针对人工智能专业本科生进行Python案例式教学已经试行了一个学期,课程组通过调查问卷的形式对学生的学习情况进行了解,问卷结果表明:案例式教学可以帮助学生更好地理解Python语言以及人工智能算法的实现;同时,学生从实际问题出发,通过编程设计针对性地解决问题,大大提高了学生的学习兴趣。

在本案例化方案的基础上,课程组将进一步推进Python课程的全系列案例化建设,争取将案例化覆盖到每一章节中,真正实现OBE理念下的课程建设。

基金项目:2023年教育部产学合作协同育人项目“数字信号与图像处理”(220605181012316);2020年常州大学校级教育教学研究课题“强化基础理论的案例式教学方式探索”(GJY2020072);2020年常州大学院级教研课题“面向《计算机控制系统》课程安全式教学的‘强基计划”(ZMF20020799)。

参考文献

[1]杨高明,陆奎,方贤进.人工智能教学研究探索[J].教育教学论坛, 2018(35):3-4.

[2]冯骥.“人工智能”课程教学实践与探索研究[J].电脑知识与技术, 2019,15(17):126-127,136.

[3]MarkLutz,侯靖.Python学习手册[M].北京:机械工业出版社,2009.

[4]顾晓东,付莹.Python教学细节探讨[J].数码世界,2018(8):77-78.

[5]韦依洋,吴一凡,李永远.Python技术在数据可视化中的应用研究[J].福建电脑,2022,38(1):27-31.

[6]郝静,平梦婷,陈建文,等.基于Python语言的科学计算课程教学改革研究[J].计算机时代,2022(1):90-92,96.

[7]陈娟,陈雯,石飞,等.基于Python的信号与系统实验教学改革与实践[J].实验技术与管理,2021,38(5):196-200.

猜你喜欢
教学探讨
音乐实施开发性教学探讨
浅谈小学口语交际能力的培养
中小学体育教学改革与发展的探讨
探讨高中语文教学中的口语训练
探究如何让初中英语教学更具有趣味性
《计算机网络》教学的探讨
《计算机测控技术》课程中PID控制部分的教学探讨
初中历史课进行趣味教学的探讨
新课程理念下的初中地理教学探讨
基于语言学理论指导下的高校英语教学探讨