基于TPACK模型的程序设计实验课程混合式教学改革

2019-10-28 11:41郭艳燕
实验技术与管理 2019年10期
关键词:程序设计编程题目

郭艳燕

基于TPACK模型的程序设计实验课程混合式教学改革

郭艳燕

(烟台大学 计算机与控制工程学院,山东 烟台 264005)

针对传统程序设计实验课程存在的问题,对程序设计实验课程进行混合式教学改革,基于TPACK模型将程序设计学科知识、信息技术、多样化的教学方法和教学理论有效整合到实验教学的实践中,以ARCS动机模型和BLOOM认知规律为理论指导,对在线教学资源、实验题目、实验阶段、实验评价体系进行科学设计,充分调动学生学习积极性,促使实验效果的提升和实验目标的有效达成,使实验教学更加符合“互联网+教育”的学习环境。

实验教学;TPACK模型;混合式教学;程序设计;翻转课堂;ARCS模型

随着信息技术的快速发展,层次教育需求不断增强,“互联网+教育”的学习环境应运而生。“互联网+教育”环境下,教师要具备适应信息时代的教学能力,强调技术知识、学科教学知识、教学法知识3者的深度融合,即整合技术的学科教学知识(technological pedagogical and content knowledge,TPACK)[1]。基于TPACK来开展教学改革,给高校教师提出了更高的挑战,也给教学模式带来了创新的可能。程序设计课程是强调操作性和实践性的应用型课程,包括理论课堂教学和上机实验教学2部分。实验课程作为理论知识加以实践的重要过程,在程序设计实践教学体系中占据重要地位。科学合理的实验教学设计,不仅有利于学生对理论知识的理解、消化、吸收与应用,而且有利于培养学生的计算思维能力、综合应用能力、创新意识和团队协作精神[2]。

苏小红教授作为ACM CS2013中国工作组成员之一,参与了实践教学体系中“程序设计基础”核心课程实践教学体系的设计和编写,制定出程序设计基础课程的实践教学实施方案,提出实践教学内容设计的3大原则,强调实践过程中知识点的循序渐进和深入、知识点的实际运用和综合应用、自主学习能力的引导和强化[3]。本文以苏小红教授提出的实施方案作为实验教学的指导性纲领,基于TPACK开展程序设计实验课程的混合式教学改革。通过信息技术和网络技术建立具有多样性、灵活性、开放式特点的在线教学辅助资源,并搭建可以帮助学生自主学习和自我检测的实验教学平台;以布鲁姆认知规律为依据设计具有阶段性、层次化特点的实验内容,实验题目的选取以符合ARCS(attention、relevance、conffidence、satisfaction,注意、关联、信心、满意)教学设计模型为标准;将先进科学的教学方法和教学理论引入到实验课堂上,借助网络教学平台和实验平台开展多样化的翻转课堂参与式活动,实现在有限的实验课堂时间内最大限度地提升学生的程序设计能力;通过构建数据驱动的过程化、多元化、精准化的实验过程监管体系和考核评价体系,对学生的学习态度、计算思维能力、程序设计能力、自主学习能力和创新能力进行全方位的综合评价。

1 传统程序设计实验教学存在的不足

(1)实验课时不足,课后缺乏相应的教师指导。程序设计强调实践性,学生通过“做中学,学中练,练中提高”才能实现理论知识到实践能力的转换,大量的上机实验是提高编程能力的重要途径,但学生仅靠有限的实验课堂学时无法完成所有实验内容,而课后又得不到教师的及时指导,从而影响学生的编程积极性。

(2)实验课程定位不准确,未引起学生的充分重视。传统实验课程通常作为理论教学的辅助手段,处于次要地位,实验课往往是教师指定实验题目,学生处于一种完成作业的心态来进行实验,缺乏教师的深度参与,无法引起学生对实验课程的重视,也没有充分发挥实验课的作用[4]。

