前言:想要写出一篇引人入胜的文章?我们特意为您整理了谈应用型C语言程序设计教学改革范文,希望能给你带来灵感和参考,敬请阅读。
摘要:应用型本科院校应为地方经济建设培养和提供实践技能型、创新型人才,加强学生的实践动手能力。针对C语言课程教学存在的问题及学生遇到的困难,提出系统性认识C程序基本结构、启发式教学、案例分析教学+项目驱动模式的实践教学体系。通过实践教学改革,学生主动参与学习,提高了学生学习的兴趣和学习的积极性,培养了学生分析问题、解决问题的能力,增强了学生的实践创新意识。
关键词:应用型高校;C语言;编程思维;实践教学改革
引言
C语言程序设计几乎是工科类院校各专业的公共基础课程,也是应用型本科院校理工科专业学习计算机程序设计的首选课程。它的目标是培养学生的计算机编程思维,积累程序设计中常用的、经典的算法,达到熟练使用C语言编程,培养分析问题、解决实际问题的能力。由于C语言程序设计课程内容量大,知识点抽象、枯燥,理解困难,加大学习难度,学生难以上手,削弱了其学习兴趣,导致学生参与的意愿削弱,感受不到知识的价值,学生的编程思想难以培养,分析问题解决问题的能力得不到提高。因此,笔者提出C语言程序设计实践教学改革,探索一种以案例分析为主,结合项目实战,注重培养学生计算思维、编程思想[1],提高实践动手能力的教学方法。
1C语言教学中存在的问题
传统的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所示。
2.2深入浅出,启发式教学
在教学过程中,教师注重引导、深入浅出地讲解,采用启发式[3]教学法来帮助学生理解程序的逻辑,训练计算思维能力。笔者举例:求全班50个同学C语言课程的平均成绩及最高分。首先,先从简单的题目出发,输入两个学生的成绩,求其平均分,其代码如下。其次,提出问题:输入50个学生的成绩,求其平均分?写出代码为:然后,再提出问题:要反复地进行输入50个同学的成绩,然后累加,这种方法是否合适?计算机的快速、便捷有没有应用?算法太过冗余,降低程序的执行效率,有没有更好的办法可以解决此问题,我们会想到反复地进行某个操作,利用循环,其代码为:然后,问题又来了:如果要进行求最高分、排序等其他操作,使用一个变量能不能解决问题?优点:用一个score变量通过循环可以解决以上问题,避免重复,浪费内存空间,提高程序的效率;缺点:它只能保存最后一个学生的成绩。要保存大量同类型的数据,顺理成章引出数组,其代码为:深入浅出,启发式教学能增强课堂趣味性,学生好理解,容易进入学习状态,所学知识容易掌握,能提高学生学习的兴趣和学习效果。通过上述过程一步步引导学生,既巩固了以前所学知识内容又启发了学生思维,使其容易理解容易学习。
2.3“案例分析教学+项目驱动”模式
依据人才培养目标、教学大纲、教学目的及要求,教师设计、规划课堂内容[4],选取多个恰当的案例,以案例分析为重点,结合项目驱动深入浅出、启发式引导,完成整个教学内容。在案例的选取当中,要以学生熟悉的、感兴趣的、学生日常生活相接近的问题,并结合章节内容将知识点涵盖其中,具有一定的难度、深度,引导学生学习,进一步学习相应的知识点。在学习案例的过程中,不断地积累经典算法,学习编程思想,学习怎样分析问题、解决问题。课堂坚持“精讲多练”,每个案例让学生通过特定的事件情景进行分析问题、解决实际问题,最终用C语言实现,从而培养学生运用理论知识,了解编程思维,通过动手实践[5],培养动手能力,符合应用型院校人才培养目标要求,为培养应用型人才打下坚实的基础。通过大量的案例分析学习,学生积累一定的算法,了解编程思维,掌握怎样分析问题、怎样把实际生活中的问题转换成程序代码,进而解决问题。但是学生所学知识点比较零碎、没有系统性,没有切身体会到C程序设计的真正用处。教师在部分章节具体案例选取中下功夫,设计案例内容与某个总项目有着密切的关联。学生学完整个课程后,把相关案例结合起来,组合成一个总项目。通过整个项目完成,学生能看到具体的效果,切身体会,获得成就感;学生不仅加深和巩固了所学知识点,把前面学习的比较琐碎的知识串联起来,而且更加有条理、对C程序设计这门课程有了系统的深刻的认识,从而学会分析问题、思考解决问题及动手编写程序的能力。
3总结
通过案例分析教学+项目驱动,学生不仅掌握了知识点的学习,而且遇到问题学会分析,思考解决问题的方案,画流程图,转换成程序代码,调试验证结果,理论结合实践,用学到的理论知识解决实践问题,学生体会到知识的价值、学习的收获,能积极主动参与,从而培养其分析问题、解决问题的能力。
参考文献
[1]肖琳,郭李华.应用型本科院校非计算机专业C语言程序设计教学改革探讨[J].南昌教育学院学报,2015,30(5):43-45.
[2]王晓银,孟虎,李海玲,等,应用型本科院校计算机专业硬件基础课程实践教学改革探索[J].微型电脑应用,2018,34(9):20-22.
[3]邓云,朱海燕.基于Arduino单片机项目的C语言实程序设计教学[J].广西教育,2017(19):158-160.
[4]陈得友,郭雯雯.应用型本科院校计算机专业《C程序设计》实践教学改革探索[J].产业与科技论坛,2015,14(11):149-150.
[5]罗鹏,唐永刚,郝保明,等.应用型本科院校非计算机专业C语言课程教学方法研究[J].铜仁学院学报,2016,18(4):97-100.
作者:王倩丽 单位:西安航空学院