程序设计课程教学中计算思维能力的培养
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计课程教学中计算思维能力的培养
摘要:分析当前程序设计课程教学的现状,研讨计算思维方法的内涵和优点,设计一套旨在培养学生计算思维能力的教学方案,指出该方案能有效提高学生的学习兴趣和思维的活跃度,对学生的程序设计能力的提高起到有益作用。
关键词:程序设计;教学改革;计算思维;能力培养
0 引言
随着社会信息化的日益发展,计算机能力成为所有大学生必须掌握的一项基本能力和技能。
几乎所有的高校都开设了大学计算机基础类课程,它包含计算机基础、程序设计语言、数据库基础、办公软件应用、网页设计等多门不同的课程。
本类课程的开设旨在为非计算机专业的学生学习计算机的基础知识、掌握计算机的基本技能并运用计算机工具获取知识提供一个入门的指导。
而在上述课程中,难度最大、要求最高、对学生影响最大的课程是程序设计课程。
现今,中小学日益提倡素质教育,加强了对信息技术的课程建设,初中、高中都开设了信息技术课程,原本很多应该在大学教授的计算机的基本知识和基本操作,已经前移到了中学阶段。
但是,中学阶段的信息技术课程以教授计算机的基本知识和基本操作技能为主,很少涉及程序设计的内容。
所以,大学计算机基础类的课程,应该重点加强程序设计类课程的建设。
在程序设计课程的教学中,我们不仅要教会学生使用一门程序设计语言(如c语言、c++、C#、VB等),更重要的是提高学生利用计算机思维来解决问题的能力。
所以,必须将计算思维引入到程序设计课程的教学中来,实现由单纯的程序设计语言的学习向计算思维能力培养的转变。
1 计算思维的内容
1.1 计算思维的理解
计算思维其实自古既有,并且无所不在。
从中国古代的算筹、算盘到近代西方国家的加法器,无不闪烁着计算思维的火花,但是一直缺少一个对计算思维完整清晰的定义。
2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真教授首次在权威杂志Communications of the ACM上提出了“计算思维”(Computational Thinking):计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解的思维活动。
按周以真教授的解释,计算思维是建立在计算过程的理论上的,但是又超越了计算机本身。
计算过程并非一定都是在计算机上完成,也可以在人脑中完成,所以,计算思维最本质的内容是抽象(Abstraction)和自动化(Automation)。
从现实角度讲,计算思维就是将问题引入、归纳、求解、引申的过程,也就是将未知问题归纳成若干已知问题,从而求解的过程。
在程序设计语言的课程中,
汉诺塔问题(Hanoi Tower Problem)的求解过程,就是对归纳法求解的一个最典型的诠释。
笔者认为,运用计算思维解题时,有一个很重要的问题,就是问题的表述。
计算思维最终还是通过数学模型或者逻辑模型来解题的,所以怎样将问题转换成合适的模型表示,关系到问题是否能够得解,是否能够在预期的时间内得出结论。
这个建模的过程,涵盖了编码/解码、约简、递归、归化、仿真、推理等多种思维过程和转换模式,是计算思维的一个重要组成部分。
建模能力的强弱,直接影响了计算思维能力的高低。
1.2 计算思维的不同层次要求
计算思维不是一个单独的、和其他思维方法毫无关联的孤立方法。
计算思维产生于计算机科学,而与计算机科学联系最紧密的思维方法是数学思维、逻辑思维和工程思维。
我们可以将计算思维看作计算机科学与数学思维、逻辑思维和工程思维的交集,而它们也代表了计算思维的不同层次要求,如图1所示。
2 引入计算思维的程序设计课程教学改革实践
2.1 计算机能力的3个层次
(1)计算机使用能力(Computer Literary)。
就是利用计算机进行各种操作以获取信息或者计算结果的能力,这是最低要求层面的计算机能力。
例如,利用Excel进行班级成绩统计分析,利用Intemet查询、下载所需资料,编写小程序实现万年历的显示等。
(2)计算机系统认知能力(ComputerFluency)。
这是对计算机系统的理解和应用能力,建立在对计算机系统的全面理解的基础上,它是较高的要求,一般是学习计算机专业的学生所要求的,需要开设很多门计算机专业课程才能达到这个效果。
对于非计算机专业学生而言,这种能力毋须做太多关注。
(3)计算思维能力(Computer Thinldng)。
计算思维的内涵在上文中已经详细阐述,计算思维能力是适合于所有学生的一种普遍的思维能力。
程序设计课程是大学计算机基础教学中重要的一个环节,其目的是培养学生的编程能力。
而编程过程是编写一系列的计算机指令代码,让计算机执行指令以完成特定的功能或者解决规定的问题,所以,编程能力实质上就是利用计算机解决问题的能力。
从这一点看,编程能力可以归结于计算机使用能力,而怎样编程,这个过程需要计算思维来诠释,这可以从计算思维能力的高度来加以分析和讨论。
所以,我们要培养学生的计算机使用能力,更要培养学生的计算思维能力。
2.2 引入计算思维后的教学组织与实施过程
笔者在2011级担任教学任务的4个班级中,选取了2个班进行了教学改革
研究(以下称为实验组),在这2个班中,对授课内容和授课计划进行了调整,引入了计算思维的培养过程,在授课中,采用了“问题引入一问题归纳一建模求解一问题引申”的教学模式。
授课方式和课堂语言组织上,重点突出了对学生思维的诱导、指引和总结归纳,使学生从“要做什么”向“要怎么做”转变。
另外两个班依然采用“教师讲解一学生练习一教师总结”的传统教学方法(以下称为对照组)。
2.2.1 课堂教学实施过程
笔者以程序设计课程(c语言)中“函数的递归调用”这一内容的授课过程来说明教学过程中计算思维能力的培养。