如何将计算思维融合到C语言程序设计中,浅析基于计算思维的C语言程序设计教学...

浅析基于计算思维的C语言程序设计教学

%202.jpg

摘要:C语言是

关键词:计算思维;C语言;教学改革

中图分类号:TP3 文献标识码:A

文章编号:1009-3044(2020)16-0145-02

C语言是计算机相关专业的必修基础课程,是学生接触的第一门程序设计语言课,也是数据结构、Java、数据库等课程的前导课程,因此在计算机相关专业的整个课程体系结构中占有举足轻重的作用。而计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[1]。教育是人类社会发展的永恒主题[2],计算思维的概念一经提出就备受国内外教育界和科学界的关注。国内外教育界都将计算思维推广至普通教育课程中,在很大程度上已经形成了以“计算思维”为培养目标的核心任务,以计算思维为导向进行的教学改革,自然应当将计算思维有效的融入我们的每一堂课中[3]。因此,将计算思维融于C语言程序设计教学中,有助于培养学生的计算思维意识,提高学生的编程能力。

1 C语言程序设计教学现状

1.1 计算机水平问题

虽然现如今在中学基础教育阶段,学校已经开设了信息技术课, 但学生来自不同地区,受经济、地域、环境等各方面因素的影响,经济和教学条件较好的发达地区的学生计算机水平较高,有极少数学生已经具有编写简单程序的能力。而来自边远经济比较落后地区的学生,由于师资力量、硬件配置等条件的限制,接触计算机的时间很少,计算机水平相对较差。

1.2 学生学习习惯问题

在笔者调查中发现,约有85%的学生在课前不预习、课后不复习,仅仅靠每周短短的几节课时来学习。并且上课时,不注重记笔记。在碰到问题时,不会自己分析解决,而是网上搜索答案或抄袭。

1.3教学方法问题

传统的C语言程序教学采用讲授教学、案例教学、任务教学和讨论教学相结合的方法进行授课。传统的教学方法是以教师讲授教学为主,将知识点灌输给学生,学生是机械的接受,不利于培养学生的计算思维。而且以教师讲授为主进行授课,学生参与教学活动很少,就使得课堂气氛沉闷、趣味性不够,学生往往觉得乏味枯燥。笔者发现,学生在前期有足够的学习热情,实践课程也好问,但是随着教学内容的深入,教学时间的拉长,学生渐渐失去对该门课程的学习兴趣,这跟教学方法有很大关系。学生能参照案例进行编写程序,但是面对实际问题时,却没有独立思考和解决问题的能力,因此传统教学方法不利于培养学生的计算思维。

1.4考核方式不够完善

C语言程序设计的考核方式为闭卷笔试,不足以真正考核学生对实际问题进行算法设计和编写程序的能力,而更多的是考核学生对基本语法知识的掌握。从阅卷情况来看,虽然卷面分高,但是编写程序得分很少,因此高分并不意味着学生的编程能力好。

2基于計算思维的教学

2.1 补充必要计算机基础教学内容

C语言程序设计课程的教学对象是计算机相关专业大一新生,虽然在中学阶段学习过信息技术课程,但是对计算机相应的基础知识缺乏必要的了解。比如不了解计算机如何工作、数据在计算机中如何表示和内存等相关知识。因此在讲到C语言程序如何编译并执行、数据类型、指针等知识点时,学生难以理解,因此可适当补充相关计算机基础内容,有助于学生深入理解并掌握知识点。比如在讲解C基础知识时中的C源程序需要经过编译和链接产生可执行程序,然后输出结果。简简单单一句话很抽象,学生很难理解和掌握,所以通过一个案例“编写程序,打印输出从键盘输入两个数中的最大数”从算法描述到C语言源程序到目标程序到可执行程序这一个过程逐一进行讲解,让学生对程序设计有一个宏观意识。

2.2 强调案例算法分析

C语言程序设计的授课会应用到很多的案例,在讲解完成基础语法知识后,再辅以案例分析帮助学生理解知识点,但是在对案例进行分析时,注重语法分析而不是算法设计的分析。课后跟学生沟通发现,仅从理解层面上来说,绝大多数学生是可以理解的当堂讲授的知识点,但是他们不理解的是为什么这个程序要这样写,即他们不知道这个程序为什么要这样设计,尤其是在实践课程中,用到的知识点知道,但是不知道该如何组织。也就是说学生缺乏计算思维,不知道如何利用C语言、计算机技术等基础概念、基础知识去对实际问题进行求解,进行程序设计。因此在讲解案例时,应该语法和算法分析并驾齐驱,更多的是让学生掌握如何从实际问题出发,分析问题,提出算法,编写程序。怎么由一个具体问题到计算机输出结果。例如讲解选择结构案例“从键盘输入3个正整数,找出其中的最大数,并输出这个数”时,不直接将程序给出进行语法分析,而是提出问题引导学生一步一步进行问题分析。分别用a、b、c三个变量表示3个正整数,Max表示最大数,提出问题:(1)如何比较这3个数?(2)如果a>b为真,接下来应该判断哪两个数?(3)如果a>b为假,接下来应该判断哪两个数?(4)如何画流程图?(5)如何编写程序?(6)是否有其他算法?通过这种方式,不仅可以让学生多参与到教学活动中,还可以培养学生的计算思维意识,建立起计算思维思考问题的方式。

