高校程序设计课程教学研究与实践
2022-06-08陈鑫
陈 鑫
(长治学院 计算机系,山西 长治 046011)
引言
《C 语言程序设计》是高校理工学生的公共基础课程,也是计算机专业学生的专业必修课程,应用十分广泛。通过编程设计的学习,学生不仅能更好地理解编程语言的基本编程思想,也能掌握编程语言的基本编程技能。《C 语言程序设计》不仅可以帮助学生达成上述目标,还可以计算思维能力与创新能力的提升。《C 语言程序设计》这门课程对于高校理工科类学生,以及计算机专业的学生来说,都是一门重要的基础课程。但是,课程的教学过程中也遇到了以下的几个问题。
首先,《C 语言程序设计》本身是一门理论与实践性均较强的课程,知识点琐碎,并且学生需要掌握繁冗的C 语言的概念和规则,内容会相对枯燥。而《C 语言程序设计》被安排在第一学期,是学生入校以来学习的第一门专业课程。学生来自不同地域,他们的学习能力以及信息技术技能基础参差不齐。如果教学方法使用不得当,教师只采用了口述和板书的教学方法,教学方式缺乏创新,只是按照C 语言教材的编写体例,先进行语法格式的讲解,再讲解基础知识的话,无法有效地激发学生的学习兴趣。
第二,《C 语言程序设计》的实践性非常强,而传统教学方式是以理论知识的传授为重点,缺乏实践性。从而无法培养学生的实践能力。并且课时分配较少,而繁琐的知识点需要占用大量的课堂时间进行讲解,从而使实验课时更加不足。并且在实验课中,大多数学生们对于问题不去分析算法,不对程序执行步骤进行分析理解,只是机械地照搬教材中的例题。对于编译错误不会修改,而是一味地临摹程序,而并没有真正学会识别程序中的错误,不会进行程序调试。这样,学生很难将学到的理论知识运用到生活实践中去。
第三,缺乏好的教材。目前,谭浩强的《C程序设计》一书仍然作为许多高校《C 语言程序设计》课程的教材使用。而该书侧重于C 语言的理论知识,实践操作案例较少。因此本课程的教材也应相应进行改变。选择一本通俗易懂、以案例编程为主、以理论知识为辅、可以促进学生在动手实践过程中逐步获取编程能力的教材则更加重要。
1 程序设计课程教学的改革探讨
一是明确学习目标,激发学生对《C 语言程序设计》课程的重视。《C 语言程序设计》课程具有丰富的理论知识和较强的实用性,教师在开课之初或第一堂课上,可以和学生共同讨论学习这门课程的目的与方法。使学生明白,只有学好了C 语言,才能为将来学习其他编程语言打下坚实的基础。学生首先对课程引起了足够重视,才能激发学生的兴趣进行有效的学习。
其次,根据应用型高校的特点,修改《C 语言程序设计》课程的教学计划。依据高校应用型的特点,本课程作为入门级基础课程,总时数少,则更应加强学生的实验操作环节,逐步增加学生实践动手操作训练,并提高其计算思维能力。如果教师在课堂上只注重基本语法和一些简单的算法设计,学生对知识的掌握程度和广度将大打折扣。他们只能理解教材上死板的概念,而实际编程能力却很差。为了让学生掌握《C语言程序设计》课程的精髓,教师们更需要注重实践教学,探寻适合学生学习程序设计类课程的教学方法和技术手段。
第三,应用型院校要加强实践教育和实验指导。《C 语言程序设计》是一门实践性非常强的课程,这门课需要学生在理解琐碎知识点的基础上,在实验课中根据任务需求动手编程,并且要学会根据错误提示或运行结果进行分析和调试程序中的错误。实践操作是《C 语言程序设计》课程的重要组成部分,实践操作教学的内容需要教师精心选取,既要有理解和掌握基础知识的问题,也应该有一些具有挑战性的、新颖有趣的问题。教师应根据课程内容和教学进度设计实验内容。在实验过程中,教师要根据学生所遇到的问题及提出的疑问,引导其分析任务的执行步骤,逐步培养学生的计算思维和逻辑推理能力,从而逐步提高学生对于问题的分析和解决能力。教师还可以根据教学课程目标,为学生安排适当的综合性实验。学生们可以以小组协作的方式共同完成实验任务。这种综合性实验题目可以与现实生活相联系,从而使学生进一步理解C 语言的用途,理解程序设计的实用性。
第四,建设《C 语言程序设计》课程的在线教学平台。《C 语言程序设计》课程知识点琐碎,课堂教学课时少而教授内容多,因而学生很难在短时间内记住要点、理解并掌握C 语言的全部知识点。但是,学生们可以通过线教学平台,随时对课程发布的内容进行访问,在网络教学平台上提前观看教学视频进行预习,完成课前测验。学生对于课堂上未能熟练掌握的知识,还可以随时随地、反复观看网络教学平台上的教学视频,从而及时解决知识掌握的问题。
第五,改变教学形式,提高学生的学习动力和学习兴趣。在传统的教学方法中,老师教授知识,学生被动接受来学习,但学生却不知道如何应用学到的知识,因而逐渐失去了学习兴趣。在C 语言的教学过程中,教师应结合传统讲授教学法,探索全新的教学模式,比如“以赛促学,以赛促教”等方式。近年来,我系积极鼓励教师指导和组织学生参加各种学科竞赛,比如“团体程序设计天梯赛”、“中国高校计算机大赛”、“蓝桥杯大赛”、“华北五省大学生机器人大赛”等,并对竞技大赛促进教师队伍建设、学生全面发展、教育教学改革的作用进行了初步探索。这些程序设计类的学科竞赛,旨在提高学生对编程问题的求解水平,学生的思考能力和设计技巧也得到了进一步地打磨和锻炼,同时也加强了学生的团队合作意识,在各方面都提高了学生的相关素养。
2 教学组织和实施
首先,教师在课前应认真备课,钻研教材,精心设计教案。其次,要选择趣味性较强的案例,激发学生的学习兴趣,从而使得学生可以通过互动教学来学习程序设计方法,让学生真正理解并掌握知识。
教师在教授课程之前,在网络教学平台上发布课前预习以及需要完成的任务,引导学生进行自主预习,确保学生在上课前明确教学目标,有针对性地听课和学习。
在教学的整个过程中,不能按部就班地完全按教材讲解,可以结合案例式、讨论式、启发式、探究式等多种教学方法,透彻分析问题的执行过程,帮助学生厘清解决问题的思路,并在教学中增加与学生的互动性,提高学生的参与性。
课后,教师通过网络教学平台及时与学生互动,进行沟通,解答课堂学习中的疑难问题。并且通过平台发布测试题,汇总学生的共性问题进行重点讲解。对于平台提供的在线学习的相关数据进行分析,及时调整教学方式、教学内容、教学进度,有针对性地调整教学方案,优化教学环节。
课堂外,加强第二课堂的建设,积极鼓励学生们参加各种讲座、学术报告,了解最新前沿知识,拓宽自己的知识面。并鼓励和指导学生积极参加高校组织的科研活动与各项程序设计类竞赛。通过第二课堂学习,学生们不仅了解了学科发展的前沿,而且开拓了思路,还提高了自身的科学素质,他们对未来的适应能力大大增强。
3 教学效果
在超星教学平台上,分析两个学期四个班的《C 语言程序设计》课程的教学数据,教学平台记录下了学生的学习过程和老师的教学过程。统计数据显示,课程资源有104 个授课视频,视频总时长为1307 分钟,非视频资源有23 个。截止本学期末,共发布课程公告439 次,累计页面浏览量为431319,累计选课人数213 人。任务全部完成的学生占比高,视频观看时长最长的学生达到1975 分钟,章节学习次数有的学生甚至达到558 次,统计结果如图1 所示。
图1 观看视频时长及章节学习次数统计图
课堂外,调动学生参加各项程序设计类竞赛的积极性。以“中国高校计算机大赛-团体程序设计天梯赛”为例,从2019 年开始参赛,获得山西省团体三等奖、2020 年获得山西省高校二等奖,到2021 年获得山西省高校一等奖,成绩稳步提升,教学效果显著。
再从近期的考试成绩统计数据来看,学生的不及格率下降了,综合成绩提高至80~90 分居多,成绩统计结果如图所示。
图2 成绩统计
结语
根据应用型高校对人才培养的要求,尤其是结合多年的教学实践经验,对于《C 语言程序设计》这门课程的改革与创新发展,文章提供了一些相应的思路,并进行了一定的反思。文章认为,要卓有成效地提高课堂质量,须从如下几个方面着手。
一是在总结与完善教学内容方面,教师应在教学过程中不断尝试新的授课方式,令人耳目一新的新模式将会有效促使学生更好的参与到教学过程中,同时也会在各方面提高学生的学习质量与综合素质,进一步满足当今社会对于应用型人才的要求。
二是建设在线辅助教学平台和探索“以赛促学、以赛促教”的教学模式,这种教学形式已逐渐受到了学生的欢迎。学生学习的主动性和积极性被充分调动。为保证课程的质量,要不定期地对课程进行评价,本学期末的课程评价如图3 所示。
图3 课程评价
“以赛促学、以赛促教”是一种全新的教学方式,该方式将会在极大程度上锻炼学生的创新能力和团队合作能力。同样的,学生相应的实践能力也会在本教学方式中得到充分的提高。这将促使教师改变传统的教学方式,在课堂上组织学生互动学习和研究学习,促进学生自发自主的学习,真正做到学以致用。根据评价结果,大多数学生对这种改革模式比较认同。