APP下载

计算思维培养为核心的编译原理实验教学实践

2018-02-24孙守卿鞠传香刘晓红

电脑知识与技术 2018年34期
关键词:计算思维

孙守卿 鞠传香 刘晓红

摘要:计算思维是当前教育界广为关注的一个重要概念。该文结合编译原理实验课程中的实验内容,以培养学生的计算思维为核心,从实验内容、实验过程及考核方式三方面,对编译原理的实验课程实施改革,从而提高学生运用形式化方法抽象问题、描述问题、解决复杂问题的能力。

关键词:计算思维;计算参与;形式化描述;关注点分离;

中图分类号:G642        文献标识码:A        文章编号:1009-3044(2018)34-0090-01

1计算思维概述

计算思维是通过抽象、约减、递归、转换和仿真等方法,把一个复杂问题转换为可解问题的思维方法。计算思维是使用计算原理解决问题的一系列心智技能的集合,是逻辑思维、数学思维、创新思维、工程思维等多种思维的组和应用。

周以真教授2006年第一次明确描述了计算思维,认为计算思维是一种使用计算机科学 的基础概念解决问题、设计系统和理解人类行为等涵盖计算机科学的一系列思维活动。[2]

2011年美国国际教育技术协会和计算机科学教师协会( ISTE&CSTA) 联合推出的计算思维操作性定义中规定计算思维包含:提出问题、组织和分析问题、表征数据、自动化解决方案、分析和实施解决方案、迁移六个要素。九项核心概念和能力:数据收集、数据分析、数据表征、问题分解、抽象、算法和程序、自动化、模拟、并行化。[1]

2 编译原理实验教学目标

编译原理课程是大学计算机相关专业的重要课程,编译原理实验教学的目标是希望学生掌握程序设计语言编译程序构造的一般原理、基本设计方法和实现技术。目前编译原理实验课的内容主要有词法分析设计,语法分析设计、中间代码生成及优化这几部分。实验内容主要为验证性实验,学生只是单纯编程实现特定语言如PL0语言的词法分析和语法分析等算法的验证。

以培養计算思维为核心的编译实验课程,主要训练学生从计算原理、思想和方法的角度完成对自然语言、程序设计语言的词法、语法完成形式化描述,训练学生的抽象能力;通过对正规式的构造、算法的实现、递归下降子程序的验证实验帮助学生理解递归的思想,训练学生的算法思维和程序思维。通过对小型编译器的构造,培养学生的系统思维、工程思维及合作思维同时提高学生解决复杂工程问题的能力。

2.1 计算思维培养在编译原理实验教学中的实践

(1)以编译程序的构造为整体目标,采用“自上而下”逐层细化的方式,设计实验内容。编译原理实验内容及计算思维培养逻辑框架如下图1所示:

(2)按照由浅入深、循序渐进的原则组织实验。从学生的认知角度出发,遵循螺旋式地扩展加深实验内容,直至复杂系统。实验类别既包含验证型实验又包含设计型综合实验和研究型实验,做到既能使学生在实验的过程中巩固了理论知识又能提高抽象问题的能力、算法分析的能力、程序设计的能力。真正做到创新思维的培养和实验内容有机结合、融会贯通。

2.2 编译原理实验教学组织过程

(1)实验教学方法以任务驱动为主,有效利用网络教学平台。

首先,借助网络教学平台,教师将实验的所有资料以及实验任务提前发布到网络教学平台。学生可以从网络教学平台上下载学习和实验课程相关的资料,完成课前的自主学习。这样在实验课程开始之前,学生对实验项目内容以及所使用的软件工具已经有了基本的了解。对实验所需的环境,需抽象的语言集合,如TEST语言的词法规则和语法规则有了初步的认识。

将实验教学从以基本知识学习为主转变为以问题求解和创新思维为主,使学生能够主动探究实验任务的解决方案。学生在自主完成实验任务的过程中,可以将问题发布到网络教学平台的论坛中,进行讨论。也可以给教师留言,教师可以及时为学生解决问题提供线索,增加了学生之间、师生之间的讨论和交流。通过讨论和交流,学生可以对实验问题的解决方案有更多的认识,可以在实验的过程中不断更新、递进完善自己的解决方案,与此同时,学生的创造力、算法思维以及批判性思维都得到了培养和训练。

(2)采用SDUTOJ在线测试平台为支撑。

将实验题目发布到SDUTOJ系统中,借助该平台,可以打破实验教学的时空限制,学生可以随时随地进行实验代码的提交、调试、线上自动评测等。教师可以随时掌握学生实验提交的具体情况,并根据提交数据,对实验进行重点讲解。同时,利用SDUTOJ系统进行随机代码查重,有效防止学生之间的代码复制现象。

(3)线下答辩。对于课程最后设计一个小型的编译器的综合性实验,采用线下小组答辩的方式。主要检查学生对编译系统各部分具体实现的过程、算法及据结构的应用情况、算法的创新性等。

3实施效果

通过实施该教学方法,学生在完成编译原理实验任务的同时,既加深了学生对编译原理概念知识的理解,又锻炼了编程能力,同时,培养训练了学生对复杂系统进行抽象、约减的思维能力、解决复杂工程问题的能力。

参考文献:

[1]刘敏娜,张倩苇.国外计算思维教育研究进展[J].开放教育研究, 2018,24(1):41-53.

[2]Wing, J.M.Computational thinking[J]. Communications of the ACM,2006,49(3):33-35.

[3]Wing, J.M. Computational thinking and thinking about computing[J]. Philosophical Transactions of the Royal Society, 2008,366(1881):3717-3725.

【通联编辑:王力】

猜你喜欢

计算思维
高中信息技术课堂中计算思维能力培养问题的探讨
公安专业学生计算思维能力培养对策初探
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究