计算机思维如何培养十篇

发布时间:2024-04-25 18:59:43

计算机思维如何培养篇1

【关键词】创造性思维计算机教学中职学生

在计算机学科的理论教学和上机实践中,蕴藏着大量的可用于对学生进行创造性思维训练的因素,教师在教学中一定要结合教学内容和中职学生的认知特点,充分发挥学科优势,不失时机地培养学生的创造性思维。

一、激发创新意识

计算机教师要善于研究学科内容,充分挖掘教学资源,抓住教学过程中的一切有利时机,因势利导,诱发学生的兴趣,着力培养学生的创新意识。

(一)以计算机发展过程中的创造性故事激发学生的创新意识。结合教学内容,适时给学生介绍一些计算机产生、发展和应用中的创造性故事,让学生了解故事背后所凝结的创新性的观念和方法,特别是其中的不断探索精神,有助于培养学生的创新意识。如在“计算机发展概况”的教学中,向学生介绍世界上第一台电子计算机产生的故事;在讲到“微机”时,可介绍iBm推出pC机的故事;在“计算机病毒及防治”的教学中,可向学生介绍国产防病毒软件是如何从无到有、由弱到强的。

(二)在引入新知识的过程中激发学生的创新意识。在引入新知识时,教师可通过“发现法”、“探究法”、“解决问题法”等,创设一种“创造”氛围,激发学生的求知欲和创新意识。例如,在引入DoC的目录结构时,向学生提出:在硬盘中有成千上万个文件,为了便于存储和查找,你认为最好采用什么方法来“放置”它们呢?由于学生有“放置”实物的经验,因而会迅速激发起他们的创新意识。特别是当学生提出的解决方案得到肯定时,其成功感会油然而生,他的创新意识将得到进一步激发。在上述教学过程中,教师要创设一种“民主、进取、开放”的课堂环境,让学生心情舒畅,思想开放,敢想敢说,以利于最大限度地激发学生的创新意识。

(三)在实践性教学中激发学生的创新意识。计算机教学实践表明,职校学生对实践性教学活动特别感兴趣,在这类活动中他们会遇到许多新问题,它能不断地激发学生的创新思维。如在“Foxpro程序设计”这一内容的教学中,在让学生分组完成“班级成绩管理系统”程序设计时,会引发一系列学生必须解决的新问题,如系统应具备哪些功能才能满足实际需要?如何才能提高系统的可操作性?等等。他们需为此进行调查、讨论、查阅资料、编写和调试程序,学生的创新意识会在此过程中得到不断的激发。

(四)帮助学生树立远大理想和抱负,以激发其恒久的创新意识。让学生了解国内外计算机的发展历史、趋势及应用前景,有助于学生树立远大理想和抱负,也有利于培养学生强烈的事业心、责任感及稳定持久的创新意识。学生在明确计算机在国民生产、生活中的重要意义后,就会产生强烈的学习内驱力,可激发学生的民族责任感,使学生更好地树立远大理想,继而产生持久的创新意识。

二、发展创造想象

创造想象是根据一定的目的、任务,独立地创造出新事物映像的心理过程。创造想象以其新颖性、生动性来推动创造性思维的发展,因此,发展学生的创造想象,对培养学生的创造性思维是十分重要的。计算机的许多教学内容都有利于发展学生的创造想象,如在w0rd2010的教学内容进行到一定程度时,让学生进行“迎春”板报设计之类的练习,因其内容涉及文字编辑、表格制作、图形和艺术处理及美学原理等多方面的知识,因而学生的创造想象将得到充分的发展。

三、培养创造人格

创造力研究专家指出,创造的人格是创造性设想得以实现的个人保证。由于职校学生很快就要走向工作岗位,服务于社会,如果届时不具备良好的创造人格,即使有再好的创造性设想,也难以实现,这无论对社会还是对个人,都是一大损失。因此,我们必须充分利用课堂内外的各种有利时机,认真做好以下几方面工作,帮助学生形成良好的创造人格。创设一种民主、进取、开放的创造氛围,引导学生克服随从性、刻板性、狭隘性、定势性、嫉妒性等创造性思维的心理障碍。发展学生的独立性、幻想性、自制性、有恒性等人格倾向。培养学生高度的社会责任感、强烈的进取心、敢冒风险的勇气。培养学生的团队协作精神和克服困难的毅力与情感。需要特别强调的是,由于计算机学科具有现代性、实践性、工具性、应用性的特点,使得它在发展学生的创造性思维方面具有“得天独厚”的优势,我们必须充分发挥这种学科优势,大力培养学生的创造性思维。如通过程序设计来训练学生的创造性思维,就是发挥这种优势的一个典型例子,这主要是因为:

(一)程序设计过程是创造性思维过程的具体体现。按美国心理学家华莱士的观点,创造性思维过程要经历准备、酝酿、豁朗和验证四个时期,而程序设计通常要经历如下过程:分析构思框图程序调试修改完成。其中,从“分析”到“框图”是准备和酝酿时期,对于应用程序的设计,在这一阶段还需要对用户的实际需求进行调查研究;除了简单的或模仿性的程序外,从“程序”到“调试”阶段一般都要经历“豁朗”和“验证”期。因此,循序渐进地对学生进行程序设计训练,对发展学生的创造性思维是十分有效的。

(二)程序设计能激发学生的创造性。当程序设计、调试成功时,特别是学生自己设计的程序能用来解决实际问题时,学生会产生一种成就感,它能进一步激发学生的创造欲。

(三)程序设计有利于培养学生的创造人格。程序常常需要进行反复地调试修改才能成功,这需要学生有严谨的科学态度、深刻的思维、顽强的毅力、敢于面对失败并相信自己能从失败走向成功的勇气;另外,当几人合编一个程序或共用一台机器时,还需要学生有团队协作精神,这些对培养学生的创造人格是大有裨益的。

(四)程序设计中的非常规思维有利于培养学生的创造性思维。程序设计中常使用非常规思维,比如赋值语句n=n+1、分治策略、最优策略和穷举策略都突破了学生思想中的“数学常规”,这些“突破”性的思维对培养学生的创造性思维无疑是非常有益的。

总之,我们必须结合教学内容,充分发挥计算机的学科优势,全方位发展学生的创造性思维,努力培养创造性人才。

参考文献:

计算机思维如何培养篇2

关键词:计算思维;计算机游戏设计;计算机基础教学;教学方法

0引言

当前,计算思维能力的培养成为国内外计算机界的一个热点课题,计算思维的重要作用受到国内外许多专家学者的关注。美国卡内基·梅隆大学周以真(Jeannettemwing)教授指出,计算思维是每个人的基本技能。陈国良院士认为,科学思维主要分为理论思维、实验思维和计算思维三大类,计算思维是科学思维的三大组成之一;计算思维无处不在,当计算思维真正融入人类活动的整体时,它作为一个解决问题的有效工具,人人都应掌握,处处都会被使用。美国计算机协会(aCm)2008年公布的对CC2001进行的中期审查报告(草案),将“计算思维”与“计算机导论”课程绑定在一起,并明确要求该课程讲授计算思维的本质。2010年7月20日,九校联盟在西安对计算思维与大学计算机基础教学进行了研讨,在发表的《九校联盟(C9)计算机基础教学发展战略联合声明》中,也旗帜鲜明地把“计算思维能力的培养”作为计算机基础教学的核心任务,提出要加强以计算思维能力培养为核心的计算机基础教学课程体系和教学内容的研究。

目前,对于如何在大学的第一门计算机基础课程中贯彻计算思维能力的培养,国内学者已提出了一些很好的构想。例如,陈国良院士认为大学第一门计算机基础课程是计算思维培养的一个关键,并以此构建了以计算思维为核心的“计算思维导论”课程。哈尔滨工业大学战德臣教授认为,大学第一门计算机基础课程必须强化思维性教学改革,强调可实现思维的教授与培养。浙江大学何铭钦教授等在对C9联合声明的解读中,阐述了其对大学计算机基础、程序设计基础、数据库技术及应用、多媒体技术及应用、微机原理与接口技术、计算机网络技术及应用等课程的改革思路,提出一方面要突出相应领域问题求解的核心思路和基本方法,另一方面需要通过小规模的应用系统设计与实现,使学生领悟应用系统级的问题求解方式。

当然,计算思维能力的培养不仅仅局限于大学第一门计算机基础课程,更应该贯穿在其他的计算机基础课程中。计算机游戏设计作为面向我校非计算机专业学生的一门普及型游戏设计课程,足计算机基础教学体系的重要组成部分,自开设以来深受学生喜欢。在以计算思维能力培养为核心的教学改革新形势下,如何在计算机游戏设计课程中贯彻计算思维能力的培养,是该课程教学中需要思考的问题。

1计算机游戏设计课程适合培养多层次的计算思维能力

计算机游戏设计课程针对大二以上年级开设,选修该课程的学生多数已修完大学计算机基础,并且修过多媒体技术及应用或高级语言程序设计课程,具备一定的计算机基础知识和计算机软件应用能力。经过调整,目前该课程的教学内容包括计算机游戏概述、游戏开发周期、游戏策划与设计概述、Flas制作基础、Flash编程基础、Flash游戏开发技术6部分。

与其他计算机基础课程相比,大学计算机基础课程更强调计算机基本概念和基础知识的讲解,而“多媒体技术及应用”和“高级语言程序设计”虽然涉及如何利用计算机进行问题的求解(如编程实现某种排序算法,或利用图像处理软件处理某张图片),但所涉及的问题规模较小。而计算机游戏设计课程的教学内容涉及游戏策划、设计到开发以及的各个阶段,面对的问题更具体,各章节之间内容衔接更紧密,因此非常适合展示如何利用计算机科学的基础概念进行问题求解、系统设计和人类行为理解的整个计算思维过程。

从问题求解的角度,计算机游戏设计开发中,具体的动画、游戏规则、交互方式、关卡设计等,均需要通过计算机进行实现,通过讲解这些实际问题的解决思路,可以培养学生利用计算机科学的基本概念进行问题求解的计算思维。例如,在Flas制作中,当关键帧、引导路径制作好后,非关键帧即可由计算机自动生成,这一思维方式可以用于启发学生在日常工作中“抓大放小…‘分清主次”,关键问题先解决了,次要问题就容易解决了。而在介绍如何利用actionScript3.0进行面向对象的Flash游戏开发时,可以将面向对象的设计思想推广到日常工作和生活中,通过“求同存异”和“合理分解”,将重复性的工作分离出来,实现“重用”;而且,启发学生将面向对象的设计思想与新产品设计关联起来,如通过对笔记本的“特化”设计上网本和平板电脑,通过对电脑和手机的“组合”设计智能手机,通过对电脑和电视的组合设计“智能电视”等。而游戏开发所采用的事件处理机制,其核心思想是“侦听消息”“转发消息”“响应消息”等,公司内部的呼叫中心、联络部门以及中介行业均采用了类似的工作模式。

从系统设计的角度,即使比较简单的游戏,也会涉及动画、音频、字幕以及代码编写等各个方面,所以必须进行系统全面的设计才能保证其准确运行。在教学过程中,有必要通过多种形式将系统设计的思维方式展示给学生。例如,针对某个具体的游戏,场景动画角色动画如何没计,如何通过代码将不同内容集成起来,不同对象之间如何调用,如何支持不同的交互方式等,需通过逐步分解、细化的方式,将规模较大、较笼统的问题转换成比较详细精确的描述,并有机地串联起来。设计过程中,一方面需要设计出满足需求的产品,另一方面,要考虑资源的约束,例如时间、人力、掌握的技术等。这一思维过程,同样适用于日常工作,面对比较大的项目,需要分解细化,化繁为简,并合理平衡有限的资源,得到较好的效果。因此,在计算机游戏项目的设计开发中,可以培养学生利用计算机科学的基本概念进行系统设计的计算思维能力。

