王鑫 李万军

摘   要:计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。本文归纳了计算思维在C语言程序设计中的体现,可归纳为抽象计算思维、自动化计算思维和并行计算思维三种。针对计算思维的特点,提出了C语言程序设计课程教授过程中提高计算思维的方法,有益于学生借助计算思维进行编程思维训练,对所学知识进行融会贯通,同时提高了课程教学改革的效果。

关键词:C语言程序设计  计算思维  教学改革

中图分类号:TP311                                 文献标识码:A                        文章编号:1674-098X(2019)09(a)-0077-02

全球范围内的趋势是,编程能力被视为未来社会的通用底层能力,是“新的素养”,甚至被称为“新读写能力”(The new literacy),人人必须具备。现在小学、中学生开始已经开展适合的编程课程。

学编程的本质是掌握计算思维。这是一种面向未来的核心认知能力。2006年3月,时任美国卡内基·梅隆大学(CMU)计算机科学系主任、现任美国基金会(MSP)計算机和信息科学与工程部(CISE)主任的周以真(Jeannette M.Wing)教授,在美国计算机权威刊物《Communications of the ACM》上,首次提出了计算思维(Computational Thinking)的概念:“计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。它包括了涵盖计算机科学之广度的一系列思维活动[1]。”

陈国良院士与李廉教授通过整合得出了3种较为典型的科学思维:也就是用观察和整理为特性的实证思维、用推演为特性的逻辑思维、再者就是抽象与自动化的计算思维。在这3种方式中,计算思维属于计算机类课程所主修的思维方式。

C语言作为当今常用编程语言,在程序设计过程中注重培养逻辑,算法,数据,系统,解决问题,出错调试,以及新的计算机技术等能力。

1  计算思维

计算思维的体现可归纳为抽象计算思维、自动化计算思维和并行计算思维三种。

1.1 抽象计算思维

抽象计算思维是计算思维的关键,主要体现在实际需求到程序语言的设计过程。是自己对于问题的抽象能力的练习,即从抽象问题到实际进行编码或者设计程序解决问题的一个能力。面对一个问题,经过思考后,最后将解决这个问题的思路用计算机能理解的方式表达出来,其中“问题”、“思考”以及“表达”是编程最关键的地方。

1.2 自动化计算思维

C语言程序设计中三大基本结构,顺序、条件和循环三种结构支撑了所有程序。依托三个基本结构可以实现所有程序自动化设计。三个结构像盖房子的砖块,互相叠加累积完成整个程序。自动化程序设计过程中的逻辑训练,算法实现也是学生着重需要提高的部分。

1.3 并行计算思维

cpu间断性的并行执行多个任务,在并行的情况下效率才能保证。多个任务并行执行的优势在于:降低资源消耗,提高相应速度,提高任务的可管理性。学生往往习惯于顺序程序执行,当复杂编程要求多线程设计时,在理解、设计及代码实现上都存在很大困难。

2  提高计算思维的方法

2.1 驱动式方法提高计算思维能力

学生表现出的上课听懂教材看懂,只是表面上比较肤浅的理解,老师在进行教学开始之初,有目的的引导学生学习编程。将C语言课程教授内容中与专业课程及后续课程关联很大的部分提前做好充分的课程准备,针对计算思维加强对学生的锻炼。在教学过程中围绕提前准备的教学问题,积极引导学生在C语言程序设计中合理应用计算思维[2]。

2.2 应用性方法提高计算思维能力

任何教学过程是教师与学生互动的过程,教学过程中任何环节都会影响教学质量[3]。教师可以根据本校本专业的特色,结合学生的接受能力选择合适的教材。教师在教授过程中使用与实际应用关联较大的例题,使用适合学生的教学方法,并且在课程进行过程中,根据接受程度,对教学方法进行动态改变,以实例展示的方式将计算思维融入其中,让学生当场学会应用计算思维。

2.3 以项目为核心提高计算思维能力

教师引导学生完成课程实践教学时,要以项目为中心,将课程教学中计算思维的提升作为教学的重要目标。项目的选择很重要,实际项目从难度及复杂度上一般不适合直接使用,教师需要对实际项目重新编排,组合,去繁,整合成适合学生的教学项目,但这个新项目又是很有实践性的,使学生更感兴趣[4]。使用计算思维设计C语言程序设计,课上及课下注重实际编程能力、应用能力和创新能力。借助算法的构建和程序流程图的使用,在应用层进行综合应用训练。通过“任务驱动”,使所学的知识融会贯通,锻炼学生分析和解决问题的能力,帮助学生提升工程实践能力[5]。

3  教学实例

例题1:计算1!+2!+3!+...+20!

本例题有两种解决方法,可以用两层循环来完成,学习函数调用后,可以用函数递归方法解决,循环及递归思想是计算思维的重要一方面。教师应该善于启发引导学生从多角度、多维度思考问题的解决方法。

例题2:设计一个学生成绩管理系统,学生信息的输入部分程序设计。

随着学习的深入,保存学生输入信息的变量由普通多个浮点型数据到一维数组,到二维数组,最终设计成结构体数组,逐渐增加难度,但也为问题的解决提供了更合理、更丰富的方案。学生输入信息的变量改变在表1中。

4  结语

综上所述,针对归纳总结的计算思维的特点,提出了C语言程序设计课程教授过程中提高计算思维的方法。在C语言程序设计过程中教师引导、学生逐步深入借助计算思维进行编程思维训练,对本课程以及其他课程的学习是非常有益的。

参考文献