2.3 改进教学方法

传统的教学方法存在导致学生上课兴趣下降,不利于培养的计算思维等问题。因此在教学方法改进中,应该让学生更多地参与到教学活动中来。以往布置预习、课后复习作业并没有落实到人,因此很多学习主动性差的学生不会认真预习和复习。因此对学生采取“分组预习、分组讨论、分组解题”,对每组分配不同的学习任务,由小组长将学习任务落实到各小组成员,并针对每次的学习任务,小组成员之间互评打分。同时整合教学资源,结合雨课堂或微助教等进行发布,学生可随时随地不受空间和时间的限制进行学习。

2.4 优化考核方式

课程考核是检验学生学习成果的有效手段。但是对于C语言程序设计课程,传统的笔试不足以考核学生的编写程序的能力。因此将传统的笔试改为机试,可以同时考核学生对基础知识的掌握和编写程序的能力。考核时,根据需要设置题型、知识点难易程度,并进行随机组卷。对于编写程序题,学生不再像笔试一样,随便写几行代码,且不注重代码风格。机试则要求学生不仅要具有严密的逻辑思维和分析问题的能力,同时还要求学生平时就要注重代码风格。学生在提交程序之后,由机器检查学生编写的程序是否合格,通过机器阅卷的学生对课程会更有兴趣。机试不仅可以避免学生相互之间抄袭,更重要的是可以体现学生实际的编程能力。

3总结

C语言是计算机相关专业的基础课程,也是相关核心课程的前导课程,通过增加必要的教学内容、注重案例算法分析、改进教学方法和考核方式,将计算思维融入教学中,可以培养很好的培养学生的计算思维意识、提高利用计算思维去解决问题的能力。

参考文献:

[1] Wing JM.Computationalthinking[J].Communications of the ACM, 2006,49(3):33.

[2] 教育部高等学校大学计算机课程教学指导委员会.计算思维教学改革宣言[J].中国大学教学,2013(7):7-10,17.

[3] 陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1):10.

【通联编辑:张薇】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一直在构建工作空间_智能工作空间让Dropbox拥有无限扩展潜力

智能工作空间让Dropbox拥有无限扩展潜力Dropbox一直以“让工作变得更好”的使命。在竞争激烈的市场中,Dropbox有着卓越的历史,就连苹果创始人史蒂夫乔布斯曾经提出来要收购它。Dropbox的智能工作空间是一个开放的生态系统,由于其开放集成的特…

厦门大学2016年c语言程序设计,厦门大学c语言程序设计2016模拟题讲评及课程复习.pptx...

《C语言程序设计》课程复习及模拟题讲评;《C语言程序设计》试卷各类题目分数分布情况一、选择题 40分(20小题, 每题2分 ) 主要考核基本概念, 词法, 语法和小程序阅读等。二、阅读题 12分(2小题, 每题6分)三、改错题 12分(2小题, 每题6分)四、设计题 36分(4小题, 每题9分) ;启动…

黄金分割小数点后100位小数的c语言编程,黄金分割数小数点后100位

满意答案su304_3212013.03.25采纳率:57% 等级:12已帮助:10017人黄金分割奇妙之处,在于其比例与其倒数是一样的。例如:1.618的倒数是0.618,而1.618:1与1:0.618是一样的。确切值为根号51/2黄金分割数是无理…

去超市一定要存包吗_去东京一定要去的富士河口湖

第一次去河口湖是一个人~也没有留宿,但当时就想说一定要来这边住两天泡温泉,因为实在太!美!了!因为下面这个预告所以就订了一栋小木屋,这是闺蜜先去日本前线发回的~立马改了酒店日期…

分析启动耗时 android,Android app启动耗时分析

首先编译你的程序,打开Android Studio里面的Android Monitor,找到下图的按钮<img src"//bbsmax.ikafan.com/static/L3Byb3h5L2h0dHBzL3BpYzIuemhpbWcuY29tL3YyLTA4Zjk1ZmUxMjM5ODgwNTkzMDU5YjE3YzFlMGU5NjcxX2IucG5…

pytorch 对抗样本_《AI安全之对抗样本入门》—3.4 PyTorch

3.4 PyTorchPyTorch是torch的Python版本,是由Facebook开源的神经网络框架。PyTorch虽然是深度学习框架中的后起之秀,但是发展极其迅猛。PyTorch提供了NumPy风格的Tensor操作,熟悉NumPy操作的用户非常容易上手。我们以解决经典的手写数字识别…

