周 密
(长江职业学院 湖北 武汉 430074)
“C语言程序设计”是高职理工科专业的一门必修专业基础课,是后续专业课程的前置课程,是大学生学习程序设计的入门首选课程。C 语言作为全国大学生计算机等级考试、计算机技术与软件专业技术资格(水平)考试、普通高等学校专升本考试等的主要考核内容,具有不可或缺的地位。C 语言是一种结构化语言,语法规则复杂,内容抽象、编程灵活,多数高职学生基础弱、自制力差,通常学习此课程较困难,再加上不适当的教学方式,会让学生失去学习兴趣甚至放弃。因此,为激发学生学习兴趣,提高本课程教学质量,本课程教学改革势在必行。
高职教育具有很显著的职业性,其培养学生的目标为面向社会、生产、服务与管理等一线需要的高技术型人才[1]。一方面,一些高职院校忽略了高职教育的职业性与高职学生基础弱等特点,课程教学偏向理论化,重视对语法规则和经典案例的讲解,与实际应用联系不紧密,培养目标不明确。另一方面,学生没有建立整体的专业思想,对课程认识不足,不清楚课程的性质、培养目标及其对后续课程的影响,在学习过程中动力不足,易产生畏难情绪。
教师在教学中占主体地位,以灌输式理论讲解为主,学生被动接受知识。C 语言语法规则和知识点繁多,加之课时紧张,许多教师在课堂上通过PPT 讲解理论知识,敲代码演示书上的案例,只留下很少的时间让学生上机进行验证性实验,课后布置几道编程题让学生统一提交。这种教学方式存在诸多弊端,首先,C 语言比较抽象化和逻辑化,PPT 讲解或者单向传授理论知识,学生很难理解这些复杂概念,多数学生根本听不懂,缺少与教师的互动,课堂参与度低,学习积极性不高,学习效果差。其次,学生上机进行验证性实验,本质是在练习打字,把讲过的例子“抄”一遍,如果换一道题,便束手无策,这种教学方法与实际脱节,非但没有提高学生的编程能力和解决实际问题的能力,也不利于培养学生独立思考的习惯。教师布置同一份作业,没有考虑学生的整体情况和个体差异,不同生源的学生基础水平相差很大,普通文理的学生高中阶段基本没接触过编程,中职毕业生多数已经把C 语言学过一遍。面对不同生源的学生,统一的教学方式会导致教学效果不理想。
C 语言涉及的知识面广、内容繁多、实操性强,教师需要讲授大量的基本概念及相应的应用,并进行代码演示,还要留时间让学生上机练习。多数院校安排的理论课时和实验课时基本上不够,导致有些章节如指针、结构体、文件和编译预处理以及综合实训等讲不完。因此教师在实际上课时会调整教学计划,减少教学内容,加快进度,这样许多知识点就被忽略掉或者不能进行充分的讲解,影响教学质量,学生感觉本门课没上多久便匆匆结束。
工科专业的教师普遍在教学观念、思政元素的挖掘与课堂融入等方面还存在一些误区或偏差,专业知识与思政教育还不能做到无缝对接[2]。部分教师对课程思政理解不深,认识不够,在课堂上把思政课程的内容生硬地搬过来,学生觉得很突兀;又或者是为了思政而思政,认为每堂课必须要有思政元素的教学设计,而这样教学不但没有达到育人的效果,反而招致学生的反感。
在课程考核方面,早些时候高校C语言考试基本上是在期末的时候进行笔试,近些年慢慢采取机考的形式,这与全国计算机等级考试二级C 语言程序设计考试形式类似,出一套题来测试学生的知识掌握程度,是一种纯粹的应试形式。部分老师为了批改试卷方便,采用二级C 语言考试出题模式,80%的题型为客观题,学生选择、填空、改错即可,只有一道或极少数编程题,这种考核方式未真正考查学生的程序设计能力。学生没有从零开始构思的过程,没有算法的设计,而是跟着出题人的思路读懂程序,补全代码,完成做题,没有锻炼其独立思考、编写程序实现特定功能的能力,学生在学习这门课时缺乏动力,想着只要通过期末考试即可,失去了学习这门课程的目标。
学生通常在第一次课时充满着新鲜感,态度端正,精神饱满,因此,教师应充分打磨第一次课的教学设计,让学生明白本课程的性质、特点和重要地位,引导其重视这门课程。第一次课可以向学生展示高年级学生使用C 语言编写出来的各种应用程序,或上网搜索C语言的应用产品,让学生直观感受C语言可以做什么,明晰其具体应用场景。许多学生对计算机十分陌生,因此第一次课可以适当补充学科前置知识,例如介绍计算机的基本组成,介绍二进制的概念,0 和1 的电路特性,犹如开关的开与关。通过C 语言的字母“C”,引出一个单词“Combine”,意为“组合、结合”,让学生明白C语言是高级语言和低级语言的结合体,其能直接操作计算机的内存地址,让学生很快记住C 语言的这一特性。从“把大象关进冰箱需要几步”谈算法的概念,让学生明白算法是解决问题的步骤和方法,不等同于数学公式,学计算机跟数学好不好关联性不大,但是编程与逻辑思维有关系。C 语言程序设计这门课是今后其他专业课程的基础,提醒学生在学习本门课时肯定会遇到各种困难,要做好心理准备,要持续不断地努力。
教师可以采用线上线下混合式教学模式,通过在线开放课程或共享教学资源的方式让学生进行课前预习并完成章节自测,让学生带着“知识储备”或者疑问进课堂。在课堂上,教师根据自测结果调整教学策略,侧重讲解章节重难点和共性问题,留充足的时间让学生上机实操。当学生遇到问题时,教师不要立即给出答案,要逐步引导学生自己找出问题所在,尝试独立思考解决,最后集中讲解统一的问题。每次课必须布置实训题目,根据学生能力水平,将题目分为基础必做题和拔高选做题,鼓励学生主动思考完成选做题。
兴趣是最好的老师,教学活动的开展应以培养学生的兴趣为目的。教师可以安排丰富有趣的教学案例,不断提高学生对学习本门课程的兴趣,一旦他们对学习产生了兴趣,在上课时便会集中注意力听讲、认真思考,主动地去学习和研究他们感兴趣的学科[3]。“C 语言程序设计”课程有许多专业术语,概念抽象难懂,教师应创设生活化的教学情境,充分调动学生的学习兴趣,集中注意力参与课堂教学。例如在讲解经典排序之冒泡排序时,教师在课堂上找5 个学生(假设要求对5 个数进行排序)代表5 个数,数的大小由身高高矮决定,一目了然。5 个学生随意站成一排,第1 轮相邻两个学生比身高,如果前面比后面的高就交换两人的位置,继续相邻的两位学生比,比较4 次可得出最高的学生;第2 轮相邻两个学生比身高……得出第二高的学生……第4 轮……通过“比身高”的过程将冒泡排序算法演绎得淋漓尽致,场景模拟使得学生将算法牢牢记在脑海里。通过创设生活化教学情境,让学生容易理解复杂的概念与抽象的知识,提高学习兴趣,学得更扎实。
教师不必按照教材顺序讲授课程内容,应合理编排和裁剪教学内容,使其更符合高职院校学生的学习规律。要抓教学内容的主要矛盾,知识点“够用、会用”就行,不必深挖其原理。例如定义一个整数使用int 类型,教师可以直接告诉学生int 类型表示数的范围即可,编程中80%的整数使用int 类型,学生会定义和使用即可,没必要在课堂上学习反码、补码进而计算每种数据类型表示的范围。本门课是高职院校理工科各专业的第一门专业基础课,有些章节如文件和编译处理,讲解概念与入门案例即可,后续专业核心课如Java 语言程序设计,会更深入、详细地讲解相关知识点。
C 语言程序的全部工作都是由各式各样的函数完成的,C 语言也称为函数式语言。传统的C 语言课程教学讲完三大结构再讲解函数,学生形成思维定式,习惯在主函数中处理所有事务。作为计算机相关专业的学生,要早早建立“封装和复用”的编程思想,遵循软件“高内聚低耦合”的设计原则。函数的作用是把相对独立的某个功能抽象出来,教师在一开始训练学生编写程序的时候,就先把函数的基本概念和传值、传址调用教授给学生,并要求学生对待以后的课堂实训或是课后作业都要用函数调用的方式完成[4],培养学生利用函数调用优化程序的编程思维。
教师要加深对课程思政内涵的理解,多参与专业的课程思政培训,多研读优秀的课程思政典型案例,提高自身教学水平,要认识到课程中不是所有知识点都能挖掘出思政融合点,思政元素不能“硬融入”。“C 语言程序设计”这门课蕴含着许多思政元素的点,将这些点有机地融入课堂教学中,能很好地实现知识传授与价值引领相统一的目标,以下举几个例子来探究如何从小知识点解锁大思政。教师在讲解C语言的发展历程时,可以联系我国的信息技术发展现状,我国关键核心技术遭遇“卡脖子”,以此激发学生科技强国之志;在讲解算法的概念时,让学生明白做任何事情要有规划,总揽全局,在众多方案中求最优解,培养学生精益求精的工匠精神;在讲解三大结构之选择结构时,启发学生人生不同的选择有不同的结果,要树立正确的三观,踏实走好人生每一步。在专业教学的课堂上融合思政教育,有助于学生加深对课程内容的理解,培养健康向上的价值理念。课程思政意义重大,需要教师在教学中不断地学习和凝练。
采用平时成绩、阶段性项目考核、期末考试相结合的“三位一体”考核方式。平时成绩包括课前的线上视频学习及主题讨论、课前自测,课中的出勤、课堂表现以及课后作业完成情况等,占比30%。教学中采用综合实训项目将各个章节的知识点串联起来,模拟真实企业场景以团队的形式进行,这期间需要学生通力配合,教师辅助指导,以学生的项目参与度和完成度进行个人自评、组间互评、教师点评的方式形成阶段性考核,占比30%。期末考试占比40%,除了注重对课程基础知识点的考查,还应着重考查学生的实践能力,如上机独立设计、编写、调试程序解决实际问题等,还可附加拔高题,鼓励部分学生勇攀高峰。“三位一体”的考核方式更加全面、客观,更能调动学生学习积极性,提高学生的综合素质。
本文针对高职C 语言教学中普遍存在的问题,从提高学生对课程的认识、注重上机实践、重构教学内容、落实课程思政、完善考核方式等方面进行改革,旨在激发学生学习兴趣,培养学生逻辑思维和解决实际问题的能力。在今后的教学中,课程组将进一步探索符合高职院校人才培养目标的教学方法,进一步寻求提高学生实践技能的教学模式,以期为社会培养更多高素质的技能型人才[5]。