(3)实验课堂教学形式单一,主要关注答疑解惑,缺少对共性问题的及时总结。实验课上教师大部分时间帮助学生进行程序查错、调试工作,更多地关注语法层面的问题,而较少关注解题思路的分析、算法设计等有关计算思维层面的提升。此外,很多学生在相同实验中存在的错误问题是相似的,一方面教师的解答是重复工作,另一方面学生认为此类问题仅仅是自己出现的问题而无法引起足够的重视。

(4)实验课程缺乏对学生调试能力、测试意识和编程规范的培养,导致学生在复杂的程序逻辑错误和运行错误面前手足无措,从而减弱了学生编程的兴趣。另外,学生测试意识淡薄,当编写的程序通过编译并能正常运行时就认为大功告成,却忽略了该程序是否能够应对所有的异常情况及覆盖所有的测试用例[5]。

(5)实验教学反馈不够及时、准确,教师无法及时了解学生知识的掌握情况和应用实践的能力,无法为后续教学提供准确的指导依据[6]。

(6)实验阶段、实验题目、实验类型和实验难度设置不合理,不符合学生的认知规律,不能有效地发挥出实验课程引发学生思考的积极作用。实验教学环节也缺少个性化教学服务,难以满足不同水平学生的学习需求。

(7)没有充分强调实验前的准备工作,导致实验预习流于形式,教师对学生的预习情况无法掌握,实验进度难以统一,实验质量参差不齐,无法达到预期的实验效果。

(8)评价考核方法单一,只关注实验结果而忽视实验过程,无法对学生多方面能力和学习态度做出科学合理的评价。

2 基于TPACK模型的程序设计实验课程的混合式教学设计

混合式教学作为“互联网+”时代教育信息化的产物,发挥传统教学和信息化教学的优势,采用“线上”和“线下”2种途径开展教学,强调学生学习过程的主体性,突出教师教学过程的指导性和启发性。程序设计实验课程的混合式教学设计结合了课程特点,依据学习和教学规律,给予学生及时、准确的实验教学支持,努力提升学生的学习深度。TPACK模型给出了专业教师应具备的知识结构框架,虽然没有明确给出教学设计的流程和方法,但为教学过程中实施学科知识、信息技术以及教学法的整合提供了新的指导方法[7]。本文提出的基于TPACK模型的混合式教学框架如图1所示,完成了在线教学资源、实验题目、实验阶段和实验评价体系的教学设计。

2.1 在线教学资源的设计

通过网络教学平台和实验平台的搭建,可以让学生充分利用在线资源进行知识的学习、巩固、检测和延伸,开展好实验课前的准备工作,实现实验课后 的能力扩展工作,克服传统实验课程教学课时不足的问题。在线教学资源主要包括实验教学微视频、学前任务指南、交互测试系统和编程练习系统、交流讨论答疑区、实验作品展示区、实验编程环境和工具。

2.1.1 实验教学微视频

每一章节实验课程对应的微视频包括课前微视频和课后微视频,视频类型为讲解视频或演示视频。讲解视频包括实验涉及的理论知识、实验内容及要求、实验中常见错误及原因分析;演示视频包括软件开发工具的使用、调试方法的演示、实验案例全过程示范。学生通过课前微视频做好实验课堂的预备工作,而后有的放矢地参与实验,充分提高实验课堂效率和质量;学生通过课后微视频来扩展课外知识,获取支持性和扩展性资源,拓展课外实验,实现因材施教。

图1 基于TPACK模型的程序设计实验课程的混合式教学框架

实验教学微视频设计过程中应注意的问题:

(1)实验微视频的选取要具有典型性,讲解具有示范化,利于举一反三,便于在此基础上实现改进和扩展,达到创新效果。

(2)实验微视频的制作角度和类型多样化,包括理论知识介绍、解题思路分析、算法设计与实现、程序调试、纠错和测试,满足多种实验教学目标的达成和学生多方面能力的培养。

