提高C程序设计课堂教学质量的研究
2016-07-15肖潇
肖潇
DOI:10.16644/j.cnki.cn33-1094/tp.2016.07.030
摘 要: C程序设计是很多高校计算机专业的一门专业基础课,针对该课程教师难教、学生难学的情况,本文结合实际教学,阐述了教学原则,以算法为中心,并时刻注意激发学生的兴趣。提出根据教学内容采用多种教学方法,加强课堂师生间互动,尝试MOOC、SPOC、微课等线上与线下相结合的混合式教学,将实验课与理论课紧密结合,以全面提高课堂教学的质量。
关键词: C程序设计; 计算机; 教学方法; 混合式教学; 教学质量
中图分类号:TP311.1 文献标志码:A 文章编号:1006-8228(2016)07-102-03
Research on the classroom teaching quality improvement for C programming course
Xiao Xiao
(Information Science and Technology College of Hunan Agricultural University, Changsha, Hunan 410128, China)
Abstract: C programming is a professional foundation course of computer specialty in many universities, in view of the fact that it's difficult for teaching and learning, this paper expounds the teaching principle, i.e. take algorithm as the centre, and always pay attention to stimulate students' interest. And puts forward that according to the teaching content use a variety of teaching methods, strengthen the interaction between teachers and students in classroom, and try the blended learning which combines the online and offline teaching such as MOOC, SPOC and micro courses etc., combine the experimental classes with the theoretical classes closely, so as to comprehensively improve the classroom teaching quality.
Key words: C programming; computer; teaching method; blended learning; teaching quality
0 引言
程序设计是信息类专业必修的专业课,许多学校计算机及相关专业都将“C语言程序设计”作为程序设计课程的“开门课”。C语言程序设计具有较强的理论性和实践性,要求学生掌握程序设计的基本思想和方法,建立良好的编程习惯,练好程序设计的基本功,为后续专业课程打基础。该课程影响面大,教改项目也层出不穷,但很多应用型本科院校的学生对于该课程“听懂不容易,动手更不容易”,久而久之,他们就会丧失学习兴趣和动力。如何提高C程序设计课堂理论教学质量,使学生保持旺盛的学习热情和兴趣,从而产生探索和钻研的动力,进而顺利地踏入计算机科学的大门,是教改努力的目标。
1 理论教学应遵循的原则
1.1 以“算法为中心”的问题求解
算法是程序设计的灵魂,是解决问题的方法和步骤。因此,C程序设计的教学要摒弃以语言语法规则为主的讲解,代之以“算法为中心”实现问题求解,注重算法分析,突出算法设计,建立计算思维,围绕算法展开程序设计,培养学生分析问题、解决问题的能力。从简单到复杂,从一般到特殊,循序渐进,让思维螺旋上升。
把常见的通用算法逐步介绍给学生,让学生从理解到简单的模仿,最后能融会贯通自主创新。C程序设计课程毕竟不是算法课,在算法的选择上需要斟酌,难度要适当,贴近生活易于理解,最好能提高学生钻研的兴趣,不仅能够在本门课程中起到作用,还能为后续的课程做好铺垫,有意识的引导学生自主地学习后续的算法类课程。
1.2 教学过程要时刻激发学生学习兴趣
学习C程序设计课程的学生基本上处于零起点,无程序设计基础,如果教师只是一厢情愿的照本宣科,会让学生丢失学习兴趣,不仅这一门课学不好,更会让学生无法热爱编程,甚至无法胜任本专业的工作。相反,兴趣是最好的老师,大学课堂传授的知识原本就是有限的,唯有依靠浓厚的学习兴趣和较强的自学能力才能让学生踏入计算机科学的殿堂,在知识的海洋遨游,不间断地终身学习。
教师在教学活动中,要善于启发学生的思维,要让学生感受编程之美。要讲究设置悬念,而不是平铺直叙。通过大量的例题,让学生先理解再模仿。精选的例题务必引人入胜,让人饶有兴致。面对学生的疑惑,教师一定要积极并及时地处理,不留死角。有统计表明,学生的学习兴趣不能持续的重要原因,不是简单的惰性,而是遇到困难[1]。如果教师解惑做得好,学生一定能学得更好。实验教学和课后作业可以使用在线测评系统平台,学生提交代码系统就能判断正误从而提升学生的编程兴趣。
2 提高教学质量的途径
2.1 采用多种教学方法替代单一讲述
教学方法在教学活动中的设计是必不可少的。传统的理论课堂主要靠教师单纯讲解,再加上大屏幕上多媒体幻灯片辅助。久而久之,学生难免因为教学方式单一而产生疲惫,可能开小差错过知识点,连锁效应又会恶性循环。在教学过程中,运用多种教学方法,有利于激发学生的学习兴趣,在轻松的环境下更加主动积极地学习。
⑴ 案例驱动教学法。根据教学内容,把知识点隐含在案例里,设计趣味性和具有代表性的案例,通过案例的引入、分析、讲解,明确该案例涉及哪些知识点,以及如何求解该问题。引导学生认识和模仿,从而改进和创新。案例的选择可以源于生活,难度要适中,同时简化背景[2]。将教学内容和案例内容有机结合,激发学生的学习兴趣。
⑵ 任务驱动教学法。编程累计行数和单个程序行数是衡量编程的两个重要指标。以解题为主的编程训练能提高编程累计行数,但却会止步于单个程序行数。小规模、数学型问题成百上千行代码,却很难让人体会到“开发的感觉”。针对学生动手能力弱,缺乏实践经验的问题,在学期中或期末引入任务驱动教学法,把重要的知识点融入到相关项目的模块中,让学生带着需求学习。
⑶ 启发式教学法。在教学过程中,教师可以针对教学内容的难点设置相关悬念,提出恰当的问题[3],引导学生运用已有的知识。这些知识包括之前学习的程序设计、数学、英语等,也包括生活经验和常识。通过启发和拓展,注重知识之间的联系,强调学生的主动性,从而培养学生发现问题和解决问题的能力。
2.2 采用互动讨论作为理论教学的补充
从软件工程人才职业素质[4]的要求中,我们可以看出,交流与沟通能力、团队协作精神和演讲与表达能力是软件工程人才必备的非技术性素质,这也成为企业单位招聘时决定是否聘用的要素之一。然而,这些能力不是一蹴而就的,需要在教学过程中慢慢培养,在四年大学生涯潜移默化的渗透。
比如在C程序设计的理论课堂上,把学生分成若干小组,适时安排一些案例,让小组成员各抒己见讨论问题,鼓励学生寻求解决问题的不同办法,然后按小组发言,教师对不同方案的优点和缺陷进行归纳。对于较大的任务,每一组的学生既有分工又有合作。引导学生勇于质疑,大胆提问,让学生不仅掌握书本上的理论知识,同时也锻炼了交流沟通能力和团队协作能力。
在互联网+教育的风潮下,互动讨论又多了一种新模式,就是“翻转课堂”。在上课之前让学生看新课的视频,然后在课堂上师生进行面对面的交流讨论,完成作业。这是对传统课堂的一种逆序创新,把知识传授和知识内化两个阶段颠倒[5]。翻转课给学生更多学习自由,便于师生沟通,其一时风靡全球,受到很多老师的推崇,但因为种种原因,很多学校的课堂最后无法继续翻转,让我们看到,“一刀切”地实施显然是不合适的,需要在传统课堂和“翻转课堂”中找到符合各个学校情况的最佳结合方法。
2.3 线上线下多元教学模式的尝试和探索
在新时期的网络背景下,各种网络信息平台涌入,MOOC、SPOC、微课几个概念接踵而来。MOOC即大规模开放性在线课程,课程资源和资料都是免费公开,面向公众,没有准入条件。微课以精彩简短的视频呈现一个知识点或教学环节。SPOC是小规模限制性在线课程,有一定的人数和条件限制。这些新的教学资源无一不是强调学生的自助学习,拓宽了学生的自学空间,增强了学生主动解决问题的成就感。实践证明,没有任何资源能取代师生面对面的授课,因而随之的线上线下混合教学模式的改革层出不穷。
国内MOOC平台上推出了名校的C语言程序设计MOOC课程,在中国大学MOOC平台上就有7个[6],基于MOOC的课程教学要求学生在课前观看基础视频,完成部分知识测试,带着疑问和思考来到课堂。课堂教学活动的基本模式是:先巩固知识点,即强化重点难点和易错点,再进入程序训练部分,即案例分析,案例改写等。SPOC面向某校某班的学生,分为同步和异步两种[1]。对于学生而言,课堂上没有听懂的问题课后可以反复观看,网上的作业可以巩固刚学的知识,遇到问题可以求助于论坛和名师。对于教师而言,不需要花费精力录制视频、设计作业,从原来的面面俱到地讲解过渡到对重点难点有的放矢。微课可以将知识颗粒化,教师根据学生情况自行录制,手机终端把课堂搬到任意地方。无论哪一种线上线下混合式教学,在开展的时候都是根据实际情况进行不断的调整和完善。新型混合式教学增强了面对面课堂互动,提升了教学效果。
2.4 以实践教学效果的反作用促进理论教学
有人说,编程不是教会的,而是练会的。示范、指导、纠错固然重要,但过眼千行不如手敲一行。理论教学中,受教师讲述、学生认知等因素的影响,大部分学生不可能把所有知识点接受到,只有将这些知识点放入具体的题目中,让学生在实践中探索和巩固。用程序解决一个实际问题,最终落实到语言实现,其中要经历编辑、运行、链接、执行一系列的过程,当结果出错时再重新编辑调试等。通过这个过程,学生能对知识进行消化和吸收,遇到没有掌握的知识,再寻求解答,在后续的教学活动中,同样的问题会再次出现时更能引起学生的重视从而加深印象。
3 结束语
C语言是一门相当重要的专业基础课,概念多,逻辑强,语法繁多,规范极严。在教学过程中,需要运用多元化的教学方法,充分调用学习者的学习主动性、积极性,务必做到因材施教。网络和信息技术的发展,为教师充分利用、整合各类教学资源,扩展教学的时间和空间提供了可能。本文针对当前应用型本科院校的教学特点,从教学实践出发,提出了一些方法,旨在提高课堂教学质量,改进教学效果,从而为学生走向工作岗位奠定良好的基础。
参考文献(References):
[1] 苏小红,赵玲玲,叶麟,张彦航.基于MOOC+SPOC的混合式
教学的探索与实践[J].中国大学教育,2015.7:60-65
[2] 常梅,李迎秋.“案例驱动”在“C语言程序设计”教学中的探索
实践[J].计算机教育,2009.22:82-84
[3] 苏畅.提高程序设计语言类课程教学质量方法的研究[J].吉
林化工学院学报,2012.29(4):90-92
[4] 安俊秀,李超等.软件人才职业素质教育模式的探索与实践[J].
计算机教育,2009.8:17-19
[5] 陈维维.MOOC、SPOC、微课、翻转课堂:概念辨析与应用反
思[J].南京晓庄学院学报,2015.11(6):117-121
[6] 杨颖,曹红兵,王诗兵等.基于MOOC的C语言程序设计课程
混合式教学探究[J].阜阳师范学院学报(自然科学版),2015.32(4):116-121