应用型本科院校C语言程序设计教学改革探索

您所在的位置:网站首页 c语言深入浅出 应用型本科院校C语言程序设计教学改革探索

应用型本科院校C语言程序设计教学改革探索

2023-04-10 09:19| 来源: 网络整理| 查看: 265

王倩丽

(西安航空学院 图书馆, 陕西 西安 710077)

0 引言

C语言程序设计几乎是工科类院校各专业的公共基础课程,也是应用型本科院校理工科专业学习计算机程序设计的首选课程。它的目标是培养学生的计算机编程思维,积累程序设计中常用的、经典的算法,达到熟练使用C语言编程,培养分析问题、解决实际问题的能力。由于C语言程序设计课程内容量大,知识点抽象、枯燥, 理解困难,加大学习难度,学生难以上手,削弱了其学习兴趣,导致学生参与的意愿削弱,感受不到知识的价值,学生的编程思想难以培养,分析问题解决问题的能力得不到提高。因此,笔者提出C语言程序设计实践教学改革,探索一种以案例分析为主,结合项目实战,注重培养学生计算思维、编程思想[1],提高实践动手能力的教学方法。

1 C语言教学中存在的问题

传统的C语言程序设计教学注重知识内容的讲授,忽略了C语言程序的实际应用,使学生陷入知识的细节。虽然经过一段时间基础知识的学习和经典算法的练习,学生可以看懂、修改和编写简单的程序,但是面对于一个较难的题目或者实际问题,学生却难以下手,不会分析问题、联系生活实践解决问题,自主创新[2]的意识更是难以培养。

1.1 缺少课程间相互联系

C语言课程是大学生入校以来第一门程序设计语言,对程序的计算思维不理解,没有制定学习目标、学习计划,盲目学习,缺乏主动性。学生很少从课程的培养目的、培养能力出发,很少考虑这门课程的学习对今后课程和工作的影响;没有一个全面的、正确的认识,总觉得能及格就可以了。在学习的过程中,学生缺少前后课程之间的相互联系,不能把已学的课程和现学课程联系起来,从计算机的工作过程出发来考虑程序的执行过程,进一步来理解、学习C语言程序的结构组成,对本门课程缺乏系统性的认识。

1.2 “填鸭式”教学模式

课堂传授以教师讲授为主,老师觉得重要的知识点,学生却感受不到知识的价值; 主动参与学习的意愿和兴趣不浓,被动的接受知识;课堂采取“先理论,后实践”的教学模式。只有知识内容的满堂灌,学生的学习热情没有被调动,缺乏与学生的互动交流,难以了解学生对程序的理解情况。课本讲述的内容主要是纯数学的抽象案例,缺乏实际联系、实际应用,学生理解比较困难。为了完成教学任务,追求教学进度,内容讲得过多,实际操作少,学生来不及消化和吸收。这种教学模式下,学生上课无求知欲、无兴趣,部分学生昏昏欲睡,听课如听天书;有的学生即使认真做笔记,课后合上笔记也没有深刻的印象。这种教学模式只能引发浅层学习,即使学生对知识点了如指掌,遇到真实的情境却未必能够灵活运用。因此,这种教学模式需要很大程度的改进。

1.3 教学内容细节化

传统的教学注重基本概念、语法等知识点,教学内容琐碎化、细节化。利用大量课时讲解基本概念,如常量、变量、数据类型、表达式等概念,记忆的知识过多,知识过于琐碎、细节化。学生即使掌握所学知识点,很难与实际问题联系起来,解决问题。学生碰到问题,无从下手,产生畏难心理,进而对课程的学习失去兴趣。

2 思考与建议2.1 系统性理解 C语言程序基本结构

1946年美籍匈牙利数学家冯·诺依曼提出程序存储原理,程序如同数据来处理,并确定了程序存储计算机的三大组成部件(I/O设备、存储器、处理器)和基本工作方法。

计算机与程序设计的关系:计算机的工作过程(IPO),输入(Input):程序用到的数据;处理(Process);编写的程序放于存储器中用于数据处理操作;输出(Output):对处理或计算后的结果进行输出。C语言结构中定义变量相当于计算机分配存储空间(存储器);初始化相当于输入设备;程序处理问题的过程(算法)相当于处理器;C语言输出相当于计算机的输出设备。

计算机硬件结构与C语言程序基本结构对照关系,如图1所示。

图1

2.2 深入浅出,启发式教学

在教学过程中,教师注重引导、深入浅出地讲解,采用启发式[3]教学法来帮助学生理解程序的逻辑,训练计算思维能力。笔者举例:求全班50个同学C语言课程的平均成绩及最高分。

首先,先从简单的题目出发,输入两个学生的成绩,求其平均分,其代码如下。

int score1,score2,aver;

scanf("%d",&score1);

scanf("%d",&score1);

