技能大赛导向下的PBL教学法在中职程序设计课程中的应用

2022-02-06 19:11刘奇超
产业与科技论坛 2022年9期
关键词:程序设计编程联网

□冯 皓 刘奇超

自2014年举行首届全国职业院校技能大赛中职组“物联网技术应用与维护”赛项以来,越来越多的中职学校开始重视此赛项,不仅积极备赛参赛,而且开展了很多赛项资源转化、以赛促教的研究工作;在2019年,“物联网技术应用专业”正式获批成为中职增补专业之一,很多中职学校都在第一时间申报设立此专业。中职学校之所以热衷于参与物联网竞赛,是因为赛项中“万物相联”的新技术和新装备,可以扩展学生的职业技能,也可以提升传统课程体系的内涵;学生在参与物联网工程项目实训的过程中,同步掌握物联网程序设计技能,可以更加深入地理解物联网软硬件的运行原理,也可以更广泛地适应其它工作要求。本文尝试引入PBL教学法,利用在中职物联网技能竞赛项目的培训经验,在“C#动态网页制作”课程中,对程序设计课程的教学过程和教学内容进行改进,让学生在分析问题和解决问题的过程中更好地掌握程序设计技能。

一、程序设计课程现状

程序设计课程是计算机相关专业的核心课程,讲授程序设计的语法、算法和项目开发等专业技术,但是在中职实际的教学效果很不理想,主要存在以下三个方面的问题:一是程序设计使用的语言脱离实际应用,很多学校仍在使用C、VB语言开展面向过程的编程,开发效率低,难度大,程序与学生的生活体验、相关课程体系以及企业的人才需求严重脱节;二是教师的程序设计技能不高,项目开发经验不足,只能照本宣科,死记硬背,导致教学内容枯燥,无法引起学生的学习兴趣,也不能因材施教,无法满足学生多样化的学习要求;三是使用的教材学术水平过高,知识体系庞杂,算法过于抽象,很多教材甚至直接照搬大专、本科的教材,超出了中职学生的理解能力和操作水平,不能有效地培养中职学生的编程思维。这些因素导致了程序设计课程总体质量不高,教师不愿教,学生不愿学,教学流于形式。

二、中职物联网赛项程序设计题型的特点

中职“物联网技术应用与维护”赛项中程序设计题目考察的范围包括C#、JAVA和单片机编程三个方面,这些是当前很多企业开发项目必备的技术,功能强大,应用领域广,很多最新、最流行也最复杂的程序都是使用它们编写完成的,是中职计算机相关专业学生应当掌握的关键技术。

当然比赛题目充分照顾了中职学生的知识基础和技能水平,主要以“填空”的形式考查学生应知应会的初级知识,而不会考察复杂项目和算法的编写。其主要特点是:学生要理解程序的功能要求和处理流程,合理设计美观的程序界面,补充必要的基础逻辑语句,正确调用类资源,完成具有实用价值的应用程序。所以在日常训练中,将比赛真题与教学内容相结合,选定有限的知识点,设计与工作和生活高度仿真的教学案例,可以帮助学生更好地掌握编程技能,适应面向对象的编程形式,养成良好的习惯,并在积累经验和培养兴趣的过程中适应更高难度的编程任务。这是竞赛培训中编程训练成功的关键,也是改进常规教学的重要依据;在训练过程中积累了丰富的实训素材,很多都可以在合理优化之后,用于课堂教学。

三、PBL教学法及教学设计

在中职程序设计课程中,PBL教学法(Problem-Based Learning,问题驱动教学法)是教师根据教学目标,整合并简化常见的应用案例,引导学生在解决问题的过程中理解语法、锻炼编程思维、掌握编程技能的教学方法。学习活动与问题相结合,有利于引导和维持学习兴趣[1],规范学生的编程习惯,确保代码规范,结构清晰、易读[2]。案例要经过必要的简化,去掉学生难以理解或无法实现的功能,适应学生的知识基础。问题情境不仅取材于物联网大赛的项目和设备,还借鉴了常见的软件案例、经典的数学公式、基本的生活经验和典型的工作技巧等,方便学生建立自然语言和编程语言的联系。这些问题情境的编程算法要能够突出重难点,只面向于最简单逻辑问题的解决,这也是模块化编程理念的体现——一个模块只用来处理一个最简单的问题。

问题驱动教学法与传统的任务驱动教学法或项目驱动教学法相比最大优势在于:问题情境的逻辑结构简单,重难点突出,学生可以更快地编写程序并进行验证,教学反馈更加及时,便于学生在不断地试错过程中提高自己;程序的模块化设计理念,可以将相关算法封装成模块,用于处理相应的问题,模块积累的越多,越有助于处理复杂的任务和项目。将程序设计的教材与物联网竞赛项目的问题情景结合,利用PBL教学法,可以设计如下教学流程。

