C语言程序设计课程是一门计算机专业程序设计语言类的基础课程,如何将枯燥复杂的语法、单调抽象的函数让学生们有兴趣学习、研究。文章通过在C语言程序设计这门课教学的设计,浅谈了自己的见解和方法。

大多数计算机专业学生首先开设的编程语言类课程就是C语言。不少同学觉得C语言学习比较困难,因为是第一次接触计算机程序语言,与计算机进行编程对话,掌握对话的语法格式确实需要一个过程。而且C语言的语法知识广泛,需要学生反复地做算法类的编程练习,就容易使学生不感兴趣,不愿写程序,进而觉得入门困难。但是C语言是学习其他语言的基础,其语法结构同其他语言有50%以上的相似度。而各种程序语言程序设计的思想基本相同,都是通过分析功能、组织算法、编码实现。所以C语言程序设计这门课程主要任务是培养学生掌握C语言的语法结构,了解功能分析、设计、编码实现的过程,培养学生分析问题解决问题以及逻辑思维的能力。这些能力的形成与学生的学习过程密切相关,而学生的学习过程很大程度上又决定于教师的教学方法。

1任务驱动式教学法在“C语言程序设计”课程教学中的运用

1.1 任务驱动式教学法介绍

在实际教学中发现,教师讲授知识点、语法,学生听讲、记笔记这种单一的讲授教学方式,当下的学生已经非常不喜欢且不适应被动的教学方式,他们渴望通过自己的努力去建构知识,利用知识去解决实际的问题。任务驱动式教学法在课程中穿插如具有实际意义的功能项目,并将项目进一步细化为子任务的方式,以驱动学生有效学习的教学方法。

理论知识是项目任务驱动教学法的基础:在进入每章课程学习之前,先概括本章重要知识点,然后导入和这些知识点相关的具有实际意义的项目,作为本章内容的贯穿实例。这样带着任务有目的的学习,增强学生自主学习能力。这种教学模式能将理论和实践紧密的结合见效快、教学效果明显。任务驱动法强调的是教师在教学过程中以案例为主体,让学生在案例分析的过程中生成任务感,并以任务完成为动力对学生实施的教育。

1.2实践任务设计

在C语言程序设计这门课的教学实施过程中,根据主要知识点,将“超级工具”这个C语言程序作为整个课程的项目实例。超级工具中包括算术计算器、体质测量器、图形面积体积统计、数据加密、彩票号生成器、日常消费统计等工具。实例中涵盖绝大多数理论知识点,以理论知识点为基础,以“模块化程序设计”为主线,让学生在做中学,在学中做。

1.2.1 理论知识铺垫

程序设计语言类课程理论知识是进行程序设计的基础,首先学生要将基础知识掌握扎实。实例的运用也是为了让学生产生兴趣,理解理论知识究竟如何应用,而不是将知识学死。所以在理论课知识点讲授之前,先将应用的实例进行简单介绍,让学生自己先查询资料,进行预习,带着目的学习理论知识。这样当老师在课堂上进行知识点讲解时,学生更容易理解。将项目实例需要的理论知识讲解之后,留给学生独立思考项目功能,组织解决方法的时间,使学生更好地消化理论知识,真正掌握应用方法。理论知识一定要掌握扎实,这样才能在功能实现时灵活应用。

1.2.2 任务功能分析分解

C语言程序设计课程要求学生掌握模块化的程序设计方法。具有实际应用价值的功能项目的引入,激发了学生的学习兴趣。在进行项目分析时,教师还可以结合实际生活中其他领域的模块化设计思路,以让学生初步体验何为模块化分析方法。学生在计算机语言学习过程中触及模块化思想时,会增加学习积极性。而且模块化设计的应用实际上降低了学生对程序语言的畏难心理,明白一个完整功能通过模块化的思路如何转化为多个小任务来完成。而这样的思路形成,又为任务驱动奠定了基础。

2、任务驱动式教学实施

2.1 课程内容优化

