理论教育 应用型大学C语言教学改革的思考

应用型大学C语言教学改革的思考

时间:2023-04-26 理论教育 版权反馈
【摘要】:应用型大学的C语言课程, 其教学目标重在赋予学生使用C语言解决问题的能力和程序设计的思想, 使学生具备开发中等规模软件的能力。目前, C语言教学中普遍存在以下五方面问题。C语言的主要教学目标是让学生掌握编程的思想, 而不仅仅局限于具体的语法规则。

应用型大学C语言教学改革的思考

倪景秀 梁爱华 肖丽平 穆艳玲

一、 引言

C语言程序设计 (以下简称C语言) 作为大学计算机基础课程体系中的一门课程,主要讲授程序设计语言的基本知识和程序设计的方法与技术, 其内容包括C语言的语法规则和程序设计的一般方法。 C语言是普通高校理工科本科生的必修课, 其重要性显而易见。

应用型大学的教学应该是针对职业需求, 培养学生的实际动手能力, 让学生能够学以致用。 应用型大学的C语言课程, 其教学目标重在赋予学生使用C语言解决问题的能力和程序设计的思想, 使学生具备开发中等规模软件的能力。

二、 应用型大学C语言教学的主要问题

由于C语言抽象、 逻辑性强, 并涉及大量的语法知识, 而初学者缺乏计算机程序的基本知识。 因此, 不恰当的教学模式很容易使学生感觉C语言枯燥难学, 产生畏难情绪。 目前, C语言教学中普遍存在以下五方面问题。

1.C程序运行环境不友好。 目前多数程序设计软件普遍使用图形化界面, 操作简单, 学生易学易用。 相比之下, C程序的运行界面是命令界面, 缺乏吸引力, 而且C编译环境需要完整正确的源程序, 才能运行, 程序中的任何语法错误都会导致程序无法运行。 如果学生没有掌握C语言的语法, 就很难胜任调试程序的工作, 慢慢地就失去学习热情。

2. 学生重语法、 轻思想, 没掌握住程序设计的核心。 C语言的主要教学目标是让学生掌握编程的思想, 而不仅仅局限于具体的语法规则。 但是由于课程前期内容偏重于基本语法, 而且课程考核的重点也是C语言的语法和编程, 学生会感觉该课程离不开大量语法规则, 这样学生会形成重视语法而忽略编程思想的观念。

3. 教学案例枯燥。 有些教材里的案例已使用了二十多年, 没有新意, 无法激起学生的兴趣。 多数实验教材中验证性的、 简单的程序居多, 缺乏贯穿不同章节的综合性实例, 忽视了编程过程中的解题思路和程序测试环节, 对学生分析问题和解决问题的能力训练不够。

4. 学习目的不明确。 应用型人才的学习目的是职业应用, 但是作为一门基础课, C语言不像其他的专业课应用广泛, 学生会误以为学了C语言之后作用不大, 这也是造成学生缺乏学习动力的主要因素。

5. 传统的实践教学环节也存在问题。 例如实践教学内容缺乏系统性和层次性, 实践教学方式方法单一, 和后续课程脱节等。 C语言教师对C语言在不同专业中的应用情况知之甚少, 导致教学无法体现专业特点, 对不同专业学生采用相同的教学内容和单一的教学方法, 该做法的直接后果是学生无法将程序设计的能力迁移到实际的专业学习和工作中。

本文分析认为, 传统的C语言教学方式方法不利于 “教师为主导、 学生为主体”教学理念的有效贯彻, 难以提高C语言的教学质量, 无法培训出应用型人才。

三、 改进应用型大学C语言教学质量的措施

为了改善应用型大学的C语言教学效果, 首先必须提高学生的学习兴趣。 笔者根据多年的C语言实践教学情况, 探讨了激发学生学习兴趣、 促进学生主动学习的方法,并给出了提高教学质量的改进措施。

(一)针对学生特点,合理选择教材

目前, 市面上存在大量的C语言教材, 教材质量参差不齐, 而且不同教材在内容设计及难易程度方面也大相径庭, 从如此纷繁复杂的教材中选择出符合应用型大学特点的教材, 也绝非易事。 应用型大学的学生, 没必要钻研高深的理论知识, 应该注重实际动手能力的培养, 要求教材能够提供大量联系专业实际情况的例题和实验, 把基础课和专业课衔接好。合理选择教材可以极大地方便教师的教学设计,[1]也可以有效激发学生的学习兴趣, 达到事半功倍的效果。

