《C语言程序设计》课程的教学改革与实践
2016-10-18王国强张红霞
王国强 张红霞
【摘 要】针对C语言程序设计课程在地方性综合大学教学中存在的问题,提出了“面对面的课堂教学+引领式的网络教学”的混合教学模式,同时注重学生的实践能力培养,采用更科学和完善的考核方式。教学效果表明这些改革与实践的方法不仅能较好调动学生的学习积极性和主动性,还能较好的培养其分析问题和解决问题的能力,并且有助于提高C语言程序设计课程的教学质量和水平。
【关键词】C语言程序设计;混合式教学;教学改革;实践
Teaching Reformation and Practice of 《C language programming design》Course
WANG Guo-qiang ZHANG Hong-xia
(College of Computer and Information Engineering, Luoyang Institute of Science and Technology, Luoyang Henan 471023, China)
【Abstract】For the existing teaching problems of《C language programming design》 course in the local comprehensive university,we propose the blending teaching model of face to face class teaching and Instructor-led web teaching. In addition, we also pay attention to the students practice ability, and adopt more scientific and perfect examination method. Teaching result shows these reformation and practice methods can not only arouse the learning enthusiasm and initiative of the students, but also train the ability of analyzing and solving the problem.These reformation and practice methods also contribute to the improvement of the teaching quality and level of《C language programming design》course.
【Key words】 C language programming; Blending teaching; Teaching reformation; Practice
0 引言
《C语言程序设计》是计算机专业的专业基础课,对学生良好的编程风格的和编程能力和思维的培养至关重要,是计算机本科教学的基础。由于该门课程内容丰富,理论抽象,是学生接触的第一门程序设计课程,学生很难一下建立起程序设计的相应概念,容易产生畏惧和茫然的情绪,一直以来《C语言程序设计》课程的教学效果总是不很理想。为此,我们对C语言程序设计教学进行了有益的改革和实践。
1 教学设计
该课程的内容按照计算机科学与技术专业规范设置,体现了本学科应用型人才培养的核心思想。在此结构框架下,为适应地方性综合大学的教学需要,提出了“面对面的课堂教学+引领式的网络教学”的混合教学模式。
理论教学以课堂讲授为主,同时借助网络教学平台,拓展课堂讲授的相关知识,便于学生自主学习、巩固课堂所学内容。另外,组织独立习题课,针对学生作业中出现的典型问题进行深入探讨。
1.1 精心设计教学内容
《C语言程序设计》课程的内容丰富,但是该课程的学时有限,因此应根据学生的需求和现实及教学目标,对课程的内容进行精心的筛选,把教学内容分成两部分,对于一些基本的、重要的内容要在课堂上精讲、细讲,而对于有些较简单和扩展的内容可以放到网络上,让学生自学。这样可以在有限的课堂教学中突出重点。在课程内容的安排上总是有具体的案例引入各个知识点,这样容易引起学生的学习兴趣。然后由浅入深,循序渐进。
1.2 注重C语言课程与其后续课程的衔接
每个专业都有其课程体系,在计算机科学与技术专业C语言是计算机专业核心基础课程--数据结构课程的一门非常重要的先修课程,这就要求讲C语言课程的老师必须清楚该课程与数据结构的衔接点,在讲课时可以有的放矢的把和数据结构联系紧密的内容预先告知学生,这样学生就会对相关知识点印象深刻,到数据结构课中就很容易用的得心应手。比如在C语言中有一个给已有类型重新命名的typedef,很多教材中都不讲这个内容,但数据结构中用的很广泛,因此,讲C语言的老师就要补充这方面的内容。
2 混合式教学
C语言教学采用“面对面的课堂教学+引领式的网络教学”的混合教学模式。
2.1 面对面的课堂教学
面对面的课堂教学包括课堂教学、实验室实验及课程设计。
教师利用传统的教室、黑板、粉笔再辅以课件、动画等多媒体手段详细讲解本课程中所有的重点、难点知识,课堂面授方式师生直接面对面交流,学生感觉比较亲切,所有问题可以及时解决。当然课堂面授绝不是填鸭式地满堂灌,而是按照“翻转课堂”的教学理念,教师课前把问题提出来,让学生带着问题到指定网站提前自学相关内容,认真准备教师提出的问题。在课堂上教师要起主导作用,重视与学生的互动,运用多种教学方法比如启发式教学、对比式教学、案例式教学,引导和引领学生学习,每个知识点都通过实际案例引入,每堂课都要精心设计一些有趣的问题进行课堂提问,组织学生进行讨论,通过提问、讨论引发学生思考,提问、讨论是师生、生生互动、交流的主要方式,使课堂教学中能很好地体现“教师主导—学生主体”的教学策略。通过这种面对面的互动加深学生对基本知识的理解,掌握系统的理论知识,打下坚实的理论基础,同时面授有利于师生之间生生的情感交流。
C语言程序设计是实践性很强的课程,理论必须应用于实践,把所学知识灵活应用才是学习这门课程的终级目标,而要达到这样的目标必须通过大量的实践,因此,在面授理论的同时必须引导学生进行实践,实践包括上机实验和课程设计。教师要把实验的要求、题目等信息提前告诉学生,要求所有学生必须提前准备,按要求在实验室完成所有实验。实验要考核,考核成绩纳入总成绩。课程设计是课程结束后进行的很重要的实践环节,本课程课程设计给出20个参考题目,这些题目都是综合性的,学生可任选一题,学生也可以自己设计题目,但必须经过教师认可。课程设计完成后要写出课程设计报告。通过课程设计,使学生进一步理解和掌握了所学各种基本知识,培养了学生综合运用所学的理论知识和方法独立分析和解决问题的能力;训练了学生用系统的观点和软件开发一般规范进行软件开发,使学生具备软件工作者所应具备的科学的工作方法和作风,效果良好。
学生完成实验后,不仅要求学生提交高质量的规范的实验报告,还要引导学生互相交流,开阔视野。好的实验作业、课程设计要放到班级公共邮箱里和所有学生共享。
2.2 引领式的网络教学
在学习的过程中要充分发挥学生的主体作用。引领式的网络学习就是在教师引导和引领下,学生在指定时间内有目标、按计划地学习指定的课程内容。在网络学习中既要发挥学生的主体作用,又要体现教师的引导和引领作用。其中教师的参与是全程的,既注重前期的教学设计,也重视学习过程的参与,教师在这个过程中不是可有可无的,而是要起到非常重要的作用。
课堂面授的时间毕竟是有限的,而C语言程序设计的内容又非常的丰富,学生要真正掌握并灵活运用知识,光靠面授的时间是远远不够的,课外必须花大量时间学习。本课程是我院2013年精品资源共享课程,精品资源共享课程网站为学生提供全方位的学习辅导支持,尤其是细化到知识点的课程知识体系导航。网站上集成了丰富的教学资源、扩展资源,图文并茂,形式多样,生动活泼,浏览或下载都很方便,对校内外师生均免费开放。网站主要栏目有:教学团队、课程概要、在线学习、拓展资源、在线考试、在线答疑、在线作业、学生获奖、学科检索等,增加了学生课外自主学习的手段,拓宽了学生的视野,提高了学生的学习兴趣。学生可以通过这个平台实现C语言程序设计的在线学习,而且这也是这门课程不可或缺的一部分,是课堂教学的必要补充。学生在线学习依然要在教师的引领和引导下进行,每次课前教师都要布置具体的学习内容,对学生的学习活动提供指导,使学生明确学习任务,要求学生通过网络学习掌握相应的知识点,学生在学习的过程中遇到的问题可以在线与教师、同学讨论,比较集中的问题还可以在课堂上进一步讨论。学生通过网络学习过程构建自己的知识体系、发挥主体作用。在学生自主学习的网络学习活动中,由于没有教师面对面的监督,为了保证学生顺利地进行学习,教师必须加强监管、引导和引领。教师必须清楚学生学习进度,学生必须明白评价标准。网络教学中要确保教师与学生之间有良好的、广泛的交流和互动,不仅要能很好地体现教师在整个教学活动过程中的主导作用而且要充分发挥学生的主体性。
3 把课程与考研、软考、相关竞赛有机的结合起来
由于C语言程序设计课程是计算机专业的核心基础课,在软件水平资格考试以及研究生入学考试中均占有重要的地位。在教学过程中有意识地把考研和软考引入教学中,在课程的教学网站中提供了大量的练习题、考研真题,视频讲座以供学生参考学习,使学生学完本课程后能够从容应对考研和软考中的相关题目。组织和鼓励学生参加程序员,高级程序员证书考试,辅导学生参加各种编程竞赛比如ACM大赛,通过考试验证学生掌握知识的情况。
4 课外教学指导
为了提高学生的研究问题能力和应用水平,课程组教师搜集了大量研究性和应用性的中英文学术论文和硕博论文,经过分类整理后在教学网站上提供下载链接,以供学生课外阅读,开阔学生的眼界。学术论文是历史的沉淀,它具有继承、论证和说明等诸多作用。学生通过查阅这些资料,有助于他们了解本学科的发展历史和最近研究动态,使得他们在面对新问题时候能尽快找到切入口,从而提高他们学习和掌握知识的效率。同时在当今人才培养过,尤其重视外语掌握能力的重要性,而英文论文对学生英文阅读能力水平的培养起到了积极的作用。
5 学习评价
5.1 课程考核
原来的考核方式是考试,期末试卷成绩所占比例较大,成绩构成:平时:20%,实验:20%,期末试卷成绩:60%。这种考核方式存在问题是虽然平时和实验加起来占40%,但实际上平时监管不够严厉,平时成绩很容易得到,有些学生平时不好好学习,期末突击一下也能过关,不能真正学到知识。为了使学生能踏踏实实地学到知识,必须加强对学习过程的管理,因此必须加大平时成绩在综合成绩中的比例,具体比例为:考勤:10%,作业:10% ,平时测试:10%,网络学习:20%,实验:20%,末考:30%。通过一些措施让学生把功夫下在平时,脚踏实地实实在在地学到知识。具体措施:
①严格出勤,出勤情况计入综合成绩。
②平时上课要经常进行小测验、提问、讨论情况计入综合成绩。
③进行阶段性考试,成绩计入综合成绩。
④严格平时作业的批改,严禁抄袭,作业情况计入综合成绩。
⑤加强对网络学习的管理,要记录考勤数据,由于网络环境下学生学习的自主性较强,如果没有良好的网络监督机制,容易发生“出勤不出力”的“挂网”现象,不能保质保量地完成网络学习任务。因此在网络平台上有日志管理对学生的网络学习情况进行实时跟踪。
⑥对实验必须加强考核。考核内容不仅包括属于知识记忆性的内容,还要包括能力内容和实践内容。考核方式应从有利于教学目标的达成、有利于调动师生参与、有利于课程管理的目的出发,采取教师评分与学生的自评、互评相结合,对实验报告的评分与对学生的口头报告、实验表现和结果展示的评分相结合,定性与定量考核相结合等多种形式。认真验收每次实验成绩以及课程设计成绩。通过各种有效的考核形式,指导和帮助学生在平时的实验过程中培养扩散思维、求异思维、逆向思维等创新思维能力,促使学生开放性个性及创新精神的养成。
5.2 建立试题库
课题组组织教师讨论试卷的命题,开展试题库建设,保证试卷质量、内容、题量、覆盖面、难易程度均符合教学大纲要求,试卷有标准答案,评分标准客观、准确,采用流水作业阅卷,阅卷严格规范。
5.3 考试分析
每学期课程考试结束后,课程组组织教师对本门课程的考试进行详细的分析,找出问题所在,以便以后的改进。
6 实施效果
6.1 教学效果
两年多来,C语言程序设计课程开展了一些有益的教学改革的探索和尝试,取得了很好的教学效果,我们曾就教学改革进行了问卷调查,调查表明改革受到了学生的好评和肯定,满意度达到90%,学生普遍认为改革后调动了他们对课程学习的主体意识与参与热情,有助于其知识与技能的获得。表1为评价结果:(10分制)
与以往的成绩的比较如表2所示。
表2 课程成绩对比表
6.2 学生获奖情况
2013河南省ACM大赛三等奖;第一届“中国软件杯”大学生软件设计大赛三等奖;第三届“蓝桥杯”全国软件专业人才与创业大赛全国总决赛一等奖;第三届“蓝桥杯”全国软件专业人才与创业大赛河南赛区一等奖;2013年“蓝桥杯”全国软件专业人才设计与创业大赛河南赛区三等奖;河南省第五届大学生程序设计竞赛三等奖。
7 结束语
通过数C 语言程序设计课程的教学改革,采用混合式教学显著提高了C语言程序设计课程的教学效果和质量,为后续课程的学习打下了坚实的基础,对于推动学科发展,对于在高校教学中推广混合教学模式、改革高等教育的教学教法都具有积极意义。