aver=(score1+score2)/2;

其次,提出问题:输入50个学生的成绩,求其平均分?

写出代码为:

int score1,score2,.,score50,aver;

scanf("%d",&score1);

scanf("%d",&score1);

scanf("%d",&score50);

然后,再提出问题:要反复地进行输入50个同学的成绩,然后累加,这种方法是否合适?计算机的快速、便捷有没有应用?算法太过冗余,降低程序的执行效率,有没有更好的办法可以解决此问题,我们会想到反复地进行某个操作,利用循环,其代码为:

int score, I, aver, sum=0;

for (i=0; i

{

Scanf("%d",& score);

Sum=sum + score;

}

aver= sum/50;

然后,问题又来了:如果要进行求最高分、排序等其他操作,使用一个变量能不能解决问题?优点:用一个score变量通过循环可以解决以上问题,避免重复,浪费内存空间,提高程序的效率;缺点:它只能保存最后一个学生的成绩。要保存大量同类型的数据,顺理成章引出数组,其代码为:

int score[50], i , aver, sum=0;

for (i=0; i

{

Scanf("%d",& score[i]);

Sum=sum + score[i];

}

aver= sum/50;

深入浅出,启发式教学能增强课堂趣味性,学生好理解,容易进入学习状态,所学知识容易掌握,能提高学生学习的兴趣和学习效果。通过上述过程一步步引导学生,既巩固了以前所学知识内容又启发了学生思维,使其容易理解容易学习。

2.3 “案例分析教学+项目驱动”模式

依据人才培养目标、教学大纲、教学目的及要求,教师设计、规划课堂内容[4],选取多个恰当的案例,以案例分析为重点,结合项目驱动深入浅出、启发式引导,完成整个教学内容。在案例的选取当中,要以学生熟悉的、感兴趣的、学生日常生活相接近的问题,并结合章节内容将知识点涵盖其中,具有一定的难度、深度,引导学生学习,进一步学习相应的知识点。在学习案例的过程中,不断地积累经典算法,学习编程思想,学习怎样分析问题、解决问题。课堂坚持“精讲多练”,每个案例让学生通过特定的事件情景进行分析问题、解决实际问题,最终用C语言实现,从而培养学生运用理论知识,了解编程思维,通过动手实践[5],培养动手能力,符合应用型院校人才培养目标要求,为培养应用型人才打下坚实的基础。

通过大量的案例分析学习,学生积累一定的算法, 了解编程思维,掌握怎样分析问题、怎样把实际生活中的问题转换成程序代码,进而解决问题。但是学生所学知识点比较零碎、没有系统性,没有切身体会到C程序设计的真正用处。教师在部分章节具体案例选取中下功夫,设计案例内容与某个总项目有着密切的关联。学生学完整个课程后,把相关案例结合起来,组合成一个总项目。通过整个项目完成,学生能看到具体的效果,切身体会,获得成就感;学生不仅加深和巩固了所学知识点,把前面学习的比较琐碎的知识串联起来,而且更加有条理、对C程序设计这门课程有了系统的深刻的认识,从而学会分析问题、思考解决问题及动手编写程序的能力。

3 总结

通过案例分析教学+项目驱动,学生不仅掌握了知识点的学习,而且遇到问题学会分析,思考解决问题的方案,画流程图,转换成程序代码,调试验证结果,理论结合实践,用学到的理论知识解决实践问题,学生体会到知识的价值、学习的收获,能积极主动参与,从而培养其分析问题、解决问题的能力。

猜你喜欢 C语言程序设计解决问题 联系实际 解决问题小学生学习指导(中年级)(2022年4期)2022-04-26助农解决问题增收致富今日农业(2021年9期)2021-11-26在解决问题中理解整式中学生数理化·七年级数学人教版(2021年10期)2021-11-22基于Visual Studio Code的C语言程序设计实践教学探索计算机教育(2020年5期)2020-07-2451单片机C语言入门方法电子制作(2019年14期)2019-08-20从细节入手,谈PLC程序设计技巧电子制作(2019年9期)2019-05-30基于C语言的计算机软件编程电子制作(2018年16期)2018-09-26化难为易 解决问题数学小灵通·3-4年级(2017年10期)2017-11-08高职高专院校C语言程序设计教学改革探索山东工业技术(2016年15期)2016-12-01PLC梯形图程序设计技巧及应用制造技术与机床(2015年10期)2015-04-09

微型电脑应用2021年5期

微型电脑应用的其它文章基于K-means聚类算法的学生表现数据分析及预测建模研究一种多云环境中应用编排方案设计Multisim软件在自动化专业多门课程中的应用与研究基于Android平台的军校学员体能训练指导APP研究与设计一种新的物联网能量感知多跳路由协议蜜罐式移动目标安全防御在物联网中的应用


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3