C语言课程理论基础知识多,内容抽象,而且是学生最先接触的编程语言类课程,课程内容的设计上应该根据学生特点及本专业后续多门专业课程的相关性对教学内容进行优化。以难度适中、知识够用为原则,提炼C语言重点讲授内容,帮助学生从宏观上掌握编写计算机程序的方法。例如C语言的基础语法、程序设计结构、数组的使用、结构的定义方法、函数的定义及调用都要在授课内容中重点覆盖到。而难度较大的指针,则可以根据学生基本情况概讲、略讲。

2.2 课程实践实现

将课程分为理论课和实践课两部分,两部分所占的比例,可根据项目任务的规模灵活调整。

首先进行理论课,开始上课就先介绍通过本堂课的知识,大家要完成怎样的任务项目,让学生明确自己要实现的目标。由于授课时长为一个半小时,再介绍完任务项目后,就进行相关理论知识的讲解。堂课时间分配为理论知识点讲解、教师实例编程、学生知识点代码训练比例为3:1:1,让学生通过代码实例理解知识点,为任务项目功能实现打好理论基础。

实验课是将一个具体任务项目付诸于实现的关键过程,为了更好地调动學生的学习积极性及相互沟通合作能力,可以将班级学生分为若干个小组,以小组为单位进行任务分析、实现。按照程序设计步骤首先分析任务的主要功能,讨论实现功能所要应用的关键技术,最后应用理论知识点解决实际问题。以生成随机彩票号的应用为例,根据功能分析结果为“每张彩票组成数由1至22个数字中随机产生5个,并将这5个数字进行从大到小的排序”。为实现该功能需求需应用的知识点包括随机产生指定范围内数字的方法及将给定一组数字如何进行排序。这样学生通过理论课和实践课的相辅相成,才能真正掌握每个任务的从分析问题到找出解决方法,到最后付诸以实现的完整过程。

3.结语

从实际教学效果来看,通过任务驱动式教学法在C语言程序设计课程中的应用,增强学生学习的积极性和主动性。学生不但对理论知识有了深刻的理解,更能够根据实际任务应用对应知识解决,大大提高了学生的程序设计思维和编程能力。

参考文献

[1]曹莎莎.C语言教学研究与思考[J].价值工程,2012(1).

[2]金秋春;童小利.C程序设计教学方法探索[J].科技信息,2012(4).

[3]高春颖;张云峰;马慧敏.《C语言程序设计》教学中存在问题及改革探索[J].电脑知识与技术,2011(17).

作者简介:潘艳禄(1976.3.12),女,汉族,辽宁,讲师,硕士,主要从事软件工程教育研究。