从人类行为理解的角度来说,计算机游戏本身就是对现实世界的模拟和抽象,是完全由人通过计算机构造出来的虚拟世界。在计算机游戏课程中培养对人类行为理解的能力可以从两方面着手,一方面,从计算机游戏本身来看,游戏的剧情、场景、角色、关卡、游戏规则等,均基于对人类社会的理解、模拟或扩展而构造出来,因此,在游戏策划和设计内容中,可以通过介绍“虚拟人生”“开心农场”等角色扮演游戏、策略游戏,培养人类行为理解的能力。另一方面,从游戏交互设计的角度来看,计算机游戏系统对交瓦性要求较高,如何给用户提供简单直观的交互界面,需要很好地理解人类的一些行为模式和用户心理,因此,在游戏设计开发过程中,也可以培养学生运用计算机科学的基本概念进行人类行为理解方面的计算思维。

2通过案例教学与实践项目,贯彻计算思维能力培养

在计算机游戏没计课程中加强计算思维能力的培养,不能仅介绍教学内容相关的知识点,更需要将思维方式展现给学生,并让学生明白思维是可实现的。其关键是通过案例教学和实践项目,使学生理解如何将一个复杂问题分解、构造,最后变成可在计算机上运行的程序,即让学生理解问题的求解过程。针对这一目标,我们在教学过程中需要从以下方面进行改进。

2.1通过案例教学,贯通知识与计算思维

南于选修计算机游戏设计课程的学生来自不同专业不同年级,文科理科均有,知识结构和能力差异较大,我们采用案例教学方法,通过教学案例,以问题求解为线索,将不同的知识点贯通起来。例如,在游戏策划和设计阶段,我们先对一些常见的游戏进行分析,让学生参与讨论,并提供游戏策划书和游戏设计文档实例,展示如何创作游戏的故事大纲,如何完善游戏的情节,如何设计游戏的细节(场景、角色、关}),让学生了解如何将一个概要的想法,一步一步充实、完善、细化成一个比较完整的游戏设计方案。图1为教学过程中使用的“挖地雷”“战场生存记”游戏案例。

在游戏开发中,同样通过一些Flash游戏的制作实例进行讲解。通过案例,从简单到复杂,将Flas制作、actionScript3.0编程及游戏制作贯穿起来。例如,在讲解弹球游戏时,首先分析游戏规则,对任务进行分解,分析如何进行设计;然后讲解单个弹球游戏的动画制作,并结合游戏讲解actionscript3.0的部分语法规则和编程方式、Flash延迟循环模式、事件处理机制等;再介绍如何对各部分进行集成,完成可玩的单个弹球游戏。在此基础上,引导学生如何将单个弹球进行封装,将单个弹球的游戏推广到任意多个弹球的游戏。在讲解其他游戏案例的制作过程时,也遵循这种“建模—分解—设计—功能实现—集成—扩展”的思路。如对于挖地雷的游戏,先分析、设计、实现简单的挖地雷游戏,然后再添加关卡的设计与实现。通过游戏案例的讲解,让学生完整地了解游戏的设计制作过程。

2.2加强实践环节,使学生切身体会问题求解过程

为让学生深刻地理解问题的求解过程,我们在计算机游戏设计课程中加强了实践环节,并结合实验与项目进行课程考核。目前本课程安排有18学时的课内实验,包括4个实验项目。实践教学内容注重培养学生使用Flash设计与制作游戏的能力,鼓励和支持学生利用业余时间创作计算机小游戏作品。通过在“做”中“学”,激发学生的学习主动性,使学生切身体会问题求解的过程。

此外,课程考核摒弃了笔试方式,采用实验考核和项目考核相结合的方式。实验考核主要考查学生平时对相关知识的掌握程度,主要由4次实验组成。项目考核要求学生分组,完成一个比较完整的游戏项目,学生自由分组,每组不超过3人,利用Flash或其他工具软件,设计并制作一款可玩小游戏,要求最终提交设计制作文档、源代码、可执行文件、ppt演示文稿等材料。游戏项目分数评定采用共同打分方式:每个小组公开演示自己设计制作的游戏,由教师和其他小组成员组成评审团对其进行评分。

例如,图2为信息与计算科学专业、动画专业的3位学生设计制作的“吸血鬼角色扮演游戏”,故事里的主人公在做任务维持生活的同时也必须照顾自己的女儿。学生采用“RpG游戏制作大师”制作了地图、人物、武器等,然后利用actionScript脚本语言将各个游戏元素集成起来,实现游戏逻辑、游戏交互和关卡。

通过本课程的学习,多数学生能比较深刻地理解计算机游戏的设计与开发过程,掌握计算机游戏的相关基础知识,完成比较简单的游戏设计与制作,并增强了利用计算机科学概念进行问题求解、系统设计和人类行为理解的计算思维能力。

3结语

计算机思维如何培养篇3

关键词:计算思维;程序设计;语言;计算;新生

中图分类号:G642.0文献标志码:a文章编号:1674-9324(2015)49-0276-03

一、《程序设计》课程简介

《程序设计》是高等学校理工科专业普遍开设的系列必修课程。这门课主要讲授用高级语言如C/C++及Java等开发计算机程序的基本知识,培养学生用计算机分析并解决问题的能力,使学生掌握软件设计的基本方法,为后续课程奠定基础。

国内高校普遍将《程序设计》课程按照语言的不同分为多个系列:C语言、C++语言及Java语言等。不同学校及专业根据各自的培养方案为学生开设其中几种,至少有一种语言(一般是C语言)为必修,开设于大一及大二学年,理论课与实验课共60~100课时,持续1~2个学期。各高校也普遍为计算机相关专业高年级学生开设其他流行编程语言如VisualBasic以及更专业化编程语言如matlab、SQL及HtmL等等。这些语言的基本语法与C语言相似甚至是高度相似,程序设计思想相通,因而其教学也高度依赖于低年级程序设计课程的教学效果。

二、面向新生的《程序设计》课程

对计算机及软件等专业的学生而言,《程序设计》是一门专业基础课,这门课程一般开设于本科一年级,因而授课对象主要是本科新生。一方面,大多数计算机相关课程如《数据结构》、《操作系统》及《数据库》等都需要编程语言的基础知识,学生在这门课收获的学习成果对高层次的学习乃至工作都具有非常重要的意义;另一方面,编程语言课程的教学能够直接训练学生的计算思维[1],计算思维的形成和培养,是目前高等院校计算机教学,甚至包括非计算机专业的计算机基础教学所追求的一个重要目标。在学生刚刚升入本科阶段,而几乎不曾开始学习专业课,专业思维模式尚未形成之前,就逐渐培养其计算思维,又显然是这项任务的重中之重。

高中信息技术课程一般包括VisualBasic等编程语言的知识,但长期以来,受高考指挥棒的影响,全国各省市的小学、初中与高中教育普遍对计算机(信息技术)课程的重视程度不够。在程序设计不作为会考要求内容的省份,一些学校甚至没有开设编程语言课程,或者要不做任何要求,导致在高中阶段,教师与学生的教学兴趣度极低。一个最直接的后果是,即使是计算机相关专业的学生,刚进入大学时,也普遍对程序设计这类课程既陌生又恐惧。

由于这类课程本身的深度与难度,本科新生,特别是在高中阶段没有学过程序设计,甚至几乎不曾接触过计算机的新生,往往承受较大的学习压力,如果不能很好地掌握程序设计的思维与方法,学生很容易丧失学习计算机相关课程的兴趣与信心,从而影响整个大学阶段的专业学习,因而承担大一新生程序设计课程的教师也同样承受较大的教学压力。如前所述,这个问题产生的直接原因固然是高中信息科学知识储备的不足,但根本原因还是学生在从多年来已经习惯的数理化式的定义与公式学习模式转变为以计算机学科为代表的设计与实验的学习模式时产生了障碍,或者说学生没有能够形成学习计算科学应具有的思维模式。因而解决这个问题的关键即是,要通过程序设计课程的教学使学生形成并逐渐强化计算思维。

三、计算思维的内涵及重要性

按照卡内基・梅隆大学Jeannettem.wing教授提出的广义概念[1],计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。而具体到程序设计这门课,计算思维可以理解为编写高级语言程序的方式解决问题的思维活动。由此可以看出,程序设计课程是培养学生的计算思维最重要的方式之一,而培养学生的计算思维也是程序设计课程最重要的目的之一。

计算思维这一重要概念被提出后,引起高等教育界的广泛注意。关于如何在程序设计课中培养本科生的计算思维能力这一问题也成为高校计算机教学中普遍关注的问题。文献[2-4]讨论了如何通过计算机基础教学培养计算思维,文献[5-7]讨论了通过程序设计课程培养计算思维,文献[8]讨论了如何通过程序设计培养学生的多种思维能力,文献[9;10]提出以计算思维为导向开展程序设计教学,文献[11-13]提出了基于计算思维的程序设计教学改革方式,文献[14;15]讨论了通过程序设计课程培养计算思维的具体实践方式,文献[16]探讨了如何以计算思维为训练目标设计程序设计案例,文献[17]讨论了如何通过非计算机专业的程序设计课程培养计算思维。但围绕如何针对新生开展高效程序设计课程教学[18],以及如何培养新生的计算思维这些方面的研究却还很少。

计算思维,顾名思义,即“一切皆为计算的思维”,可以把它理解为一种将复杂的实际问题都转换为可以用计算机解决的思维模式,而计算机解决任何问题的本质,显然都是通过各种计算来完成的。掌握用计算机解决问题的方法,是当今社会中最重要也是最基本的技能之一。要实现这一目标,就要靠计算思维的长期渐进式培养与发展,这主要涉及两个方面的任务:(1)需要了解计算机求解问题所使用的计算方式。只有了解计算机计算的方式,才能判断一个问题是否可以直接被计算机求解,也才能将待求解的问题转换为计算机可以求解的形式;(2)需要掌握用计算机求解问题的设计方法。只有能够设计出让计算机求解问题的计算方法,即算法,才算真正掌握了计算机科学。在众多计算机相关课程中,程序设计是能够实现以上两个任务的重要载体课程,而计算,作为计算机解决问题的终极形式,又显然应该是实现培养计算思维这一目标的核心训练手段。

四、以《程序设计》培养计算思维的实践策略

本人所在基础教学部承担上海电机学院全校非计算机专业及计算机专业本科一年级学生的程序设计课程教学任务,包括C/C++语言及Java语言,分两个学期授课,理论课共64学时,实验课共32学时。从字面意义就不难看出,“计算思维”的核心思想是计算的能力和技巧。在教学中,我们以计算作为最重要的训练方式,贯穿于整个教学环境中,尝试以计算促进计算思维的形成。具体地,我们主要采取以下方法:

