摘要:分析计算思维对大学生的培养非常重要。本文提出C语言程序设计课程加强计算思维的训练,比单纯讲授知识更重要,将计算思维方法在课程教学中加以运用,可以提高学生综合分析问题和解决问题的能力。

关键词:C语言程序设计;计算思维;教学研究

1引言

C语言程序设计课程是大学计算机专业的入门课程。教学过程中存在一些问题,如部分学生认为难度很大、学习不感兴趣等。为更好地了解实际情况,针对大一新生做了问卷调查,结果如表1所示。表1显示,新生中有接近一半在高中阶段选择文理兼修。他们的思维与纯理科生存在一些差异。另外,在学习C语言的过程中,学生的主要问题是如何能通过编写程序解决实际问题。因此,在进行C语言授课时,老师应该更注重计算思维的训练。这比单纯的讲授相关知识更加重要[1]。如何把重点知识与计算思维相结合并进行融会贯通,是值得思考的问题。

2计算机思维

计算思维主要有算法思维和程序思维两大分支。最初计算机采用“计算”这一概念时,就出现过“计算思维”这一常用名词,也被称为“算法思维”,是将问题转换为从输入到输出的转换过程。此时,计算机作为工具更多应应用在数值计算中[2]。周以真教授提出计算思维(ComputationalThinking)是指运用计算机科学的基础概念去求解问题、设计系统和理解人类行为,其本质是抽象和自动化[3]。很多专家学者认为,计算思维是人类应具备的第三种思维。第一种思维是实验思维:通过实验来观察结果,发现、推断与总结。这种思维强调观察与归纳。第二种思维是理论思维:通过假设、预设来推导出定义、性质、定理并且通过各种方法来证明其正确与错误。这种思维强调推理和演绎。而计算思维强调的是设计与构造。它关注的是人类思维中有关可行性、可构造性和可评价性的部分。在当前环境下,理论与实验手段面临着大规模数据的处理,不可避免地要应用计算手段来辅助[4]。人类的思维方式与机器不同。人在解决某个问题时,一般会寻找某种公式来快速解决。人类求解的方式,希望有较小的计算量,只需要根据数学公式或经验,就能找到相应的答案。但是计算机需要按照指令完成相关工作。人类要根据计算机的特点,遵循计算思维,设计一定的算法来进行求解,这就要求按照计算思维的特点来进行设计。例如求解12和18的最大公约数的问题。人类往往能根据经验,一眼就判断出答案是6。而计算机却没有这个能力,需要设计一些算法来解决。第1种方法是枚举法。这种方法的求解过程,规则可能很简单,只要把满足条件的结果都列举出来,逐个测试,但是计算量很大,需要循环多次。求最大公约数的步骤为:(1)设变量i为1;(2)如果a和b都能被i整除,则记下这个i;(3)i加1,重复第2步,直到i等于a或b;(4)记下最大可以整除的a和b的i,就是最大公约数。第2种方法是辗转相除法。这种算法效率较高,但是对于人们来说不易理解。其步骤如下:(1)如果b等于0,计算结束,a是最大公约数;(2)否则,计算a除以b的余数,让a等于b,b等于那个余数;(3)回到第1步。通过上述比较可以看出,学习程序设计类课程,掌握计算思维,遵循计算机思考的方式来解决问题,是一种非常重要的能力。

3基于计算思维的教学

将计算思维能力的培养贯通在C语言教学中,有目的地培养学生应用计算思维解决平时学习遇到的问题,以达到提高学生解决实际问题的能力。(1)将语法融入问题的求解中。从实际应用案例中抽取教学要素。从算法的维度,将迭代、枚举、递归、分治、排序等算法融入实际问题的求解过程,让学生在潜移默化中提高计算思维能力[5]。例如,可以利用韩信点兵的案例,融入的知识点包括逻辑运算符和break的使用,同时将枚举法的算法思想引入教学中。这样可以让学生在学习新知识的同时训练计算思维。如何将一个具体的问题进行抽象是解决问题的关键。韩信命令士兵5人一排,结果多出3人。命令士兵7人一排,结果多出6人。命令士兵11人一排,结果多出4人。提出韩信的兵人数满足什么条件?在计算机中如何表达出人数的条件?引出逻辑运算符,于是韩信点兵的人数使用C语言写出表达式为i%5==3&&i%7==6&&i%11==4。然后引导学生学会思考如何应用计算机C语言来解决这个问题。提出利用计算机运行速度快的特点,发挥它的优势,让它来逐个检验。检验的范围在500----1000之间,使用循环语句可以解决这个问题,进而引出枚举法的思想。枚举法是计算机解决问题很擅长的方法。利用运算速度快、精确度高的特点,能对解决问题的所有可能情况一个不漏地进行检验。枚举法应用广泛,学生掌握这种方法,可以举一反三,求素数、闰年等很多情况下可以都使用。这种思想对计算思维的理解,对以后的学习和工作都有很好的帮助。(2)采用图示化方法。将复杂的思维来进行描述,可以让学生对所接受的问题一目了然。对于复杂的问题,可以先通过规模较小的问题求解。(3)通过OJ平台在线训练学生的编程能力。通过不断做题,强化学生的实际动手能力,挑选经典的问题,用经典的算法进行求解,培养学生的计算思维能力。

4总结

在C语言程序设计教学中,将计算思维的培养作为教学的重要指导思想来促进授课方式的改革,势在必行。在教学中发现,学生使用计算思维来求解遇到的问题有助于能力的提高,有助于培养大学生的创新能力。当学生具备一定的计算思维能力后,需要举一反三地解决所遇到的问题,将所学知识融会贯通,以达到事半功倍的效果。

参考文献

