网站首页  词典首页

请输入您要查询的论文:

 

标题 信息与计算科学专业的Python教学分析与设计
范文

    顾建军

    

    

    

    摘? 要:针对信息与计算科学专业,该文论述了开设Python课程的必要性;分析了该专业的课程设置,以及Python与后续课程之间的关系,给出了具有专业特色的教学内容设计,并且指出教学内容中适当介绍第三方库能够引导学生编程解决数学计算问题;最后提出利用将Python在线网络教学和传统课堂教学相结合的方法可以有效地解决有限的课时和疫情引起的教学困难。

    关键词:Python? 信息与计算科学专业? 教学内容? 在线网络教学

    中图分类号:G642? ? ? ? ? ? ? ? ? ? ? ? ? ? 文献标识码:A? ? ? ? ? ? ? ? ? ?文章编号:1672-3791(2020)12(b)-0035-04

    Abstract: The necessity of Python course teaching is first discussed for the major of information and computer science; Then the paper analyzes the major curriculum settings, including the relationship between Python and follow-up courses, designs the teaching content with professional features, and points out that the suitable introduction of the third-party libraries in teaching content can help students solve the mathematical issues through programming; The difficulties caused by the limited teaching hours and epidemic situation may be effectively overcome by combining online network and traditional classroom teaching of Python, and the corresponding method is finally proposed.

    Key Words: Python; The major of information and computer science; Teaching content; Online network teaching

    Python语言为面向对象的解释型计算机程序设计语言,其语法清晰简洁,具有简单、可移植性等优势,同时强大的第三方库和丰富的应用程序接口,可以使其应用扩展到图像处理、科学计算、数据挖掘等工业生产中[1]。另一方面,Python也受到了教育界的重视,并成为国内外眾多知名高校的程序设计语言的教学对象。国内最初仅南京大学、北京理工大学、哈尔滨工程大学等重点高校主要针对计算机专业开设了Python 课程,而面向其他专业开设Python课程的教学实践还相当有限。近年来,信息技术日新月异给大学计算机基础教学工作带来了新的挑战和发展机遇,迫切地需要补充适应信息时代的高效灵活的编程语言。为此,教育部高教司在2016年发布了《大学计算机基础课程教学基本要求》[2],建议将Python作为程序设计基础课程之一,地方高校、应用型本科高校陆续地将Python 作为理工专业学生的程序设计课程。

    目前国内高校数学专业的程序设计语言主要有C语言、Python、Matlab等,C语言虽然语法灵活,但语法需要掌握的细节过多,对于非计算机专业的学生来说,这些限制了对语法的掌握和应用,不利于编程学习兴趣的培养。Matlab主要是面向科学计算的集成计算环境,可以用于数学建模等专业课各种算法的学习和使用,允许用类似于数学公式的指令表达式编写程序,但由于Matlab中所有的变量均为向量形式,这导致处理变量时运算效率低。Python不存在类似C语言中指针或地址等设计计算机系统结构的元素,不必关心底层实现,简单和简洁对非计算机专业的学生意味着入门容易。特别的是,Python语言还有丰富的第三方库,可用于数据计算、统计分析、图像处理、深度学习等,学生在编程时可以调用Python的第三方库来解决专业领域的问题。在这些背景下,常熟理工学院数学与统计学院制订了信息与计算科学专业培养方案,其选择Python作为信息与计算科学 (信科)专业的专业选修课。

    1? 教学内容分析和设计

    就笔者学校信科专业培养方案而言,C语言程序设计开设在第二学期,数学建模开设在第四学期,在这些基础上,第五学期才开设Python开发选讲。因此,针对有编程基础的信科专业或数学其他专业的学生,除了适当简洁地介绍讲解变量、表达式、数据类型、函数、列表等基本知识以外,还应当考虑此课程和相关其他课程的衔接,并适宜将重点放在Python第三方函数库的应用,如Numpy、Matplotlib、jit等,甚至适当地引导学生了解下第三方库TensorFlow,为人工智能课程做一个铺垫。针对以上分析设计Python教学内容框图,针对教学内容设计框图见图1,在教学中应强调以下几点。

    1.1 Python、编程环境、第三方库之间的关系

    为了运行Python程序,需要有一个解释器来填补Python源程序和计算机之间的鸿沟,同时也需要一个命令行交互环境或窗口式的集成开发环境。Python 软件基金会主导开发的CPython系统提供了一个程序开发环境IDLE[3],使程序员可以方便地编辑程序并随时运行,但IDLE上不方便开发复杂的应用系统。由 JetBrains公司开发的PyCharm是目前比较流行的一个专业集成开发环境,可在其上方便地搭建机器学习的开发环境,大大提高了开发效率。Python语言在性能方面不如低级编程语言,但Python只是作为前端描述语言,实际计算则是通过底层的扩展实现,即扩充第三方库来完成更复杂的运算,从而实现功能和性能上的扩展,让开发者更关注数据和算法本身,这是Python 语言被广泛应用到工业生产和实践中的重要原因。

    1.2 第三方库的安装演示和相关库的功能介绍

    Python第三方库的安装可以通过cmd命令进行,即以管理员身份通过命令pip install进行安装,安装成功会显示“Successfully installed reguests”。另一方面,与信科专业或数学计算密切相关的第三方库主要有:(1)Numpy用于使用Python进行科学计算的最基本软件包,它包含一个强大的N维数组对象和实用的线性代数功能等;(2)Matplotlib是二维绘制库,会生成达到发布标准的高品质图片;(3)SciPy为数学、科学、工程计算功能库,提供了一批数学算法及工程数据运算功能;(4)Sympy科学计算库,用一套强大的符号计算体系完成诸如求极限、积分、微分方程、矩阵运算等计算问题;(5)TensorFlow是人工智能中的深度学习框架,可基于数据流图在CPU或GPU上进行高性能的分布数值计算。

    1.3 数学建模上的应用

    近年来,Python语言在数学建模和各类算法大赛中的应用备受关注。对比传统的数学软件Matlab,其大部分常用功能都可以在Python中找到相应的第三方库,所以在教学中应注重Python解决高等数学的计算问题。以下为Python在微积分和微分方程求解方面的简单应用。

    (1)求函数的积分:可以使用Sympy库中的命令integrate来实现,基本语法是integrate(f,x),或 integrate(f,(x,a,b)),其中f表示待求积分的函数,x表示函数的自变量,a,b分别为积分的上下限。以下面定积分为例:

    ## Python代码如下

    from sympy import *

    x = symbols("x")

    f =exp(sqrt(x))

    integrate(exp(sqrt(x)), (x,0,1))

    ##输出结果为

    2*(sqrt(x))* exp(sqrt(x))-2* exp(sqrt(x))

    即。

    (2)求解微分方程:可以使用Sympy库中的命令dsolve来实现,其基本语法dsolve(eq,f(x),hint),其中eq是可支持的任何常微分方程。假设它等于0,f(x)是微分方程的未知函数。hint让dsolve使用的求解方法。以下面二阶齐次常系数微分方程为例:

    ## Python代码如下

    import sympy as sy

    def differential_equation(x,f):

    return sy.diff(f(x),x,2)+f(x)#f(x)''+f(x)=0

    x=sy.symbols('x')

    f=sy.Function('f')

    sy.pprint(sy.dsolve(differential_equation(x,f),f(x)))

    ##输出结果为

    Eq(f(x), C1*sin(x) + C2*cos(x))

    即。

    2? 在线网络教学

    计算机程序设计课程的教学重点是培养学生解决问题的能力,使学生能对简单的实际问题,编写出有效且可读性好的程序。但实际教学中,疫情影响和主要以下两个原因会影响到教学效果:(1)课时的限制(一般情况下信科专业总课时48,其中理论课时仅32) 不能使学生在建模、算法设计、代码编写和编译调试这4个程序设计过程得到充分的训练;(2)面对信科专业学生的编程语言教学主要放在Python编程语言的基础语法上,但长期的静态教学会影响学生的学习兴趣。因此,在整个教学过程中应当尽可能让学生处于分析和思考问题的状态,提升学生独立解决问题的能力。在此情况下,利用在线网络教学对传统的课堂教学进行补充的教学方法可以用来克服以上的困难。目前主流网络教学平台是MOOC和云班课。

    MOOC(慕课)自2013年开始,经过6年的快速发展,数量和应用规模已位居世界第一。MOOC具有类似于线下课程的作业评估体系和考核方式,每门课程定期开课,整个学习过程包括多个环节:观看视频、参与讨论、提交作业,穿插课程的提问和终极考试[4]。因此,在课时极为有限的情况下,利用MOOC的开放式在线教学模式,通过课前慕课指导、课后慕课复习、慕课平台上的交流等方式来学习Python。但是MOOC上不同高校不同专业的Python课程,讲解的侧重点和难度可能会不一样,如果没有合适的MOOC,则需要自己来建立此项目。而一个团队完成MOOC课程的制作一般要经过选题、设计、拍摄、剪辑等环节,且制作费用较高,因此在这种情况下,云班课可以作为一个很好的代替[5]。

    云班课是一款课堂互动教学软件,可以实现教师与学生的即时互动(轻直播)、资源分享、课堂管理、在线测试和作业布置批阅等功能,具有完善的激励与评价体系,可以保存学习记录,有利于过程性评价和教学情况的跟踪与分析。在平时的课堂上,使用云班课可以及时记录课堂互动情况,提高课堂的活跃度和学生的参与情况。作为任课教师可以课外通过录屏软件自行拍摄Python的教学视频,上传到云班课的资源里,以便学生在课前预习,课后复习[6]。

    3? 结语

    “友好的”Python很适合作为信科专业的编程语言,随着信息技术的发展,有超越C语言和Matlab的趋势。在Python教学中,针对信科的专业特点和需求,根据教学内容,设计合适的方法,充分发挥该语言的优势,可以培养学生的分析能力,提高解决实际问题的能力。

    參考文献

    [1] 翟永革.计算机专业Python教学的有效方法分析[J]. 科技资讯,2019(17):89-90.

    [2] 教育部高等学校大学计算机课程教学指导委员会. 大学计算机基础课程教学基本要求[M].北京:高等教育出版社,2016:2-5.

    [3] Y. Daniel Liang.Python语言程序设计[M].北京:机械工业出版社,2013:12-13.

    [4] 姜赛达.基于层次聚类的数据分析方法在MOOCs中的应用[J].三门峡职业技术学院学报,2019(3):144-148.

    [5] 柴玥.高等教育中的慕课知识传播模式研究[D].大连理工大学,2019.

    [6] 张爽.基于自带设备理念的高校课堂互动教学平台的设计与研发[D].云南师范大学,2018.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/6 2:58:25