APP下载

基于计算思维的程序设计教学方法改革

2017-11-03孙培锋

青年时代 2017年27期
关键词:计算思维程序设计教学模式

孙培锋

摘 要:培养计算思维的本质是培养问题求解能力,而程序设计课程重点体现了计算机语言的问题求解方法,两者的主旨是吻合的。本文针对当前程序设计课程教学中存在的问题,分析产生这些问题的主要原因,并提出了以培养学生计算思维为核心的程序设计课程新模式。

关键词:计算思维;程序设计;教学模式

一、前言

2006年,美国卡内基·梅隆大学计算机系主任周以真教授在美国计算机权威杂志ACM上发表文章并定义了计算思维(Computation Thinking):计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。她指出,计算思维是每个人的基本技能,不仅仅属于计算机科学家,在培养每个孩子的解析能力时不仅要让他们掌握阅读、写作和算术(Reading,wRiting,and aRithmetic,3R),还要学会计算思维[1]。

二、计算思维

计算思维能力培养是计算机学科教学的核心任务,计算机学科专业能力培养的目标是计算机的认知能力和应用计算机的问题求解能力[2]。计算思维培养的本质是培养问题求解能力,而程序设计课程重点体现了计算机语言的问题求解方法,这与计算思维能力培养的主要内容相吻合。当然一门课程并不能包含计算思维的所有内容,需要一系列计算机基础应用课程协作完成计算思维能力的培养。而计算思维能力的培养为今后学生应用计算机技术解决专业问题奠定了坚实的基础。

我国2010年发布的《九校联盟(C9)计算机基础教学发展战略联合声明》重点强调:“必须正确认识大学计算机基础教学的重要地位,需要把培养学生的‘计算思维能力作为计算机基础教学的核心任务,并由此建设更加完备的计算机基础课程体系和教学内容,进而为全国高校的计算机基础教学改革树立标杆。”[3]

作为计算机类专业基础课,程序设计是将分析和解决问题的思维活动转化成计算机程序的过程。学生在学习程序设计课程中,可以通过问题分析、算法设计、程序实现来体验问题求解的思维训练过程。所以,学习程序设计课程的目的不应是单纯掌握某门程序设计语言的语法规范或单纯学习一门程序设计语言,而是学习利用计算机分析和解决问题的基本过程和思维方法[4]。

三、程序设计课程存在的问题

现有的计算机程序设计课程教学存在着诸多问题,包括如下几方面。

(1)计算机类课程课时频频遭减,但为保证完成必要的教学内容,会为了追求进度而减少引导学生自行思考解决问题的课时,学生来不及理解与消化所学内容。

(2)教师在课程讲授的過程中过于重视程序语法细节,而忽视了需求分析、功能划分、编程思路以及算法设计等,导致学生在学习的过程中常处于一知半解的状态,从而在编程的过程中存在缺乏思路、条理不清、代码使用不规范等问题。

(3)随着各种校外考试机构主办的证书考试在校园内广泛开展,学生学习程序设计课程的目的正在发生变化,相当多的学生只是为了一纸证书在学习,一些学校也在为证书忙碌,能力最大化经常被晾在一边,正常的教学活动与教学改革受到冲击。

(3)“学不致用”的质疑声一直伴随着程序设计课程。不同于传统的公共基础课程,程序设计课程具有鲜明的应用性,而“学不致用”是一种致命的质疑。笔者对计算机相关专业的200名毕业生进行问卷调查,结果如表1所示。

通过表1可以发现,调查对象可以分为三大人群:Ⅰ类为有需求并使用的人;Ⅱ类为有需求但没有能力使用的人;Ⅲ类为没有需求的人。此外,调查过程中发现:Ⅲ类人中一部分人认同“学习编程没有用处”的观点,即认同“学不致用”,而另一部分人则认同“并不是自己的工作不需要编程,而是自己的水平无法胜任编程从而选择不需要编程的工作”的观点,这一部分人肯定程序设计课程的应用性但未能实践其应用性,即“学不能用”;而Ⅰ类人中部分人则认同“仅靠学校学到的编程知识是不能胜任工作需要的,要编出程序还需自己继续学习、查阅许多资料”的说法,这从反面也印证了“学不致用”现象的客观存在。

四、程序设计课程改革的必要性

传统的程序设计教学模式一般为:介绍该语言数据类型及运算符、表达式,介绍其语法规则,讲解例题,最后布置作业。这种教学模式以教师为中心,虽然能较好地保证知识的系统性,但因知识枯燥,在影响学生学习积极性的同时,也束缚了学生思维的发展,学生实践能力不足、综合分析能力及创新能力薄弱,难以满足当今社会对人才培养的要求。