1.用计算问题让学生快速开始程序设计。学生都经过从小学到高中的数学训练,普遍对各种基本数学问题非常熟悉。用一些最简单的计算问题例如“从键盘输入数值,计算其和差积商”可以使学生迅速上手,开始学习编写程序。一方面,这样可以避免在学习初就因受困于复杂的问题本身而影响编程语言语法规则的学习;另外一方面,也使学生通过解决简单的计算问题获得学习新课的成功感和自信心,提高对后续课程学习的兴趣。

2.用计算问题使学生了解程序设计实现计算的规则。在讲授选择结构程序设计时,我们使用了“数学年份,输出各月天数”的例子。一年中的各个月份天数不同,仅需分为三种情况;二月份的天数需要根据该年是否是闰年来判断,而闰年的判断是小学生都非常熟悉的:即年份能被400整除;或能被4整除但不能被100整除。为了用编程语言描述这种判定规则,就需要引入逻辑运算符表示“与”和“或”的关系并且要准确理解运算符的优先级。这样就可以通过一个例子充分了解分支结构程序的设计规则和逻辑计算的规则。

3.用计算问题使学生了解用计算机解决问题所需要考虑的额外因素。在进行一般的数学计算时,除了有些情况要求数值只能是整数,我们一般不必考虑一个数是整数还是小数。但是用高级语言处理数据,除了比较特殊的python等语言不区分数据类型,一般的高级语言如C和Java都是严格区分数据类型的。在数学上,我们可以很自然地书写x=1,y=0.5,但是在编程语言中,如果x被定义为浮点型,那么整数转换为浮点数,涉及表示方式的转换,可能会丢失精度;如果y是整数,将浮点数转换为整数会丢失小数部分。而后者,在类型严格的语言如Java语言中甚至是不允许的。虽然单纯的数学计算几乎不涉及整数和浮点数类型转换的问题,但数据的类型转换却是程序设计中最容易出错的。通过编写测试性程序验证0.1+0.2不等于0.3,学生的印象会非常深刻,并且能够更直观地了解在用计算机计算时,数据类型精度是一个必须要考虑的因素,从而形成一种思维模式,在设计计算方法时能够处处考虑类型与精度的相关问题。

4.通过计算加深对计算殊规则的理解,强化计算思维。在教学中,我们会让学生编程练习求“3斤2元的蔬菜,6斤多少钱”这样看似极其容易的问题。大多数学生会因为按照数学的习惯书写2/3*6这样的表达式而得到看似荒谬的答案0,这样的错误在程序设计中非常普遍地存在,并且在调试代码时这类错误隐蔽性极大,不容易被发现。只有通过大量这类的计算练习,才能让学生充分理解程高级语言(C/C++/Java等)中/的特殊运算规则,即整数除法的结果还是整数,如果要得到比较准确的结果,至少要把被除数和除数中的一个转换为浮点数,对于变量需要使用强制类型转换,对于常量,除了强制类型转换,还可以在后边添加.0,及2和2.0在计算中是截然不同的两个数,产生的计算结果也是全然不同的。由此可以进一步强化对数据类型转换的理解。

5.用计算问题使学生了解纯粹的数学思维和计算思维的差别。在讲解循环结构时,我们让学生编程计算两个数的最大公约数和最小公倍数。大多数学生会受困于小学数学中学过的短除法方法:用一个一个公因子依次去除两个数,直到商是互质的。对于手工计算,这种方法当两个数都不太大,公因子比较容易找且不都太大的情况是非常容易且直观的。但是用计算机套用这种思路编程时就会遇到麻烦:手工计算式公因子是直观“看”出来的,而计算机是没有办法一下子猜到一个公因子的。但是利用循环,这个问题就迎刃而解。按照定义,最大公约数,就是最大的可以整除两个数的数,最大不会超过两个数中较小的一个,只要用循环,从两个数的最小值开始,一个一个尝试,每次减1,找到一个能够同时整除两个数的数,就是答案而不必继续找,而各种高级语言普遍都提供了求余的运算符。当两个数变得很大时,这种方法的效率很低,于是可以利用循环实现更快寻找最大公约数的辗转相除法;对最小公倍数的练习,也同样可以强化循环的学习效果。通过这些例子可以使学生清楚地意识到,数学中的计算方式转换为计算机的求解过程需要一定的转换,而这种转换正是计算思维的关键所在。

对以上几种计算训练模式,一个重要的环节是让学生在实验时犯错误,通过在计算中发生看似怪异的错误,而运算过程在数学上看来又无懈可击,才能通过仔细的错误分析与代码调试,发现按照一般思维无法发现的,由于计算机编程语言处理问题的特殊性而导致的错误,这样才能使学生对这类错误的印象更深刻,从而尽可能减少今后出现同类错误的可能。

五、结语

在程序设计的教学中,我们利用学生普遍具有长期打下的良好的数学基础这一特点,通过采取以上几种方法,让学生在解决计算问题时学会设计计算方法,逐步形成计算思维模式、加强计算思维方法,最终培养其计算思维能力。目前,课程教学改革正在持续进行阶段,已初步取得一定成果,但还缺乏更久更大范围的理论研究和实践论证。我们希望能够以这些改革措施改进理工科《程序设计》课程的教学效果,为大一学生学习后续课程打下良好的基础,使他们受到全面的计算思维训练,具有良好的信息素养,最终提升他们在走出校园进入当今信息社会时的核心竞争力。

参考文献:

[1]wingJm.Computationalthinking[J].Commun.aCm,2006,49(3):33-35.

[2]朱鸣华,赵铭伟,赵晶,etal.计算机基础教学中计算思维能力培养的探讨[J].中国大学教学,2012,(03):33-35.

[3]陆汉权,何钦铭,徐镜春.基于计算思维的“大学计算机基础”课程教学内容设计[J].中国大学教学,2012,(09):55-58.

[4]李波.计算思维与大学计算机基础[J].中国大学教学,2012,(07):43-45.

[5]冯惠妍,陈争光,邰建华,etal.程序设计中“计算思维”的教学研究[J].农业网络信息,2013,(04):120-122.

[6]王卫华.在程序设计类课程中培养学生计算思维能力的思考[J].武警学院学报,2013,(07):51-53.

[7]王先超,王春生,胡业刚,etal.以培养计算思维为核心的C程序设计探讨[J].计算机教育,2013,(13):44-47.

[8]卜晨月.程序设计与学生思维能力培养的探讨[J].林区教学,2013,(03):72-73.

[9]董卫军,邢为民,索琦.以计算思维为导向的程序设计课程改革与实践[J].工业和信息化教育,2013,(06):60-64.

[10]刘光蓉.以计算思维能力培养为导向的C程序设计实验教学[J].实验技术与管理,2013,(01):154-156+191.

[11]刘晓璐.基于计算思维的Java程序设计教学改革[J].广东技术师范学院学报,2013,(05):108-110.

[12]孙丽君,杨志强,高枚.围绕计算思维培养的程序设计课程改革[J].计算机教育,2013,(05):29-31+38.

[13]徐燕,潘亚平.计算思维与计算思维能力培养――谈大学计算机基础教学改革[J].江苏技术师范学院学报,2013,(02):92-95.

[14]商书元.计算思维培养在程序设计课程中的实践[J].教育教学论坛,2013,(39):203-205.

[15]张雪伍,常晋义.计算思维在C++程序设计教学中的应用[J].计算机教育,2013,(13):52-56.

[16]杨俊生,张润.基于计算思维的“C程序设计”案例设计初探[J].工业和信息化教育,2013,(06):65-69+64.

计算机思维如何培养篇4

关键词:计算思维;艺术院校;计算思维;落地

计算思维是指运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。计算思维的概念最早是由麻省理工学院的seymourpapert教授在1996年提出的,而美国的卡内基・梅隆大学的周以真教授则清晰系统地阐述了计算思维,并将这一概念提到前台,使其广受关注。如今,计算思维概念在我国得到进一步的发展,计算思维的思想正逐步得到认同,大学生计算思维能力的培养也得到国内教育界的广泛重视。

值得注意的是,计算思维并非只适用于计算机专业领域,而是越来越多地对不同的学科领域产生影响。在信息化的大背景下,计算机学科与艺术学科的融合愈发紧密,不仅仅产生了计算机艺术这门新兴的交叉学科,同时也改变了艺术专业的学习方式和艺术创作方式,甚至改变了艺术工作者和艺术院校师生的思维方式。如何使计算思维在艺术院校落地,如何将计算思维引入到教学中,使艺术院校学生能够正确理解和认识计算思维,提高他们的计算思维能力,值得我们深入探讨和研究。

1计算思维的概念

周以真教授对计算思维的定义是:计算思维是运用计算机科学的基本概念进行问题求解、设计系统和理解人类的行为,其中涵盖了计算机科学之广度的一系列思维活动。再进一步来说,计算思维就是通过嵌入、约简、转化、仿真等方法,把一个看起来困难无从下手的问题重新阐释成一个人们知道如何解决的问题。

周以真教授同时指出,计算思维是每个人具备的基本技能,绝不仅仅属于计算机科学家。我们在对学生进行解析能力的培养时不仅需要让他们掌握算术、阅读、写作等技巧,还要让他们学会计算思维。她还认为,计算和计算机是促进计算思维传播的有效途径,计算思维在不久的将来会成为每个人所具备的技能组合,而不仅仅适用于科学家。

计算思维主要具有6个特征:(1)计算思维是一个概念,而不是单指程序。计算思维要求能够像计算机科学家那样在抽象的多个层次上进行思维,而非仅仅只要求做到计算机编程。(2)计算思维是根本的技能,而非刻板的技能。计算思维是每一个人为了能够在社会中做出贡献、发挥职能所必须掌握的,而并非简单的机械重复。(3)计算思维是人的思维,而不是计算机的思维。计算思维是人类解决问题采用的某种方式,它并非要求计算机代替人类思考,也并非要求人类像计算机那样思考。(4)计算思维是数学和工程思维的互补与融合。计算机学科从本质上既源于数学思维也源于工程思维,而数学和工程思维的互补与融合又很好地体现在理论、抽象、设计这3个学科形态层面上。(5)计算思维是一种思想、思维的方式,而不是人造物理实体。计算思维与人造的计算机设备不同,它看不见、摸不着,却以一种概念的形式影响人们求解问题、交流互动、管理日常生活的方式。(6)计算思维面向所有人,适用于所有领域。计算思维是一种普遍适用的思维方式,可以成为所有人解决问题的工具,融入各种人类活动。

2计算机艺术与计算思维

计算机艺术出现以前,有观点认为计算机科学家就只能运用抽象思维进行科学活动,而艺术家则只能运用形象思维进行艺术创作。事实上,正如诺贝尔获得者李政道教授所说:“科学与艺术是一枚硬币的两面,它们是不可分割的。它们都源于人类活动最高尚的部分,都追求深刻性、普遍性、永恒和富有意义。”科技发明和艺术创作作为人类在客观世界中活动的产物,都源于生活,彼此之间有着深层的共通性和关联性。随着社会进步和科技发展,科学开始追求概念美,艺术开始追求形象美,这令它们从不同的领域走到一起。而计算机艺术的产生与发展将使得科学与艺术的联系方式更为丰富和新颖,同时也将为各自的领域带来概念上的冲击和思维方式的革新。

