高职院校python语言教学模式探索

来源 :职业教育研究 | 被引量 : 0次 | 上传用户:zj2008263
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:python是目前主流的程序开发语言之一,引入高职课堂后如何进行有效教学需要教师不断地探索。文章从教学实践出发,提出了一套系统的“三段一训”式python语言教学模式。以学生为中心,形成课前自学、课中导学、课后助学的教学路径;重视实践操作能力和职业素养的培养,在实训中采用IPD流程管理。实践表明,该模式效果良好。
  关键词:python;程序开发;教学模式;IPD流程
  中图分类号:G712    文献标识码:A    文章编号:1672-5727(2019)11-0070-05
  python是一门解释性脚本语言,它以简单易学、开源、可移植性强、资源库丰富[1]的特点成为目前主流的编程语言之一。python语言在数据分析、web开发、机器学习等方面有广泛的应用,目前大部分高职院校都开设了python课程。编程语言具有抽象化和模块化的特点,同时又是实践性很强的课程。之前国内已有诸多学者探索编程语言的教学方法并取得了一定的成效:反思性教学提出教师在整个教学过程中不停地发现、总结问题并反思思考解决方法,通过反思让教师不断优化教学过程[2];“项目驱动”教学按照软件工程思想把某一工程项目展开并贯穿整个教学过程,提高学生的全程参与度,缩短学生进入企业的适应期[3];还有学者从提高学生的兴趣入手,在教学的不同阶段采用有针对性的方法来改善教学效果[4]。
  目前,企业对python开发人员的需求量很大,以51job上发布的招聘数据为例,仅在2019年6—7月全国需求的python相关岗位就达到31 546个,其中开发工程师占50%左右,爬虫工程师、数据分析工程师各占10%左右,另外,还有部分算法工程师、测试工程师等的需求。对python从业人员的技能要求也比较广泛,这反馈到实际的教学设置中要求python基础知识要打牢,对python在各个领域的应用要做适当的牵引和引导,才能让学生有更广的就业选择。
  通过定期与用人单位交流以及实际的课堂教学摸索,笔者提出了一种以学生为中心适用于高职院校的教学模式,改变传统课堂的灌输式教学,旨在引导整个教学过程中学生的主动参与。按照学生参与的阶段,形成课前自学、课中导学、课后助学的教学路径;本教学模式重视实践和企业实际开发流程相结合,在课程的综合实训环节中引入企业的IPD流程管理,让学生参与软件产品的整个生命周期。三段式教学和综合实训的管理构成了完整的“三段一训”的python教学模式。
  一、课前自学
  教师在课前需要做大量的准备工作,包括备教材、备学生、备方法,即熟练掌握教学内容,了解学生的知识水平,根据学生具体情况制定相应的教学方法。学生作为学习的主体,在课前也要做相应的准备工作,但现状是学生通常在课前都没有充分的预习,即使有预习任务往往也是流于形式,没有达到期望的效果。我们在python语言教学过程中,要求学生备内容、备问题,在课前布置预习任务给学生,并设置在线试题进行考核,以此来牵引学生主动参与。
  目前已经有一些广泛使用的在线问卷调查网站,如问卷星、问卷网等,可以提供规模的在线调查、在线考试以及数据收集等功能[5],其中,问卷星以其免费、易用等特点已经被大量使用。本教学模式在课前测试主要使用问卷星,教师提前在线上录入与知识点相关的试题,发布试题的链接和二维码,学生可以通过pc或者手机登陆网站进行答题。教师通过问卷星后台的数据能够查看到考试成绩、题目正确率分析,根据这些数据能及时了解学生的知识预习情况,针对错误率比较高的题目,在课上进行重点讲解和巩固。
  课程内容的设置上要循序渐进,符合高职学生的思维发展,整个教学过程围绕课程内容展开,目标是让学生充分系统地掌握知识。教师的教学计划要结合学生现状合理安排。python课程的内容设置如图1所示,总体分为基础、进阶和提高三大部分。整个课程总共有48个学时,由于这三部分难易程度不同,教学课时有差异,从我们几轮的教学实施来看,这三部分的课时比例大致为2∶3∶3比较合理,在实际的教学实施过程中不同基础的班型之间这一比例会有些调整。
  语法规范中尤其关注和其他语言差异比较大的地方,比如以缩进而不是大括号开始一段新的语句块。基本语句中主要包括判断、循环;数据结构中涉及python的基本数据结构和复合数据结构字符串、元组、列表、字典、集合;面向对象以实际项目贯穿类的封装、继承和多态特性;第三方库涵盖数据分析常用库NumPy、pandas、matplotlib,爬虫常用库urllib。
  二、 课中导学
  赫尔巴特把教学分为“明了”“联想”“系统”“方法”四个阶段。“明了”是给学生清楚地讲解新知识,“联想”是把新旧知识联系起来,“系统”是在新旧知识的基础上进行总结形成自己的知识体系,“方法”是对所学知识进行应用。python是一門实践性很强的课程,学生能够灵活应用所学进行独立编码才能说明真正掌握了知识点。为达到这一目标,我们灵活运用语言、直观感知和练习法等教学方法。
  (一)明了
  “明了”是学生掌握新知识的初级阶段,我们在教学过程中主要使用语言教学法和演示法。
  语言教学中最常用的是讲授法,这也是传统课堂的一种主要授课方式,它能在较短时间内有计划、有目的地传授学生较多的知识。但是讲授法会让学生感觉枯燥乏味,我们在课堂上穿插应用问答法和讨论法,从python知识点中提取多个小问题和讨论专题,以此引导学生获取、巩固以及检查知识,也能让学生保持较长时间的注意力和兴趣。
  演示法是编程语言类课程的直观感知教学方法,能让学生通过感性材料,加深对学习对象的理解认识,引起他们的学习兴趣和进一步思考。我们使用演示法一方面可以演示重点难点程序的编写和运行结果,另一方面也会展示丰富的材料吸引学生的兴趣和注意力。比如,在python基础教学中,面向对象部分一直是比较难的一个知识点,我们通过演示使用python语言面向对象知识编写的“飞机大战”游戏(如下页图2所示)作为课程的导入,能够提高学生的学习兴趣,吸引他们认真学习并实现相关功能。通过该小游戏代码的学习和实现,学生能够理解类的定义,属性和方法的定义,以及类的高级特性。   “明了”阶段不止是教师的“传道授业”过程,更多的是需要教师进行知识任务引领,启发学生积极思考,提出问题让教师“解惑”。达到这一目标的前提就是要学生深刻理解知识点,提出自己的问题。
  (二)联想、系统
  “联想”“系统”两阶段学生需要能够构建自己的知识体系,学生的个体差异在这两个阶段体现的最为明显,教师要根据学生特点因材施教。
  高职的生源主要有高中毕业生和中职毕业生,对于这两类学生我们的课堂教学组织有所区别。高中生源没有编程基础,侧重编程知识的基础学习,我们在教学过程中重视重点难点知识的讲解;中职生源通常都有C语言的基础,而C语言和python在风格、语法以及语句上都有较大差异,学生有时由于先入为主的因素,经常采用C语言的编程习惯和思路,这需要我们在基础教學之上进行对比教学,引导学生通过观察、思考充分理解语言的异同点,达到灵活应用的目的。python教学过程中重点关注的和其他语言的差异点如表1所示。
  构建主义学习理论认为学习是学生主动构建知识的过程,教师应该从学生已有经验出发引导学生进行知识构建,我们在“联想”和“系统”两阶段的教学目标正是要让学生主动构建自己的知识体系。通过完善的课程知识体系,加上授课过程中适当的对比教学,学生对知识点掌握更加透彻,这样学生在学习新知识时才能进行知识迁移,举一反三。
  (三)方法
  高职院校在教学中重视理实一体化,即理论教学和实践教学融合,2019年国务院发布的职教20条也提出职业院校实践性教学课时原则上占总课时的一半以上。体现在具体的课程中,使得“方法”阶段尤为重要。对于编程语言类课程,“方法”阶段主要是让学生应用所学知识进行指定需求的实现,在教学过程中我们主要使用练习法教学。练习法是教师指导学生进行具体需求实现、巩固所学知识的过程。练习法按使用阶段可以分为单元知识点的专项练习和综合知识的项目练习。
  单元知识学习期间对于每个知识点如各种语句、数据结构、处理机制,学生都应该能够在理论学习后,在开发环境中根据给定的需求进行编程实现。单元专项练习重在让学生个体独立完成任务掌握知识点,以点带面,深入掌握每个知识点才能让学生形成python语言的整个知识体系。
  在单元课程结束后安排一个单独的综合实训环节,旨在让学生通过实现企业真实的项目案例来综合运用知识以及熟悉项目开发流程,这一环节目前安排有48学时。综合实训中通常采用项目化教学方法[6],传统的项目化教学主要思路:一是对学生进行分组,每个分组中按照企业项目进行角色分工,比如项目经理、系统工程师、开发人员、测试人员等。二是明确项目任务后各个分组进行计划制定、需求分析、需求设计、软件实现、验证测试。这种项目化教学一定程度上避免了传统课堂上教师照本宣科地讲理论现象,让学生真正动手实践起来,并让学生对软件开发流程有了一定的理解。但是结合企业实际的软件产品开发流程和对现有项目化教学方式的分析,我们觉得还存在如下几个问题:一是以学生为中心,不是意味着教师角色的缺失,教师在整个教学过程中都应该起着主导作用。二是学生不能只满足于项目功能的实现,要学会举一反三,教师应注重知识的扩展引导。三是项目的完成并不表示产品周期的终止,在项目过程中始终要让学生树立质量意识,并注重软件产品的可维护性和可扩展性。鉴于以上问题,我们在项目化教学阶段引入产品开发流程IPD(Integrated Product Development),在流程中的每个阶段都有教师参与。IPD流程的各个阶段中学生和教师的活动如下页图3所示。
  IPD流程以产品的整个开发和生命周期作为管理对象,分为概念阶段、计划阶段、开发阶段、验证阶段、产品发布阶段以及生命周期管理阶段。在概念阶段、教师兼有客户和项目管理人员身份,提出需求并进行需求澄清。在传统的项目化教学中,笔者发现因为学生的个体差异较大,在小组分工完成任务时,有些学生贡献较小进步较小。因此,在需求阶段我们要求学生在分组的同时明确组内人员分工和具体任务,争取让所有学生在整个项目过程中都有收获和进步。项目组人员角色设置有开发人员、测试人员、软件设计人员(负责产品软件架构设计)、项目经理(负责组内计划和需求把控,可兼任)、客户代表(负责产品需求澄清和产品发布验收,可兼任);在计划阶段,教师提出整个项目进度目标和业务目标,各组学生根据总体目标制定组内的计划和目标,主要的计划节点包括产品开发完成时间点、产品测试完成时间点、产品发布时间点,主要的目标点包括产品业务功能达标率、产品缺陷达标率、产品可维护性和可扩展性指标,教师对各组的计划和业务目标进行总体把控;在开发阶段,各组学生进行概要设计、详细设计以及编码工作,为了对开发的成果进行及时的验证,在该阶段采用敏捷迭代开发模式,开发人员每完成一个完整的功能点,就交由测试人员进行验证,在验证阶段发现的问题及时反馈到开发人员进行修正,验证阶段和开发阶段相辅相成;在发布阶段,每组的客户代表根据项目初始时制定的业务目标进行产品验收,教师对产品验收结果进行把控,同时组织各组进行作品评比;在生命周期管理阶段,教师把选出的优秀作品进行归档,在后续的教学中作为学习资源之一提供给学生,如果在该阶段发现代码问题或者软件扩展性问题,组织学生进行修改后归档。
  相比传统的项目化教学,基于产品开发周期的IPD流程引入主要有以下几方面改进:首先,教师在整个项目过程中起进度、质量的监控作用,引导学生树立质量意识并进行知识的扩展,在产品验收发布后进行优秀作品归档,这些作品能够供后续学生学习观摩;其次,在开发阶段引入敏捷迭代开发模式,把验证阶段的问题和软件可维护性可扩展性问题作为输入,不断改进软件产品的质量。
  综合实训教材在编制时以企业项目案例为主线,结合改进的项目化教学方式,学生的专业知识掌握得更加牢固,质量意识明显增强,同时也具备了企业良好的职业能力[7-8]。   三、課后助学
  课后是课堂的延续,为确保学生充分掌握知识,我们把课件、课后拓展材料、课堂练习答案发布到课程网站,并要求学生进行学习、撰写总结报告。教师通过即时聊天工具实时解答学生的问题,针对学生的具体问题进行个性化辅导,提高学生的学习效率。目前主要使用职教云平台进行资源的发布、作业的提交以及问题的讨论,使用QQ和微信进行即时交流。整体的三段式教学模式如下页图4所示。
  四、效果分析
  本课题以三组学生为调查样本,分别取2016级、2017级、2018级的软件专业各三个班级的学生,每一组学生人数都在120~130人之间,其中2016级学生采用传统的教学模式,2017级和2018级学生采用本文的教学模式,通过对比这三组学生的课堂参与情况、评教情况、课程考核通过率情况可以看出,本文所述的教学模式取得了一定的教学效果。
  第一是该教学模式调动了学生的积极性,学生在各个教学阶段的参与度明显提高。该门课程从2017年开始使用职教云平台进行考勤和课堂的线上互动,通过后台数据可以观察到学生在课堂中的投票、讨论、提问、测验等环节中参与积极性都比较高。
  第二是该教学模式改进了教学效果。从学生评教平均分数看,2016级、2017级、2018级分别为85分、88分、93分,评教分数稳步提高;从课程调查反馈看,很多学生认为课程内容设置丰富,课程实践性强;该门课程学生的最终考核通过率也有所提升,2016级为90%,2017级为92%,2018级为95%。
  第三是课程线上资源越来越丰富。目前,已经有线上PPT、视频、网页资源超过150个,题库超过200题。另外,通过实践环节中不断吸纳优秀软件作品,软件库中已有超过30套优秀作品。这些资源库可以供学生在任意时间进行学习。
  根据国家对职业教育的要求以及高职学生的特点,我们对高职院校的python课程教学模式进行了探索,提出了这种“三段一训”式的教学模式,相比传统的教学模式,在教学内容设计和教学方法上进行了一系列的改进,在实际运行中取得了一定的效果,也调动了学生的学习积极性。当然,任何一种教学模式都不是万能的,需要教师根据学生情况灵活调整。
  参考文献:
  [1]嵩天,黄天羽,礼欣.python语言:程序设计课程教学改革的理想选择[J].中国大学教学,2016(2): 42-47.
  [2]王进,陈建平.反思性教学在Java程序设计实验教学中的应用研究[J].实验技术与管理,2011(6):188-189,195.
  [3]张哲,陈桂生.在java语言教学中实施“项目驱动”教学法的实践探索[J].教育与职业,2007(18):160-161.
  [4]刘宏,宋久科.Java语言程序设计教学改革探析[J].教育与职业,2013(9):134-135.
  [5]孙峻.基于“问卷星”的在线考试在高职教学中的应用[J].湖北广播电视大学学报,2017(37):36-39.
  [6]冯小军,赵鹏飞.课程项目化教学设计的原则与方法[J].中国职业技术教育,2016(5):33-36.
  [7]胡春芳.关于高职项目化教学改革的探析[J].职教论坛,2012(5): 32-33.
  [8]蔡虹.项目化教学实施过程中学生综合能力的培养[J].教育理论与实践(学科版),2016(9):45-46.
  (责任编辑:张宇平)
  Abstract:Python is one of the mainstream programming languages at present. How to teach effectively after introducing Python into higher vocational classes requires teachers to explore it constantly. Starting from the teaching practice, this paper puts forward a systematic Python language teaching mode of "three stages and one training". With students as the center, the teaching path of self-study before class, guidance in class and assistant after class can be formed.The training of practical operation ability and professional quality can be attached importance to, and IPD process management in training can be adopted. Practice shows that the model has achieved good results.
  Key words: python; program development; teaching mode; IPD process