近年来,教育部高等学校大学计算机课程教学指导委员会提出了大学计算机基础课程教学基本要求,明确了以计算思维为导向的计算机基础教学改革方向,目的是通过梳理核心知识体系,改革教学内容和教学方法,将计算思维培养建立在知识理解和应用能力培养基础上[5],以提升学生的计算思维能力。计算思维能力的培养已经成为高校计算机基础教学改革的目标。因此,急需将程序设计课程的编程基础和计算思维的培养结合起来,对程序设计课程进行改革,以提高程序设计课程的教学质量,培养学生的编程能力、计算思维能力及应用创新能力。

五、程序设计课程教学方法改革

对大多数学生而言,学习程序设计的目的是学习计算机分析和解决问题的基本过程和思路,而不是成为程序员。显然,程序设计课程的内容最能够体现语言级的问题求解方法,是计算思维能力培养的重要内容。

改革的方向应当是帮助学生降低学习门槛,逐步展现计算思维方法和程序设计过程,从而帮助学生培养分析问题与通过程序设计解决问题的能力。具体做法如下。

(1)适当淡化语法细节,在“以程序抽象为主线”的思想指导下,适当裁剪程序设计语言,去除较为复杂、较难理解、使用很少、不太规范的部分。事实上,在实际编程学习过程中,如果采用良好的编程风格,学生只需要掌握最基本、最重要的语法机制和最常用、最不容易写错的编程范式(编程模式、习惯写法),就可以编写程序解决实际问题了。这样可以降低程序设计的学习门槛,让学生能尽早开始编程,从而以渐进的方式在实际编程中学习程序设计,通过逐步深入的方式慢慢掌握思考、设计、组织程序的方法和技术,降低学生学习过程中的枯燥感和挫折感,提高学生解决问题的愉悦感和成就感。endprint

(2)将教学重心放在计算思维能力和程序设计能力的培养上,将分解、抽象、自动化、约简、转化、递归、迭代、启发式、折中等计算思维的主要特征融入程序设计教学过程中,如通過顺序结构把复杂工作分解为一系列较简单的工作;通过分支结构,把整体处理分解为对一些互不相交、更为简单的分支处理;通过循环,把复杂问题的处理分解为一系列类似处理;通过函数机制实现功能模块的分解和抽象;采用抽象、分解来解决相对比较复杂的问题,通过约简、转化、递归、迭代来实现复杂问题的分而治之等。

(3)开发相对综合的教学案例,如万年历程序、ATM自动取款机程序等,这些案例由部分到整体,由简单到复杂,贯穿整个课程,帮助学生体会:如何从分析问题开始,通过分解、抽象、约简、迭代等计算思维方法,最终设计出一个问题的计算过程;如何用程序设计语言将所设计的计算过程转化成为一个程序;如何采用结构化程序设计思想方法,设计出良好的结构,使其易于修改和扩充;如何保证程序能合理妥当地处理不正确的输入,提高程序的容错性;如何合理地组成程序,以方便将代码作为更大程序的组成部分。

(4)引入基于问题的互动教学方法,精选反映计算思维思想的问题案例或者相关知识模块的引导性问题,通过课堂互动讨论等方式,讨论问题的分析、分解和精确化,找出问题解决的主要步骤,确定函数抽象,找出循环迭代、条件控制结构,最后实现程序。做完之后还应该分析讨论所设计程序的优点和缺点,考虑其他设计实现的可能性。

六、结语

计算思维包含的内容不是一门课程所能承载的。计算和计算思维是计算机基础课程的基本理论和基本思维,早期的计算机课程教学强调技能培养和能力培养,计算思维的引入,将计算机课程对于大学生科学思维能力培养的重要性提升到了前所未有的高度。在大学计算机课程中有目的地引入计算思维,并且加以适当训练,有利于提高学生对于计算机科学的理解和认识,有利于训练科学思维的素质和能力。

程序设计课程是高校计算机教育的重要基础课程。通过基于计算思维的程序设计公共基础课程改革,可以使学生在掌握程序语言语法规则的基础上,培养学生的计算思维能力和创新能力,从而进一步提高计算机程序设计公共基础课程的教学质量。

参考文献:

[1]Wing J M. Computational thinking[M]. ACM, 2006.

[2]王荣良.计算思维教育[M].北京:上海科技教育出版社,2014.

[3]何钦铭,陆汉权,冯博琴.计算机基础教学的核心任务是计算思维能力的培养[J].中国大学教学,2010(9).

[4]牟琴,谭良.计算思维的研究及其进展[J].计算机科学,2011(3).

[5]教育部高等学校大学计算机课程教学指导委员会.大学计算机基础课程教学基本要求[M].北京:高等教育出版社,2016.endprint

猜你喜欢

计算思维程序设计教学模式
群文阅读教学模式探讨
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
程序设计课程中计算思维和应用能力培养问题研究
“一精三多”教学模式的探索与实践
“导航杯”实践教学模式的做法与成效
PLC梯形图程序设计技巧及应用
5E教学模式对我国中学数学教学的启示