现如今,计算机艺术作为科学与艺术相结合的一门新兴的交叉学科正被越来越多的人接受,众多艺术家也逐渐开始尝试使用计算机来进行艺术创作。计算机艺术的领域很宽泛,包括计算机绘画、书法模拟、计算机音乐创作、影视、舞蹈、广告设计、服装设计、图形设计、动画设计、工业产品和建筑造型设计等。目前,在计算机艺术中发展最活跃的当属计算机美术。计算机技术可以在美术设计的众多方面加以运用,例如在基础图案创作中的运用,在色彩调配中的运用,在立体设计中的运用等。计算机能够为传统美术提供更新颖的技术手段,绘画的技法和色彩的调配均可以借助计算机强有力的交互性操作完成;计算机音乐使得声音可以进行数字化处理,特殊的技术极大地提高了音效保真度,丰富了音乐表现力,使得音乐的质量和构造能力有了巨大的飞跃,配合计算机使用的软、硬件合成器可以生成各种仿真音效,使作曲者能够打破传统的创作思维模式,运用前所未有的创作方法编写出更为新颖、奇特的音乐作品;计算机技术对影视领域产生了巨大的影响,原始影片经过计算机数字化处理与加工,可以大大增强画面质量,增加丰富的数字特效,带来原始影片所不具备的视觉冲击,数字化的影像技术由正逐渐取代传统的影视制作。

随着计算机科学的发展、学科间的融合,计算机技术对其他学科产生深刻的影响,而在此过程中计算思维也已经在不知不觉间深入到其他学科之中,并正为众人使用:量子计算正改变着物理学家的思维方式;纳米计算正改变着化学家的思维方式;计算生物学正改变着生物学家的思维方式;计算博弈论正改变着经济学家的思维方式等。同样的,计算思维也正改变着艺术家的思维方式,影响着当今艺术创作者的创作观念和思维方式的转变与更新。

3计算思维在艺术院校存在的困难及认识上的误区

3.1计算思维对艺术类人才培养的重要性没有引起足够重视

计算思维的概念传入中国后很多人对计算思维的重要性认识不足,一种普遍的观点是:计算思维只是一种计算机应用能力,与其他专业的关系并不密切。事实上,计算思维是人类科学思维活动所固有的组成部分,是解决问题的一种通用方法,作为合格的高校大学生,应当具备计算思维的基本技能,艺术类学生也不例外;另一方面,随着艺术类学科的发展和转型,其与计算机学科的融合日益紧密,计算思维也影响着艺术创作者的思维方式,艺术类高校应该对艺术类学生的计算思维能力培养引起重视。然而目前的现状却是:大部分艺术院校仅将计算机作为一种工具,甚至认为计算机课程可有可无,没有深入研究计算思维在学生专业学习中的作用,更不要说培养计算思维能力了。

3.2对计算思维融入教学存在认识上的误区

计算思维的重要性逐渐被各大高校接受,部分高校甚至把“计算思维能力的培养”作为计算机基础教学的核心任务,然而由于经验不足,对计算思维在教学上的应用只能是摸着石头过河,也存在着一些认识上的误区,这些误区在艺术高校也普遍存在。例如:没有认识到计算思维是已存在的思维活动,是每个人都具备的一种技能,错认为只有计算机专业的学生要着重培养计算思维能力;没有认识到计算思维能力培养是一个长期的、潜移默化的过程,认为几节课就能够实现培养计算思维能力的目标;将计算思维能力培养的方式、方法看得太过简单,认为只要在计算机基础课程中使用了某种计算机编程语言,或是在课程中添加了有关程序设计、数据结构及算法实现等内容,就是计算思维;对计算思维认识不够深,研究不够充分,认为要实现计算思维能力的培养,就必须要开设程序设计类课程,也只能通过这一种方法,忽视了其他的学习途径。

3.3艺术院校学生计算机基础薄弱

由计算思维的概念可知,计算思维是一系列的思维活动,而这一系列的思维活动是以计算机科学的基础概念为依托的,因此,进行计算思维能力的培养,基础的计算机能力是必不可少的。然而,在艺术院校中,除了与计算机密切相关的专业外,大部分学生的计算机水平不高。笔者在本校从事计算机基础教学,教授过各个专业的学生,在此过程中发现,有些学生在高中时很少接触计算机,有些从未系统地学习过计算机,有些甚至连最基本的常规操作都难以进行。由于基本的计算机知识的缺失,让他们在大学算机基础课程的学习过程中感到困难重重,更不要说计算机编程、数据结构、多媒体等类型的课程。这种现状使得艺术类学生的计算思维能力培养更难以进行。

3.4缺乏合适的教学方法和手段

在艺术院校中,大部分学校开设了计算机基础及相关课程,但这类课程往往局限于概念、技术与应用。基于这样的教学目的,在教学过程中,教师所采用的教学方法和手段也会只侧重于基础概念的讲授、软件的基本操作等,这样做或许可以帮助学生掌握某一种软件的使用方法,却忽视了思维的过程。以photoshop这门课为例,教师往往按照软件的菜单功能按部就班进行讲解,认为只要将所有功能的操作或概念介绍一遍就算完成了这门课程的教学任务。殊不知了解软件功能到利用软件设计出优秀的作品还有很大距离。现有的教学方法没有引导学生进行思考,无法帮助学生提高计算思维能力。

4计算思维如何在艺术院校实现的几点思考

4.1分层教学、多样化教学

计算思维能力的培养不可能一蹴而就,而是循序渐进的过程。艺术院校的学生通常计算机能力比较薄弱,更应该从基础着手,再逐步实现计算思维能力的培养。如果在授课的开始就直接给学生开设难度较大的程序设计、数据结构等课程显然是不合适的,学生难以理解课程内容,兴趣缺失,学习效果自然不好。计算机类课程的开设可按照几个层次逐渐展开:首先普及计算机文化、熟悉计算机基础概念;然后培养专业应用能力,帮助学生熟知计算机在各自学科中的应用;在前面两部分内容中融入计算思维能力的训练。而不同的专业也可以根据自身培养目标,科学制订本专业的计算机科目教学要求,做到层次递进,有所侧重,通过分层教学,让学生在潜移默化中掌握计算思维的技能。

艺术学院校的专业类别相差很大,各个专业有不同的培养目标和不同的应用需求,同时,不同专业的学生计算机能力差别也非常大,因此,要尽量根据学生的水平及能力安排教学班级、组织教学内容。要培养学生的计算思维能力,对开设的计算机类课程需要满足多样化的要求。多样化首先是指内容和难度的多样化,即针对不同的专业、学生不同的需求开设内容、难度不同的课程。其次是课程的多样化,即在开设一门计算机基础课的基础上,开设一系列的计算机类相关课程。针对艺术类学生的特点,此类课程不一定必须是程序设计、数据结构这种明显打上计算机专业标签的科目,而可以根据不同的专业定制与计算机学科融合的交叉科目。

4.2采用合适的教学方式方法和手段

在计算思维能力的培养中,选择合适的教学方法也是至关重要的。大多数艺术院校的学生计算机理论基础比较薄弱,某些专业与计算机的相关性不大,如果直接向血色灌输枯燥的计算机理论知识,会让学生失去学习的兴趣和信心,因此,培养艺术院校学生的计算思维能力首先必须提高学生的学习兴趣,例如在教学过程中可以引入贴近学生日常生活的例子,通过合适的案例引导学生利用计算思维的思想去理解、分析专业问题;其次,为了使计算思维的学习能与学生自身专业融合,应当抽取出与所学专业相关而易于理解的问题,然后进行“简约”;同时,还可通过画出问题分析流程图的方式将问题进行细化,这样既可以帮助学生理解也易于分析问题的本质。通过不同的教学方法和手段逐步加深学生对计算思维的认识和理解,进而实现艺术学科问题到计算学科问题的转换。

以多媒体类课程为例,我校学生的社会实践活动非常丰富,为数不少的学生都参与过艺术表演活动或大型赛事的采编和播出工作。教师完全可以将这些案例引入课堂,让学生实际进行视频、音频录制,学习如何进行多媒体文件的压缩、类型转换以及多媒体软件的使用等,在具体操作过程中帮助学生掌握多媒体技术。同时,教师也可以准备一些水平较高的获奖作品,与学生自己制作的作品进行比对,分析学生作品的不足之处,引导学生自行思考:自己的作品和获奖作品的差距在哪里?如何改进自己的作品?为什么改进后会有更好的结果?这种案例加启发思考式的教学方法既能够帮助学生更为扎实的掌握理论技术和软件的使用,也可以让学生在日后遇到新的多媒体应用问题时可以举一反三,运用计算思维能力解决实际问题。

当然,在教学方法的选择上,以上列出的几种都不是唯一的可选项,只要能够突出实践能力、激发学生思维活动的教学方法和手段都值得尝试。通过教学方法的改革,加强对问题求解、设计与实现模型的学习与训练,向学生展现计算思维的魅力和基本思想方法。

4.3艺术学科与计算机学科融合,在教学中引入跨学科的元素

计算机思维如何培养篇5

关键词:计算思维;程序设计;课程改革

计算思维是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的系列思维活动。在信息社会中,计算思维是人类进行问题求解的有效工具,是每个人都应该掌握并学会使用的。近年来,由于计算机教育在中学阶段的普及,高校新生的计算机操作水平和计算机应用能力普遍提高,“大学计算机基础”课程教育的核心由原先的以计算机应用能力培养为核心转为以计算思维的培养为核心。

在大学计算机通识教育阶段,我们对计算思维的培养应当有效地融入每一堂课之中,即在大学阶段计算机基础课程学习的过程中,逐步培养非计算机专业学生在计算机环境下进行问题求解的思路、方法,使学生能用计算机学科独特的思想、方法来解决专业领域和实际生活中碰到的各种问题,并为将来创新性地解决专业问题奠定基础。

“C/C++程序设计”是大学生入校第一学年所学的计算机类基础课程,课程内容能够较好地体现语言级问题的求解方法,因此这门课也是学生最容易理解计算机求解问题的特点与方法的课程。如何在这门课程中培养学生的计算思维能力,是非计算机专业学生计算思维培养的重要内容,目前已经引起了众多教育者的关注,并进行了有意义的探索。在本次教学改革中,围绕计算思维培养这个核心,我们明确了“建立计算思维的概念,掌握计算思维的方法,培养计算思维的能力”的教学目标,有意识地将计算思维的培养融入教学的各个环节,使一系列的教学活动上升到了一个新的高度。

1.建立计算思维的概念

刚刚入学不久的新生在一年级下学期时,对程序设计还是陌生的。作为初学者,他们在学习中往往容易走人误区,将全部的注意力放在程序设计语言本身,而忽略了学习程序设计课程最应该关注的,也是最能让自己受益的事情:大脑的思考过程,即如何利用已知的信息解决问题的过程。

针对上述情况,在开学的第一次课上,我们并不涉及C/C++程序设计语言本身,而是从计算思维讲起。通过介绍什么是计算思维,计算思维的主要特点以及培养计算思维的重要意义等方面,引导学生建立起计算思维的概念。通过百元买百鸡、割园法求圆周率等经典问题的展示,引导学生感受和领悟计算机分析问题和求解问题的过程、思维模式和基本方法,从而让学生在学习程序设计之初,就在主观上明确程序设计课程的学习目标不仅仅是学习程序设计语言本身,更重要的是学习计算机分析和解决问题的基本过程和思路,即学会如何把实际的问题转化为计算机可以解决的问题,如何用计算机的方法求解问题,从而在以后学习的过程中,主观上积极主动地注重计算思维的培养。

2.掌握计算思维的方法

