c语言课程教学改革,C语言课程教学改革和实践.doc

C语言课程教学改革和实践

C语言课程教学改革和实践

程序设计课程在计算机科学(Computer Science, CS)专业新生的教学中起着相当基础的作用,CS专业包括计算机科学与技术、软件工程和网络工程。尽管近年来涌现了很多新的程序设计语言,如java, C#, Python和Ruby等,但C和java语言从2002年以来一直是两种最流行的语言[1]。C语言经常名列软件界知名的“TIOBE Programming Community Index”(TIOBE程序论坛指数)排行榜首位。所以,我们依然选择了C语言这种非脚本语言作为一年级新生的必修程序设计课程的语言。

随着信息技术日新月异的发展,社会需求越来越多的CS专业毕业的学生。Internet已经渗透到人们日常的工作、学习和生活当中,一年级CS专业的学生与上世纪90年代相比也发生了很大的变化。在我们学校,2001年到2003年计算机科学与技术专业的学生入学平均成绩在全校几十个专业位居第一;然而,10年之后的2011年,已经降至第28名。PC机和Internet的普及和十年前相比不可同日而语。这些新的变化迫使任课老师必须采用新的方法以应对入门程序语言课程教学的新需求变化。

本文其它部分组织如下:在第二节分析了教学过程中存在的问题之后,将在第三节提出一些方法来解决这些新出现的问题,最后第四节进行小结。

一问题分析

在过去几年的教学中,我们发现,把这门课程安排在一个学期内完成学习,很多学生感觉吃力,在后续课程学习过程中会表现出遇到实际问题编程能力较弱。甚至有少数一些学生不知该如何下手写一个新的程序。本节我们从教和学两个方面挖掘分析其中存在的问题。

1对计算机科学缺乏兴趣

C语言安排在一年级,很多学生在入学前对这个专业认识很肤浅。可以说入学前,几乎所有学生对今后的计算机职业生涯规划都一无所知。换言之,只有相当少数的学生对CS专业有他们自己的爱好兴趣,曾经学习过编程,他们对专业或程序的兴趣可使得以后的学习是自我驱动式的。然而,总有一些学生在C语言课程的初始阶段是毫无兴趣可言。据我们经验来看,很大程度上,课程结束时考试成绩差进一步导致他们对后续专业课程学习缺乏信心。兴趣才是最好的老师。任课老师应该从课程一开始就激发学生的兴趣,才能在后续教学过程中使学生的潜能得以发挥。

2缺乏编程的调试能力

编程新手经常苦于如何像挤牙膏似的写程序开始的代码段,而且,在好不容易写出程序后,不知道如何找出隐藏在其中的错误和漏洞,不知道如何分析程序找出错误。特别是对于成绩较差的学生,即使写很简单的程序,他们也看不出程序到底是错在哪里或者为什么得出不正确的结果,不知从哪里开始排查和定位错误。这样的情况在我们每一届每个班的教学中都会遇到。实际上,即使是熟练的程序员,调试程序的能力都是必不可少的,特别是在开发复杂软件程序的时候。

3优秀生和差生之间的差距问题

在我们计算机学院,招生人数从2001年的359人翻一番到2011年的790人。学生来源于从大城市到农村等不同地区。在第一次课时,我们都会做过简单调查,发现只有少数一些学生在高中学习过程序设计,一般学习BASIC或PASCAL语言,有的学生曾经参加过国家奥林匹克信息学竞赛(NOI)等相关课外活动;大多数学生并没有学习过程序设计。在一年级第二学期,将会有优秀的学生能在ACM广东省赛区比赛中获得奖励。再看成绩较差的学生,在第一次上机课时,他们连键盘的布局都不知道,不知如何开机关机和基本的操作,因为以前从未使用过PC机。这样,优秀生和较差生的差距比十年前扩大了。如果我们教学过程较多顾及后者,前者将不能充分利用好课堂时间发挥他们的潜力。这就会任课老师带来新的挑战。

二改革教学方法

1在课堂教学中提高学生对计算机科学的兴趣