(4)把握好实验微视频的难度,避免视频内容难度过高而给学生造成的挫败感,避免视频内容太过简单和重复,降低学生学习的兴趣和积极性[8]。微视频内容的选取和讲解方式都要符合ARCS教学设计模型。

(5)单个实验微视频要保持相对独立性,多个实验微视频间建立一定的线性关联性,一系列实验微视频构成结构完整的层次化学习单元。

(6)实验环境和工具的多样性,需要提供多种编程工具和调试工具的演示视频。

(7)课后微视频是对难度大的扩展实验进行启发,不能过于详细,点到为止,否则不利于学生的自主思考。

2.1.2 学前任务指南

用来为学生的课前自主学习进行指导,给出学习目标和要求,让学生能够把握重点并带着问题进行学习,提高学习效率。

2.1.3 交互测试系统和编程练习系统

贯穿于整个实验过程,不仅可以用于实验前的学习任务完成情况检测,而且可用于实验后的加强练习和巩固提升。交互测试系统以客观选择题为主、程序阅读题为辅,自动完成出题和批阅工作。编程练习系统以主观编程题为主,程序填空题和程序改错题为辅,通过在线评测系统Online Judge进行自动化的评测,不仅可以反馈测试用例通过率,培养学生的测试意识,而且可以反馈算法的执行效率和空间使用情况,培养学生的算法优化能力。交互测试系统和编程练习系统不仅是学生学习效果检测进行自主反思的主要工具,而且是教师获取教学反馈的重要途径。

需要指出的是,工程认证教育不是精英教育,应在适当拉开梯度的同时避免难度过大。做好各考核的记录和分析,针对每个同学进行考试分析和达成度计算,确保考核的结果能科学评价学生的知识掌握情况,为改进教学质量提供依据[5-6]。

2.1.4 实验交流讨论答疑区

用于线上师生间、生生间的交流互动,实现对实验的分析讨论,完成编程经验、错误处理等方面的交流。

2.1.5 实验作品展示区

实验作品和报告的交流展示,用于实现学生的自我评价和互评,引发学习反思。优秀实验作品评选,还有利于增强学生的学习自信和满足感,从而激发学习动机。

2.1.6 实验编程环境和工具

为了满足信息化发展趋势,提供个性化学习服务,网络教学平台提供多种实验编程环境和工具,学生可以根据自身需要进行选择。

2.2 实验题目的设计

2.2.1 实验题目应具备的特点

实验题目的选取要符合ARCS教学设计模型,具有趣味性、综合性、阶梯性、实用性的特点。趣味性体现在学习兴趣的激发;综合性体现在知识之间的关联应用;阶梯性体现在题目难度的阶梯化,学生可以根据自身能力和学习进度加以选择,满足个性化需求,增强自信心;实用性体现在学以致用,结合实际应用促进对程序设计实际价值的认知,收获满足感。

2.2.2 实验题目难度阶梯化

根据布鲁姆认知规律,任何学习都遵循记忆、理解、模仿、熟练、应用、综合、创新这样循序渐进的过程。记忆和理解是前提,模仿和熟练是基础,应用和综合是目标,创新是升华[9],实验教学也要符合这一认知规律。按照基础、提高、综合、创新4个层次来设置每一章节实验题目的难度阶梯,每一难度阶梯对应多个实验题目,形成实验题目备选集。

2.2.3 实验题型、类型多样化,培养目标全面性

通过多样化的实验题型和实验类型来加强程序设计各方面的训练,有利于从不同角度、不同方面提升程序设计能力,实现多目标培养,对应苏小红教授的实践指导方案3原则。

实验题型包括程序阅读题、程序填空题、改错题、编程题、程序优化题、程序扩展题。程序阅读题,阅读程序写出运行结果,培养学生读程序的能力;程序填空题,根据程序已有的逻辑结构补充代码,培养学生的逻辑思维能力和计算思维能力;改错题,根据错误提示和调试结果修改代码,培养学生的调试和纠错能力;编程题,根据题目要求实现问题求解,培养学生的分析解决问题的能力和综合应用能力;程序优化题,对现有程序效率和空间进行提高和优化,培养学生算法优化能力和比较分析能力;程序扩展题,在现有实验题目的基础上进行自主创新或功能扩展,培养学生的创新能力。