掌握计算机求解问题的各类方法,是培养学生计算思维的关键。以计算思维培养为核心的程序设计课程的重要任务之一,就是要在学习的过程中教会学生程序设计的方法和各类问题求解的算法,让学生更加深刻地理解计算机解决问题的思路和方法,提升计算思维的能力。C/C++程序设计课程中涉及的程序设计方法和算法如表1所示。

1)教学上以程序设计方法为主导,结合C/C++语言,把程序设计方法学中成熟的理论和方法,如结构化程序设计方法、基于功能抽象的程序设计方法(自顶向下逐步求精的程序设计方法、自底向上程序设计方法)、递归程序设计、面向对象程序设计方法等用通俗易懂的语言描述出来。

2)将程序设计中常用到的算法进行了归类,即枚举类、排序类、查找类、字符串处理类、字符图形打印类、数值计算类、递归算法等。在教学过程的不同阶段,分别引入这些算法。

3)注重通过算法的多样性使学生深入理解到计算机求解同一问题可用不同的方法,不同的方法适用于不同的情况。例如对数据排序的算法,我们会将选择排序、冒泡排序、插人排序、合并排序都介绍给学生,并让学生体会这些算法的不同之处。

3.围绕计算思维能力培养的教学实践

在程序设计课程的教学活动中,与计算思维培养相符合的教学方法,如案例教学法、问题驱动教学法等一直在被无意识地使用。在提出了计算思维的背景下,我们对理论教学和实践教学的各个环节进行了改革,并在教学活动中,主动地、有意识地培养学生的计算思维能力,取得了良好的效果。

3.1理论教学

在理论教学上,我们进行了两个方面的改革。

1)从计算思维的角度出发,按照问题求解的一般步骤重组经典案例。问题求解的一般步骤为:

问题抽象化的描述,问题表示(如何建立模型);

寻找解决方案,问题求解(如何设计算法);

计算机实现过程,效率(如何有效地求解);

现实问题的延伸。

将问题求解提升到计算思维的高度,使学生在求解问题的过程中,更加深刻地理解计算思维的本质,即抽象化和自动化。

2)将程序设计的语言与问题求解的过程分开。在讲解案例时,我们先提出具体问题,后引导学生去体会为了解决问题而产生的大脑思考过程:已知哪些信息,这些信息怎样转化为计算机可以理解的形式,要求的结果是什么,怎样通过已知的信息来求解,并将求解问题的方法,即算法作为教学的重点,让学生通过算法来理解计算机求解问题的思路。算法的描述可以用自然语言、伪代码或者流程图等。学生理解了算法的基本思想后,再引入程序设计语言来实现这一算法,编写代码并调试执行。这一方法加强和促进了算法的构建,训练了学生的程序设计水平,从而简化了对程序语言的复杂性的理解。

3.2实践教学

实践教学以学生自我学习为主,教师提供辅导和答疑。在实践教学内容的设计上,我们将每一章的教学内容分为程序调试、模仿写程序和问题求解3个层次,逐步提升学生的问题求解能力。

1)程序调试的案例中,根据以往的教学经验,将学生容易忽略的细节和易犯的错误预设在程序中。通过对预设的语法和逻辑错误的查找与修正,使学生更为深刻地理解程序设计语言的特点,夯实学生的语言基础。由于理论教学中,对语言细节的讲解不再作为重点,程序调试得尤为重要。

2)模仿写程序要求学生对老师已经讲解过的算法,能用相同的思想解决类似的问题,从而加深学生对知识的理解。例如讲解了用枚举法解决百元买百鸡的问题后,要求学生用枚举法解决学生课表排课、水仙花数求解等问题。实践课上,要求学生在上机之前先将算法以流程图的形式写在本子上,然后将算法转成程序代码,上机时只做代码的调试。这一方法能迫使学生思考,逐步理解计算机求解问题的方法和思路。

3)问题求解则要求学生能灵活运用所学知识,求解新的问题。例如在学习完数组和函数后,问题求解的题目为“编程求解农夫过河问题的解决方案”,要求学生按照问题求解的一般步骤,即问题的表示、求解的算法、代码编写与调试来操作。通过问题求解,不仅提高了学生的学习兴趣,巩固了所学知识,更重要的是提升了学生的分析问题和解决问题的能力。

3.3课程设计

为提升课程的教学质量,我们增加了课程设计环节,引入了应用程序开发,要求学生将数组、结构、链表和文件操作有机地结合起来,完成一个应用型、综合性强的大作业。

在课程临近结束时,学生用一个月的时间完成课程设计,任课教师会给出若干题目供学生选择,例如本学期课程设计的题目有八数码游戏、模拟手机通讯录管理系统、飞机票订票退票系统、日历打印与日期查询系统等12个题目。学生也可根据自己的专业和兴趣自己指定题目。例如今年同济大学交通专业的学生自我选择的题目为停车库车辆管理与查询系统。该题目设计的过程要求学生按照软件开发的步骤进行功能设计、数据结构设计、模块设计、代码编写、代码测试,并完成设计报告。

在课程设计环节中,学生不仅要将一个学期所学的内容融会贯通,编写一个完整的系统,还要考虑程序的正确性、容错性、算法的效率、对用户的友好性等,这样有助于引导学生探究问题求解的思路和方法,提高学生的计算机素质。

3.4考核

我们对考核进行了改革,在学习的不同阶段实施不同形式的考核,考核内容中增加了对问题求解能力的考核。具体做法是保留原来的期中和期末考试,考试内容为基本概念、程序调试和小程序的编写,考核学生对基本知识的掌握情况。在课程设计结束时,增加了综合编程考试,要求学生在规定的时间内,编程解决给定的问题,考核学生的问题求解能力。学生最后的成绩由3次考试成绩、课程设计成绩和实践作业成绩综合评定给出,使得学生成绩能更客观地反映学生的学习过程和学习效果。

值得一提的是,尽管在教学过程中我们弱化了语言细节的讲解,将讲解的重点转向了程序设计的方法和各类算法,但学生通过大量调试程序的练习,同样很好地掌握了语言本身的特点,能够正确地编写程序,在考核中取得的成绩不亚于往年。而通过课程设计,学生的分析问题、解决问题的能力也大大提高了,考核结果令人满意。

计算机思维如何培养篇6

关键词:计算机教学;学生;创新能力

党的“十三五”规划明确了科教兴国和人才强国的战略措施,明确了经济发展过程中,在提高现代教育整体水平的基础上,要重视科学技术,重视人才对经济发展的推动作用,增强对人才自主创新能力的培养,切实推动社会发展向着依靠科学技术进步的方向,壮大创新人才队伍,提高劳动者的整体素质,使社会发展向着管理创新转变,力求将我国快速的建设成为创新型国家。目前,我国已进入了网络时代,计算机技术被应用于各行各业中,社会对计算机教学培养出来的学生要求越来越高,对学生的职业素质要求也越来越高。计算机是高校热门专业之一,属于高校专业和课程设置中技术类的专业。因此,为了适应社会不断地发展,为了培养学生的创新能力,在具体的教学实践中,教育工作者要通过科学合理的教学方式,注重实施素质教育,最大限度地培养学生的创新精神和能力,挖掘学生的潜能。

1计算机教学的现状

计算机课程的设置和学校的教学行为能够促进我国高校学生计算机应用水平的提高。随着网络的普及,学生能够应用计算机完成学业、满足个人发展需要,不再是“计算机盲”,并且还能够胜任目前各类岗位中与计算机应用有关的职位。因此,计算机专业教学的开展不但成了高校教育质量发展的一个标志,还培养出了一大批计算机优秀人才,促进了我国新一代公民个人素质的普遍提高。计算机教学虽然取得一定的成效,但是还存着很多问题,如:很多计算机专业的学生对自己未来职业选择还比较迷茫,认为计算机教学的价值在于学习如何更高效地应用工具。同时很多计算机专业培养出来的人才类型与计算机技术发展始终不能保持同步。难以胜任较为高端的技术性职位。这些教学问题产生的根本原因都在于教师和学生忽视了计算机作为现代科技的创造力和发展趋势,始终把计算机当做一种工具类知识进行教学和学习,从而在学习的过程中,学生无法真正认识到计算机学习的用途,对计算机创造的乐趣也体验不到,导致计算机教学被限制在教材和已有的技术上,学生的职业规划也无从谈起。因此,计算机教学要进行一系列的改革,要以学生的创新能力培养为主,改善计算机教学的问题,突出计算机教学中的趣味性和发展空间,从而培养出更加优秀的人才。

2计算机教学中如何培养学生的创新能力

2.1转变计算机教学的理念,创造良好的教学环境

在计算机教学中,为了培养学生主动探究、勤于思考、自主学习的学习特点,教师要着眼于学生全面素质的提高,遵循素质教育的思想,更新计算机教学理念。同时教师要采取现代化的教学观念,以培养学生的实践能力作为侧重点,在教学组织和教学方法使用上,以实践促进学生的创新能力的提高,注重学生的学习差异性,采用小组教学的形式,在计算机教学的过程中要综合使用网络及多媒体等形式,充分调动学生学习自主性,树立以人为文本的教学理念,充分发挥学生主体地位,从而为学生创新思维的萌发奠定基础。另外,在计算机教学中,“任务”设置方式是一种行之有效的教学方法。为了激发学生的探究精神,在计算机教学中,通过布置任务,为学生创造性思维的发掘提供有利条件,为学生创设出思考问题的环境空间。“任务”要在学生具备任务解决能力的基础上进行设置,任务的难易程度要适度,同时为了让学生能够解决任务过程中的问题,要注重知识点的适度拔高,使学生能够对问题进行分析,并解决问题。并且在这一过程中,教师要做好引导工作,学生能够对所产生的问题加以全面的思考探究,从而为学生创新能力的培养开发营造较好的氛围。最后根据教学需求,通过具体生动的教学事例,有效提高教学密度,将计算机纳入到各个学科的教学实践中,实现学生学习知识的形象化,拓宽学生的思维。

2.2创设多样化的课堂,借助教学“任务”,开发学生的创新意识

课堂是培养具有创造能力和创新精神高素质人才的主要阵地之一,为了激发学生的求知欲,创设多样化的课堂,通过创设计算机教学问题情况,通过无穷变化的画面,能够为学生创造出激发创新思维的条件,刺激学生的大脑。如:为了让学生将自己掌握的信息出来,教师可以让学生“请”上讲台,让学生讲解,并提高给大家,让全班同学一起学习进步。并且可以根据具体的教学要求,将事物的发生发展过程以动态式组合、分解呈现出来,突破教学难点,让抽象化的讲授变得更加形象化和简单化,拓展学生的思维空间,促进学生的思维能力发展。另外,创新能力需要在多向思维的带动下才能形成,因此,为了拓展学生的思维能力,教师要借助多种教学手段,实现顺向思维、反向思维及多向思维的有机统一,注重教学中的“任务”。

2.3创新教学模式,以引导为主激发学生自主思维

传统的教学模式不利于学生综合素质及创新能力的培养,挤压了学生的学习自主空间。因此,在计算机教学中,教师要创新教学模式,着力推行引导式和问题式教学模式。引导式教学模式是充分认识到学生学习主体地位的教学行为,重视学生学习自主性的培养。教师在提出问题后,要启发引导学生运用多种思维进行综合分析,而不是急于向学生提供答案。并且在分析过程中,以小组的形式让学生进行充分的讨论,不断形成新的思路和想法。问题式教学模式能够锻炼学生自主学习探究的能力,是学生通过自主学习和合作学习的方式,将学习情境中产生的疑问进行探究,感知问题被后隐藏的知识,有利于学生创新思维的生成和发展。并且问题式教学模式还可以创建具有和谐宽松、平等自由的教学环境,鼓励学生积极的讨论,通过学生提出的种种疑问,保护学生思维中的创新“火花”,培养学生的想象及推理能力,让学生在思考问题时敢于发问。