通过和本课程相关的故事,让学生了解计算机科学技术发展史的同时,激发他们对计算机技术的热爱和对科学执着追求及探索精神,逐渐培养兴趣。例如,在第一课时,在讲C语言历史时将介绍C语言之父丹尼斯?里奇(Dennis Ritchie)的故事,他虽然不是像比尔?盖茨那样为大众所知,但他和肯?汤普逊(Ken Thompson)对C语言和UNIX操作系统做出了杰出贡献。在C语言和这两位著名计算机科学家互相交织的历史故事当中,学生将体会到什么是科学精神,什么是对计算机科学的贡献和创新。当然,在课程的后续教学过程中仍然会花几分钟加入一些相关故事活跃课堂气氛。学生乐于在课堂中听到这些一般不为人知的故事,潜移默化地增加了兴趣。

另外一个途径是介绍和C语言关联密切的应用实例。虽然C语言被用于开发操作系统和嵌入式系统,但是,这些应用不易于新手所理解。所以,在讲到相关知识时,我们选择一些简短的应用程序演示其运行甚至浏览

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

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

相关文章

audio接线图解_图文:主板跳线(排线)连接技巧HD AUDIO连线接法

作为一名新手,要真正从头组装好自己的电脑并不容易,也许你知道CPU应该插哪儿,内存应该插哪儿,但遇到一排排复杂跳线的时候,很多新手都不知道如何下手。钥匙开机其实并不神秘还记不记得你次见到装电脑的时候&#xff0c…

code blocks c语言,Code Blocks安装与使用图文教程(使用Code::Blocks编写C语言程序)...

CodeBlocks 完全支持单个源文件的编译,如果你的程序只有一个源文件(初学者基本上都是在单个源文件下编写代码),那么不用创建项目,直接运行即可;如果有多个源文件,才需要创建项目。1) 新建源文件打开 CodeBlocks &#…

python链表实现栈_python实现链表队列栈

#!/usr/bin/python # -*- coding: utf-8 -*- #便于测试 data 使用数字 class Node(object): def __init__(self,data): self.data data self.next None self.prev None class List(object): def __init__(self): self.next self self.prev self self.size 0 # 是否为空 d…

python except用法和作用_Python面试题(部分附带面试标准答案) 建议收藏

