新工科背景下“C程序设计”教学改革探索

2022-12-27 06:13贺秋瑞伍临莉
科技风 2022年35期
关键词:C程序设计编程能力

贺秋瑞 郭 晓 伍临莉

1.洛阳师范学院信息技术学院 河南洛阳 471934;2.河南理工大学鹤壁工程技术学院 河南鹤壁 458030;3.鹤壁职业技术学院 河南鹤壁 458030

1 概述

新工科发展战略以建立中国模式、制定中国标准、形成中国品牌,打造世界工程创新中心和人才高地为目标,这就对我国高等教育提出了新的挑战,要更加注重学生的自学能力、创新能力、实践能力和综合能力[1]。然而,“C程序设计”课程是计算机专业的一门专业必修课,在大学一年级开设,该课程是一门非常重要的程序设计课程,是本专业的第一门编程课,也是学习软件开发的入门级课程,更是学习其他类语言的基础课程,学生对本课程的学习质量直接影响后续课程的学习,在计算机专业课程体系中有着举足轻重的地位。在教授该课程的过程中,发现了不少问题,针对这些问题,通过文献调研、学生调研等进行了新的教学改革探索,以期通过角色互换、教学方式多样化、教学内容丰富化、关注过程及考核方式过程化等方式提高教学效果,提高学生的编程能力、动手能力和创新能力,最终完成新工科背景下的教学目标,培养出具有自学能力、创新能力、实践能力和综合能力的优秀学生。

2 存在的问题

2.1 从课程本身看

“C程序设计”是一门注重实践的课程,对学生的动手能力,计算机思维能力有较高的要求,该课程内容包含了结构化程序设计思想的精髓,有助于其他编程语言的学习。如果想提高编程能力,必须要进行大量的上机训练。在实际教学中发现课程概念多、内容多、理论抽象,甚至有些规则与硬件有关,相当一部分同学被纷繁复杂的语法弄得一头雾水。然而,学校安排的教学课时有限。学校规定的课时有限,教师不仅需要讲授基本的概念、语法知识,还需要给学生足够的时间练习,显然两者之间很难达到平衡。多数老师反映,讲理论知识时间长,给学生练习的时间少,感觉没有到达想要的效果;但是不抓紧时间给学生讲授知识点,又无法在规定时间内完成教学计划,因此,课堂无法还给学生,以教师传授为主,学生练习时间少,课下学生又不主动训练,导致无法达到教学目标。

2.2 从学生方面看

2.2.1 编程基础与能力层次分明

虽然同学们都是刚刚进入大学,但是他们的编程基础和动手能力却差别较大,且层次分明,通过在实际教学过程中发现,基础与能力大致可分为三个层次[2]:第一,学生具有一定的编程基础。受到家庭环境、初高中接受的教育、学生自身兴趣爱好等影响,部分学生入学前已经具备了一定编程基础、逻辑思维、信息素养等,可以通过C程序设计的基本教学,迅速掌握相关知识,通过课堂教学已经无法满足他们对知识的进一步探索。第二,学生不具备编程基础,但是具有一定的信息技术基础。了解信息技术,熟悉计算机软件、网络平台等,对软件编程充满好奇心,渴望获得相关知识。第三,没有任何编程和信息技术基础。对计算机的理解仅仅停留在上网聊天等,对课程没有兴趣。

2.2.2 自主学习能力差

中学学习的是基础知识,学习的目的是高考,老师们会耐心地讲授、辅导,学生们在学习的过程中,基本上都是老师讲授,学生被动地学习。高校的教学节奏很快,教学内容也很广泛,老师对学生监督较少,造成一些学生总是觉得时间不够、学习困难;有些同学在课堂上感觉好像能理解,但是做作业却很难;还有些大学生不能适应大学学习生活,遵循中学的学习模式,过于依赖老师和班主任,在学习过程中缺少自主性、主动性和自觉性。

2.2.3 目标不明确,兴趣不高

一个人如果能够清晰地明白自己对什么感兴趣,就会形成明确的努力目标。事实上,很多刚入学的大学生不知道自己到底喜欢什么,也不知道未来自己想做什么,没有明确的职业规划,因此做什么提不起精神,没有学习的动力。