2.4重视实践教学,积极拓展计算机第二课堂

在实践教学中,教师要注重培养学生的创新能力,为了深化巩固学生的原有知识,通过实践,在理论与实际相连中,让学生将课堂所学知识加以融会贯通,实现知识的学以致用。同时,为了让学生在实践中寻找到创新思维的施展平台,教师要积极组织各种实践活动,实现创新能力与实践动手能力发展的良性循环,如:专业知识竞赛、网页设计大赛等。另外,教师要充分调动其学生的学习积极性,将计算机课堂教学与课外社会生活相连接,通过各种途径激发学生的创新思维,积极拓展计算机第二课堂,借助课外生活的丰富多样性,实现学生的主动学习的目标,将课堂的内容加以延展,实现创新思维的突破。

参考文献:

[1]徐静丽.浅谈如何在计算机教学中实现创新[J].价值工程,2014(21).

计算机思维如何培养篇7

【关键词】计算思维;协作学习;教学实践;机器人

随着信息技术的不断发展,计算思维已被许多高校逐步引入到教学与培训中,在中小学信息技术课程中对计算思维在教育领域的研究还在探索阶段。我们开展了基于计算思维的协作学习的研究,研究中学教师如何在具体的课堂教学中,培养学生采用计算思维系列方法解决问题的能力;在培训中采用一种以小组活动为主体的协作学习的方法,培养学习者思维能力,培养学生合作学习能力。

《人工智能与机器人》是中学信息技术课的教学内容之一,如何结合计算思维特征及学生的认知情况,成立基于计算思维的协作学习小组,将机器人避障的程序设计任务转化成更为直观形象的方式。《避障机器人》的教学设计实践证明,这样的教学方法不仅能提高学生计算思维能力,更能体会到团队协作学习的好处,通过协作学习小组共同努力,完成搭建机器人和程序编写的能力,实现自己的实践动手能力和创新能力,这充分的满足了新课改对学习者科学素养培养的需求,也充分体现了学生的主体地位和教师的主导作用。

1教学目标

知识与技能目标:通过了解机器人中各传感器的功能,学会应用红外避障传感器编写程序,从而来提高学生解析问题的能力。

过程与方法目标:将机器人如何躲避障碍这一实际问题与生活中的盲人密切联系,通过协作学习小组共同思考解决的途径和步骤,通过搭建机器人和程序编写的完整过程,理解机器人避障的算法,实现机器人避障的任务。

价值观目标:通过搭建机器人和机器人避障的实现培养学生对机器人特别是对信息技术课程的学习兴趣,充分满足新课改对提高学生实践动手能力、团队协作能力和创新能力培养的需求。

2教学设计

《避障机器人》的教学设计中,无论是《避障机器人》的课程导入,划分协作学习小组和课堂教学的实施,都按照计算思维和协作学习方法的要求来进行。搭建机器人的教学过程紧密联系生活,就是计算思维的过程;机器人避障的程序设计过程就是通过协作学习小组,共同将问题转化成更为直观形象的方式来完成。从而极大的提高了协作小组学习的主动性,在教学过程中不仅能提高学习个体合作沟通技能,更能提高学习者计算思维能力,使学习者学会运用计算思维方法实现教学目标。

2.1课程的导入

通过剖析问题与现实生活中的联系,抓住学生的注意力,找出能引发学生感兴趣的更贴近学生对现实生活的了解情况,提出激发学生计算思维的问题。

《避障机器人》的课程导入:

我们自己遇到汽车、树木、栏杆等许多障碍,通过自己的眼睛能够躲避,而对于盲人呢?怎样可以帮助他们躲避障碍物呢?可不可以制作一个机器人来帮助盲人躲避障碍物呢?

这里的导入贴近学生平时的所见,用计算思维的方法把一个在学习中比较困难的问题,用一个直观形象的贴近生活且具有趣味性的方法来解决。区别于传统教学中教师一开始就进入教学环节,不管学生动不动脑筋,接受得了还是接受不了,满堂灌给学生学习知识。因为中学的学生本身基础就差,当遇到学习困难时,这样的结果是使大部分学生不但不会联想如何把所学的信息技术知识运用到实际生活中,而且会望而止步,厌恶学习。在导入新课的过程中,教师以计算思维的思想将相对困难的知识点转化成学生易于接受的问题,教学效果得到了提升。

2.2划分协作学习小组

在学习“避障机器人的制作”时,教师根据教学任务和学生之间在配合、信息方面的协调等情况,采用计算思维的预置方法,根据学生人数的多少及教学内容,确定划分成六个小组,每个小组5人,其中3人负责机器人程序的设计,2人负责机器人的搭建,促使每个学生都能融入到课堂中,不会产生过去传统教育划分不合理,有部分学生偷懒,不参与小组学习的情况。一方面强调小组成员间的合作互助,另一方面致力于培养学习者合作学习能力,从而提高了课堂教学质量。

2.3实施教学任务

教师在良好的协作学习环境下,运用计算思维的方法来分解复杂任务。通过我们自己和机器人联想,在协作小组,互相补充,这样在学习机器人过程中更容易理解各部件的联系,可以逐步理解并掌握机器人中红外传感器、微电脑、高速电机等部件的功能和作用。学生也能在学习中触类旁通,以后也能够灵活运用所学的知识解决该类问题,锻炼学生分析问题、思考问题的能力。

2.4指导协作小组学习

避障机器人制作的难点一是如何知道前方有障碍物,二是知道有障碍物要转向走开,教师就可以根据这两点对协作小组进行机器人控制程序指导。

如同我们人通过眼睛来知道有障碍物一样,机器人看到障碍物,也需要一个眼睛,指导学生在程序中需要添加红外避障传感器模块,这就解决了第一个问题。下一个问题,有障碍要转向,那么没有障碍呢?又有两种情形,引导学生采用计算思维中分解方法来解决问题。

学生在协作学习小组中共同思考、相互补充,避免了传统学习过程中依赖老师被动接受知识的情况,并掌握了计算思维中分解问题的方法,遇到类似问题时就会联想到用此类办法去解决问题。在此过程中,教学效果与学习效果均得到提升。

3小结

笔者从事信息技术教育教学工作中,把计算思维方法融入到目前已成熟的教学和学习方法中,开展了基于计算思维的协作学习的研究,研究中学教师如何在具体的课堂教学中,培养学生采用计算思维系列方法解决问题的能力;在培训中采用一种以小组活动为主体的协作学习的方法,培养学习者思维能力,培养学生合作学习能力。通过这样的教育和学习方式,协作小组能够更好的利用计算思维方法进行协作学习,拓展所学的知识,并验证了基于计算思维的协作学习方法是一种能有效提高学生计算思维能力的教学方法。

【参考文献】

[1]李峰,王庆吉.计算思维:信息技术课程的一种内在价值[J].中国电化教育,2013(319):19-23.

[2]陈h.基于计算思维的中学信息技术教育的研究[D].江苏:扬州大学,2012.

[3]牟琴.基于计算思维的计算机基础课程教学与学习模式研究与实践[D].四川:四川师范大学,2012.

计算机思维如何培养篇8

离散数学作为计算机类专业的核心基础课程,具有知识点散、概念多、理论性强、高度抽象等特点,被广大师生认为是一门既难教又难学的课程。离散数学教学内容包括数理逻辑、集合论、代数结构和图论等四部分,它在各学科领域,特别在计算机科学与技术领域有着广泛应用。从科学计算到信息处理,从理论计算机科学到计算机应用技术,从计算机软件到计算机硬件,从人工智能到认知系统,无不与离散数学密切相关。通过离散数学,不但可以掌握处理离散结构的描述工具和方法,而且可以增强抽象思维,培养严谨的逻辑推理能力,为创新型研究打下基础,对后续的计算机专业课程,比如程序语言、密码学、数据结构等核心课程,提供了必需的理论基础。更为重要的是通过逻辑推理、离散结构以及构建模型等方面的学习和研究,可以提高学生的数学思维能力和实际问题求解能力。离散数学本身的课程内容虽然具有一定的联系,但又自成体系,容易给学生造成各部分内容互不相连的错觉,从而无法明确该课程学习目的。另一方面,离散数学课程中,定义和定理比较多,抽象难懂,学生一时难以理解和记忆。通过调查发现,大部分计算机专业的学生普遍对离散数学并不感兴趣,认为本课程对专业知识和逻辑能力的培养没什么作用,甚至于有些老师认为该门课程可开可不开,进而压缩上课课时。因此,如何有效地开展离散数学教学改革是一项非常值得研究的课题。本文在分析了计算思维与离散数学之间的内在关系基础上,重点探讨了如何在教学内容和教学方法两个方面展开改革以加强学生计算思维的培养。

一、计算思维与离散数学

根据周以真教授的定义,[1]计算思维是运用计算机科学的基本概念来求解问题、设计系统和理解人类行为,包括了一系列广泛的计算机科学的思维方法。比如,在解释一个看起来比较复杂的事物时,计算思维通常会采用约简、转化、仿真等思维方法;在处理复杂的问题时,通常会采用抽象以及分而治之的思维方法。计算思维采用多视角、最适合的表示方式来表述一个问题,或者对问题的某个特定方面进行建模,从而使问题易于理解和处理。周以真教授认为一个人具备计算思维能力体现在如下几个方面:给定一个问题,能够理解其哪些方面是可以计算的;能够对计算工具或技术与需要解决的问题之间的匹配程度进行评估,能够理解计算工具和技术所具备的能力以及其局限性;能够识别出使用新的计算方法的机会;能够在任何领域应用诸如分而治之等计算策略。

离散数学作为计算机相关专业的一门重要基础课,它所研究的对象是离散量的结构以及相互间的关系,其内容对后续的数据结构、编译原理、数据库原理、人工智能等计算机核心课程都具有非常重要的作用。通过学习离散数学,可以培养和提高学生的抽象思维和逻辑推理能力。而抽象思维和逻辑推理恰恰是计算机科学最常用的思维方法,也可以说是计算思维的核心所在。因此,离散数学教学内容所蕴含的思维方法恰恰体现了计算思维,另一方面,也可以从计算思维所包括的思维方法角度重新审视和梳理离散数学的教学内容,从培养计算思维和解决实际问题两个角度展开教学内容和教学方法方面的研究,更好地进行离散数学的教学,从根本上解决传统离散数学教学中所面临的问题。

二、基于计算思维培养的离散数学教学内容改革

在离散数学的教学中,讲授的具体知识点基本都涵盖了计算思维中其它基本概念和思维方法。比如数理逻辑部分就涵盖了归结推理、约简等常用的思维方法,等价关系涵盖了软件测试中常用的样本点选取的思维方法;代数结构涵盖了抽象的思维方法。为了更好地展开教学,针对离散数学的教学内容进行了基本概念和思维方法的抽取,并在实际教学过程中将这些计算思维中的方法传输给学生。例如,在讲解数理逻辑中的归结推理方法后,将以伪代码的形式表达其算法,并且鼓励学生利用LiSp语言完成命题逻辑的归结推理算法。同时,在给出归结推理算法后,对算法的复杂度、完备性、可终止性等问题进行简单论述,从而告知学生谓词逻辑本身是不可判定的。下面两个表格(见表1、表2)列出了在教学过程中整理出来的部分教学知识点与计算思维的对应关系。限于篇幅,在此不一一阐述。