其他文献
在全面施行素质教育之际,研究性学习因改变了传统单一的学习方式.积极引导学生自主参与、善于质疑、勤于动手、乐于探究,注重培养学生的创新精神与能力而成为当前教育界关注的一
在多年的教学实践中,我特别注重运用激趣法导入新课。应用这种方法导入新课,不仅能够大大激发学生学习化学的兴趣,诱发学生的求知欲,而且可以更好地发展学生的思维能力和培养他们
通过对江苏省农户随机抽样诃查数据分析,研究无公害与普通农产品生产中农户生产行为的差异,并分析了农户生产行为的影响因素。研究表明,除农家肥使用量显著增加外,无公害农产品生
将PCR方法扩增出的犊牛腹泻大肠杆菌Ler、eaeA、irp2和办拟基因片段产物进行胶回收,连接到pMD18.TVector上转化13H5a感受态细胞后送TaKaRa公司测序。结果表明犊牛腹泻大肠杆菌L
论述了南京经济技术开发区景观改造的构思,确定围绕开发区主轴线进行改造,重点体现在1个主入口、2条主干道、3个节点、4条区内道路上;从而显山露水,开辟景观主轴线,体现滨江
摘要:韩国的职业教育和培训培养了高质量的劳动力,因此也成就了韩国的高速经济增长。然而,20世纪80年代末席卷全球的经济衰退使韩国经济增速显著降低。与此同时,韩国经济面临严重的就业结构性失衡(青年失业和中小企业劳动力短缺),对职业教育和培训的改革势在必行。职业教育和培训制度需要进行持续性改革以适应不断变化的环境及终身学习型社会的需求。职业教育和培训旨在促进个体获得企业所需的知识、技能和态度。韩国的职
时事因其强烈的时代气息,深深吸引着学生的注意力。充分开发时事资源.能极大的调动学生的学习兴趣,形成强烈的求知欲望,提高思想政治课的教学效果。
草鸡(又称土鸡)以其肉质细嫩、肉味鲜美、汤汁醇厚、营养丰富等一些独特的性状,已越来越受消费者推崇和青睐,国内外市场需求量日益增加,因此国内的一些育种公司就把许多地方鸡种加
浙中城市群处在工业化的成熟期向工业化后期过渡阶段。在这个过渡阶段,要整合资源,促进浙中城市群整体协调发展。城市群的产业整合是提升城市群整体竞争能力的重要问题,现阶段的
作为南京地区五大农业主导产业之一的蔬菜产业,2002—2006年,南京市编制完成一系列蔬菜类地方标准,建立一批蔬菜标准化示范区,蔬菜品牌建设不断推进。但土地细碎化严重,经营分散,蔬