2.2.4 对偏实践课有畏难情绪

对于大一新生来说,偏实践课程对学生有一定难度。在高中时期,学生上课多以被动接受知识为主,教师是课堂知识的传授者、课堂的主导者,学生多以接受课本知识为主,需要动手操作的课程,如物理、化学、生物等课程,经常被学校直接忽视,重点掌握结论性知识,造成了学生动手能力差,提出问题、分析问题和解决问题的能力差。因此,C程序语言的学习不仅仅需要掌握基本的理论知识、语法知识,还需要不断提高逻辑思维能力和编程能力,能够通过知识与思维的碰撞,对遇到的问题进行不同方向的分析,并使用C程序语言去结构化,通过实际的编程去实现、解决问题。通过课堂调研我们发现,65%的学生对该课程的学习有一定的畏难情绪,并对是否能通过考试而担忧[3]。

2.3 从教师方面看

当前,我国很多大学仍然把“教”作为教学的核心,以教师为主导,通过灌输的形式将知识传授给学生,注重知识的连贯性、完整性和系统性。然而,电脑类专业的人才不仅要学到专业的知识,还要培养他们的动手能力和创造力,让他们学会学习,以适应不同的工作环境[4]。

2.3.1 重理论轻实践,重结果轻过程

在C语言的教学过程中,经常出现重理论、轻实践的情况[5],很多老师照本宣科,以教材为中心,而忽略了学生的主观能动性,学生发现问题、分析问题、解决问题的能力没有得到有效提高,导致的结果是:(1)学生学习时认为都理解了,可是实践中发现很多知识没有掌握;(2)实践课程不能自主完成,实践报告应付了事;(3)根据书本知识应付考试,却不能通过编程解决实际问题;(4)达不到预期实践效果与教学目标,无法培养学生动手能力和创新能力。该教学方法直接导致学生重结果轻过程,学生以理论考试为终极目标,本应该上机操作的课程,变成了背语法、背结构,课程设计应付了事。

2.3.2 教学方法单一,且以传授知识为主

长期以来,C程序设计的教学方法单一,主要是讲课+练习。教师上课按照教材的基本内容讲解,教师重视基础知识的掌握,强调知识的完整性与系统性。但是,课程章节多、内容多,在学校规定的课时内,既要保证知识的传递,又要保证学生练习的时间。由于学生没有编程基础,每节课留出来20分钟的时间练习,远远无法满足需要,很多学生一知半解,课下也很少花更多的时间去自学,导致动手能力差,期末考试完全变成了知识点的背诵。

3 教学改革

3.1 混合式教学

混合式教学[2]是指将面授与在线学习相融合,将被动与主动相结合,以达到有效教学的一种学习模式。混合式教学可以实现以教师为中心向以学生为中心的转变,通过采用更多的教学组织形式、更丰富的网络资源,提高学生的学习兴趣,培训学生创新精神,挖掘学生的潜力。通过课前、课中和课后三个环节,根据不同的学习目标,设置不同的问题、要求及配套的练习,同时采用任务驱动型的方式分解任务,迭代实现教学目标。该教学模式可以提高学生的主动性和积极性,通过互联网资源自主学习,培养学生自学的能力,提高学生利用不同资源解决实际问题的能力,可有效提高教学效率与学生学习效率。

3.2 翻转课堂

翻转课堂[6]是指学生在课前通过C编程的教学视频,自学掌握基本的概念、理论和语法,老师不占用课堂的时间进行理论讲解,使课堂成为师生互动的地方,通过提问、合作探究等形式提高教学质量。因特网的广泛使用和计算机技术的普及,使“翻转式”教学成为了现实。在网络环境下,学生可以获得高质量的教育资源,而不仅仅是依靠老师来获得知识,师生之间的角色互换,老师的主要任务就是解答学生的问题,并指导他们运用知识解决问题。这种教学模式重构了学习的流程图,把老师变成了课堂的领导者,老师成为了教室的引导者,把知识的吸收转化为师生之间的相互作用。

3.3 以研促教,以赛促教

