基于混合思维能力培养的程序语言课程设计教学改革

2022-08-18 06:46卢瑾顾国民江颉李曲雷艳静徐卫浙江工业大学计算机科学与技术学院
中国信息技术教育 2022年16期
关键词:课程设计实验教学实验

卢瑾 顾国民 江颉 李曲 雷艳静 徐卫 浙江工业大学计算机科学与技术学院

实验教学作为程序设计课程学习的重要环节,在提高学生动手实践能力和自主学习能力、实现知识和技能的“内化”等方面具有理论教学不可替代的作用,是学生能顺利进行后续专业课程学习的重要基础和前提。然而,传统的课程设计内容陈旧,偏离工程实际,实验教学课程体系较为单一,与学科发展前沿有所脱节,无法激发学习兴趣。基于OBE教学理念,笔者分别从计算思维、工程思维和创新思维培养切入,对程序语言课程设计教学进行了改革与实践。通过改革实践教学方法建立学生的计算思维,培养学生分析问题、抽象问题模型及解决问题的能力;引入程序设计自主实验教学模式,便于学生将理论课程中碎片化的知识点构建成相对完善的知识体系,以激发学生的创新意识,培养学生的工程应用和实践创新的能力。

● 课程设计目标及存在的问题

程序语言课程设计作为一门实践类型的专业基础课程,其教学的基本目标是让学生充分理解程序设计思维,能够将程序设计相关课程的理论知识进行综合运用,从而实现综合型软件开发能力培养。

课程设计以程序语言课程知识点为基础,通过对实际问题进行需求分析、方案设计、代码实现及最后的功能测试,完成软件开发的全过程。整体过程需要综合运用程序设计语言,另外涵盖算法等相关知识与技术,提升培养需求分析、系统设计等软件工程理念。实际教学过程中存在以下问题:

①缺乏计算思维,分析解决问题能力不足。实验要求针对问题建立模型、设计算法及有效地求解编码,完成一个应用性、综合性强的程序,而学生分析能力不够,逻辑思维欠缺,往往表现出无从下手及难以抽象问题解决模型的情况。

②缺少工程思维和工程思想。学生几乎不从工程角度看待问题。

③缺少创新思维。传统实验基本限定在一定的框架之下,缺少综合类实践项目,学生没有机会使用新工具和新手段,创新性思维得不到锻炼,没有提出新方法和新观点的机会。

● 问题解决思路

1.实验内容层次化

实验教学课程设计将软件工程过程贯穿于实验,以加强创新能力、工程实践能力培养为核心,坚持教学与科研相结合。实验内容引入专业相关的工程实际问题或者当前社会的热门课题,通过任务驱动实现分组合作学习,引导鼓励学生通过各种渠道调查研究,对目前现有的算法进行实现,鼓励改进和创新,通过交流、讨论和实践来共同完成任务。强化思维培养,设计思维培养途径,突出思维与实践活动的结合。

为了使不同层次的学生都能得到教师的关注,在教学实践中得到有效的指导,并确保每个层次的学生都能参与,发挥各自的特长,获得较好的学习体验,真正实现学生的整体进步和全面发展,需要将实验选题和要求进行层次化设计,将选题分为综合设计类和探索设计类。其中,综合类与课程内容结合更为紧密,探索类与科研内容相关联。实验要求分为基本任务与扩展任务两个部分,基本任务阶段具有普适性,针对大部分学生,扩展任务具有提升性,为的是满足学生的差异化、个性化需求。右表为课程设计内容分层设计的示例,其中以人体动作识别程序为例,实验内容拓展到图像处理和机器学习等目前研究的热门方向,任务要求分为基本功能、进阶功能和提升功能,以兼顾各个层次的学生。

2.实验过程泛在化

传统的程序语言课程设计实验一般集中一周的时间在实验室完成实验设计,最后进行实验演示和提交实验总结报告。这种教学模式受开发周期和开发场地的约束,实验内容设计得也相对简单、单一,缺乏跨学科的交叉融合,无法激发学生学习兴趣和实验热情。另外,实验安排缺乏灵活性,实验周期短,也导致学生没有充分时间接触并探索新领域。

课程设计实验内容示例

计算机类专业实践环节硬件资源依赖性不高,笔者提出将实验周期从一周拆分到八周,每周固定一个时间段进行线下信息集中交流,平时借助线上平台随时沟通反馈,拓展实验教学的时间和空间,实现泛在化教学。通过任务驱动的形式,以解决复杂工程问题的能力培养为导向,从顶层统一规划、优化设计、循序渐进、划分阶段(如图1)。需求分析阶段收集相关技术现状知识及进行待解决问题分析,在需求明确的情况下实现复杂问题任务分解,实现团队分工协作,开发阶段设计算法,确定流程及编码实现,提出方法的创新,同时并行测试工作,最后撰写报告。将任务分配到各个阶段,使项目贯穿于整个课程设计的学习周期。

