C语言程序设计课程教学改革研究与实践
2018-03-31王晓娜刘素转
王晓娜 刘素转
【摘要】通过分析C语言程序设计课程的特点和实际教学中的问题,在教学模式、教学内容设置、教学团队建设、课程评价方式、激励方式等教学环节不断探索,提出了多种改革措施来提高课程的教学质量。
【关键词】C语言 教学模式 教学团队 课程评价 激励方式
【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2018)01-0223-02
引言
计算机技术在当今的社会各个领域应用已经非常普遍。掌握并很好的利用信息资源是21世纪的每个大学生的基本素质要求。因此很多高校针对非计算机专业的学生都开设了多种计算机类的公共选修课程来培养学生在信息技术方面的需求。
C语言作为计算机高级编程语言之一,它的面向过程的特点更适合初学程序设计的学生理解,所以在众多程序设计类的选修课程中,学生对它情有独钟。根据笔者学校的经验,每年C语言程序设计课程的选课人数都在全部人数的80%以上。针对这么大的授课面,如何保证课程的教学质量,提高学生的程序设计和计算思维能力是一个不得不考虑的问题。
我们从教学模式、教学内容设置、教学团队建设、课程评价方式、激励方式等方面进行不断探索[1],针对本校的实际情况,提出了一系列的课程改革措施来提高课程的教学质量。
一、基于教学网站的课上课下一体化互动教学模式
原来的C语言教学模式一般都是课上教师讲授,课下作业、答疑,实验课上教师辅导编程。这种模式的缺点是教学模式单一,学生在教学中处于被动地位,参与性不强,不能激发学生学习的主动性,导致学生独立学习能力差,编程能力较弱,教学效果不理想。通过几年的摸索,我们通过把教学分为课前教学、课堂教学和课后教学三个過程[2],基于教学网站把这三个过程有机的联系在一起,构成一体式的互动教学模式,这种教学模式把学生学习的被动性变为主动性,把学生课上课下的时间充分利用起来,实现了课上课下的互补,提高了教学的整体性和连贯性,提高了学生的编程能力。
(一)课前教学
学习任何一门课程,课前的预习是十分重要的。在学习大学课程的时候也是一样的道理。学生有了课前的预习,在上课的时候就可以有的放矢的听教师讲的重点和难点问题,提高课堂效率。我们采用的预习方式不是简单的教师布置预习任务,学生自己根据教材完成预习任务。我们充分利用了现代化的教学手段,通过自己建立的教学网站给学生布置预习练习,学生可以通过网站自己做预习练习,查看练习结果;网站自动记录每次预习的成绩。这种互动式的预习方式提高了学生预习的积极性和兴趣性。
(二)课堂教学
课堂教学是整个课程学习中非常重要的一个环节。我们采用了案例教学法、比较教学法和纠错教学法等方法。
在讲授循环语句时,教师讲完基本的语法格式后,都会列举大量的有趣的循环案例程序来演示循环语句的使用;在讲排序算法时,我们会把冒泡排序法,选择排序法进行比较来讲解,通过比较学习的方法学生对这两个算法本身会有很深的印象,同时又加强了循环语句应用在编程中的能力;还有在一些示例演示程序中,我们会人为设置一些学生自己编程时容易犯的错误,然后课上讲解时,让学生自己发现错误,纠正错误,这种方法可以使学生加深对错误的认识,在自己编程实践时避免类似错误,提高自己的编程效率。
(三)课后教学
课后有效的复习是对课堂知识的再加深。尤其是对于计算机语言类的课程来说,课后的编程实践练习更是学生提高编程能力不可或缺的一个步骤,毕竟课上的学习时间是有限的。每章的课堂教学完成后,在教学网站上我们都会给学生提供大量的编程练习题目,学生可以自己在课下完成,遇到问题时可以通过教学网站的讨论和答疑区得到教师的在线指导。教学团队会安排教师实时答疑和辅导。
二、教学内容设置
我们根据本校的课程设置和教学情况自己编写了一套教材,该套教材包括《C语言程序设计》和《C语言学习辅导与实践》两本教材[3]。课堂讲授教材采用《C语言程序设计》。在采用原教材教学的过程中,讲到指针这个章节时,大多数同学都学着比较吃力,理解不了。因此在我们的教材中,我们把指针的内容分散在了几个章节中,这样采用循序渐进、逐步深入的方法使学生更容易接受指针的内容。《C语言学习辅导与实践》是学生课下辅导和上机实践时使用的辅助教材,该教材包括了各个章节比较典型的习题和上机实践时学生需要完成的上机任务。上机实践内容是有针对性的练习设计,如训练学生对程序设计结构的掌握、训练学生对语法知识点的掌握、训练学生对算法设计思想的掌握。
三、教学团队建设
教学团队一种基层教学组织,通常由讲授同一门课或相关课程群的教师组成,统一制定课程的教学大纲、教学内容、教学计划、考核标准。通过建立团队合作机制和组织模式,有利于形成和发挥优秀人才的团队效应,有效提高人才培养质量;有利于进一步激发骨干教师的积极性,发挥传、帮、带作用,促进青年教师的健康成长;有利于开发教学资源,促进教学研讨和交流,提高教师的教学水平。教学团队建设既是加强师资队伍建设的有效途径,也是促进教学改革的广阔平台和凝聚专兼职教师向心力的良好载体。
教学团队由一个本学科具有较深的学术造诣和创新性学术思想,坚持在该校教学第一线为本科生授课,品德高尚,治学严谨,具有团结、协作精神和较好的组织、管理和领导能力的专家作为团队带头人。团队成员由具有丰富教学经验的教授、副教授、讲师组成。每个成员都具有计算机及相关专业博士或硕士学位。教学团队成员中老中青结合,充分发挥了“传、帮、带”优势。
为了保证教学质量,教学团队成员每年必须定期参加课程讨论、观摩优秀课程、承担教改项目等。教学团队的成员管理也是动态的,每个学期会根据学生对教师的评价结果,动态调整成员组成。如教师在教学过程中出现教学事故将不允许再承担本门课程的教学。
四、课程评价方式
C语言程序设计这门课程的主要教学目标是让学生掌握编程语言的基本知识,并能灵活应用解决实际编程问题。这些基本知识包括数据类型、控制结构、数组、函数、指针、文件等内容。因此我们对学生考核时既要考核学生对基本知识的掌握,还要考核解决实际问题的能力。传统的单一闭卷考试的方法容易造成学生平时不学,考前突击,围绕考核内容死记硬背等现象,并不能真正使学生掌握编程的能力。
程序设计是一门实践性很强的课程,学生在学习的过程中需要多实践,多上机调试程序,才能提高编程能力。因此对于整个课程的学习过程的考核应该考虑在考核范围内[4],这样才能考查出学生的真正编程能力,另外学生的课堂出勤情况、作业完成情况、上机实践成绩、理论成绩都要包含在考核体系内。综合这些因素,再结合学校的实际情况。目前我们学校对这门课程采用的考核方式是总成绩=考勤成绩(10%)+实践作业成绩(10%)+上机考试成绩(10%)+期末考试成绩(70%)。考勤成绩就按学生实际出勤次数来记录成绩,实践作业成绩包括老师布置的课程作业成绩和上机实践布置的作业成绩两部分。上机考试是在最后一次上机课的时候完成,采用我们引进的上机考试系统,机器自动组卷,随机发卷,自动判卷来记录成绩。为了更好的和计算机等级考试结合,机器自动生成的试卷类型,我们模拟了等级考试的程序改错、程序填空、编写函数等题型。
五、激励方式
学以致用是每门课程的最终教学目标。当然这个目标可能有的课程可以短期见效,有的则是潜移默化,长期才能看到成果。程序设计类课程属于实用性比较强的课程,这个课程的短期见效优势就更明显。学完课程后,学生可以直接参加全国计算机等级考试,也可以参加各种程序设计类比赛,另外通过这些方式也可以引导我们的课程教学,提高学生的学习兴趣。
全国计算机等级考试是经原国家教育委员会(现教育部)批准,由教育部考試中心主办,面向社会,用于考查应试人员计算机应用知识与技能的全国性计算机水平考试体系。通过组织严格的全国统一考试,为考试合格者提供计算机应用水平的等级证明,从而推进了计算机基础知识和技术的迅速普及。另外很多大中城市在接收毕业生时,也会把计算机等级考试证作为一个参考条件。因此很多学生在学习完C语言程序设计课程后,选择参加这个考试。为了方便学生参考,我们学校申请承办了考试点,每年两次组织学生报名参加这个考试。学生的报名积极性也很高。另外我们在教学过程中,也会适当有针对性的引入一些等级考试的典型题目讲解,这样学生在学习完课程后不用报任何辅导班就可以直接参加考试。
另外,我们每年都会组织全校范围的C语言程序设计大赛[5],激发学生们学习C语言的积极性。我们会推荐比赛获奖的优秀选手再参加全国性质的比赛,如蓝桥杯、ACM程序设计大赛等。
总结
一门课程的教学有很多环节,所以课程教学质量的提升,需要在每个环节把好关,多尝试新的教学思路的方法。只有不断改革、拓宽教学思路才能跟上时代步伐,保证课程适应当前的发展需要。
参考文献:
[1]卢云宏,周世平.C/C++程序设计课程教学方法探讨[J].计算机教育.2014(22):90-93.
[2]万书振.多联动教学法在数据结构教学中的应用[J].计算机教育.2014(23):76-79.
[3]李国和,赵建辉,吴卫江,连远峰.基于教学团队建设的C语言教学[J].计算机教育.2015(2):24-27.
[4]朱晓旭,杨季文,赵雷,姜小峰,姚望舒.程序设计类课程过程性考核研究与实践[J].计算机教育.2014(22):99-102.
[5]姚琳,汪红兵,张敏,武航星,李莉.程序设计比赛对程序设计语言教学的启发[J].计算机教育.2015(2):103-106.
作者简介:
王晓娜(1976.10-),女,汉族,河北辛集人,讲师,硕士,研究方向:大数据。
刘素转(1975.6-),女,汉族,河北深州人,讲师,硕士,研究方向:网络与信息安全。