[1] Jeannette M Wing.Computational Thinking[J].Communications of the ACM,2006,49(3):33-35.

[2] 范兴亮.C语言程序设计课程中的计算思维探析[J].无线互联科技,2017,4(8):67-68.

[3] 赵桃林,杨民力,王育华.功能材料专业《化学电源》课程教学方法探讨[J].河北理科教学研究,2017(1):47-49.

[4] 顾丽红,丁淑妍等.面向计算思维的蒙特卡罗C语言程序设计案例探究[J].计算机教育,2018(1):105-111.

[5] 叶建龙.任务驱动法在C语言教学中的应用[J].廊坊师范学院学报:自然科学版,2010,10(3):132-136.

c语言程序设计常用思维,C语言程序设计中计算思维的思考①相关推荐

  1. c语言程序设计臧,C语言程序设计教学中计算思维培养.pdf

    Advances in Education 教育进展, 2014, 4, 36-41 Published Online May 2014 in Hans. /journal/ae /10.12677/ ...

  2. c语言掌握常用函数,c语言一些常用函数.pdf

    c语言一些常用函数 C 语言程序设计(常用函数说明) C 语言是 1972 年由美国的 Dennis Ritchie 设计发明的,并首次在 UNIX 操作系统的 DE C PDP-11 计算机上使用. ...

  3. 计算机基础技能培养,计算机应用基础教学中计算思维与应用技能的双重培养

    [摘要]分析非计算机专业计算机基础教育改革必要性,探讨应用技能与计算思维培养相结合的发展思路.建议加强学生计算思维的培养,提高学生的逻辑思维能力,同时建立基于知识点聚类的网络课程,使得课堂与网络教学之 ...

  4. 第一章 计算思维与一种表述计算思维的框架------计算之树

    第一章 计算思维与一种表述计算思维的框架------计算之树 1.硬件 vs. 软件 2.计算思维 3.计算之树--计算思维的一种多维度观察框架 3.1计算之树的树根(技术或思想) 3.2计算之树的树 ...

  5. 计算机专业公共基础课,非计算机专业计算机公共基础课程中计算思维体现的必要性...

    摘要:目前,在社会信息化程度不断提高等原因的推动下,非计算机专业大学计算机公共基础教育的现状越发令人担忧.而且在全球大环境下,能够运用计算机科学所赋予的计算方法等手段解决难点问题的卓越人才是国家迫切需 ...

  6. 大一计算机思维知识点,大学计算机基础教学中计算思维的培养途径

    摘要:从几个侧面思考和探究在大学计算机基础教学中培养学生计算思维的途径,提出通过整合教学内容,将不同的知识点归纳为不同的知识单元:通过实验教学,提升学生运用计算思维处理问题的能力. 关键词:计算思维: ...

  7. 计算机思维的结构问题,《计算思维的结构》读书笔记

    前段时间在网上淘了不少关于计算思维的书.在这个特殊的假期,刚好宅在家里慢慢"啃"这些书,慢慢消化. 这个月"啃"下的其中一本书是<计算思维的结构>, ...

  8. 计算思维与大学计算机基础教育,计算思维与大学计算机基础教育(3)

    计算思维是通过约简.嵌入.转化和仿真等方法,把一个困难的问题阐释为如何求解它的思维方法. 计算思维是一种递归思维,是一种并行处理,是一种把代码译成数据又能把数据译成代码,是一种多维分析推广的类型检查方 ...

  9. 【R语言】常用的R语言数据挖掘包

    常用的R语言数据挖掘包 与Python相比,R语言的很多算法分别会有不同的作者实现,而每个人有不同的实现方式,所以会产生大量的package.因此,学习R语言需要广泛了解与所研究问题相关的包,这样就比 ...

最新文章

  1. Paddle内置的网络模型
  2. fs react 使用 保存文件_使用FS进行文件同步和备份
  3. Apache Lucene的结构
  4. java开发环境搭建--写给java新手
  5. 心大于物 ----论意识心灵与物理大脑的关系
  6. python 学习之 PythonBasic2
  7. 如何正确的卸载MATLAB7?
  8. win7美化_Win10桌面美化实用软件推荐
  9. 解决JS中文乱码问题
  10. 电脑网速检测在哪里可以找到
  11. orientation
  12. NAS信令学习笔记 ——GUTI
  13. 深信服 VDS设备烤机
  14. 服务器,ping没问题,请求经常超时、时好时坏的解决办法
  15. 怎么画思维导图?玩转MindNow六大思维结构
  16. iOS开发--手把手教你制作音乐播放器
  17. 网站已迁移、域名未转出,收到阿里云的“备案号可能被取消接入”邮件提示该怎么办。
  18. 流量并不仅仅只是存在于互联网时代,更重要的是一种模式
  19. matlab求微分方程的初值问题,Matlab 解常微分方程的初值问题.doc
  20. Java代码审计前置知识——SpringBoot基础

热门文章

  1. 适合520发朋友圈的文案句子精选
  2. 从keras看VGG16结构图
  3. http、https 等 常用默认端口号
  4. ICPR MTWI 2018 挑战赛二:网络图像的文本检测
  5. Linux 指令学习之ping
  6. DEV、SIT、UAT、PET、SIM、PRD、PROD缩写介绍
  7. [web]开复老师在线谈中国青年的成长 - by http://bbs.kaifulee.com/
  8. linux 命令 xxd linux下查看二进制文件
  9. Windows Server 2019 英文语系更新笔记
  10. 网页弹出对话框的几种代码