c语言程序与设计教学设计,浅谈C语言程序设计课程的教学设计相关推荐

  1. 自己设计计算机网络实验室,浅谈高校计算机网络实验室的规划与设计

    浅谈高校计算机网络实验室的规划与设计 作者:李文 来源:<电子世界>2012年第10期 安康学院经济与管理系目前,高校计算机网络实验室的规划和设计五年前甚至更早时候的方案,其规划设计已不能 ...

  2. c程序语言的常量变量和标识符,浅谈C语言中的常量与变量.pdf

    课程教育研究 CourseEducationResearch 2014年4月 上旬刊 教学.信息 浅谈C语言中的常量与变量 刘 星 (青 岛工学院商学院 山东 青岛 266300) [摘要]在任何一种 ...

  3. c语言弱符号与函数指针,浅谈C语言中的强符号、弱符号、强引用和弱引用【转】...

    首先我表示很悲剧,在看<程序员的自我修养--链接.装载与库>之前我竟不知道C有强符号.弱符号.强引用和弱引用.在看到3.5.5节弱符号和强符号时,我感觉有些困惑,所以写下此篇,希望能和同样 ...

  4. c语言结构共用体的作用,浅谈C语言共用体和与结构体的区别

    共用体与结构体的区别 共用体: 使用union 关键字 共用体内存长度是内部最长的数据类型的长度. 共用体的地址和内部各成员变量的地址都是同一个地址 结构体大小: 结构体内部的成员,大小等于最后一个成 ...

  5. c语言中的字符串如何拆分,浅谈C语言的字符串拆分

    字符串拆分应用在很多方面,尤其是针对格式化数据的处理,可是不同程序语言对于字符串拆分却有着很大的区别(易用性,效率等方面考虑). 对于格式化数据的处理首先想到的利器就是awk了,它尤其胜任文本的处理, ...

  6. c语言如何将浮点数转换为字节,浅谈C语言整型与浮点型转换

    本篇博客将阐述.讨论的内容: ●int int的范围根据计算机的不同存在16位或32位的差异,以16位举例,最大值为1111 1111 1111 1111,也就是65535,如果出现65536,就会溢 ...

  7. 园林计算机制图在计算机上的应用,浅谈计算机园林效果图在园林景观设计中运用.doc...

    浅谈计算机园林效果图在园林景观设计中运用 浅谈计算机园林效果图在园林景观设计中运用 [摘要]园林设计中除了部分文字,更多的是以线条来表达设计者的设计理念,非专业人士则很难相互沟通.园林设计师通过实地考 ...

  8. 分三种情况C语言编程,浅谈C语言教学的现状及几点建议.doc

    浅谈C语言教学的现状及几点建议 浅谈C语言教学的现状及几点建议 摘 要 针对C语言教学中存在的问题提出建议,以期对C语言教学有一定帮助. 关键词 C语言:课程设置:创新能力 中图分类号:G642 文献 ...

  9. 《浅谈12306核心模型设计思路和架构设计》阅读有感

    <浅谈12306核心模型设计思路和架构设计>阅读有感 12306的业务复杂度远远比淘宝天猫这种电商网站要复杂.一般的电商网站,购买都是基于商品的概念,每个商品有一定量的库存,用户的购买行为 ...

  10. c语言教改课程项目,C语言程序设计课程的教学改革.pdf

    · 180 · 价值工程 C语言程序设计课程的教学改革 TeachingReform ofC LanguageProgramming 张立 臣 ZhangLichen:王 四万 WangSiwan ( ...

最新文章

  1. 如何从0-1构建自己的”pytorch“(自己专属的深度学习框架)——part02
  2. ibatis mybatis传入List参数
  3. 高清、免版权美图资源大全
  4. Java并发编程:ThreadLocal
  5. Java比较器之Comparable接口与Comparator接口的使用
  6. Linux网络——一种强制门户技术
  7. 【软考2】Java语言的基本知识汇总
  8. css样式:文字led效果(走马灯、轮播)
  9. 安卓 获取rtsp流 截屏_华为手机这5种截屏方法,你都会用吗?现在知道也不亏...
  10. c++除法保留小数_BigDecimal 加减乘除、保留小位数
  11. 当当(Elastic-job)分布式定时任务
  12. C# ManualResetEvent 类的用法
  13. 启动 COMSOL 时发生意外错误:无法加载文件或程序集 ‘cstextrenderer_wpf‘
  14. 推荐几个下载英文原版电子书的网站-PDF
  15. 【HDU 杭电 5773 The All-purpose Zero】
  16. 饥荒:mod教程索引
  17. 产业分析:线上线下融合会展
  18. Windows系统安全检查脚本
  19. html的css雪花动效,《前端每日实战》第171号作品:用纯 CSS 绘制一朵美丽的雪花...
  20. 猴子吃桃,C语言,递归法

热门文章

  1. 计算机控制系统接地方式,计算机控制系统接地技术探讨
  2. python画正方形的代码_python画正方形的代码是什么?
  3. 超详细面经分享!@最近考虑换工作的伙伴们
  4. CSS复合选择器( 交集、 并集、后代、子元素、兄弟、伪类、伪元素)
  5. android 录像抠取人像,snapseed抠图教程
  6. 阿里云王文彬:希望云计算支撑百亿设备
  7. java添加坚挺_Java连载136-两种方式插入数据
  8. 瑞星升级包 下载网站
  9. 每日新闻:科学家称人工智能可以迅速发展自己的偏见;工信部:贯彻落实企业上云政策...
  10. 体验专业级上网行为管理的特色功能