[1]赵美利,牛晓峰.师范类计算机课程体系与计算思维的培养.贵阳学院学报(自然科学版),2016,11(01):78-80

[2]王梅娟,李辉,韩敬利,郑长友,蒋园园.基于计算思维的大学计算机基础课程改革研究与实践.计算机教育,2020(03):59-63

[5]揭安全.高级语言程序设计—基于计算思维能力培养.北京:北京邮电出版社,2015

作者:胡华 王莹 单位:枣庄学院信息科学与工程学院

阅读次数:人次

大学计算思维c语言答案,【程序设计论文】计算思维为下的C语言程序设计教学(共2755字)...相关推荐

  1. 计算机辅助设计在工业,【工业设计论文】工业设计专业计算机辅助设计课程的教学(共3476字)...

    摘要:本文在分析目前工业设计专业计算机辅助设计课程的教学所面临问题的同时,提出了一套在教学内容上进行整合,在教学方式上进行改进,在教学条件上进行优化的创新教学模式,从而大幅度提升教学质量及水平. 关键 ...

  2. 计算机辅助设计的技术论文,【计算机病毒论文】谈计算机辅助设计课程微课化教学(共3741字)...

    摘要:高等教育正在实施教育信息化2.0行动,借助信息技术推动传统教学改革.微课教学作为新兴的教学手段,与高校设计类专业计算机辅助设计课程教学有着较好的契合点.通过对微课概念的解读,分析该课程微课化教学 ...

  3. 程序设计基础c语言思政,【程序设计论文】思政教育在C语言程序设计中的应用(共3769字)...

    关键词:思政教育:工匠精神:计算思维:自主学习 1课程思政在C语言程序设计课程中的意义 C语言程序设计课程是培养学生核心素养.计算思维和程序设计能力的基础课程.核心素养是个人终身发展和可持续发展的基础 ...

  4. 计算机专业c 用到的文献,【计算机专业论文】高校非计算机专业C程序设计的微课教学(共2539字)...

    摘要:从当前高校计算机应用教学的目的出发,将计算思维融入到C程序设计课程教学中,利用微课的形式对传统课堂和实验教学进行补充,使两者更好地衔接,探索对传统教学模式改革.首先从理论层对计算机思维定义和含义 ...

  5. 计算机程序设计论文2万字,【程序设计论文】核心素养下的计算机程序设计教学(共4049字)...

    摘要:文章从文化基础.自主发展.社会参与三个方面阐述了计算机程序设计与学生核心素养之间的关系,并基于维果茨基的社会文化历史理论,提出了基于学生核心素养培育的高校计算机程序设计教学策略,旨在为新一轮计算 ...

  6. c语言sqlserver进行odbc编程,在VS下用C语言连接SQLServer2008

    原文: 在VS下用C语言连接SQLServer2008 step1:启动SQLSERVER服务 step2:打建立数据库test,在test库中建立test表(a varchar(200),b var ...

  7. linux下的c语言编程实验4,实验四-Linux下的C语言编程

    实验四Linux 下的 C 语言编程 四.实验内容 本实验要求在LINUX/UNIX环境下用C语言编写三个具体的SHELL命令,基本涉及了LINUX/UNIX文件系统中较为常用的有关文件操作的系统调用 ...

  8. 成信大c语言答案P239.C,2011秋季江苏省计算机二级C语言试题与答案.doc

    2011秋季江苏省计算机二级C语言试题与答案 [本试卷的欠妥处]经过对2011秋江苏省C语言试卷仔细阅读和上机调试,本试卷卷面错误比2011春有较大改进.但还存在如下三处不足之处或命题欠妥处,有待改进 ...

  9. 体育教学与计算机技术的结合点,【大学教育论文】虚拟现实技术在高校体育教育的应用(共2757字)...

    摘要:计算机技术的不断发展,对我国教育.工业.航天业提供了有效的技术支持.因此,将计算机虚拟现实技术与新时期高校体育教学相融合,重视对课堂体制的探索创新,有利于提高高校体育的教学效率.由此可见,重视认 ...

最新文章

  1. 阿里好的开源项目有哪些(善用工具)
  2. centos7安装mongodb详解
  3. R语言实战应用精讲50篇(二十五)-时空数据统计模型:确定性预测模型
  4. 软件工程第一次作业补充
  5. throw 烦人_烦人的简单句子聚类
  6. 《微软开源跨平台移动开发实践》团购通知
  7. Acwing 1088.旅行问题
  8. 32linux下安装mysql5.7_Linux系统下以RPM方式安装mysql-5.7.9
  9. [精品]CSAPP Bomb Lab 解题报告(六)
  10. python多线程编程_Python 多线程编程
  11. Tensorflow结点打包和依赖控制
  12. Atitit. 解决unterminated string literal 缺失引号
  13. jquery遍历的radio的取值问题
  14. Vue3 JSON编辑器
  15. Android ActivityManager常用方法
  16. java实现马尔科夫链,马尔科夫链算法的JAVA实现
  17. 相见恨晚的一款前端布局神器!
  18. excel怎么设置选项选择_使用Excel选项按钮选择答案
  19. 第120章 SQL函数 ROUND
  20. C# datagridview CheckBox勾选问题

热门文章

  1. B2C大点名:国内B2C网站收集(更新至2009年6月2日)
  2. Python3 面向对象基础1
  3. 小学文化学导数——斜率
  4. 无功控制器电容投切方案整理
  5. Apache shiro 漏洞总结
  6. 基于matlab的MRC最大合并比误码率仿真,包括维特比译码,MRC,中继
  7. c语言改错题字符串a放在b后面,C语言程序改错题汇总.doc
  8. 图书馆管理系统(c++语言实现)
  9. 流浪地球动态桌面壁纸
  10. Python MoviePy中文教程导览及可执行音视频剪辑工具下载