实验类型包括验证型实验、设计型实验、综合型实验、自主创新型实验。通过验证型实验,可以加深学生对程序语法的记忆和理解,培养学生的实际操作、数据处理、观察等技能[10]。通过设计型实验,可以促进学生对理论知识的熟练应用,培养学生的实际应用能力。综合型实验是设计型实验的高级形式,体现在知识点覆盖广度和能力训练深度上具有综合性,培养学生的综合应用能力。通过自主创新型实验,开展以项目为导向的研究性学习、推荐学习,以学科竞赛和科学研究为驱动,培养学生的创新能力和自主学习能力。

2.3 实验阶段的设计

按照实验教学过程,将实验阶段分为实验课前、实验课堂、实验课后3个阶段。实验课前,以验证型实验为主,学生通过标准程序了解程序执行流程、验证运行结果;实验课堂,以设计型实验和综合型实验为主,讨论选定实验的解题思路,进行算法设计并分析设计方案的可行性。实验课后,以自主创新实验为主,进行课堂实验的功能扩展或自主设计实验。通过这3个阶段相得益彰的有效结合,使学生对实验有一个总体的把握,形成完整、深入的学习体验。

2.3.1 实验课前阶段的教学设计

教师针对每一堂实验课,课前在网络教学平台上发布实验任务,给出实验要求和目标,上传实验教学视频和辅助学习资源,发布实验前学习指南,并公布实验题目集,让学生了解实验题目和难度,进行对应的题目选择。每个实验题目按照基础、提高、综合和创新4个梯度标注难度,学生从每种梯度题目集中选择自己感兴趣的题目。基础、提高、综合梯度实验题目为必选项,每种梯度题目至少选一题,创新梯度实验题目为附加自选项。通过这种具有一定的深度和广度的实验题目选择机制,让学生有选择和发挥的空间,有利于达成学生学习的信心和满意度,并有助于实现过程性学习评价。

学生需要将实验视频、课前测试和验证性实验过程中存在问题通过网络教学平台进行反馈,为教师开展实验课堂教学活动提供依据。

2.3.2 实验课堂的教学设计

将翻转课堂教学模式引入到实验课堂,根据课前学情反馈,设计各类参与式活动,调动学生实验热情,发挥学生学习的主体地位。实验课堂上的参与式活动方式主要有解答式、讨论式、总结式、演示式、交流式、启发式、探究式。解答式活动体现在教师根据课前收集的学情反馈,以及实验课堂随时遇到的问题进行个体或集体解答。讨论式活动体现在师生间讨论实验题目的解题思路、探讨设计方法的可行性,或进行小组讨论,培养团队合作能力。总结式活动关注归纳总结实验过程中的常见问题及对应解决方案。演示式活动关注现场演示实验步骤,包括从实验题目分析、算法设计、编程、测试、调试、错误分析和纠错全过程,整个实验参与过程会让学生印象深刻。交流式活动关注学生实验成果展示、实验体验和收获。启发式活动关注实验算法的优化和实验性能的提高,引发学生积极参与思考。探究式活动关注如何从探究解决实际复杂问题的角度提升学生的创新能力和解决综合复杂应用的能力。实验课堂上的参与式活动,可以充分借助网络教学平台或各种信息技术来开展。

在实验课堂上,教师需要不断观察、发现实验过程中存在的共性问题,及时提醒、引导,引发学生的关注,提升实验质量。

2.3.3 实验课后的教学设计

学生通过实验课后阶段来完成对所学知识的固化和延伸。知识固化体现在学生一方面通过实验总结、撰写实验报告来加深知识的理解和掌握,另一方面通过交互测试系统和编程练习系统强化编程来提高实践应用能力。知识延伸体现在学生一方面通过在线教学资源来学习课外扩展知识,另一方面通过综合型实验和自主创新型实验来实现扩展知识的实际应用。

