论文部分内容阅读
摘要:近年来,计算学科不断发展,文章首先介绍了计算思维的定义,分析了程序设计在整个计算思维的地位和作用,指出了在程序设计课程教学不能停留在知识传授、技术与应用的地步,要提升到计算思维高度,并强调了程序设计课程教学对计算思维能力培养的重要性,最后按照计算思维核心内容,探讨了程序设计课程设置、教学方法及教学手段。
关键词:计算思维;程序设计;课程改革
2006年,美国周以真(Jeannette Wing)教授清晰化、系统化阐述了计算思维定义,她认为,计算思维代表一种普通的认识和一类普适的技能,不仅仅是计算机科学家、计算机从业人员,每一个人都应该热心于它的学习和运用;国内也不断对计算思维开展研究,从2010年,西安首届九校联盟计算机基础课程研讨会提出的需要把培养学生的“计算思维”能力作为计算机基础教学的核心任务;同年,陈国良院士提倡将计算思维引入计算机基础教育。各高校纷纷开展计算思维教学改革研究,计算思维教学得到了国内外教育专家的重视,把计算思维能力培养作为大学生一项通识技能被大家达成共识,并纷纷开展以计算思维为核心的课程改革。
1计算思维
作为3大科学思维之一,计算思维概念自古就有之,从古代算筹、算盘、到近代的差分机、打孔卡片控制的自动织布机,到现在的电子计算机、互联网,从风靡的物联网与云计算到国家发展纲要中的互联网+、智能制造2025、大数据,计算思维无处不在,不断推进国家在科技、工程和技术领域的全面改革。计算科学已对其他学科、其他行业产生了重要影响。但是,计算思维经常被朦朦胧胧地使用,却一直没有提高到周以真教授所描述的高度和广度,以及那样地新颖、明确和系统。没有进行清晰化和系统化。
周以真认为,计算思维是运用计算机科学的基本概念进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动。计算思维的本质是抽象和自动化,如同所有人都具备“读、写、算”能力一样,计算思维是必须具备的思维能力。
2程序设计与计算思维
就像周以真教授所说:像计算机科学家那样去思考问题,意味着远远不止能为计算机编程,还要求能够在抽象的多个层次上思考。所以说程序设计不等于计算思维。但是,程序设计是计算思维中一个重要部分,课程设计课包含了很多普适思维,能够反映了计算学科、计算理论、计算技术的基本原理,计算思维不是孤立、独自存在的科学思维,本质上源于理论和数学思维,在系统实现方面借鉴了工程思维方式,计算理论和计算模型最终也需要我们利用软硬件系统实现,其中软件系统占据重要地位,与实验思维类型中的验证过程,最终计算思维也需要具体的实现过程,在这过程中程序设计起到不可替代的作用。
程序设计主要是基于语言级的问题求解,相比抽象级和系统级层次的问题求解,从抽象程度以及理解难度上讲,学习语言级的问题求解方法是最适宜、最容易理解计算思维,理解问题求解方法的最佳途径。
由此可见,程序设计不等于计算思维,也不是计算思维的全部,但是,程序设计是培养计算思维能力的重要内容,学习程序设计方法是理解计算思维、培养计算思维能力的最好途径和方法。
3程序设计课程教学现状分析
2.1现阶段程序设计课程教学现状
在早期的程序设计课程教学过程中,非常容易陷入计算机语言、语法的教学误区,教学基本按照计算机语言的知识体系为主线开展,比如:C语言程序设计,基本上都是从语言概述到数据类型、运算符和表达式,从语句到3种基本结构、函数,从数组类型到指针、结构体类型。在对应的相关计算机二级考证中,理论考试太也重视语言知识、语言细节的考核。
现阶段,在大学,特别是高职院校,很多程序设计开展课程教学改革,基于工作过程系统化或项目课程进行课程开发,此类课程开发往往以工作过程或实际项目为主线,重视学生实践教学环节,培养学生实战能力。但是,在非计算机专业的程序设计课程教学中,往往因将其视为一门计算机基础课程,学生重视程度不够,学生往往体验不到编程的愉乐,很多学生学习这门课时感觉枯燥无味,难以入门,实用性不强。
2.2程序设计课程教学中计算思维能力的培养
现阶段,大部分的程序设计课程没有刻意提及计算思维能力的培养,但也并不是没有培养学生的计算思维,这种培养是潜意识的,或者是无意识的,教师对计算思维的理解,也是不清晰,不系统,是朦胧的感觉,甚至有时候用编程思想来片面的代替整个计算思维,不能够理解计算思维的本质是什么,特别是缺少从思维教育角度来理解计算思维,课程教学停留在语言知识的普知教育上,对不同群体缺乏区别对待、分类指导,程序设计课程中的计算思维教学实践还处于初步探索阶段。
对于计算机专业的程序设计课程,教学重点在知识传授和技能训练,在教学过程中,过分重视了计算机语言、技术应用的教学,忽视了“思想的教学”,学生在今后的工作岗位中,可能从事编程工作,但是,学生掌握的仅仅是编程技能的应用,缺少更深层次的、抽象的计算技术的思考,难以有出色的创新能力。
对于非计算机专业的程序设计课程,学生今后的目标不是程序员,也不是仅仅考个计算机二级证书,所以对学生的计算思维的培养,比单纯的知识和技能培养更重要,他们将来对计算技术的应用则是利用计算思维方式去支持各学科、各行业的创新发展。
由此可见,在程序设计课程教学中,计算思维教学存在着以下问题:(1)无序、非系统化开展计算思维教育,计算思维的培养只能是无意识的。(2)教师没有从计算学科、计算技术与计算科学的高度来理解和认识计算思维,没有意识到计算思维能力培养对学生的综合素质、创新能力的重要性。(3)在具体的教学过程中,不仅仅传授学生知识和技能,忽视了“思想的教学”,没有系统化的开展计算思维即计算思维能力的培养。
因此,程序设计教学不能停留在知识传授、编程技术与应用的地步,要提升到计算思维高度,以计算思维为核心对教学内容进行重构,通过知识传递和技能训练,有意识的、系统性的开展计算思维教学。
4程序设计课程教学改革思路
加强计算思维能力培养,不是增加“理论知识”,如何由知识传授和技能训练转化为基于知识的思维传授,基于实践的思维训练。根据程序设计课程特点,我们初步以计算思维为核心组织课程内容,根据周教师定义计算思维的概念,我们从问题求解、系统设计以及人类行为理解3个方面,探讨程序设计课程中计算思维内容设置。
4.1程序设计课程中计算思维基本概念
(1)科学思维:3大科学思维;(2)计算理论:冯诺依曼结构,存储程序,可计算问题,计算复杂度;(3)算法思维:递归、迭代、穷举典型算法;(4)工程方法:模块化程序设计,分层思想,“自顶向下,逐步细化”工程方法;(5)抽象与自动化:数据类型,类与对象,继承与多态。
4.2以计算思维为主线,组织教学内容如表1所示。
4.3从计算思维的角度出发,重新设计教学项目,将编程实现提升到计算思维高度。
计算思维中问题求解的一般步骤如下.
a.问题抽象化描述(建立计算模型)。b.问题求解(设计算法)c.问题解决(编码)。d.问题扩展(项目扩展)。
5教学方法与教学原则
计算思维,与理论思维、实验思维不是孤立的,是相互联系,相互影响的,因此,具体教学中,应该程序设计课程中具体体现的计算思维内容为重点,对课程中经典案例、典型项目要以计算思维的角度出发,侧重问题求解方法,在知识讲授中了解计算思维的基础概念,在实验了解计算技术的基本原理,在编程实践中体验问题求解的基本方法与思维方式。
计算思维教学改革是一项系统工程,在程序设计课程中培养学生计算思维能力,是一个长期过程,需要不断探索,不断努力实践。课程的定位,教学内容的构建,教材开发等方面都需要不断的研究、探索、实践和优化。
关键词:计算思维;程序设计;课程改革
2006年,美国周以真(Jeannette Wing)教授清晰化、系统化阐述了计算思维定义,她认为,计算思维代表一种普通的认识和一类普适的技能,不仅仅是计算机科学家、计算机从业人员,每一个人都应该热心于它的学习和运用;国内也不断对计算思维开展研究,从2010年,西安首届九校联盟计算机基础课程研讨会提出的需要把培养学生的“计算思维”能力作为计算机基础教学的核心任务;同年,陈国良院士提倡将计算思维引入计算机基础教育。各高校纷纷开展计算思维教学改革研究,计算思维教学得到了国内外教育专家的重视,把计算思维能力培养作为大学生一项通识技能被大家达成共识,并纷纷开展以计算思维为核心的课程改革。
1计算思维
作为3大科学思维之一,计算思维概念自古就有之,从古代算筹、算盘、到近代的差分机、打孔卡片控制的自动织布机,到现在的电子计算机、互联网,从风靡的物联网与云计算到国家发展纲要中的互联网+、智能制造2025、大数据,计算思维无处不在,不断推进国家在科技、工程和技术领域的全面改革。计算科学已对其他学科、其他行业产生了重要影响。但是,计算思维经常被朦朦胧胧地使用,却一直没有提高到周以真教授所描述的高度和广度,以及那样地新颖、明确和系统。没有进行清晰化和系统化。
周以真认为,计算思维是运用计算机科学的基本概念进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动。计算思维的本质是抽象和自动化,如同所有人都具备“读、写、算”能力一样,计算思维是必须具备的思维能力。
2程序设计与计算思维
就像周以真教授所说:像计算机科学家那样去思考问题,意味着远远不止能为计算机编程,还要求能够在抽象的多个层次上思考。所以说程序设计不等于计算思维。但是,程序设计是计算思维中一个重要部分,课程设计课包含了很多普适思维,能够反映了计算学科、计算理论、计算技术的基本原理,计算思维不是孤立、独自存在的科学思维,本质上源于理论和数学思维,在系统实现方面借鉴了工程思维方式,计算理论和计算模型最终也需要我们利用软硬件系统实现,其中软件系统占据重要地位,与实验思维类型中的验证过程,最终计算思维也需要具体的实现过程,在这过程中程序设计起到不可替代的作用。
程序设计主要是基于语言级的问题求解,相比抽象级和系统级层次的问题求解,从抽象程度以及理解难度上讲,学习语言级的问题求解方法是最适宜、最容易理解计算思维,理解问题求解方法的最佳途径。
由此可见,程序设计不等于计算思维,也不是计算思维的全部,但是,程序设计是培养计算思维能力的重要内容,学习程序设计方法是理解计算思维、培养计算思维能力的最好途径和方法。
3程序设计课程教学现状分析
2.1现阶段程序设计课程教学现状
在早期的程序设计课程教学过程中,非常容易陷入计算机语言、语法的教学误区,教学基本按照计算机语言的知识体系为主线开展,比如:C语言程序设计,基本上都是从语言概述到数据类型、运算符和表达式,从语句到3种基本结构、函数,从数组类型到指针、结构体类型。在对应的相关计算机二级考证中,理论考试太也重视语言知识、语言细节的考核。
现阶段,在大学,特别是高职院校,很多程序设计开展课程教学改革,基于工作过程系统化或项目课程进行课程开发,此类课程开发往往以工作过程或实际项目为主线,重视学生实践教学环节,培养学生实战能力。但是,在非计算机专业的程序设计课程教学中,往往因将其视为一门计算机基础课程,学生重视程度不够,学生往往体验不到编程的愉乐,很多学生学习这门课时感觉枯燥无味,难以入门,实用性不强。
2.2程序设计课程教学中计算思维能力的培养
现阶段,大部分的程序设计课程没有刻意提及计算思维能力的培养,但也并不是没有培养学生的计算思维,这种培养是潜意识的,或者是无意识的,教师对计算思维的理解,也是不清晰,不系统,是朦胧的感觉,甚至有时候用编程思想来片面的代替整个计算思维,不能够理解计算思维的本质是什么,特别是缺少从思维教育角度来理解计算思维,课程教学停留在语言知识的普知教育上,对不同群体缺乏区别对待、分类指导,程序设计课程中的计算思维教学实践还处于初步探索阶段。
对于计算机专业的程序设计课程,教学重点在知识传授和技能训练,在教学过程中,过分重视了计算机语言、技术应用的教学,忽视了“思想的教学”,学生在今后的工作岗位中,可能从事编程工作,但是,学生掌握的仅仅是编程技能的应用,缺少更深层次的、抽象的计算技术的思考,难以有出色的创新能力。
对于非计算机专业的程序设计课程,学生今后的目标不是程序员,也不是仅仅考个计算机二级证书,所以对学生的计算思维的培养,比单纯的知识和技能培养更重要,他们将来对计算技术的应用则是利用计算思维方式去支持各学科、各行业的创新发展。
由此可见,在程序设计课程教学中,计算思维教学存在着以下问题:(1)无序、非系统化开展计算思维教育,计算思维的培养只能是无意识的。(2)教师没有从计算学科、计算技术与计算科学的高度来理解和认识计算思维,没有意识到计算思维能力培养对学生的综合素质、创新能力的重要性。(3)在具体的教学过程中,不仅仅传授学生知识和技能,忽视了“思想的教学”,没有系统化的开展计算思维即计算思维能力的培养。
因此,程序设计教学不能停留在知识传授、编程技术与应用的地步,要提升到计算思维高度,以计算思维为核心对教学内容进行重构,通过知识传递和技能训练,有意识的、系统性的开展计算思维教学。
4程序设计课程教学改革思路
加强计算思维能力培养,不是增加“理论知识”,如何由知识传授和技能训练转化为基于知识的思维传授,基于实践的思维训练。根据程序设计课程特点,我们初步以计算思维为核心组织课程内容,根据周教师定义计算思维的概念,我们从问题求解、系统设计以及人类行为理解3个方面,探讨程序设计课程中计算思维内容设置。
4.1程序设计课程中计算思维基本概念
(1)科学思维:3大科学思维;(2)计算理论:冯诺依曼结构,存储程序,可计算问题,计算复杂度;(3)算法思维:递归、迭代、穷举典型算法;(4)工程方法:模块化程序设计,分层思想,“自顶向下,逐步细化”工程方法;(5)抽象与自动化:数据类型,类与对象,继承与多态。
4.2以计算思维为主线,组织教学内容如表1所示。
4.3从计算思维的角度出发,重新设计教学项目,将编程实现提升到计算思维高度。
计算思维中问题求解的一般步骤如下.
a.问题抽象化描述(建立计算模型)。b.问题求解(设计算法)c.问题解决(编码)。d.问题扩展(项目扩展)。
5教学方法与教学原则
计算思维,与理论思维、实验思维不是孤立的,是相互联系,相互影响的,因此,具体教学中,应该程序设计课程中具体体现的计算思维内容为重点,对课程中经典案例、典型项目要以计算思维的角度出发,侧重问题求解方法,在知识讲授中了解计算思维的基础概念,在实验了解计算技术的基本原理,在编程实践中体验问题求解的基本方法与思维方式。
计算思维教学改革是一项系统工程,在程序设计课程中培养学生计算思维能力,是一个长期过程,需要不断探索,不断努力实践。课程的定位,教学内容的构建,教材开发等方面都需要不断的研究、探索、实践和优化。