图1 任务驱动式实验流程

● 基于混合思维的实践教学改革

1.实验教学模型

如下页图2所示,以混合思维为培养目标的课程设计主要通过不同任务环节展开。基本任务包括实验基本功能和进阶功能的实现,完成基本功能的方法是通过引入计算思维培养课程和改革教学方法来培养学生分析问题、解决问题和抽象模型的能力;进阶功能通过专业认识培训展开,结合翻转课堂讨论培养学生工程思维和工程实践能力;创新思维的培养以扩展任务实现提升功能展开。三种思维的培养围绕整个实验环节展开,贯穿整个实验体系。

图2 设计的实验教学模型

2.计算思维培养

计算思维的根本目的是问题求解、系统设计以及人类行为理解。实验引入应用程序开发要求,结合经典算法,针对问题求解通过建立模型、设计算法及有效地求解编码,完成一个应用性、综合性强的程序,将问题求解提升到计算思维训练的高度,是典型的计算思维课程。在基本任务实现过程中,学生通过分析问题,提出方案,解决问题,再修改方案,经历了从无到有、从局部到整体、从粗糙到完善的设计过程,整体需求的分析训练了系统思维能力,设计到具体代码的实现锻炼了逻辑思维能力和计算思维能力,方案的讨论也提升了团队协作及沟通的能力。

如图3所示,教师发布设计并发布课程设计内容,集中介绍课题要求,学生课外自主搜集相关课题资料,根据自身特点与能力,自行组队选题;待确认实验题目后,教师以集中授课的形式开展课程设计流程介绍和课题思路讲解,学生自行开展学术调研,再自主开展实践,并初步完成实践内容。实验室主要进行实践内化工作,教师在需求分析和详细设计阶段分别通过听取学生汇报及检查的形式了解学生实践情况,针对出现的问题进行重点讲解及交流讨论;学生根据教师指导优化实践结果,最后提交实践材料。学生在实验平台、开发语言以及算法选择上有足够的自主权,在自主设计环节中教师提供的模型只是基准,学生可以在此基础上提出异议,自主分析问题、解决问题的能力得到充分锻炼。

图3 自主学习式教学方法

3.工程思维培养

以计算机类专业为研究对象,工程思维可以狭义理解为在特定的约束条件下开展计算机软、硬件工程项目所需要具备的思维方式。与课内验证性实验不同,程序语言课程设计实验要求通过需求分析、概要设计、详细设计、程序编码、功能测试及调试运行等步骤,促进学生运用系统观点,对对象互相联系的各个方面及其结构和功能进行系统认识,从而提升解决复杂问题的能力,同时在实验项目开展过程中将项目功能、性能、成本、可靠性等约束条件考虑在内。

4.创新思维培养

针对学有余力的学生,创新思维培养采用增设扩展任务的形式,打破以往的实验框架统一模式的限制,鼓励学生基于基本任务功能,对实现方法进行不同的思考,激发学生探索新技术的积极性,从而创造出新的思维方法,培养创新思维能力。

● 培养效果

整个实验课程设计了2个大方向、10项实验,涵盖管理类程序设计、微信小程序设计、图像处理和机器学习等技术。图4为上文表中实验内容示例人体动作识别程序设计对应的成果图,其中图(a)为人体动作识别基本任务实现效果,图(b)为人体动作识别方法应用推箱子小游戏的扩展任务效果,课程设计内容、流程以及实践教学方法的改革,极大地提高了学生的课程参与积极性,调动了学习的主观能动性,对比传统教学,学生实践能力明显提升。

图4 实验内容示例的成果图

● 小结

针对程序语言课程设计实践教学中存在的问题,本研究将计算思维、工程思维、创新思维三种混合思维培养目标嵌入到实验项目内容和实践过程中,打破传统的实验内容与模式,通过需求分析、理论讲解、自主设计及调试验证各环节结合实施,同时将内容拓展到目前研究的热门方向,激发学生学习兴趣,加强学生对已学课程知识的巩固和二次深入学习,使得学生在能力范围内实施创新思想,不断提升自身的工程化实践水平,在实践推行过程中得到学生积极的响应,且实验成果完全达到预期目标。

猜你喜欢
课程设计实验教学实验
记一次有趣的实验
恩施州创新开展中小学实验教学说课大赛
“苏州园林:景致与情思”课程设计
网络与云技术在实验教学中的应用
初中化学实验教学中“微课”教学模式的探讨
谈初中化学实验教学的初探
A Study on the Application of Task—based Approach to English Vocabulary Teaching
声波实验
关于植物的小实验
让合作探究走进实验课堂