包包的结构制图_15种常见领型的结构制图

原标题:15种常见领型的结构制图更多独家素材分享欢迎添加博主微信 Wlb109701来源 | 服装云教育整理编辑V领注意1、V形领的前开深,除夜礼服外,一般最深开到胸围线附近(胸围线以上3cm处),如果继续开深,需添加挡胸。2、贴…

android+内存清理+代码,最新版本:Android一键式清理,内存清理功能的实现

Android一键式清理,内存清理功能的实山清理大师等均提供一键式清理和一键加速等功能。实际上,它们杀死了一些后台进程以达到释放内存的目的。基本思想是列出所有正在运行的进程,检查它们的重要值(RunningAppProcessInfo.importance&#xff0…

android xml通知栏权限配置,Android开发中 AndroidManifest.xml配置之service,receiver标签配置详解...

本文主要来分享service,receiver标签配置。如有错误,欢迎指正。android:directBootAware["true" | "false"]android:enabled["true" | "false"]android:exported["true" | "false"]android:foreground…

cups共享linux打印机_linux入门-映射网络驱动器

linux入门-映射网络驱动器在日常中,我们不会时时刻刻远程着linux服务器,那么有没有办法可以让我们在window电脑上映射linux的磁盘呢?这是可以实现的,这里我们就要介绍samba了。sambaSamba是在Linux和UNIX系统上实现SMB协议的一个免…

c++ idea 插件_idea快速开发插件

插件:1、Background Image Plus这款插件并不能直接提高你的开发效率,但是可以让你面对的IDE不再单调,当把背景设置成你自己心仪的的图片,是不是会感觉很赏心悦目,编码效率会不会因此间接的提高?&#xff01…

android 删除模拟器,android – 如何从avd设备中删除脱机模拟器?

我在Android Studio中创建了几个AVD-s.他们在模拟器端口5554上启动.然后我通过android avd应用程序创建了另一个AVD,他们从端口5556开始.现在运行一个模拟器,我从adb devices -l获得以下输出:List of devices attachedemulator-5556 deviceemulator-5554 offline我正…

mongodb 搜索速度_MongoDB数据库查询性能提高40倍的经历分享

前言数据库性能对软件整体性能有着至关重要的影响,本文给大家分享了一次MongoDB数据库查询性能提高40倍的经历,感兴趣的朋友们可以参考学习。背景说明1、数据库:MongoDB2、数据集:A:字段数不定,这里主要用到…

signature=8405d26e250ad07c44560263cb1d4fc0,Systems for analyzing microtissue arrays

摘要:A tissue microarray imaging system autonomously images, analyzes, and stores data for samples in a tissue microarray. The system may include a tissue microarray, a robotic microscope, and an imaging workstation that executes software to aut…

ios支付宝支付失败不回调_为什么 iOS 支付成功后能回到 APP ,但是没有回调?...

接入客户端从服务器端拿到 charge 对象后,调用下面的方法[Pingpp createPayment:chargeviewController:viewControllerappURLScheme:kUrlSchemewithCompletion:^(NSString *result, PingppError *error) {if ([result isEqualToString:"success"]) { …

html如何将设置文本效果,css如何对文本进行修饰

color属性:设置文本文字颜色。用法如下:color:颜色值;color属性可以设置的合法颜色值包括:16进制颜色值(例:#ffffff),rgb颜色值【例:rgb(0,0,0)】,rgba颜色值【例:rgb(0,…

HTML与cgi post传递与接收,CGI实例--表单GET与POST示例

CGI概述CGI(Common Gateway Interface: 公用网关接口)规定了Web服务器调用其他可执行程序(CGI程 序)的接口协议标准。Web服务器通过调用CGI程序实现和Web浏览器的交互, 也就是CGI程序通过读标准输入,接受Web浏览器发送给Web服务器的信息, 进行处理, 将响应结果再通过…

vue横向树结构_vue树形结构的实现

1. 主要代码使用单文件组件的方式, 需要一个父组件treeMenu, 和子组件treeItem1.1 父组件treeMenu.vue:nodes"treeData">export default {name: treeMenu,data: () > {return {treeData: {label: china,nodes: [{label: hubei,nodes: [{label: wuhan},{label: …

cesium js 路径_vue2.0项目集成Cesium的实现方法

安装cesium在已有项目中执行,npm i cesium修改配置build/webpack.base.conf.js1、定义 Cesium 源码路径const cesiumSource ../node_modules/cesium/Sourceuse strictconst path require(path)const utils require(./utils)const config require(../config)const vueLoader…

pytorch模型加载测试_pytorch模型加载方法汇总

Pytorch有很多方便易用的包,今天要谈的是torchvision包,它包括3个子包,分别是: torchvison.datasets ,torchvision.models ,torchvision.transforms ,分别是预定义好的数据集(比如MNIST、CIFAR1…