计算思维在C++程序设计教学中的研究

来源 :课程教育研究·新教师教学 | 被引量 : 0次 | 上传用户:cdauto
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:大学计算机程序设计课程的培养目标和教学内容一直是程序设计教学中的一项研究焦点。本文在对程序设计课程现状分析的基础上,研究了如何将"计算思维"方法应用在C++程序设计教学中,培养学生以计算思维能力分析问题,解决问题的能力。
  关键词:计算思维 程序设计 兴趣案例 逆向思维
  【中图分类号】G633.67
  2006年,美国卡内基梅隆大学(CMU)周以真(Jeannette M. Wing)教授在《Communications of the ACM》杂志上给出并定义了计算思维(Computational Thinking)的概念。周教授認为:"计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[1]"。
  一、计算思维的概念
  随着计算机日益广泛而深刻的运用,计算这个原本专门的数学概念已经泛化到了人类的整个知识领域,并上升为一种极为普适的科学概念和哲学概念,成为人们认识事物、研究问题的一种新视角、新观念和新方法。
  二、程序设计基础课程现状
  2010年在西安的九校联盟会议上要求正确认识大学计算机基础教学的重要地位,要把培养学习者"计算思维"能力作为计算机基础教学的核心任务,并发表了《九校联盟(C9)计算机基础教学发展战略联合声明》,建设了更加完备的计算机基础课程体系和教学内容,为全国高校的计算机基础教学改革树立榜样[2]。这种计算思维能力可适用任何专业,这点已基本成为共识。但如何做?目前都还处于探索中。
  目前,C++程序设计基础教学存在着一些问题:
  1.教学内容多,学时少。授课教师难以做到对所有知识模块都有较深入的理解。因此对教师的授课水平提出了很高要求。
  2.《C++程序设计》作为大学的第一门程序设计课程,知识点多,概念多,涉及大量的算法,对于没有任何程序设计基础的学生来说,掌握教学内容十分困难。
  3."狭义工具论"认为教计算机基础就是教些计算机工具及其使用方法。教材基本上是有关领域的浓缩版,学生进入大学后,对计算机课程兴趣不大,逃课率相当高。
  4.计算机基础课教学学时被压缩,教学资源配置不充分,课程面临被裁减的危机。
  如何明确地将计算思维融入到课堂教学,以提高学生运用计算机知识抽象和分解问题的能力,是一个挑战。
  三、教学模式的探索
  "计算思维"有着极强的抽象性,通过什么样的方式才能培养学生的"计算思维"能力呢?根据C++程序设计课程教学的特点以及计算思维的学习技巧和方法,可采用"兴趣案例"分析的方式,运用教学模型进行程序设计课程教学,培养学生的计算思维能力,提高教学效率和学生学习效果,从而使学生掌握程序设计方法。
  《C++程序设计》的最大特点是算法多,例如"递归"算法。"递归"这个概念本身非常抽象,因此教学过程中如果只是一味的强调概念,学生不可能有很好的理解。那么怎样才能让学生明白知识点的同时又培养其程序设计的"计算思维"能力呢?1
  我们以求Fibonacci数列前50项为例说明计算思维在C++程序设计中的应用。我们设计三个步骤来完成"递归"思维能力的培养。
  步骤一:提出"兴趣案例",引起学生好奇心
  作为教师,应让学生发自内心的有强烈的学习欲望去解决某类题目,如给学生的题目是:"求Fibonacci数列前50项(1,1,2,3,5,8,13,21......)"。Fibonacci数列本身是一个数学问题,学生一看到题目就会因为对Fibonacci数列的不了解而直接会产生抵触情绪,从而不想进一步去思考问题。但是我们可以把问题转化一下,将给学生的题目变为"古典兔子"问题:
  "有一对兔子(一雌一雄),从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都存活,问每个月兔子总数为多少?"
  这个例子对学生而言就不是简单枯燥的数学问题,而是有兴趣的"游戏"了,这会让学生在兴趣中主动学习,从思想层面接受这个新知识,进一步培养学生的递归思维意识。
  步骤二:引导学生思考
  在第一步骤中,教师提出了具体问题,学生会思考解决问题的方法。而在第二步骤中,教师可适当的为学生提供帮助,运用计算思维的各种方法启发学生,提供学习策略上的引导。
  不妨分析一下:第一个月小兔子没有繁殖能力,所以还是一对;第三个月,生下一对小兔,一共有两对;第四个月,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对,依次类推可以得到兔子的总对数构成的一个数列:
  1,1,2,3,5,8,13,21......
  可采用循环控制来解决问题,N-S流程图如下:
  1.定义f1,f2为初始的兔子对数,i为控制循环输出的f1,f2的值,i<=25;
  2.循环开始前,先输出f1,f2的初始值;
  3.递推算法(正向思维):前两个月加起来赋值给第三个月。
  到此,可建议学生采用计算思维中的逆向思维,从后往前推断。设函数f(n)为第n个月兔子的对数,若要求解f(n),必须先计算f(n-1)和f(n-2),即f(n)=f(n-1)+f(n-2)。而计算f(n-1),必须计算f(n-2)和f(n-3)。依次类推,直到计算第一个月的兔子对数f(1)为1和第二个月兔子对数f(2)也为1,。所以我们得到了第n个月兔子对数的递推的公式:
  f(n)=f(n-1)+f(n-2)
  而递推必须要有终止条件,即当月数值n为1或2时:
  f(1)=f(2)=1
  在回归阶段,当获得最简单情况的解后,逐级返回,依次得到稍复杂问题的解。在得到f(1)和f(2)后,逐级返回上一级主调函数可得到f(3),f(4),f(5),......,f(50)的值。此时学生已经掌握了Fibonacci数列的解决方法。
  此例引导学生用逆向思维方法对问题进行求解,体会递归算法的思想过程,引导学生在思考中学习,并掌握递归方法。
  步骤三:"举一反三",巩固教学成果
  当学生掌握了递归算法之后,教师还应进一步启发学生的思维,让他们进行自主探究学习。教师应设计并提出该类问题的其它"兴趣案例",如典型的"汉诺塔"游戏,猴子吃桃等问题。让学生变被动为主动,消极为积极的去学习新知识,培养他们的自学能力,使其能够"举一反三",能够运用计算机思维解决所学专业领域问题的基本能力。
  四、结语
  "计算思维"是当今国际计算机界广泛关注的一个重要概念,也是当前计算机基础教育的重点研究课题。本文以《C++程序设计》中的"递归"算法例,阐述了"计算思维"在C++程序设计课程教学过程中对学生启发、递归式能力培养方法,使学生学会利用"计算思维"方式解决所学专业问题。
  参考文献:
  [1] Wing J M. Computational Thinking[J]. Communications of ACM, 2006, 49(3): 33-35.
  [2]牟琴."轻游戏"对计算思维能力的培养[J].《远程教育杂志》,2011,6:94-101.