三、基于计算思维培养的离散数学教学手段改革

在对教学内容进行改革的基础上,采用何种有效的教学手段展开教学,是能否培养学生计算思维能力的关键。在教学过程中,主要采用两种方法:归纳学习法和案例驱动法。

所谓归纳学习法是通过归纳思维,形成对知识的特点、中心、性质的认识、理解与运用。在教学过程中,讲解完具体的教学内容后,都会将其蕴含的计算思维方法进行归纳总结,并利用其蕴含的计算思维方法去解决一个实际生活中的问题,比如:在讲解完代数系统部分的内容后,其蕴含的主要计算思维方法就是抽象,从而可以将有理数四则混合运算、实数运算和复数运算等抽象为代数系统。然后,就可以引入面向对象程序语言中的抽象概念,包括类、对象等,很好地将离散数学中的教学内容与学生所熟悉的编程语言有效地结合起来。一方面,加深学生对教学内容的理解,另一方面,学生能够灵活运用所学的计算思维解释现实问题。

归纳学习法是从教学内容出发,提炼计算思维,解决现实问题的过程。而案例驱动教学法则是根据现实问题,使用计算思维引出教学内容的过程。在教学过程中,如果突兀地引入具体的教学内容,而不对其应用场景进行阐述,大部分学生都会感觉无法理解。为此,引入了案例驱动教学法。例如,在介绍最短路径算法时,一般先引入旅行商问题,然后利用抽象的思维方法将一些无关的因素去掉,进而构建出一个抽象图的形式呈现出来的模型,自然地引入了最短路径算法。同时在算法介绍过程中,可以对权值所表示的含义进行解释,既可以表示时间也可以表示路长,从而产生两种不同的路径。最后可以让学生把这一问题推广到软件项目管理中关键路径的处理,激发更深层次的思考。在讲述欧拉图的时候,可以类似地展开案例教学法。首先,给出著名的哥尼斯堡七桥问题,然后利用抽象的计算思维方法忽略桥的宽度、距离等无关的因素,从而对哥尼斯堡七桥问题进行建模,自然地得出欧拉图的定义。

四、结束语

作为计算机相关专业的核心基础课程,离散数学为计算思维能力的培养提供了一个很好的平台,也为更好地展开离散数学教学内容的组织和教学方法的改革提供了思路。本文在分析离散数学教学内容和计算思维的内在关系基础上,从教学内容和教学手段两个方面进行了一定的探索,将计算思维的培养有机地结合到离散数学的教学过程中。从教学效果和学生反馈来说,都取得了显著的成效。然而,在加强了计算思维的培养之后,还要求能够应用新的思维方法解决具体的专业问题,能够推陈出新,提出新的思维方法。这些方面仅仅依靠离散数学的教学还远远不够,需要将计算思维的培养理念贯穿于各个专业课程的教学过程中。

参考文献:

.CommunicationsofaCm,2006,49(3):33-35.

[2]周以真.计算思维[J].中国计算机学会通讯,2007,3(11).

[3]李国杰.计算思维不仅仅属于计算机科学家[n].大众科技报,2009-08-02(B01).

[4]孙家广.计算机科学的变革[J].中国计算机学会通讯,2009,2.

[5]廖伟志,李文敬,王汝凉.计算思维在离散数学课堂教学中的应用[J].计算机科学,2008,35(11).

计算机思维如何培养篇9

教育部高等学校计算机基础课程教学指导委员会在《高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求》中给出了计算机基础课程教学的4个教学模块,即①系统平台与计算环境,包括信息与社会、计算机系统以及计算机网络;②算法基础与程序设计;③数据管理与信息处理;④系统开发与行业应用[1]。尽管如此,大学计算机基础课程的教学内容到底应该包括哪些模块仍然莫衷一是。然而,无论哪所大学,无论从事计算机基础课程教学的教师秉持何种教学观念,计算机系统和算法基础与程序设计已是计算机基础课程教学中两个最主要的教学模块,这一点已经达成共识。

另一个共识是在大学计算机基础课程教学中要注重探索和培养学生的计算思维。目前,计算机基础教学中对计算思维探索与培养的侧重点基本放在基于问题求解的“算法基础与程序设计”教学模块上,在“计算机系统”教学模块中则体现较少,究其原因是算法、程序设计等软件教学方面的内容,与计算及问题求解的关系更为密切。若要将计算思维作为思维模式进行培养,则应将其贯穿于课程教学的全过程,那么,计算机系统教学模块也概莫能外――这句话可以从两方面进行解释,一是计算机系统教学模块内部要体现计算思维,二是计算机系统教学模块中的计算思维作为完整的计算思维过程链中的一环,甚至是最基础的一环,要为全过程、全方位的计算思维培养提供原理支撑。我们对计算机系统教学模块中的计算思维进行研究。

2计算机系统教学模块中的计算思维框架模型

?算思维贯穿计算机系统模块教学的始终。计算思维应该是一条线,将计算机系统的核心知识点像串珍珠一样串起来,培养学生从机器本身和计算机科学家这两个思维角度理解计算机系统的底层运作机制;在此基础上,计算机是实现问题求解的手段,计算思维则是人类求解现实问题的一条途径[2],是一种解决客观世界各种可计算问题的思维方法。

基于以上思路,我们将计算机系统教学的核心知识点概括为计算思维框架模型,如图1所示。结合该框架模型,我们对计算机系统中计算思维的本质和3种重要的计算思维进行归纳。

3计算机系统教学模块中计算思维的本质

计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类行为的一系列思维活动的统称[2],其本质是抽象和自动化,即在不同层面进行抽象并将这些抽象机器化或自动化。

对于客观世界中的某个可计算问题,要映射到计算机世界去求解,通常需要两个步骤:一是将待求解问题抽象为可计算的概念模型;二是对于概念世界中的概念模型,用物理的计算机世界来实现与求解。前者体现计算思维的本质之一――抽象化,后者反映计算思维的本质之二――自动化。

抽象是一种很好的管理复杂性事物的思维方法。好的抽象可以把一个几乎不可能管理的任务划分为两个可管理的部分:第一部分是有关抽象的定义和实现;第二部分是随时用这些抽象解决问题[3]。

“抽象的定义和实现”可以理解为领域内的、深刻反映外部世界的一些通用概念,在计算机系统教学中,就是指学生通过学习各个知识点来理解计算机系统的底层运作机制;“用这些抽象解决问题”意味着学生不能以客观世界的事物为起点开展思维,而应该以计算机系统中的抽象概念为起点分析待求解问题,包括用抽象概念代表待求解对象,用概念间的关系来代表待求解对象之间的关系。到此时,具体而复杂的现实问题被抽象为一个可计算问题,现实世界在抽象的计算机概念世界中得到再现。

“随时用这些抽象解决问题”意味着计算机要将抽象概念机器化、自动化。虽然计算机的计算能力日益强大,应用范围日益广泛,但是从本质上来说,计算机的基本功能很简单,即通过执行程序进行信息处理[4]。信息处理包含两方面的意思:一是构造求解问题的算法和程序;二是程序在机器层面的自动执行,即自动化。

抽象和自动化这两种重要的研究思维模式,对于用计算手段求解现实问题是非常有效的,能为其他的计算思维奠定基础,因此,教师在教学中要注重培养这两种思维模式。本质上来说,现实问题的计算和问题求解是不同层面的抽象以及抽象之后的自动化,这种抽象和自动化通过二进制思维、指令自动执行思维、程序自动运行思维3方面得以体现。

43种计算思维

4.1二进制思维

要将待解决问题表示成可计算的对象,就是要将该问题抽象为可描述的数学模型,并将可计算对象及其特性符号化,符号可以是数字、文本、图形图像、声音、视频等,统称为该对象的数据信息(包含数值性和非数值性)。计算机本质上是二进制(0、1)的世界,即可计算对象的数据信息都要表示成计算机可以处理的符号――0、1。在二进制的世界里,所有的二进制运算都可以用逻辑运算代替,而香农在题为《继电器和开关电路的符号分析》的论文中指出“由继电器、晶体管等电子元件组成的逻辑电路可以实现所有的逻辑运算;然后,再通过集成各种复杂的逻辑电路得到不同功能的硬件――处理器、内存储器、i/o设备,最后,在一定的体系结构下将这些硬件结合在一起,实现计算机的信息处理功能”。由此可见,从客观世界到计算机世界的纽带就是二进制(0、1)。

二进制思维是一种将客观事物符号化、符号二进制化、二进制电子化和电子集成化的思维过程,是一种非常重要的计算思维。教师在教学中要培养学生多从机器的思维(客观事物二进制化的抽象思维)和计算机科学家的思维(怎么实现二进制化,即二进制电子化和电子集成化的自动化思维)这两个角度学习及思考,这种代入感对于学生掌握计算机系统运行原理和培养学生的计算思维都有事半功倍的效果。

在教学实践中,为了培养学生的二进制抽象思维,可以采用事物编码的方法。第一步,利用二进制方式对事物进行编码,若用0001表示计算机类,则可用000101表示微型计算机类;第二步,利用编码方式表达事物之间的静态联系,如整体与部分的关系,若用0001010001表示一台微型计算机,则可用000101000110表示该计算机的第二颗CpU,由此,学生可利用二进制编码逐渐建立出一个符号化的静态世界;第三步,利用二进制编码方式表达事物之间的动态关系,如前述的“微型计算机第二颗CpU开始运行”这个概念,可以使用01000101000110表达,前面两位数“01”表示“开始运行”的操作码,后面12位数“000101000110”是操作数,由此,学生可以利用二进制符号化、抽象化地表达世间万物及其之间的关系,同时也能为后续计算机指令的表达方式作铺垫。这些步骤可以让学生深入理解机器是如何理解和表现世界的,从而切实了解机器思维。在将现实世界抽象为符号世界的基础上,我们继续探讨了计算机科学家们是如何从抽象的符号世界走向物理的电子世界的。

4.2指令自动执行思维

将待求解问题表示成可计算对象后,怎么基于计算手段来求解呢?问题的求解方案可以抽象为基本动作以及基本动作的各种组合所构成的动作序列,因此,我们将基于计算手段的求解方案的实现转换为对抽象的定义和抽象定义的自动化实现:①定义这些基本动作;②实现控制这些基本动作并按次序执行的机构。对这些基本动作的控制就是指令,为求解问题而将指令按一定次序进行组合就构成程序。程序(指令序列)经输入设备输入并存储在内存储器中,处理器从存储器中一条接一条地顺序读取并执行这些指令,以实现信息处理的功能。由此可见,计算机系统是根据程序来自动控制这些基本动作的执行,从而完成问题求解。人的任务是编制程序――将待求解问题转换为程序,通过程序运行达到解决问题的目的。

指令自动执行思维体现的是指令如何被表示、如何被存储以及如何被CpU(控制器和运算器)执行的基本思维。

