您好, 访客   登录/注册

基于C语言教学效果的比较探索高职院校Python的教学模式

来源:用户上传      作者:

  【摘要】通过将Python与C语言比较,探讨高职院校计算机专业将Python作为首门编程语言的可行性。进而提出建设有专业特色的Python课程设置、教学内容、教学方法,共同探讨培养面向综合应用能力的Python课程教学。
  【关键词】高职院校  C语言  Python  实施计划
  【中图分类号】G64  【文献标识码】A 【文章编号】2095-3089(2019)17-0239-02
  一、比较Python语言与C语言
  (一)Python与C语言背景
  C语言是1978年由美国电话电报公司(AT&T)贝尔实验室的Bjarne Stral-strup推出的一种程序设计语言。由于C语言的诸多优点,被广泛应用于系统软件和嵌入式软件的开发中,如游戏客户端和后台服务器的开发。高职院校开设C语言的目的是为了培养学生的编程能力,使学生具备编程思想,为进一步从事软件开发奠定基础。随着计算机的发展,其应用越来越广泛,C语言已很难满足广泛领域的使用,从而出现了一些新的高级语言来解决实际问题[1]。
  Python由荷兰人Guido van Rossum于1989年发明,被称为“胶水语言”,可以把用其它语言编写的各模块联结在一起,以实际应用为主的高职院校更适合教授此课程。Python很多语法既参考了C语言又参考了ABC语言和Modula-3,所以Python的设计既强大又优美。Python既有面向对象的特征,又像脚本语言一样容易操作,可在各种操作系统运行,不必关注配置如何,一般编程语言能做的Python都能做,功能性非常强,并且简单易学,可把其它语言编写的模块程序很容易联结起来,开发效率极其高。Python提供了丰富的第三方库,覆盖领域很广,并且简单好用,提高了编程效率[2]。2016年3月的TIOBE编程语言排行榜上,Python已升到前5名。2016年教育部高等学校大学计算机课程教学指导委员会发布了《大学计算机基础课程教学基本要求》,首次建议将Python语言作为高校编程语言的入门课程[3]。
  (二)C语言教学现状与困境
  以某校为例C语言教学效果欠佳,根据某年对某高校的MyCOS调查发现,学生对母校教师的授课情况满意度不高,其中最重要的一个原因是C语言,在省计算机水平考试中C语言的通过率也是整体偏低,很多教师尝试过用不同方法来讲授这门课程,但仍然无法调动学生的听课积极性。出现以上情况的原因归结如下:
  1.高职院校学生学习能力略差,特别有些学校计算机及其相关专业招生时是文理兼收的,有些文科学生一直以来对数字的敏感度不高,逻辑思维能力欠佳,喜欢学习容易的、有趣的课程,这部分学生学习C语言时面临较大困难。
  2.高校生活丰富多彩,学生学习时间有限,课程涉及内容既多又抽象,理解起来较困难,甚至有些学生虽然会读程序,可一旦让他自己写程序就显得捉襟见肘、无从下手。由于C语言是学生步入高校以后接触的第一门编程语言,因此编写程序代码的思维能力有待提高。
  3.高职院校学生基础稍弱,特别有些学生英语和数学功底较差,而C语言中有大量的代码使用英文单词,并且教学的实例很多都是围绕着数学问题,如:求1+2+3+···+n的结果,这是一个用C语言解决求值问题的典型实例。这种数学问题远离生活实际,无法吸引学生的听课积极性。
  4.C语言的编写程序比较自由、语法格式不固定;代码的开发细节较多,难度很大,用时较长,不利于学生编程兴趣的培养;代码的可读性较差,有时出现同一问题不同的人编写出完全不同的代码,加大了调试的难度。
  基于以上情况,探索有无类似C语言,又可以使学生较容易掌握的课程来代替C语言出现在高职院校的课堂上,由专家领导和骨干教师共同探讨,一致认可探索Python教学的新路子。
  (三)Python语言的特点
  1.简洁,易掌握。Python可解决C语言的不足,首先其简洁、易学习,同样实现一个功能,Python语言编写的代码有时会比C语言少很多,减少了调试时间,提高了执行效率;其次虽然其代码的编写比较规范,有强制缩进的要求,但程序非常美观,初学者读起来较容易;再次Python有强大的内置标准库,简化了开发过程,使初学者有更多时间用在编程思维的培养上,从而避开了繁琐的语法的困扰[4]。
  2.Python是一门面向对象的高级语言,函数、模块、字符串都是对象,并且支持重载、派生;C语言中的指针是比较难掌握的知识点,而Python中不再使用指针从而降低了学生学习的难度;Python简化了面向对象语言,消除了接口、抽象等面向对象的元素。
  3.Python是解释执行,较容易实现跨平台操作,可以在很多平台运行,如Linux,Windows等;Python语言是一种脚本语言,不但支持模块还支持包,应用于多种平台并且可拓展,由于代码开源,解决问题可以直接修改源代码,比较方便快捷,有利于Python的广泛使用。
  (四)Python语言的应用
  Python在Web开发、人工智能、网络爬虫等方面应用广泛,具体有如下几方面:
  1.自动化运维
  如Linux运维,平时只可以依靠人力或管理工具来进行服务器的运维,学习Python后可以开发自动化运维的脚本或程序来实现服务器的运维,从而减轻运维人员的劳动量。
  2.云计算
  云计算近几年发展很快,由于Python编程语言的优势,通过研究Nova和Swift模块,可以快速搭建公有云、私有云、企业云。Python中最值得学习的云框架是Openstack.
  3.人工智能
  人工智能的發展方向主要在无人驾驶、机器学习、图像设别、博弈等领域,98%的人工智能的开发用的是Python,Python是神经网络等领域的编程语言。   4.网络爬虫
  网络爬虫是大数据环境下获取数据的重要工具,利用它在互联网上不停的获得免费数据,如通过爬虫Scrapy,可以收集到大量信息,然后利用Python正则表达式等实现筛选数据,从而大大节省劳动力。
  5.数据库开发
  Python支持Oracle、MySQL等主流数据库,并且通过数据库API接口将关系数据库映射到Python类,从而实现面向对象数据库系统。
  二、Python语言教学目标
  我们经常听到“人生苦短,我用Python”,可见用Python编程可以节省很多时间,下面具体分析Python教学中将实现哪些教学目标:
  (一)知识目标
  1.了解什么是Python;清楚Python能做些什么;掌握Python基本数据类型,运算符和表达式及Python常用的数据结构;掌握Python流程控制语句;理解面向对象知识。在此基础上了解Python项目实践的过程,通过综合实践项目不但要求掌握Python的pdb、os、httplib等标准库,还要了解Python的requests、matplotlib等第三方库,第三方库信息量很大,初学者不可能全部掌握,指导学生需要时用“help()”指令查阅函数的功能。
  2.由于Python是解释型语言,所以较容易与其它编程语言进行混合语言编程[3],因此需掌握Python语言的特性,列举两个常用Python语言的特性:
  (1)简单循环的举例代码
  print(“Mike”*3+“Ben”*2)
  输出:MikeMikeMikeBenBen
  (2)字典的举例代码
  name={‘Janet’:70, ‘Tom’:80, ‘Ammy’:60}
  print(name[‘Tom’])
  输出:80
  (二)能力目标
  开设此课程以“培养编程思维”、“激发创新合作”、“提高专业能力”为宗旨,对课程教学进行了探索,将其作为高职计算机类及相关专业的核心课程,培养学生具备程序的阅读能力、开发能力、测试和维护能力,为软件开发企业输送更多人才。具体教学过程中通过独立思考,自主探讨,培养学生阅读程序、分析问题、解决问题的能力;通过编写程序,培养学生养成良好的编程风格和严谨的态度;通过团队合作,培养学生沟通能力和拓展知识的能力。
  三、Python语言教学实施计划
  教学中以“实例教学—算法分析—程序编写—知识概况—引申拓展”的方式开展,通过习题加以巩固,将任务驱动、案例教学融入其中。
  (一)Python教学内容
  若用Python进行项目的开发,首先要掌握好Python语言的基础。对没有编程基础的大一学生,Python语言的优点是入门简单、生动有趣,在学习基本知识点的基础上,讲授简单的第三方库的使用。本课程采用理论课和实践课相结合的授课方式,理论课需学生掌握基本知识,培养编程思想;实践课通过编写程序、运行程序、调试程序使学生具备根据错误信息提示迅速解决语法错误的能力。作为新生入校后接触的第一门编程课,分别讲解基本语法、数据类型与运算符、条件控制与循环结构、迭代与生成、函数与模块、类与对象、继承等理论知识,总计64学时。增设32学时的项目实验,主要涉及各个类库的应用,为迎合学生的兴趣爱好,提供多个题目供学生选择,如基于Pygame设计贪吃蛇游戏,飞机大战游戏;利用PIL提供的通用图像处理功能,实现将彩色照片处理成黑白照片等[5],学生们经过选题、小组讨论并分配任务、安装类库、代码生成并测试,以培养学生分析数据和开发利用的能力,使学生逐步具备成为程序员所应具备的基本职业素养。
  Python课程教学中,实现了理论教学内容和项目训练相结合,通过理论学习使学生对Python有一个总体的知识体系把握。项目训练中每位学生都参与其中,同时以作品的等级作为评分的主要标准。
  (二)Python授课方式
  本课程采用任务驱動,基于工作流导向的理念来设计教学内容和考核方法,重点培养学生具备良好的职业素养和团队协作能力。密切关注计算机的发展方向,坚持实践化教学,坚持学以致用,解决理论和实践脱节的现象,使学生在有限的时间内不但掌握理论知识,还需通过实践项目培养学生发现问题、解决问题的能力。教学模式上,积极推动“以项目为导向、以任务为驱动”,通过精选项目,提取出以职业能力培养为特色的教学内容,考虑到高职学生的认知能力,采用“提出任务、分析任务、边学边做、完成任务”的过程,充分体现互动创新,有效提高学生的动手能力。整个Python课堂采用“11611教法”,首先前10%的时间提出任务,接下来10%的时间引入课堂、列举知识点,再用60%的时间学生实操,继续用10%的时间成果展示、作品评比,最后10%的时间总结课上遇到的问题及改进方法。若条件允许的高校可以尝试翻转课堂,混合式教学进一步提升课堂教学质量。
  (三)Python考核方法
  考核作为检验教学效果的重要手段,是教学过程中的重要组成部分。具体成绩的评定如下:综合成绩=期末成绩*50%+实训成绩*30%+平时成绩*20%。实训成绩包括项目成绩占80%,答辩成绩占20%。平时成绩包括出勤情况占20%,课堂表现占40%,作业成绩占40%。
  综上所述,Python和C语言相比,语法更加简单、代码更容易读写、代码重用更容易实现、更容易生成适用于教学的全面的、一致的文档。如果把计算机和人比作地球的两端,则编程语言就是联结它们的桥梁[6]。C语言最初设计是以机器为核心,因此更接近于计算机,而Python最初设计是以用户为核心,因此更接近于人,语法更人性化。具体Python的教学中,重点培养学生将现实生活中的需求转化为代码的编程能力,以培养学生的应用型能力作为教学的主要目标,构建经验丰富的教学团队,提高学生的综合能力培养。
  参考文献:
  [1]车万翔,苏小红,袁永峰,叶麟.计算机专业高级语言程序设计课程改革探索[J].计算机教育. 2014(13).
  [2]嵩天,黄天羽.Python语言程序设计教学案例新思维[J].计算机教育.2017(12).
  [3]韩志豪.人工智能背景下的Python教学探索[J].Computer Era No.7 2018-11-18.
  [4]罗旋,张硕.Python语言程序设计课程建设初探[J].电脑知识与技术. 2018(5).
  [5]冯艳红,王楠,许冀伟.Python语言程序设计教学模式探索[J].福建电脑. 2018(10).
  [6]闯跃龙.C语言、VB还是Python——谈高校非计算机专业学生编程入门课程选择[J].计算机教育. 2018(7).
转载注明来源:https://www.xzbu.com/1/view-14825247.htm