C语言程序设计课程中计算思维探析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计课程中计算思维探析

C语言程序设计课程中计算思维探析   摘 要:计算思维的本质是抽象和自动化。对于C语言程序来说,抽象就是使用程序、函数、函数调用以及数据类型、常量、变量、数组和链表等元素描述现实生活中的系统、功能、功能调用以及单个特征或特征组合等,自动化则体现为函数内部的语句在EIP寄存器加法操作支持下顺序自动地执行以及函数之间的调用在内存堆栈区支持下自动地进行跳转。最后,针对计算思维的抽象和自动化特征,给出了C语言程序设计课程在教学内容、教学方式和考核内容上的一些建议和措施。   关键词:C语言程序设计;计算思维;抽象;自动化   美国卡内基?梅隆大学的周以真教授在2006年系统地提出了计算思维的概念[1]:计算思维指的是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等一系列思维活动。其后,陈国良院士和李廉教授归纳出三种典型的科学思维,即以观察和归纳为特征的实证思维,以推理和演绎为特征的逻辑思维,以抽象和自动化为特征的计算思维[2-3]。计算思维是计算机类课程的主要思维方式。   有关计算思维在程序设计类课程中的研究,已经引起很多学者的兴趣[4-6]。这些研究虽然从案例设计和项目过程等角度做了有益探索,但却忽略了对计算思维本质的讨论。C语言程序设计课程中,我们采用李廉教授的观点,即计算思维的本质是抽象和自动化。抽象指的是使用符号系统对问题进行精确而严格的描述;自动化指的是对这些符号系统施加一定操作并按照某种结构自动地执行。   一、C语言程序中的计算思维本质之一:抽象   有些C语言程序设计课程教学的一开始就提倡使用案例教学。这虽然能够使得学生可以迅速进入实际编程环节并建立直观感性认识,但案例教学由于往往出现“程序就是编程工具”的工具论现象,导致出现“只知其然,而不知其所以然”的学习后果,不利于学生的后续发展。   对于C语言程序来说,抽象指的是使用符号系统对求解问题进行精确而严格的描述,抽象的过程就是对实际系统建模的过程。实际上,程序是用来描述现实生活中某个实际存在的或不存在的系统。程序就是对系统的抽象。系统之所以存在,是因为系统具有一些关键特征和核心功能。程序中对系统特征进行抽象的就是操作对象,对系统功能进行抽象的就是函数。系统功能往往有多个且存在着复杂的调用关系。例如,求一个函数定积分的功能必然涉及求函数在某一个点的取值功能,如果该函数比较复杂且含有正弦、余弦和正切等三角函数,还需要继续调用求这些三角函数值的功能,形成多级调用;有时函数执行过程中还需要调用本身,形成递归调用。   C语言程序中的操作对象分为变量和常量。常量是对系统中的取值不变的特征进行抽象,如圆的圆周率;而变量是对系统中取值可以改变的特征进行抽象,如圆的半径。不管是哪类特征,都会有一个取值范围以及所允许的操作。例如,对于课程成绩,其取值范围一般是从0~100,而允许对该特征进行的操作可以是加法和减法等算术操作以及大于和小于等比较运算;而对于课程名字这一特征,就不能进行加法和减法这样的算术操作。C语言程序中用来对特征的取值范围及允许的操作进行抽象的概念是数据类型。C语言程序中的抽象模块如表1所示。   现实生活中,经常需要描述多个相同数据类型的一个系统特征,如所有同学的高等数学课程的成绩,可以使用一维数组来进行描述;而描述多个不同数据类型的多个系统特征,如学生的姓名、学生的身高和学生的年龄等,可以使用结构体来进行描述;如果要描述多个相同数据类型的多个系统特征,如全班所有同学的高等数学和大学英语课程的成绩,则可以使用二维数组来进行描述。   表1 C语言程序中的抽象模块   C语言程序中的元素 现实生活中的元素   程序 系统   函数 系统功能   函数调用 功能调用   数据类型 常量 系统特征   变量   一维数组 多个相同类型的一个系统特征   多维数组 多个相同类型的多个系统特征   结构体 多个不同类型的多个系统特征   链表或结构体数组 多个不同类型的多个系统特征的集合   二、C语言程序中的计算思维本质之二:自动化   计算思维的另一个本质是自动化。自动化指的是对符号系统建模的各种元素施加一些操作,并按照某种顺序的或非顺序的结构自动地执行。对于C语言程序来说,自动化体现为函数内部的语句在EIP寄存器加法操作支持下顺序自动地执行以及函数之间的调用在内存堆栈区支持下自动地进行跳转。EIP是32位机的指令指针寄存器,用来存放下一条要执行的指令的地址。EIP寄存器中增加值的大小需要根据实际存储指令的大小来确定。   对于C语言程序来说,自动化过程中执行的对象是语句。不同类型的语句,执行的结果和效用是不一样的。例如,一个变量定义语句“int a”的执行结果是在内存中分配4个字节的空间,一个返回语句“return t”的执行结果是将程序的执行流程返

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档