“教而不研则浅,研而不教则空”,教学与科研相辅相成[7]。以研促教,通过不断的科学研究才能反哺教学改革的实施,通过不断的科研才能了解最新的教学思路、教学方法及教学理念,才能在教学工程中优化教学方法,丰富教学内容。创新的教学方法可以推动教学实施,丰富的教学内容才能激发学生学习的兴趣和热情。其次,将课程教学与竞赛相结合,激发学生的学习兴趣,比如蓝桥杯等程序大赛,鼓励学生积极参与比赛,培养学生的竞争意识,激发他们学习的主动性,通过自己的探索去获取知识,将课本的知识灵活地应用到比赛中,通过比赛的进一步升华,逐渐形成编程思想。

3.4 因材施教,分层次进行

对学生的编程与信息技术进行简单调研后,分成三组:基础组、能力组和拔高组。根据不同的分组,将C程序设计实验内容设置为基础题、设计题和综合题三类。基础组的学生学习掌握基础题,包括基本的语法、概念等;能力组的学生主要学习设计题,要求具有一定的编程思维、较强的动手能力;拔高组主要练习综合题,要求学生不仅基础强、编程能力强,而且具有较强的责任心、自主学习能力、较强的好奇心,同时具备一定的创新能力。通过进行学生分组与学习内容分组,因材施教,完成学生与教学内容的高匹配度,使每位同学都能通过不同的学习掌握不同的技能,获得成功的体验,培养学生的学习兴趣,增强学生的自信,才能让学生有信心,愿意投入更多的时间去学习。

3.5 挖掘思政元素,激发内在动力

对课程教学内容重新整理,充分挖掘课程思政元素,将知识传授、能力培养和价值引领融为一体,全面落实“立德树人”的教育任务,培养学生的创新精神、科学的发展观、科技报国的担当,激发学生的学习兴趣,通过思想上的提高,让由学生被动学习逐渐转向主动学习,间接提高课程教学的效果。例如,在讲解为什么要学C程序设计这门课程时,通过案例告知学生要增强危机意识,要有不断拼搏的精神,唤起学生的爱国情感,激发学生学习该课程的内在动力。在讲解数组等知识时,告诉学生人以群分、物以类聚的思想,多结交有共同目标、积极向上、具有正能量的朋友。在进行课程设计时分小组进行,不同的小组要通过不同的方法解决问题,以此引入要有团队协作的精神,增强学生的责任感和团队意识,一题多解,培养学生的发散思维,提升学生的创新力。

3.6 考核方式

建立合理的考核方式有助于激发学生学习的积极性,通过教学方法的多样化,让学生体验到不同的课堂氛围,利用翻转课堂、混合式教学等方法,不断提高学生的学习的主动性,培养学生的自主学习能力,在考核中增加过程性考核,让学生体验到阶段性的小成功,有利于学生自信心的建立。将之前单纯依赖课堂考勤和作业的评价方式,调整为课前预习、课堂互动、课后作业、综合设计和期末考试五大部分,淡化期末考试的重要性,让学生真正回归过程当中,让学生成为课堂的主人。

考核方式及占比表

结语

在新工科背景下,新的挑战也是新的机遇。本次课程改革能够让学生参与到教学中来,提高学生的基本知识、程序设计、编写、调试能力、分析问题、解决问题、规范软件开发流程和文件编写等能力。同时,培养了学生的团队协作精神,使他们的语言表达能力得到了提升,对他们的创造力起到了一定的促进作用。在本次课程改革中融入了思政元素,并逐步开展了混合式教学等新的教学方法,并对不同层次的学生提出了不同的要求,教学效果最终得以提升,授课方式与内容受到了学生的欢迎和喜爱,学生对老师的评价是幽默和风趣。这一新课程的改革,尽管已经有了一些成果,但仍有一些地方有待改善,这是今后课程建设不断提高的重点。

猜你喜欢
C程序设计编程能力
消防安全四个能力
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
大兴学习之风 提升履职能力
你的换位思考能力如何
C程序设计趣味教学初探
C程序设计课堂趣味性教学初探
接轨全国等级考试,探讨高校C语言课程教学改革