高职计算机编程类课程的融合型教学模式探索与实践*
2021-06-18温晓军
顾 明,温晓军
(深圳职业技术学院 人工智能学院,广东 深圳 518055)
1 高职院校计算机编程类课程教学模式的现状、问题及分析
高职计算机编程类课程,在高职计算机专业中,是计算机知识结构体系中一个重要的组成部分.该类课程不仅是学习其他计算机课程的基础,也是培养学生计算机编程思维方式的载体.但目前在高职院校的计算机教学中,对计算机编程类课程的教学模式,缺乏结合计算机编程和高职学生特点的深入研究和探讨,也缺乏将信息技术、课程和学生特点等多种因素融合考虑的实用高效的教学模式.
1.1 计算机编程类课程教学模式的现状
以下是几种比较典型的计算机编程类课程教学模式的现状[1].
1.1.1 PPT加编程代码演示的讲授型教学模式
这种教学模式以教师讲授为主,在多媒体教室利用多媒体的视频功能,通过PPT讲授基本概念,用编程软件演示程序源代码,借助大屏幕展现给班级学生.教师边讲边操作,操作的过程及结果可以通过屏幕及时呈现在学生面前,学生从中获得感性认识和学习编程的基本思路.这种教学模式存在的问题是还停留在演示教学的模式上,是以教师为中心,学生处于被动地位,不能充分发挥学生的主动性.它实质上还是一种以讲授为主,操作演示为辅的教学模式,只不过是其演示过程由大屏幕呈现,便于学生观察而己.
1.1.2 讲练结合的机房上机教学模式
这种教学模式在计算机机房进行,采用教师讲、学生在计算机前操作的边讲边实践的形式.学生能直接动手参与,对计算机编程的概念有实际的动手练习.但这种模式要求班容量有一定的限制.另外,由于学生对教师讲授内容领会理解情况不同,操作速度存在明显的差异,所以无法统一协调学生的步调,很难实现分层次教学,经常会出现有的学生早已完成练习内容,而有的学生还有很多练习内容没有完成的现象.
1.1.3 C/S架构和多媒体教学软件相结合的教学模式
搭建C/S(客户机/服务器)架构软件,在多媒体机房由内网连接一台教师机和几十台学生机,教师机通过多媒体教学软件可以对学生机进行控制.在教学中,教师在讲授的同时通过网络把教学内容传送到学生计算机上,学生则通过屏幕进行观察学习.教师在讲解时一般会通过全屏广播封锁学生机的任何操作,只是让学生在自己机器屏幕上,观看教师机的操作情况.教师讲授完后,解锁学生机,让学生自己动手操作,教师可以通过网络在教师机上监测学生机屏幕,以了解学生的操作情况及对教学内容的掌握情况,在学生有问题时,可通过网络或课堂举手方式给予指导.这种模式的教学实际上并没有摆脱教师讲授为主的教学模式,也没有让学生充分发挥主观能动性,达到分层次教学的目的.而且这种教学模式对计算机的硬件和软件投入资金要求较高,对很多职业院校形成较大的财政压力.
1.2 计算机编程类课程教学模式现状存在的问题
以上几种典型的教学模式各有利弊,但它们存在的共同问题主要表现在:把学生掌握知识的基础建立在教师的单向授课上,按统一步调进行;未注意到学生的个别差异,未能激发学生个体学习的动力和兴趣,没有留给学生足够的时间和空间去独立思考;缺乏学习主观能动性的挖掘,缺乏师生广泛的合作交流,缺乏对学生学习能力的培养;缺乏对学生创新意识和创新能力的培养[2-3].
1.3 计算机编程类课程教学模式的问题分析
1)加强职业性需求:凡进入高职院校的学生,无论自觉还是不自觉,他们的学习活动,总是为达到谋取企业的职业这一目的.编程类课程学习后,直接面对的职业岗位是程序员,相关的职业岗位是网站前后端开发人员、软件运维和软件测试人员等.计算机编程类课程的教学模式,要结合企业对编程类人才的岗位需求,在教会学生编程知识的前提下,要以编程能力培养为主,并形成编程岗位必备的职业素质,使教学模式与人才职业岗位需求零脱节.
2)强化实践性项目:为了使学生既有一定的文化基础知识和专业理论基础知识,又有适应社会经济建设需要的专业技能,在教学模式涉及的教学活动中,就必须加强实践性的教学环节,其中技能训练的实践性是不可忽视的.在计算机编程类课程的教学模式中,这种实践性体现在一种抽象性和逻辑性的算法智力活动上面,要为学生搭建良好的编程实践平台,用编程实践平台承载编程实践项目.例如:“爱课程资源共享课”或“SPOC平台”等.在编程实践平台上不断用编程项目驱动学生进行编程实践,帮助学生提高编程水平.
3)激发探究式学习习惯:在编程类课程的学习过程中,学习能力要素的培养至关重要,这种学习能力要素包括学习动力、自学能力、创新意识和编程思维等.学习能力要素是学生走上工作岗位后自我不断适应和提高的保障.因此,在编程课程的教学模式中,应该是通过有意义的实际编程项目问题情境,让学生在问题情境中不断地发现问题和解决问题,以此来自主探究与编程项目问题有关的知识点,形成解决问题的技能和自主学习的能力.通过对编程项目问题的探究式学习,逐渐养成自主探究和获取知识的学习习惯.
4)顺应与时俱进的时代要求:首先要考虑企业需要对编程人才知识结构的不断变化,再次,还要涉及受教育的学生对象基础和素质的变化,最后,还要考虑到编程类课程本身内在知识的变化.随着计算机技术的快速不断发展,编程类课程涉及的知识体系也是与时俱进的,这些都要求编程类课程教学模式的不断改变、不断适应和不断发展完善.
5)融合多种教学方法的优势:目前针对计算机编程类课程的教学方法有很多[4-6],例如:项目式牵引、任务驱动、翻转课堂、分层次教学、线上线下混合式互动等.每种教学方法都有其优势,以线上教学为例,其优势有:学习载体的多样化、个性化的学习时空和形式多样的师生互动等.根据计算机编程类课程不同知识点的特点,选择不同教学方法的有效融合和动态裁剪,不断探索和实践计算机编程类课程教学模式的改革和创新.
1.4 计算机编程类课程的特点和难点
计算机编程类课程的特点是对抽象能力和实践能力的要求比较高,该类课程以算法和实现算法的代码为主,而且代码具有严格的语法规则.算法和代码都相对比较枯燥,同时又要求学生具有良好的逻辑分析能力.作为受体的高职学生,普遍具有抽象和逻辑分析能力方面相对较弱、自学能力不高、自控能力和耐力不强的特点.
结合高职计算机编程类课程的特点和高职学生的特性,这给编程类课程的教学模式带来了难点和挑战.根据高职教育的培养目标和高职学生的特点,针对具有一定抽象性和逻辑结构的计算机编程类课程,要采用合适的课堂方式来合理组织编程类课程的知识点,融合各种现有教学方法的优势,激发和牵引学生的兴趣,形成高职学生容易接受的教学模式,同时把学习的主动权交到学生手中,让计算机编程类课程的教学模式焕发出创新的活力.这正是激励我们探索和实践新的教学模式的动力.
2 融合型的教学模式
该教学模式的理论依据是建构主义学习理论[7],建构主义的学习观认为:学习是学生自己建构知识的过程.学生不是简单被动地接受信息,而是主动地建构知识的意义.学习是学习者根据自己的经验背景,对外部信息进行主动地选择、加工和处理.建构主义的教学观认为:教学不能简单地强硬地从外部对学习者实施知识的“填灌”,而是应该把学习者原有的知识经验作为新知识的生长点,引导学习者从原有的知识经验中,主动建构新的知识经验.
依据建构主义的学习观和教学观,计算机编程类课程的融合型教学模式追求的目标是:针对计算机编程的知识体系,促使学生在计算机编程类课程的学习过程中,依据已有的知识作为生长点,向着探究式、主动式、创新式和自我提升的目标迈进.
该教学模式的融合性体现在:现有多种教学方法针对计算机编程类课程的有效融合和合理裁剪、计算机编程类课程教学新旧内容的相互融合、计算机编程类课程学生个体和集体学习积极性的促进融合等.
以下从该模式的构建依据、实施流程和实施要点三个方面来说明其具体内涵.
2.1 融合型教学模式的构建依据
2.1.1 线上和线下的融合
随着“互联网+”的广泛应用,特别是移动互联网技术的普及,使得信息技术与教育教学有了更深入的融合.线上线下的融合主要借助于互联网技术,需要教师在互联网教学平台上进行课程建设[6],因此教学平台的选择和平台上课程的建设是开展线上教学的基础.线上主要是引导讲授,线下是学生自学和师生互动.对计算机编程类课程,线上和线下的教学过程表现为编程算法和思路的模仿、改进和提高三个迭代的阶段上,随着编程知识体系的展开,线上和线下采用的教学方法也会有所区别.其中,模仿主要在线上完成,主要采用项目牵引和部分翻转课堂的教学方法.改进和提高主要在线下完成,主要采用分层次的教学方法.线上和线下不同教学方法的融合,完成编程知识点的教学任务.
2.1.2 宏观和微观设计的融合
宏观设计首先是教学模式的实施流程设计,其次是课中的教学过程设计,再次就是互动环节的设计,包括课堂和课后信息的互动.微观设计主要是体现在线上课堂教学中,包括组织和展开课程的知识体系结构.其次,微观设计还包括线上课堂时间的安排,包括学生自主学习时间、教师讲授时间、学生课堂联系时间等的占比等.再次,微观设计包括线上课堂老师讲授内容的细节设计.宏观设计是框架,微观设计是框架下的细节,可以对现有的教学方法,进行不同的需求裁剪,以适应宏观和微观设计的需求.这也是多种教学方法的融合性体现.例如,可以用项目模块分解法进行宏观设计,部分翻转课堂进行微观设计.
2.1.3 项目化牵引和翻转课堂的融合
项目化牵引是一种以学生为主体参与实践项目的教学方式,但却受限于课堂时间.翻转课堂也是一种实现学生为主体的教学方式,可以拓宽教学的线下时间.二者相互融合,以翻转课堂的方式实现项目化牵引,利用线下时间学习项目所需基本技能,利用线上时间主动完成项目本身的实践,师生共同解决项目问题,从而获得更深层次的理解和思考,将学生从被动学习转变为探究式的主动学习.通过翻转课堂和项目化牵引相融合的方式,可以拓展课堂的宽度和深度,也进一步提高学生学习的积极性.将二者的优势融合在一起,实现教师角色和学生角色的翻转,激发学生在项目化学习中的独立探究习惯.
2.1.4 技能大赛和创新的融合
技能大赛的竞赛内容在一定程度上反映了企业对岗位的要求,要尽量做到企业就业要求与教学内容相吻合,缩短学生岗位适应的时间.在技能大赛的引领下,可以将某些竞赛内容转化为计算机编程类课程的创新改革内容,形成技能大赛与教学内容不断更新的相互融合,形成二者相互促进的结果.这种融合有利于指导教学方向、改革教学内容和教学模式,同时也有利于学生的知识和技能的提高以及职业能力的提升.
2.1.5 班级整体和个体的融合
梳理计算机编程课程的知识点,把教学大纲的任务作为整体需求,在线上要完成班级整体对教学大纲内容的掌握.在线下对自学能力和编程能力强的学生个体,要分层次培养,特别是通过线下互动的方式,选拔尖子生,进行技能大赛和创新的重点培养.通过技能大赛的获奖,为学生个体带来荣誉感和自豪感,同时也激发和带动班级整体的竞争意识和学习热情,形成学生个体和班级整体相互促进良性融合的结果,加快班级整体和学生个体的齐驱并进.
2.2 融合型教学模式的实施流程
2.2.1 课前准备流程
线上网络教学的课前准备流程比传统的面授课程要精细化很多,融合型教学模式的课前准备流程如下图1所示.
图1 课前准备的融合型教学模式流程图
创建线上线下班级群:可以建立一个或多个班级群.因为QQ群上发送大课件传输速度快,这也是建立QQ班群的主要目的.微信使用比较普遍,微信班群主要用于教学答疑.
线上线下课程问卷调查:建议使用问卷星网站,教师可以根据教学需求情况设计调查表,通过形成的链接发到班群,学生线上填好后,在问卷星网站可以查看调查统计和分析结果,以便教师在线上授课前,了解学生的学习基础和网络课程资源配置情况等.
学生线上线下课程指引:首先,班级群中上传计算机编程软件环境的安装程序,说明安装方法、步骤和配置等.这个流程在机房上课是不需要学生自己安装配置的,只需要使用即可.但是线上网络课程需要学生自己安装和配置,由于学生家中计算机不同,安装和配置计算机编程软件环境,对师生都增加了互动机会.其次,线上考勤软件在机房使用和家中使用的方法也不同,如果校外使用需要VPN登陆,要给学生提供校外VPN的安装和使用方法.再次,选择具体编程课程所需要的教学平台,例如,Java的“爱课程资源共享课”教学平台.在学生线下课程指引中,也需要提供该教学平台的注册和使用方法.
线上模拟教学课堂:为了线上测试网络课堂的实际教学效果,在课前组织班级群中的学生,进行线上模拟网络课堂测试,测试包括老师讲课时的声音流畅度测试、PPT和其他课件播放清晰和卡顿测试、师生互动排队等候时间测试、师生头像显示测试、互动声音测试、截图测试等.
线上课程模拟意见反馈:根据任课教师自己的体验和课程的特点,再结合班级群,收集学生对线上模拟网络课堂的测试反馈结果.使用问卷星网站是一个较好的线上意见收集方法.
线上线下课程教学指南:包括网络教学实施方式、资源地址、教师协作团队、网络教学过程等,主要是为上同一门课的老师提供交流.在编程类课程教学中,我们以文档形式进行交流和管理.
线上课程教案:体现与线下课程不同的教学过程设计、网络教学实施方式、合理分配使用网络资源等,同一门课程的不同老师要建立自己独特的线上课程教案.在编程类课程教学中,我们也是以文档形式进行教案管理.
2.2.2 课中教学设计流程
网络课堂的教学,以线上考勤开始,采用校外登陆学院考勤系统签到的方式,如果学生签到发生任何网络的链接故障,一定要在当天(课中或课后)说明,说明的方式是通过班级群给任课老师发信息,考勤结果按照一定的比例算入总评成绩.
在课中教学设计中,很重要的是项目化牵引和翻转课堂的相互融合,我们对“翻转课堂”进行了改进.根据计算机编程类课程和高职学生的特点,采用的是部分翻转课堂模式,即学生自学前,先有教师根据知识点提出和分析问题,进行项目中的编程模块分析后,学生在教学平台进行自主学习,自主学习的答疑解惑在线上课堂互动中体现.学生的自主学习是指学生观看教师的视频讲解并进行自我编程实训,教师不再占用课堂时间来讲授很具体的知识点,线上课堂变成了师生之间互动的场所,包括答疑解惑、合作探究、完成作业等.如下图2所示.
图2 课中教学设计的融合型教学模式流程图
在计算机编程类课程中,根据知识点的难度和高职学生的自控力和学习主动性相对弱的特点,让学生课前和课后完全自主学习,可能会有很大比例的学生课前、后无所事事的情况.我们采用部分翻转课堂的模式,即:在线上课中的前部分,先由老师提出和分析问题,再用项目牵引的方式,对典型模块进行编程代码分析后,再让学生看教师的视频讲解等课程资源进行自主学习,最后在交作业的牵动下,在线上课堂中激发学生互动答疑的热情.
2.2.3 课后教学互动流程
课后的教学互动是在线下班级群中进行,主要体现了线上课堂和线下自学的融合,以及整体和个体的融合.自学能力强和报名参加了计算机编程大赛的同学,线下的互动较多,师生互动内容是围绕教学内容的提升和创新、以及大赛涉及的拓展问题展开的.其中拓展问题是课中教学的知识点没有涉及到,但在学生课后自学中遇到的问题.例如:课中知识介绍了递归的基本算法,但学生的拓展问题是汉诺塔和迷宫的复杂递归算法.这部分学生会根据自主学习后的思考,提出对已有编程算法的改进、提升和新算法的探究.教师在线下容易实现分层次辅导,拓展了班级整体和学生个体的学习深度和广度,达到知识点分层次的教学目标.以下图3是课后教学互动流程.
图3 课后教学互动的融合型教学模式流程图
2.3 融合型教学模式的实施要点
2.3.1 项目选择个性化
在课中教学设计中,提供不同类型和等级的项目,让学生充分发挥自主学习后的主观能动性,消化了项目中典型模块的知识点后,独立选择不同的项目提交作业,从而满足学生个体化的需求.
2.3.2 项目设计兴趣化
兴趣化遵循了学生本体意识,有助于发挥学生在学习过程中的能动性和主体作用,对学生的意识、情感、本能等会产生积极的作用.借鉴游戏能吸引学生兴趣的经验,我们选择能引起学生兴趣的项目,如:彩票项目,几何图形项目等.
2.3.3 翻转课堂层次化
受到班级整体高职学生特点和班内学生个体化的特性的影响,翻转课堂的实施不能完全交给学生自主学习,教师要根据整体和个体的不同需求,充分利用线上和线下的融合性,进行分层次的部分翻转课堂,以此满足不同个体或整体的层次化需求.
2.3.4 编程大赛创新递进化
“互联网+”编程类的各种大赛是对高校创新创业教育工作的引领、促进和检验,大赛也激发了学生的自我意识和荣誉感,对编程类课程提出了更高的需求.而创新创业教育则是大赛的基础、组成和保障.在计算机编程类教学模式中,用编程大赛题目涉及的知识点内容作为拓展的课外资源,鼓励尖子学生积极参与,促使编程大赛和创新相互促进、共同发展,形成递进的态势.
2.3.5 流程管理文档化
教学模式各个阶段的管理要形成文档,文档作为检验一个阶段的流程是否完成的里程碑之一,文档也是保障课程教学团队建设的重要依据.提供计算机编程类课程教学模式流程管理的统一文档类型和文档模板,是流程管理文档化的要求.
3 融合型教学模式的实践应用
我们把融合型教学模式应用于计算机编程Java线上网络课程中,对Java课程的知识点进行了梳理和分解,整个网络课程由多个项目组成,每个项目又可以分解成多个模块,每个模块针对某些知识点,整个课程的知识点都贯穿在多个项目中.
对于Java课程,课前准备流程只是执行一次,但是课中教学设计和课后教学互动流程,对于Java课程的不同模块,具有不同的执行内容,流程要多次执行,这两个流程随着项目和知识点的不同要循环执行.
以下表1是该教学模式在Java编程课程中的课前准备实践应用情况.
表1 融合型教学模式在Java编程课程中的实践应用—课前准备
表2和表3均以Java课程的继承模块为例,说明该教学模式在 Java编程课程中的课中教学设计和课后教学互动的实践应用情况.
表2 融合型教学模式在Java编程课程中的实践应用—课中教学设计
表3 融合型教学模式在Java编程课程中的实践应用—课后教学互动
4 融合型教学模式的教学效果分析与对比
4.1 学生期末考试成绩的分析对比
表4的分析对比数据,均来源于实际的高职计算机编程类现有教学模式Java语言18级二个班和融合型教学模式Java语言19级二个班.总成绩均由考勤成绩、平时作业成绩、课堂课后互动成绩、期末考试成绩等多个部分组成.由于闭卷和半闭卷(只允许带指定的课堂使用教材)考试不适应Java线上网络课程,因此Java语言19级二个班的线上网络课程,期末考试采用的是Java项目化的作品评价的考核方式,即:学生在指定的时间内完成一个项目化的综合作品,提交到指定的教学平台中.
表4 现有教学模式和融合型教学模式的考试成绩分段比较
由表4可以看出,采用了融合型教学模式后,得高分的学生比例提高了.
4.2 学生评教和教师评学情况的分析对比
表5的分析对比数据,均来源于高职计算机编程类课程,使用现有教学模式Java语言、C语言和 Python语言多个班、使用融合型教学模式Java编程课程二个班.采样来自学校网站的学生评教、教师评学和问卷星数据的收集和整理.
表5 现有教学模式和融合型教学模式的学生评教和教师评学情况比较
由表5可以看出,采用了融合型教学模式后,学生评教中的“学习热情和学习动力满意度”和“编程自学能力提高满意度”得到比较显著的提高.教师评学中的“课中和课后师生互动率”和“课后作业算法改进和创新度”得到比较显著的提高.
4.3 学习编程能力要素的分析对比
图4的数据来自高职计算机编程类融合型教学模式Java语言19级二个班、现有教学模式Java语言18级二个班.分析比较的结果证明,对Java高职计算机编程课程,采用了融合型教学模式后,提高了学生的学习动力,较大程度地加强了学生的自学能力,唤醒和激发了学生的创新意识,有效培养了编程思维能力.融合型教学模式的教学效果,使学生的学习编程能力得到明显的提升.
图4 现有教学模式和融合型教学模式的学习能力要素比较
5 结 论
本文提出的融合型教学模式,为高职计算机编程类课程的教学模式创新提供了研究和探索,并在疫情期间的 Java课程教学中收到了良好的教学效果.目前该教学模式正在本专业的其它计算机编程课程中实践应用,该教学模式的核心思想也将向本学院计算机其他课程中进行推广辐射.我们的进一步研究包括扩大该教学模式的应用范围,同时收集该教学模式的教学效果研究样本,不断优化该教学模式的实施流程,促进该教学模式的教学效果持续稳定地提高.