(二)应用案例教学法,调动学生积极性

C语言涉及数学数据结构、 高级语言、 计算机硬件等众多学科, 同时又具有抽象性特点, 因此, 很多学生对C语言课程难以激发学习热情。 这些实际问题的存在对教师提出了严格的要求: 教学方法与教学内容同等重要, 只有针对学生特点及教学内容等因素恰当运用各种教学方法, 才能真正达到教学目标, 实现教学效果。

施行以问题为主线的教学方法, 引导学生进行思考问题、 提出问题、 研究问题和解决问题,[2]充分突出学生的主体地位,调动学生的积极主动性。解决具体问题后,教师可运用归纳教学法[3]进行归纳总结,帮助学生温故知新,并及时进行引申,分析类似问题的解决方法, 让学生学会举一反三, 触类旁通, 提高学习效率

例如,为了讲解循环结构和循环语句, 可以采用求1+2+3+…+100累加和的问题作为切入点。 首先, 引导学生思考在人工计算的情况下, 该问题的具体算法是怎么样的。 其实该问题的算法非常简单, 就是执行100次加法, 但是实现起来语句太多, 效率太低。如果用sum来表示和值,那么,最初sum=0,第1次加法用C语句sum=sum+1来表示,第2次加法的语句为sum=sum+2, 第3次加法的语句为sum=sum+3, 依次类推,第100次加法的语句为sum=sum+100,从上述分析,可以总结出:求1+2+3+…+100累加和的问题,其实就是将sum=sum+i语句重复执行100次, 只是每次执行时i取1~100中的一个不同的值, 此时可以引入循环的概念, 提出如果采用循环语句, 这100条语句就可以简化为两行语句, 极大地提高语句的效率。 顺序结构与循环结构的区别具体见表1。

表1 采用顺序结构和循环结构的语句比较

这个例题的讲解过程贯彻了以问题为主线的教学方法, 引导学生进行分析问题、设计算法、 编程实现算法, 完成了程序设计的整个流程。 学生不仅学会了程序设计的思想以及使用C语言解决实际问题的步骤, 更重要的是, 通过这样的方式掌握的知识会更加牢固,印象更加深刻,更利于学生活学活用。 此时, 教师可以适时提出诸如1× 2×3×…×100,之类的问题,此类问题的解决方法与上述问题的解题思路类似, 达到举一反三的教学效果。

(三)多媒体教学与板书相结合,提高教学效果

作为计算机实践操作课程, C语言课程离不开机房和多媒体设备, 幻灯片课件能够形象地演示动态变化过程, 非常利于学生对于抽象过程的理解。 但是, 板书在C语言教学中的作用也不容忽视。[4]教学的过程是教师和学生之间互动的过程,不是知识的单向传输, 教师的作用主要还是引导学生进行主动思维。 而板书能够让教师自由控制教学进度, 并可以适时加入回顾、 提问等环节, 使学生的思维能够很好地配合教师的教学, 达到学生和教师之间的同步。 另外, 教师在板书的过程中可以把重要内容或提纲保留下来, 学生能够时刻清楚本节课的宏观知识框架, 保证听课的上下文的连续性,而且教师可以按照板书保留的重点内容进行概括总结, 较容易帮学生回顾课堂的教学情境。 因此, 在C语言的教学过程中, 把多媒体教学资源和板书设计有机结合起来,才能更进一步提高教学质量和改善教学效果。

(四)重视实验环节,提高学生实际编程能力

鉴于C语言课程的特点, 课堂知识的讲解很重要, 但是上机实践的作用也不可小觑。 面对具体问题, 学生需要经历分析问题、 设计算法、 编程实现、 上机调试、 测试等一系列实践步骤。 上机实践的每个环节都直接影响学生的实际动手能力。

例如, 要在屏幕上打印输出图1的内容。 即输出三行图形, 每行是10个 “*”。要输出图1中的图形, 首先要解决输出一行10个 “*” 的问题。

输出一个 “*”, 语句是:

printf("*");  (1)

输出一行10个 “*”, 就是把 (1) 重复10次, 具体实现语句是:

for(j=1;j〈=10;j++)(www.daowen.com)

printf("*");  (2)

输出三行10个 “*”, 就是把 (2) 重复3次, 具体实现语句是:

for(i=1;i〈=3;i++)

{ for(j=1;j〈=10;j++)

printf("*");

} (3)