实验课后教师需要获取实验效果反馈,分析不同学生的学习进展,完成实验报告的批阅,做好实验评价,并通过交流讨论答疑区引导学生进行启发式学习和探究式学习,更好地实施个性化教学。

2.3.4 实验评价体系的设计

为了引导学生从关注“实验成绩”到注重“实验过程”和“实验成效”,采取目标与过程并重的价值取向,引入形成性评价和过程性评价,构建科学合理的多维度实验评价体系,实现评价主体多元化、评价指标多样化、评价过程阶段性。形成性评价和过程性评价都提倡评价和教学相互交叉与融合,注重师生互动,全面体现以学生为本,及时发现教和学中的问题[11]。教师通过教学过程的连续反馈,为调整教学方案提供参考;学生通过反思学习过程,发现适合于自己的学习策略,树立正确的学习动机。过程性评价可以通过网络教学平台上的实验作品展示区进行学生自评、互评,增强学生的自信心。形成性评价主要从课前任务的完成、课上实验过程、实验报告的质量、课下拓展实验的完成程度等方面做出发展性评价。

多维度评价体系避免了终结性评价内容片面评价方式单一的不足,从多个维度对学生的实验情况进行评价考核,评价指标包括程序设计能力、自主学习能力、学习态度、学习方式、综合应用能力、创新能力。实验题型、类型多样化和实验题目难度阶梯化为从不同方面评价学生的程序设计能力提供了依据。通过网络教学平台的学习情况统计功能,可以为多维评价提供丰富的参考指标数据[12],今后还可以结合数据挖掘和机器学习算法对学生的学习行为进行预测,为制定科学教学指导和教学策略提供数据理论依据。

3 基于TPACK模型开展混合式实验教学改革对教师的要求

(1)基于TPACK模型发展教师自身的信息化教学能力。深入分析程序设计学科知识,研究程序设计为主线的知识体系和实践体系;学习和掌握多种信息化技术,并将其应用到微视频的制作、实验辅助资源的构建、实验平台的搭建、参与式活动的开展以及实验教学效果的评价和反馈;学习先进的教学法,并应用到实验教学实施中,例如学习动机理论、BOPPPS教学模型、协作式学习等。

(2)不断进行教学研究、教学实践和教学反思,并扩大教学交流,积极参加课程研讨会和教学技能培训班,开阔视野,吸取相关实验课程成功实施的经验,听取同行提出的改进建议,处理好实验教学与理论教学互相支撑互为补充的关系,不断改进和完善实验教学设计,逐步拓展实验课程实践成果应用的广度和深度[13]。

(3)教师利用信息技术有效促进“如何教”的同时,也要关注“如何促进学”。混合式教学使得学生的认知方式发生改变,需要教师引导学生利用各类信息技术和工具来改善学习途径和学习方法,例如手机移动端学习工具、Raptor算法建模工具、思维导图思维展示和认知工具等。

4 结语

程序设计实验教学是程序设计教学研究的重要环节[14],为了提高实验教学质量,充分利用在线教学和课堂教学的优势互补,通过网络教学资源和在线实验平台的合理开发和利用,构建“以多方面能力培养为导向,以学习成效为驱动,以个性化教学服务为目标”的混合式实验教学模式,实现信息技术与学科的深度融合[15]。改革后的实验教学将部分实验从课堂迁移到课前或课后,拓展了实验教学的时间和空间,通过线上线下不同学习方式的融合,加强了师生间的交流互动,形成课前、课堂、课后3阶段紧密结合互为补充的实验教学过程。通过实验题目的科学设置和灵活多样的选择机制,结合多种参与式教学策略,采取阶段性多角度的评价体系,充分调动了学生实验的积极性,满足个性化学习需求的同时,学生的编程能力、计算思维能力、创新能力、自主学习能力都得到了很大的提高。