1、请尽可能列举python列表的成员方法,并给出一下列表操作的答案:(1) a[1, 2, 3, 4, 5], a[::2]?, a[-2:] ?(2) 一行代码实现对列表a中的偶数位置的元素进行加3后求和?(3&#xf…

c语言简单的24点游戏,C语言解24点游戏程序

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼前几天在微博上看到24点的游戏,6 6 610。算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的所有可能的表达式组合&…

chrome vue插件_VS Code 前端常用插件推荐

⊕.vscode安装插件只需要点击图片所示按钮,即可进入拓展,在搜索框中输入插件名点击安装后,等待安装好即可点击重新加载重启vscode使得插件生效。Ξ.当你不需要某个插件时只需要进入扩展,点击对应插件右下角的齿轮按钮即可选择禁用…

ubantu获取信息_Ubuntu 下查看CPU 信息命令

查看当前操作系统内核信息uname -aLinux redcat 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux查看当前操作系统发行版信息cat /etc/issueUbuntu 9.10 /n /l查看cpu型号cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c2 Intel(R) Cor…

为什么c语言读文件少内容,这个程序为什么在读文件时候读不全数据?

已结贴√问题点数:10 回复次数:7这个程序为什么在读文件时候读不全数据?txt(数据):4700.7100 -16.801 73.331 115.494 37.617 11414.634 1.009 8.802 9.738 9.444 15.011 10.455 20.906 …

@mapperscan注解_Spring的@Import注解详解

首先看下Import的javadoc文档&#xff1a;Provides functionality equivalent to the <import/> element in Spring XML. Allows for importing Configuration classes, ImportSelector and ImportBeanDefinitionRegistrar implementations, as well as regular componen…

httphost设置socks_socks5代理使用和安装配置

Socks简介&#xff1a;详情可以百度&#xff0c;不过我猜你对那一大堆术语也会像我一样觉得无语&#xff0c;所以我觉得你可以简单理解为它可以比较完美代理http/ftp/smtp等多种协议的代理工具就行了。其中最具有典型例子的就是QQ的登录、foxmail的邮件、火狐的网页浏览都可以直…

百合数c语言360问答,《百合花》

满意答案fadess1d2013.02.26采纳率&#xff1a;51% 等级&#xff1a;12已帮助&#xff1a;7212人作者茹志娟&#xff0c;于1958年3月在《延安》上面发表。这篇小说具有清新俊逸的艺术风格。是她前期的代表作。她写这篇小说时&#xff0c;中那个是反右斗争扩大化&#xff0c;…

python 实现显著性检测_使用python轻松实现高大上的YOLOV4对象检测算法

YOLO系列对象检测算法&#xff0c;算是人工智能技术领域的一匹黑马&#xff0c;当开发者宣布不再为YOLO系列检测算法更新时&#xff0c;很多开发者瞬间失去了”精神食粮“。突然&#xff0c;当YOLOV4检测算法发布的时候&#xff0c;让很多开发者喜出望外。YOLOV4对象检测YOLOV4…

reactnative 获取定位_【React Native】定位获取经纬度,当前城市等地址信息

最近做React Native时&#xff0c;需要用到城市定位的功能&#xff0c;React Native中文网的定位部分中也提供了相应的方法。主要用到的方法有&#xff1a;这里只需要获取到经纬度&#xff0c;城市等信息&#xff0c;持续监听的函数就不需要了。这里使用 getCurrentPosition 方…

linux hash 算法,识别哈希算法类型hash-identifier

识别哈希算法类型hash-identifier是一款哈希算法识别工具。通过该工具&#xff0c;用户可以识别哈希值所使用的哈希算法。确定算法后&#xff0c;就可以采用对应的工具进行xx。执行该命令如下所示&#xff1a;rootdaxueba:~# hash-identifier输出信息如下所示&#xff1a;#####…

calendar获取本周一的日期_Java Calendar 获取本周周一和周日代码

Java Calendar 获取本周周一和周日代码/*** 得到本周周一** return yyyy-MM-dd*/public static String getMondayOfThisWeek() {Calendar c Calendar.getInstance();int day_of_week c.get(Calendar.DAY_OF_WEEK) - 1;if (day_of_week 0)day_of_week 7;c.add(Calendar.DATE…

android source镜像源_【转载】Celadon快速上路指南Part2:编译Celadon镜像

Celadon快速上路指南Part2&#xff1a;编译Celadon镜像From: 孙晓璐 AndroidIA Celadon 9/20一目了然 | Celadon 新手上路快速通道隆重揭晓 | 打开Celadon 的正确姿势上一期我们向您介绍了如何安装Celadon预编译镜像&#xff08;Celadon快速上路指南 Part1&#xff1a;安装Cela…

光学字符识别 android,基于Android的光学字符识别研究与实现

摘要&#xff1a;随着Android手机平台的普及和信息化进程的不断推进,利用手持设备高效地将文档信息录入已经成为一个亟需解决的问题,其关键技术光学字符识别在手机上的应用日益受到人们重视.本文所做工作正是针对这一问题而展开.本文设计的Android平台光学字符识别通过手机摄像…

适合程序员的耳机_为什么很多程序员工作时都戴耳机?

观点一&#xff1a;非诚勿扰&#xff0c;想静静。1、啥也没听&#xff0c;只是带着耳机而已。只是想告诉别人不要打扰我&#xff0c;选择性屏蔽一些讨厌的人说的话&#xff0c;不回答他。2、在听笑话或者有声小说。特别不想工作的时候会很认真地听&#xff0c;如果进入工作状态…

python中os模块_Python的武器库11:os模块

说到编程语言python&#xff0c;有一个著名的格言"余生太短&#xff0c;只用python"。如果要分析为什么会存在这么一句格言&#xff1f;python的语法并不简单&#xff0c;有复杂难懂的部分&#xff0c;之所以有这样一句格言&#xff0c;是因为python中有很多强大的模…

Android实现拍照并存储功能,Android实现拍照及图片显示效果

本文实例为大家分享了Android拍照及图片显示的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下1、功能声明当应用需要使用相机、NFC等外设时&#xff0c;需要在AndroidManifest.xml中进行声明。这样&#xff0c;当设备缺少这些外设时&#xff0c;应用商店的安装程序可…