您好, 访客   登录/注册

信息与计算科学专业Python程序课程教学改革探索

来源:用户上传      作者:

  摘 要:基于目前信息与计算科学专业的教学现状,分析该专业程序设计课程目前存在的主要问题。通过对多种程序语言的分析对比,提出将Python语言作为信息与计算科学专业的主要编程课程。同时,结合人才培养方案,探讨Python程序设计语言的教学改革,设计适用于信息与计算科学专业的教学内容。
  关键词:信息与计算科学 教学改革 程序设计 Python语言
  一、引言
  目前,大多数高等院校的数学学科均开设有信息与计算科学专业。该专业是运用计算机与信息科学实现数学在工程技术应用中的桥梁,是提高科研和工程技术水平的工具。培养的学生不仅具有扎实的数学基础和数学思维能力,而且能够熟练掌握有关信息处理和计算机的基本理论、方法和技能;从而能够解决实际工程应用中的科学计算、软件开发和设计、信息处理和编码等问题[1]。在就业前景方面,大多数信息与计算科学专业的毕业生都会选择进入IT企业,这就要求该专业的毕业生计算机编程能力过硬,而且需要精通数据库技术,了解计算机网络的基本知识并能灵活运用,此外还需要熟练掌握基本的软件开发平台。尤其在当今信息化和大数据的时代标签下,信息与计算科学专业对专业人才的培养更应贴合时代背景,以适应当今快速变化的信息时代。在继续深造方面,该专业的毕业生可选择的领域非常广泛,如计算机类可选择计算机图形学、人工智能、智能控制、并行分布/处理计算机系统以及计算机科学理论等;数学类既可转入基础数学或应用数学,又可继续计算数学及运筹学的深造;经济类则可考虑统计学、精算学和国际金融与贸易等专业。
  因此,在信息与计算科学专业的培养方案中,无论是考虑到学生将来的就业还是继续深造,都应将程序设计语言作为该专业基础教学的核心课程,从而培养学生的计算思维能力,逻辑思维能力,让学生真正掌握计算机的基本理论、方法和技能[2]。
  二、几类程序设计语言介绍
  目前,在信息与计算科学专业的培养方案中,主要将C语言或matlab作为入门程序设计课程。下面将针对这两种语言的特色进行分析比较:
  (一)C语言程序设计
  C语言作为一门通用计算机编程语言,被广泛应用于计算机软件底层开发,也是我国高校普遍开设的程序设计课程。C语言的基本构成主要包括:数据类型、常量与变量、数组、指针、字符串、文件输入/输出等内容。通过对该语言的学习,可以培养学生基本的编程能力,触类旁通,进而学习其他高级程序语言。而且C语言具有以下优点:具有灵活方便的表达方式,具有丰富的数据结构和运算符,语法结构简洁紧凑,允许直接访问物理地址,对硬件进行操作,因此受到了广大计算机专业学生的青睐。但是,对于非计算机专业的学生,在培养体系中缺少计算机体系结构的相关基本知识,在学习C语言后,很难在后续的学习和工作中继续使用该语言解决面临的问题。而且非计算机专业的学生如果不继续学习其他高级语言,则更不会发挥C语言的作用,使得学生缺乏学习兴趣,进而造成学习效果普遍不理想[3]。
  (二)Matlab程序设计
  Matlab是一款商业软件,由美国Mathworks公司开发。自该软件发布以来,主要用于数值计算,数据可视化,同时兼备算法开发、数据分析等高级功能。目前,Matlab也作为一种高级语言为实际的工程应用、科学研究以及需要用到数值计算和数值模拟的学科领域提供了较为全面的解决途径,使得学生能够深入到科学研究及工程计算的各个领域。Matlab程序语言的语法结构类似于C++语言,但表达方式更为简单,而且对语法的要求并不高,符合数学专业的学生对数学表达式的书写格式,尤其有助于非计算机专业的学生学习和掌握该软件[4]。Matlab虽然拥有众多的工具包,可视化建模仿真等功能,但毕竟是商业软件。用于教学的Matlab工具包有限,其他各种工具包的使用均需购买且价格昂贵,增加了教学成本,不利于实际教学和学生使用。
  综上所述,我们可以看到目前信息与计算科学专业所开设的程序设计课程有诸多不足,无法满足在信息技术飞速发展的大环境下,日新月异的技术变革和社会需求。近些年,随着大数据和人工智能的兴起,Python程序设计语言以其简单、高效的特点在现今的信息时代受到了广泛青睐[5]。首先,Python语言逻辑简单,语法结构对英语的要求不高,只需初中水平英语便可学习该语言;其次,Python是免费开源的程序语言,其开放源代码大大节约了教学和科研成本;最后,Python拥有强大易用的标准库,保证了其广泛的应用范围。尤其对于非计算机专业的学生,Python代码易于读写,代码重用难易度简单,现有教学资源丰富,非常方便学生和教师的交流,而且有目前适用于教学的全面、一致的文档[6]。因此,把Python程序设计语言作为信息与计算科学专业的编程入门核心课程,不仅可以提高学生对编程语言的兴趣,切实提高学生的编程能力,而且能够让学生把精力放在对计算问题的求解上,而不是把大量时间花费在学习编程环境和复杂的语法上。
  三、基于“信科”专业的Python程序语言课程建设
  目前,Python语言已经被应用到诸多专业和领域,如:数据爬取与大数据处理、统计分析、科学计算可视化、系统安全、软件测试与分析、电子取证、密码学、人工智能、机器学习、深度学习、游戏设计与策划、网站开发、移动终端开发等专业领域。针对信息与计算科学专业,我们将重点培养学生利用Python语言进行科学计算的能力。在学生学习完这门课程后,首先能够熟练掌握Python程序设计语言,在今后的工作和學习中能够学以致用;其次,对于选择继续攻读计算数学研究生学位的学生,能够运用Python语言解决一些初等的数值计算问题,如非线性方程的数值迭代,线性方程组的数值求解,数值积分以及常微分方程的数值解法等问题的编程实现。其中,课程安排共64个学时,每周2学时理论教学内容,2学时实践教学内容,共16周。   (一)理论教学内容
  理论教学内容将安排基本理论部分和数值计算部分。其中,基本理论部分包括:
  1.Python安装、开发环境配置,
  2.Python扩展库安装与管理,
  3.Python对象模型,
  4.运算符与表达式,
  5.基本數据类型的用法和面向对象的基本语法,
  6.常用内置函数应用案例解析,
  7.Python代码编写规范学习基本语法。
  其中,基本语法包括:库的载入、循环、判断、函数定义;数据类型的用法包括:列表、字典、元组、字符串;面向对象的基本语法包括:类和继承。
  数值计算理论学习假定学生已学习过数值分析课程,对一些基本的数值方法已有初步的认识。在此基础上,我们将介绍数值计算库、符号计算库、多维数组的创建、矩阵运算以及绘图与可视化等内容[7]。
  (二)实践教学内容
  通过实践教学内容的学习,将教会学生使用SciPy数值计算库进行非线性方程的数值迭代、最小二乘拟合、非线性方程组的数值求解、插值运算、数值积分、常微分方程数值求解等内容。在熟悉以上基本内容后将通过以下实战训练进一步提升学生解决实际问题的能力,包括:数字信号系统,快速傅里叶变换,频域信号处理,单摆和双摆模拟等内容[8]。
  通过理论教学内容和实践教学内容的系统性学习,我们期望学生能够熟练掌握Python程序语言,并进行科学计算,遇到问题能够解决问题。同时,通过该语言的学习,提升学生的逻辑思维能力和编程素养,提高学生对学习编程的兴趣,特别对于信息与计算科学的学生,学习Python语言,不论日后进入IT行业还是继续深造走上科研的道路都大有裨益。
  结语
  信息与计算科学专业的程序设计课程存在着诸多问题。本文通过分析对比C语言,Matlab和Python语言的优缺点,得出Python语言是最适合信息与计算科学专业的程序类课程。因此本文设计出将Python语言和科学计算相结合的教学内容,并以此进行教学改革,培养出适应当前大数据和信息时代环境下的信息与计算科学专业的创新型人才。
  参考文献
  [1]梁小林,高纯一.信息与计算科学专业现状与发展的研究[J].数学理论与应用,2002(4):47-48.
  [2]陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1):7-11.
  [3]闯跃龙.C语言、VB还是Python?——谈高校非计算机专业学生编程入门课程选择[J].计算机教育,2018(7):32-34.
  [4]温正.Matlab科学计算[M].北京:清华大学出版社,2017.
  [5]刘卫国.Python语言程序设计[M].北京:电子工业出版社,2016.
  [6]刘卫国,奎晓燕.Python语言程序设计教学体系建设[J].计算机教育,2017(8):13-17.
  [7]嵩天,黄天羽.Python语言程序设计教学案例新思维[J].计算机教育,2017(12):11-14.
  [8]张若愚.Python科学计算[M].北京:清华大学出版社,2012.
  作者简介
  杨旭光(1988—),男,籍贯:河南周口,博士,讲师,从事偏微分方程数值解研究。
转载注明来源:https://www.xzbu.com/1/view-14896823.htm