教学实践中,通过二进制思维的培养,学生掌握了指令二进制表达方式的基础。在此基础上,一方面,教师可以通过图示、动作分解、寄存器状态再现、i/o分时动作等方法,重点分析指令表达及其存储、指令的自动执行等知识点,增强对学生指令自动执行思维的培养;另一方面,教师可以让学生利用DeBUG命令实验验证计算机指令的存储、执行以及结果,让学生切身体会指令自动执行的过程和效果。

4.3程序自动运行思维

指令自动执行思维是从微观角度思考指令与硬件的交互,再通过拓宽思维,从宏观角度思考程序借助操作系统与硬件的交互和自动运行。

操作系统是程序和硬件之间的接口,负责向应用程序提供简单一致的机制来控制复杂而原理各异的底层硬件设备[5]。这个简单一致的机制就是“抽象”,也是计算机管理硬件的关键。这些抽象主要包括文件、地址空间和进程,其中,文件是对i/o设备的抽象表示,它为程序创造了一个抽象的永久存储设备;地址空间是对内存和i/o设备的抽象表示,该概念为程序创造了一个抽象的独立的内存;进程则是对处理器、内存和i/o设备的抽象表示,进程概念创造了一个抽象的独占的处理器以运行程序。在此基础上,程序和硬件之间的交互以及自动运行主要是利用操作系统提供的、比实际硬件更方便使用的抽象来实现,包括程序及其数据被合并成一个文件并保存在i/o设备上,程序运行时,处理器将这个文件加载到“独立的”地址空间,然后该进程被“独立的”处理器执行。

程序自动运行思维体现的是在操作系统的协助下程序被硬件自动运行的思维。在教学实践中,我们一方面补充讲解计算机操作系统的必要内容,如文件系统管理、内存管理、进程管理等相关知识;另一方面?t结合生活中的实际问题进行实验,如批处理文件的编写、文件i/o操作与ntFS文件系统的关系等。通过这些与日常学习生活非常贴近的知识和实验,学生不仅对操作系统和计算机硬件系统之间的协作有了更深入的理解,同时也培养了他们的程序自动执行思维。

指令自动执行和程序自动运行思维是一种构造性的问题求解思维,即一个问题的求解可以通过构造其算法和程序来解决,因此这两种思维对于培养学生利用算法和程序手段求解客观现实问题具有重要的意义。

5结语

计算机思维如何培养篇10

【关键词】计算思维C语言程序设计教学案例设计中图分类号:G642

课题资助:陕西省教育科学“十二五”规划2014年度课题(SGH140896)。

计算思维

计算思维的概念是由美国卡内基・梅隆大学计算机科学系周以真(Jeannettem.wing)教授于2006年提出的教育理念,2013年,周教授接受《中国信息技术教育》杂志社刘向永记者的访谈时对计算思维进行了诠释[1-3]。

国外的众多研究者涵盖计算机教育界、社会学界以及哲学界等各个领域对计算思维进行深入的研究[4]。aCm和ieee-CS在修订后的《计算机科学教程2008》(ComputerScienceCurriculum2008)[5]79-84中明确指出应该将计算思维作为计算机科学教学的重要组成部分。

在国内,基于计算机技术和internet技术的飞速发展,培养大学生计算机综合能力,提高大学生使用程序语言解决问题的能力,是当今大学生计算机基础教育的核心点之一[6]。根据《中国高等院校计算机基础教育课程体系2008》的规定,高校程序设计基础课程的学习目标是:

⑴学习问题求解的思路和方法,即算法。

⑵理解计算机是如何具体实现算法的,即如何才能有效利用计算机编程。

因此在程序设计课程教学任务中,不仅要使学生掌握程序语言的语法规则来编写程序,更重要的是掌握算法思想与问题求解的思路,而计算思维正是使学生掌握使用计算机科学对问题进行求解的一种思维方法和能力。

国内外的众多学者把计算思维能力的培养视为教育界改革的重要研究范畴,特别是在计算机教育领域,进行了多年的研究与探索。如何将计算思维的理念融入到计算机教学中,培养学生计算思维能力,成为计算机教学研究的焦点和改革的突破点,并在此研究中取得了一定的成果,但在程序设计课程教学中培养计算思维尚未形成一套完整的教学模式,仍处于探索阶段。

如何将计算思维真正融入程序设计课程中,我们进行了一定的探讨,在多年的程序设计课程教学中总结了一定的经验,基于计算思维的案例教学法比较适用,但是如何设计合理有效的设计案例是案例教学法成功的关键。

以计算思维为导向的教学案例设计原则

托尔说:“一个出色的案例,是教师与学生就某一具体事实相互作用的工具;一个出色的案例,是以实际生活情境中肯定会出现的事实为基础所展开的课堂讨论。它是进行学术探讨的支撑点;它是关于某种复杂情境的记录;它一般是在让学生理解这个情境之前,首先将其分解成若干成分,然后再将其整合在一起。”

对C语言程序设计课程的教学任务而言,更重要的是使学生学习计算机分析、解决问题的思路和方法[7]。因此,在C语言程序设计课程教学过程中,一定要避免只重视程序设计语言的语法规则的错误思想,在将计算思维的培养作为教学核心任务的教学过程中要重视程序设计方法,而不是语言本身,不仅要求学生用计算机读得懂程序,编写和调试代码,更重要的是要学会如何设计算法,从而开发学生的主动性和能动性。

如何设计以计算思维为导向的程序设计案例,是案例教学法的核心,经过多年程序设计课程教学的经验,将程序设计课程的教学案例设计原则总结如下:

1.案例选题的生活化

在教学案例的选择中坚持生活化、常态化的原则,即选择贴近生活、学生比较熟悉的问题,让学生在熟悉的问题下思考解决方法,这样可以缓解学生对程序设计的畏惧感。在学生给出问题的解决方法并用计算机进行求解后,学生会有一种恍然大悟的感觉,他们从中认识到计算机竟然能这么方便地用以解决日常生活中的问题,从而消除对程序设计语言的抽象、枯燥的感觉。这样生活化的案例在问题的求解中激发学生的学习兴趣,让学生在兴趣盎然的氛围中学习,感受到程序就在身边。而对生活化的问题求解锻炼了学生日常问题求解的思维,从而培养学生的计算思维。

2.案例涵盖知识点的典型化

根据每节课的教学目标和教学内容的需要适当选择教学案例,将本节课的教学内容涵盖在案例的解决中,同时要符合学生的认知水平,案例的设计既是学生平时耳闻目睹的,但又了解不深的普遍问题,这样可使学生对这些问题的实际背景容易接受,从而愿意去深入了解,这样的案例可以使学生更容易理解教学内容,同时能够让学生触类旁通,利用所学知识解决类似问题。

3.案例问题的提出和解决的程序化

使教学案例的设计与计算思维相结合,在案例问题的解决中注重算法的设计,方法的选择,培养学生独立解决问题的能力,并在案例中适当添加程序语言,使学生在问题解决的同时可以使算法程序化,这样既可以培养学生的计算思维,又可以培养学生的程序思维,使枯燥无味的程序语法知识顺其自然地在案例中学习,从而提高学生应用计算机知识抽象和分解问题的能力。

典型案例解析

根据课程教学目标和教学内容,以选择生活化、常态化的案例为原则,以计算思维为导向的程序设计案例的选择原则,让学生体会到如何用计算机解决问题的方法来解决日常生活中的问题。下面以一个典型案例的设计为例具体实现案例设计和应用。

教学内容:指针和数组。

教学目的:掌握指针和数组的定义以及使用。

教学重点:指针和数组的定义及使用。

教学难点:指针和数组的使用。

针对C语言程序设计课程中指针和数组知识的学习,下面给出一个常见问题求解的案例,这一案例同样适用于数组知识的学习,只是案例中问题求解的方式有所变化。

1.问题提出:根据二代居民身份证号确定此人性别的问题。

2.常识解答:居民二代身份证号共18位,从左向右前6位为户口所在地,第7~14位共8位为出生年月日,第15~17位为顺序位(同地区同年同月同日生的人的顺序编号)其中第17位代表性别(奇数为男、偶数为女),最后1位为校验位。

3.问题求解:从18位数字中取出第17位,然后判断奇偶性,奇数为男、偶数为女。

对分解后的两个问题,针对不同的理论学习内容,我们有很多种解决方法,如:使用函数提取字符串中的一个或多个字符、使用数组下标提取数组元素、使用指针提取数组元素等多种方法。下面针对指针的学习给出求解方法。

4.求解方法:

Step1:利用数组存储给定的18位数字,利用指针的移动提取第17位数字;

Step2:用取出的第17位数字与2模除取其余数,判断奇偶性。

5.算法分析:针对以上问题的求解方法为例写出相应算法:

Step1:定义整型数组a,整型变量b,整型指针变量p;

Step2:将18位身份证号赋值给a数组,指针p指向数组的首地址;

Step3:移动指针指向第17位数字;

Step4:指针提取第17位数字后模除2取余数赋值给b变量;

Step5:判断b的奇偶性,如果是奇数则是男,如果是偶数则为女;

Step6:输出结果。

6.问题求解方法的代码化:

#include

main()

{

inti,c,a[18]={1,5,0,4,2,8,1,9,8,9,0,6,0,8,1,2,3,3},*p;

p=a;

for(i=0;i<16;i++)

p++;

b=*p%2;

if(b==1)

printf("%s\n","男");

else

printf("%s\n","女");

}

这一案例是非常生活化的案例,每个人都有身份证号,但是将这样一个常见问题用程序设计语言在计算机上实现确实不是一件容易的事情,结合教学内容和教学目标,将问题的解决方法限定在指针和数组的使用,更是加大了问题的解决难度。就案例分析和问题的解决而言,让学生选择多种解决方法,训练学生如何将生活中的问题用计算机来解决,同时掌握指针和数组的定义、赋值及使用等基础知识。使学生在案例分析和算法设计时培养了计算思维能力,同时让学生在有趣的案例中学习相对枯燥的理论知识。

总结

大学教育更多的是素质的养成,能力的培养,正像一条教育格言讲的:“tellmeandiwillforget.teachmeandiwillknow.involvemeandiwilllearn.”在大学教育中,要少一些灌输,多一些参与。《C语言程序设计》课程的传统教学存在一定的问题,在多年的程序设计课程教学中提出以计算思维为导向的案例教学法,并针对教学案例设计的核心问题进行研究,针对传统教学存在的问题,以计算思维为导向,总结了教学案例设计的原则,设计了教学案例。通过《C语言程序设计》课程教学实验证明,提出的以计算思维为导向的程序设计教学案例设计方法是有效的。学生通过案例教学可以提高学生的学习积极性和主动性,大众化的案例解决在使学生掌握了相关理论知识的同时培养了学生分析和解决问题的能力,培养了学生的计算思维。

参考文献:

[1]Jeannettem.wing,“Computationalthinking,”CommunicationoftheaCm,no.49(mar.2006):33-35.

[2]刘向永、周以真:《计算思维改变信息技术课程》,《中国信息技术教育》2013年第6期,第5-12页。

[3]周以真:《计算思维》,《中国计算机学会通讯》2007年第3卷第11期,第83-85页。

[4]《九校联盟(C9)计算机基础教学发展战略联合声明》,《中国大学教学》2010年第9期。

[5]“Cm/ieeeComputerSocietyinterimReviewtaskForce,”Computersciencecurriculum2008:aninterimrevisionofCS2001,accessedJune28,2010,http:///education/curricula/.

[6]教育部高等学校计算机基础课程教学指导委员会:《高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求》,高等教育出版社,2009。