(一)教师创设简单的问题情景,引入知识点。问题情景应与学生的知识基础和实际体验相关,如网络购物情景中的金额计算、在线论坛的控件使用、通项公式的计算规律等;简单的问题情境应当减少无关因素的影响,突出重难点在解决实际问题中的用法;教师要注意引导学生逐步掌握自然语言与程序语言相互转换的方法,例如通过奇偶数判断问题学习模运算。

(二)教师创设多个难度逐步提升、综合性逐步加强的问题情景,引导学生不断探究和试错,分析逻辑关系,理解程序语法,发现编程规律,锻炼编程思维,逐渐掌握规范、灵活、高效的编程方法。针对中职学生学习能力普遍较弱的问题,应当加强同一知识点在不同情境下灵活应用的训练,让学生自主发现规律,学会自主选择各种测试数据测试程序的对错,提高编程的准确性;通过综合利用已知知识点设立问题情景,让学生发现差别,灵活应对各类问题要求;要避免大量知识填鸭式的教学,无规律或无实际应用情景的教学只会打击学生的积极性,造成厌学情绪;问题情景要注重变通性和综合性,例如在问题“14岁以下和60岁以上的人可以免票”中,“和”字看起来像与运算,但实际编程要使用或运算,这是自然语言与机器语言在逻辑表述上存在差别的典型例子。

(三)教师提供充足的时间给学生练习。程序的编写不能一蹴而就,更不能死记硬背,要充分调动学生的积极性与自主性,让学生在相互合作的过程中激发灵感、深入思考、举一反三,在轻松的编程活动中牢固掌握必备的编程算法,使不同学习能力的学生都能在此教学环节中得到提高,达到课堂所学知识在本节课就能消化掌握的目的[3]。期间教师要跟踪学生的学习进度和差异,因材施教:对学习较好的学生,可以引导他们自学相关知识,扩展视野,并完成教师布置的个性化题目,例如学会整型变量以后可以自学浮点型变量在尝试计算打折问题;对学习比较困难的学生,则通过互助学习和个别辅导,掌握最基本的知识技能,确保全班的教学质量,教师还要鼓励这样的学生根据自身兴趣在课下额外努力突破自我,掌握更多知识。教师可以简化一些复杂的经典算法,让学生在研究、困扰、顿悟之后,领略算法优化的魅力,例如问题“找出3个数中的最大值”,学生要跳出if语句选择嵌套使用的思维惯性,理解简化的“冒泡”算法。

(四)利用问题的关联性和趣味性引导学生在自我挑战中积极提升。学生要能够根据知识或问题的逻辑关系自主探究掌握新知识或解决新问题,自我管理学习过程。如教师先指导学生编写完成“栅栏加密法”,再鼓励学生编写其解密算法,学生须要综合运用已知的所有知识,精准提炼数组下标的组合规律,充分调动计算、推理、编程等多方面的技能,付出大量努力之后才能获得成功的喜悦;同时教师要针对每个学生的算法,暴露其程序的bug,培养学生逻辑思维的严密性和条理性。

(五)教学的容量应根据中职的授课计划和中职学生的能力水平适当压缩。学生应会的知识点包括:整型、布尔型、字符串型变量,加减乘除模运算,与或非运算,if语句,for语句,一维数组,函数和类。学生只有掌握了这些知识点及其算法,才算具备比较扎实的基础,能够适应其它更多的编程语言。

(六)引入物联网项目中成熟的软硬件技术,改进传统编程课的内容。物联网实训平台中大量的软硬件资源可以非常方便的调用或使用,获取环境信息,并控制设备运行,更加可视化地呈现程序设计效果。如使用条码枪扫描商品条码查询商品信息,程序功能与超市购物经验相结合,学生不仅全面学习了控件的相关属性和条码枪的技术原理,还会更加深刻地理解物联网技术的特点,在参加竞赛培训的时候能够做到驾轻就熟。

四、结语

本项目选择“C#动态网页制作”作为物联网竞赛编程训练模式向常规课堂转化的抓手,是基于本校计算机网络专业课程体系的特点确定的,可以与静态网页、数据库、服务器等课程构建比较完整的课程体系,通过实际的教学验证,取得了较好的效果,丰富了实训资源,提高了学生和任课教师的综合技能。教学效果的提升,又反向支持了竞赛选手选拔和培训工作,真正实现教学和竞赛的共同提高。

猜你喜欢
程序设计编程联网
“身联网”等五则
《物联网技术》简介
《物联网技术》简介
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
从细节入手,谈PLC程序设计技巧
抢占物联网