[1] 白鑫刚.教师TPACK教学实践能力培养模式构建与路径选择[J].黑龙江高教研究,2017(10): 108–112.

[2] 黄云,洪佳明,覃遵跃,等.基于云平台的“程序设计基础”课程实验教学改革[J].实验室研究与探索,2016, 35(2): 191–195, 223.

[3] 苏小红,赵玲玲,邱景,等. CS2013指导下的程序设计课程实践教学实施方案设计与翻转实验教学实践[J].中国大学教学,2016(5): 55–60, 69.

[4] 姜丽,卫春芳,陈志雄.基于MOOC的三位一体高校实验教学模式的研究[J].实验技术与管理,2017, 34(4): 182–184, 188.

[5] 卢瑾,张健,陈晋音. C语言程序设计阶段式分层实验教学研究[J].计算机教育,2014(14): 74–76.

[6] 何文广,周珂,熊刚强.程序设计课程实验教学改革与实践[J].实验室研究与探索,2016, 35(6): 163–165, 169.

[7] 池水莲,石娟.基于TPACK框架的大学物理实验教学设计与应用[J].现代教育技术,2012, 2(8): 33–35, 125.

[8] 谢琪,崔梦天,周绪川. C++程序设计实验教学微课的设计与实现[J].西南民族大学学报(自然科学版),2016, 42(3): 311–317.

[9] 熊启军,谷琼,屈俊峰,等.基于微视频的C语言程序设计实验教学改革[J].实验技术与管理,2018, 35(5): 13–16.

[10] 刘光蓉. C程序设计实验教学的理实一体化教学模式[J].实验室研究与探索,2013, 32(10): 350–352.

[11] 姚争为,滕国栋.高校程序设计类课程过程性评价的研究与实践[J].计算机教育,2015(24): 86–88.

[12] 余颖,李晓昀.程序设计类课程多维评价方法探索[J].计算机教育,2016(9): 147–148, 156.

[13] 王冠军,周勇,江海峰,等.基于翻转课堂与MOOC的嵌入式软件工程实践教学研究[J].实验技术与管理,2016, 33(4): 176–178, 185.

[14] 钟红梅,叶邦林. MOOC与翻转课堂的体育实验教学模式改进研究[J].实验室研究与探索,2018, 37(4): 234–237.

[15] 孙兆东,葛日波. C语言程序设计交互式微课程资源开发应用[J].实验技术与管理,2017, 34(12): 206–209.

Mixed teaching reform of programming experimental course based on TPACK model

GUO Yanyan

(School of Computer and Control Engineering, Yantai University, Yantai 264005, China)

In view ofthe problems existing in the traditional experimental course of Programming Design, the mixed teaching reform of such course is carried out. Based on the TPACK model, the program design knowledge, information technology, diversified teaching methods and teaching theories are effectively integrated into the practice of experimental teaching. Guided by the ARCS motivation model and BLOOM cognitive law, the online teaching resources, experimental subjects, experimental stages and experimental evaluation system are scientifically designed, the students’ enthusiasm is fully mobilized, the improvement of experimental results is promoted and the experimental goals are effectively achieved, and the experimental teaching has become more consistent with the learning environment for “Internet + education”.

experimental teaching; TPACK model; mixed teaching; programming; flipped classroom; ARCS model

10.16791/j.cnki.sjg.2019.10.058

G642.0

A

1002-4956(2019)10-0238-05

2019-02-11

教育部高等教育司产学合作协同育人项目(201602018013);山东省本科高校教学改革研究项目(Z2016M082,C2016M045);山东省教育科学“十三五”规划项目(YC2017015);烟台大学教学研究与改革项目(jyxm2017057)

郭艳燕(1980—),女,山东烟台,硕士,讲师,研究方向为软件工程、人工智能。E-mail: smallgyy@sina.com

猜你喜欢
程序设计编程题目
学会思考,尊重每一道题目
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
唐朝“高考”的诗歌题目
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
本期练习类题目参考答案及提示
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索