网站首页  词典首页

请输入您要查询的论文:

 

标题 高职院校python语言教学模式探索
范文

    余久方

    

    

    

    摘要: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]。

随便看

 

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

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/17 10:49:00