其他文献
以最初的心,做永远的事。满怀最初的童心和爱心,认真做好每件事情,守住一颗朴素的教育心!
【摘要】 《妇产科护理学》是中职护理专业中一门涉及范围广,整体性强的学科,是现代护理学的重要组成部分。在教学时综合运用病例讨論教学法、情景教学法、理论与实践相结合教学法提高教学质量、提升学生学习兴趣,从而提高《妇产科护理学》的教学效果。  【关键词】 妇产科护理学 教学方法  【中图分类号】G712  《妇产科护理学》是中职护理专业中一门涉及范围广,整体性强的学科,主要内容包括孕产妇的护理、妇科疾
长篇稿件或者重要稿件,作者或编者都习惯于在稿件前面用醒目的异体字写一段提示。如果这稿件是写某位名人的,提示则往往会以名人简介的形式出现。提示或简介由于位置领先,文
摘要:在新课改的要求下,根据学生的学习方式和方法,创设营造一个比较符合大多数学生的发展规律,充分发挥电教的多功能性、多变化性、多思考性,激发学生的积极主动性和能动性。  关键词:新课改;高中数学教学;激发;主动性;能动性  【中图分类号】G633.6  随着教育部门逐步实施的新课标改革,每个学校似乎都在搞教育的改革,似乎这也是教育的一个新革命。新的教学理念和标准给高中学生和老师提出了新的工作和目标
摘要兴趣是学生最好的老师,而好的课堂氛围则使师生如沐春风,和谐愉快地进行教与学的双边活动;它对教学的影响是无时不在,无处不在的。本文结合了本人多年的教学经验,从六个方面浅谈了如何让学生的学习活起来。  关键词学习兴趣;课堂教学;主导作用  【中图分类号】G633.7  引言:  物理概念较抽象,难以理解,因此学生学起物理来感觉较困难,厌学情绪高,学习成绩差。教师教苦口婆心,学生心不在焉。如何改变这
近几年,交通台成为全国广播界的“新宠”。厦门电台为了适应这一变化,2002年7月,明确把厦广经济台定位成以经济、交通为主要内容的专业频率。在全天二十小时的直播节目中有
【中图分类号】G633.6  书籍就像蔚蓝的大海,翻滚着文化的辉煌和厚重;就像肥沃的土地,蕴藏着思想的博大与精深。一本好书,之所以让人对它如此倾心,爱不释手,是因为其中蕴藏着点点滴滴金子般的知识。从小培养学生的科学阅读能力,让阅读成为一种习惯,使学生在阅读中提升品质与素养,是历史赋予我们教育工作者的使命。那么为什么要培养学生的科学阅读能力?培养学生的科学阅读能力的理论基础是什么呢?我想从下面两方面
古诗词教学是高中语文的重要教学部分,对丰富学生的人文素养、提高审美能力具有独特的教育意义。本文对高中语文古诗词教学进行了探究,站在研究者与实施者的角度上,结合笔者实践
【中图分类号】G630  一、优化课前预习方式开发学生课程资源的必要性  从新课程实施角度来看,教师开发课程资源的直接目的是服务于教学方式、学习方式的改变,最终目的是为实现有效教学。笔者认为,高中思想政治课教师在习惯于通过报刊杂志、网络媒体等方式选择和整合课程资源的同时,不应忽视采用一些恰当的课程学习指导方法,来挖掘与开发那些来源于学生,可直接成为政治课程活动内容或支持该课程活动进行的素材性课程资
《陕西信息》是适应深化改革形势发展和治理整顿工作的需要、提高煤炭生产效益,推广和应用科学技术而创办的。它是以推动煤炭工业的科技进步为宗旨,以相互交流煤炭工业安全