以上是算法设计和代码编写, 这样循序渐进的分析有利于学生理解, 到此为止,代码 (3) 在逻辑层面来看没有任何问题。 但是设计好的语句 (3) 在编译系统运行的输出结果是图2, 并不是图1。 也就是说, 我们之前的分析只考虑到了 “*”, 而没有考虑到每行结尾的换行符, 结果输出第一行后没有换行, 紧接着就输出了第二行图形。逻辑设计和实际运行之间存在的差距, 就需要在调试阶段进行矫正。 题目要求每行的输出内容除了10个 “*” 之外, 还要有一个换行符, 所以语句 (2) 的正确代码应该是:

for(j=1;j〈=10;j++)

printf("*");

printf("\n"); /*回车换行*/  (4)

同样输出三行10个 “*”, 就是把上面的 (4), 重复3次, 实现语句是:

for(i=1;i〈=3;i++)

{ for(j=1;j〈=10;j++)

printf("*");

printf("\n"); /*回车换行*/

} (5)

图1 正确的输出结果

图2 错误的输出结果

语句 (5) 的输出结果是图1, 符合题目的要求。 通过这样的逻辑分析、 代码设计、上机调试的整个过程, 学生对于亲自调试的结果理解更透彻, 印象更深刻, 掌握知识也会更牢固。 同样, 在此过程中学生也学会了调试程序, 训练和提高了学生的思维能力和上机实践能力。

(五)用等级考试、项目及竞赛带动C语言教学,改革考核方式

对于应用型大学的学生, 学习需要与就业挂钩, 必须是 “有用的” 的课程才有学习价值。 C语言课程是计算机相关专业的基础课, 与毕业设计或工作没有直接联系,这时候就要考虑用其他的激励手段, 激发学生的学习热情和积极性。 例如, 教师可以鼓励和组织学生参加各种级别的程序设计竞赛, 如果学生在程序设计竞赛中获奖, 就可以得到相应的奖励和荣誉。 比如班级开展编程竞赛, 优胜者可以在平时成绩上加分;校级C程序设计竞赛的获奖者可以获得荣誉证书, 而且在学年评优会占据优势; 市级或国家级程序设计大赛的获奖者找工作时有强大竞争力。 与著名院校的学生相比, 应用型大学的学生一般起点较低, 但是, 竞赛不仅仅考察学生的知识储备, 更能体现参赛者处理实际问题的思维能力, 而思维灵活恰恰是应用型大学学生的优势, 笔者执教学校的学生在诸多市级甚至国家级竞赛中的优秀成绩可以证明这一点。 教师可以用本校学生参赛获奖的成功案例来鼓舞激励学生, 培养学生的自信。 当然, 光有信心是远远不够的, 还需要教师给予学生技术指导, 帮助学生掌握经典算法, 再根据往届竞赛真题进行专项训练。 这样, 一旦有学生在高级别竞赛中取得名次, 就能够带动低年级学生的积极性, 形成良性循环。

除了竞赛之外, 各种等级考试的证书对于学生就业也很有帮助。 课程伊始, 任课教师就给学生确立参加C语言等级考试的目标, 学生的目标定位更高更远, 他们的学习范围就不会仅仅局限于课堂知识, 可以提高学习积极性。

如果教师有相关项目和课题的话, 可以组织学生参与其中, 提高学生的实践动手能力。 另外, 对于学生而言, 获奖加分是最直接的学习动力, 所以C语言课程的考核也要跟进改革, 不能套用期末考试 “一考定乾坤” 的方式。 考核应该体现出学生努力程度和实践水平, 真正起到促进学生自主学习的积极作用。

四、 小结

总之, 目前应用型大学的C语言教学存在很多亟待解决的问题, 应该引起教师和教学管理人员的一致重视, 只要教师采取恰当的教学方法, 跟进相关的教学改革, 应用型大学的C语言教学一定能够实现其教学目标, 培养出符合各行业需求的应用型人才。

参考文献

[1] 崔武子, 等.C程序设计教程 [M]. 北京: 清华大学出版社,2008.

[2] 杨承印, 马艳芝. 我国 “探究教学” 研究十年 [J]. 教育学报,2007 (2).

[3] 刘钊. 板书教学与多媒体教学结合研究 [J]. 软件导刊,2007 (6).

[4] 周生明, 廖元秀. 多媒体不能完全代替板书的理论依据之一 [J]. 电化教育研究,2008 (22):141-143.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