应用型本科“C语言程序设计”课程项目式教学方法设计与实践

2022-12-31 08:13鹏,蔡力,冯
教育教学论坛 2022年46期
关键词:C语言程序设计C语言课程

吴 鹏,蔡 力,冯 璐

(1.长沙学院 电子信息与电气工程学院,湖南 长沙 410022;2.国防科技大学 智能科学学院,湖南 长沙 410073)

引言

2019年,教育部在《关于一流本科课程建设的实施意见》中提出,全面开展一流本科课程建设,树立课程建设新理念,推进课程改革创新[1]。一流本科课程建设强调学生为中心[2],全面提升学生解决复杂工程问题的能力。但目前很多高校仍以传统教学模式开展教学,或仅在传统教学方法上辅以部分信息化方式,这与人才培养需求和一流课程建设要求都相差甚远。同时在应用型本科院校中,这类问题更为突出。此类院校与一些研究型高校在教学模式上未做区分,因此,其应用型人才培养目标未能较好地通过课程教学而达成。

“C语言程序设计”是工科类专业的一门公共基础课,同时就电子信息类专业而言,该课程的教学质量直接影响学生后续“操作系统”“嵌入式系统基础”等课程的学习。在应用型高校,该课程更是此类专业创新创业活动中的重要实践基础。在我校通信工程专业开设本课程时,其教学目标为:能利用C语言的主流开发工具如开发平台、测试平台、配置管理软件和项目管理软件,对复杂程序开发问题进行预测与模拟,能初步接触C语言在通信工程专业设备中的应用。传统的教师讲授、学生再上机练习的方式,较难达成本课程对学生实践能力培养的课程目标。

因此,笔者在多年工程经验积累的前提下,对本课程采取项目式教学方法进行改革。项目式教学的理念起源于18世纪,卢梭、裴斯泰洛齐和福禄贝尔等教育家认为传统教学存在忽视学生自我发展、教育与生活实践相脱离的弊病,强调学生自主学习和自我决策,这些思想是项目式教学的理论基础[3]。项目式教学法是指教师以项目为主线贯穿教学过程始终,将课程中的多个知识点融入成体系的项目中。学生在教师的引导下对项目进行分析,以运用相关理论知识完成项目实践,教师再以学生完成项目的质量评定学生的学习效果[4,5]。

一、基于项目式教学模式设计

(一)教师教学过程设计

传统教学模式以教师课堂讲授理论知识为主,教师在每节课的主题上进行扩展。这种方式没有充分考虑学生的个体需求,特别是在“C语言程序设计”这类相对枯燥的课程教学过程中,难以激起学生的学习兴趣,而且很容易使教学内容脱离工程应用的实际情况。笔者在教学改革研究中,从以下三个环节对该课程教师教学过程进行项目式设计。

1.教学准备阶段。在课程开始前,根据授课专业的人才培养目标和毕业要求,制定了明确的教学目标和教学大纲,确定知识点及授课所用项目案例。

“C语言程序设计”是面对大一新生开设的实操类课程,相比于英语、数学等课程,往年对学生来讲,障碍会大很多。今年借助智慧教室环境,不用担心走到学生之间声音效果不好或者不便于维持课堂纪律等问题。因此,结合新生与课程特点,适当加入了一些课程思政元素,比如在开篇绪论里面,以为什么要学C语言为主题,结合笔者二十年的学习、科研经验,不但告诉学生学好了能干啥,还可以讲能力越大、责任越大,讲自己由于没有养成良好的学习习惯,导致后续参与科研项目出现问题及为此付出的代价等故事。

2.课堂组织教学阶段。要求学生在课前对本次课程的项目案例有初步的了解。结合智慧教室,借助高清电视机及灵活的座位布局,在理论课授课时,教师自带笔记本电脑,加入实时的代码编写演示,把正在讲解的理论直接现场编写代码软件,让学生有更好的代入感和沉浸式体验。为后面实验课的授课安排做好内容衔接。

“C语言程序设计”课程在智慧教室进行授课,使具体授课形式更为灵活,学生可以根据理论教学、教师演示项目案例实现、课程互动等多个环节灵活调整。传统教室比较适合学生学习理论课知识,无论是桌椅的工整便于学生记笔记,还是桌椅的前后距离空当方便学生观看黑板板书等,都为学生学习理论知识提供了条件。但是在“C语言程序设计”这类实践性较强的课程中,基本的语法理论不是重点,内容也比较少,学生更需要掌握的是项目设计和实现的思路,以及解决问题的技巧,这样的特征结合智慧教室各类条件可以让课堂效果充分发酵。

具体来说,在每节课讲解语法时,学生并不需要围坐6张桌子,而是汇聚在讲台前面,基本上每个小班30个人都只用第一排桌子就可以坐下,这样能使学生更方便看到教师的讲解过程,包括肢体动作、声音大小、黑板板书等。在讲解到一些具体的代码细节时,学生可以分桌观看电视上投影出的高清软件代码,不受教室黑板距离的影响。在进行具体分组讨论或者投票行为时,结合学习通软件的功能,比如随机选人、投票答案等,可以达到更好的互动效果。

3.课后总结阶段。在课堂教学阶段结束后,教师对本次课程中学生的项目案例实现情况进行归纳总结,并将学生出现问题较多的知识点充实到项目案例中,便于后续课程教学,使教学内容更贴近学生认知过程。

(二)学生学习过程设计

1.课前学习准备阶段。开学之初,恰逢大一新生军训,所有课程都没有开始,训练任务有一定的强度,因此,不适合让学生提前开始集中学习理论知识。但是随着近些年经济和科技的发展,学生都配置了手机,网速和流量价格不再成为限制条件。要利用好学生由于未知而对编程课程产生的兴趣,教师可以提前联系组建课程QQ群,给学生推送一些高质量的自媒体科普介绍视频,例如C语言能做哪些事、C语言是如何发展的、一些名人学习编程语言的故事等。同时,利用学习通等手段,向一部分有意愿自学的学生分享自学渠道和学习资料。

2.理解应用阶段。由于采用上述新的教学方式,将原本前几次课的绪论、语法基础内容,加入了代码编写现场演示,让后面的教学内容适当前移,既降低了学生的恐惧感,也能让学生感受到后续知识学习的益处。相对于传统的高大上的介绍,比如学会了软件可以参与航天工程建设这样的介绍,更加接地气,易于让学生产生真正的兴趣[6]。

具体来说,一些后续章节的综合训练,可以适当前移“混搭”到其他知识点,比如传统第8章《函数》的知识,可以放到第3章《基本语法练习》进行结合讲解,这样能让学生一边学习相对枯燥的语法基础,一边能动手做一些简单的软件,是由兴趣驱动学习的第一步。比如课程第三周的内容,要求学生自己开发一个游戏软件“猜数字”,教师上课演示一些基本思路,展示如何一步步操作,这种方式效果显著,使学生之间、师生之间的互动频次瞬间提升,教师再也不用担心课堂效果或是课堂纪律。

3.知识内化阶段。往年的一个好习惯是尽早通过实验课进行测验验收的形式,对学生逐个进行问答、检查,以发现那些表面上认真听讲,其实没学会但又不好意思讲的学生,进行重点辅导解决问题。但是由于实验课一般安排在课程第三周,问题发现时一般都较晚。当问题被发现较晚的时候,一部分学生就容易产生放弃的想法,再想拉回来就比较难了。

所以,本学期结合上课互动新形式,采取了QQ语音答复的方式,效果较好。在开课之初就让学生加入专门的QQ群,并且单独加学生好友,以便于用语音回复学生各类型问题,尤其是不限于课程的一些问题,比如大学生活、爱情观、兴趣爱好等。课下可以一对一解决距离感的问题,课上再把一些比较有价值的问题及时拿出来与学生分享,鼓励更多的学生积极和老师沟通,这样就能早早发现一些学生的问题,比如经济问题,买电脑有困难,笔者就可以将一些闲置的测试用笔记本借给学生;比如心理障碍问题,看见代码就发慌,笔者可以课下与学生见面多沟通。这些问题在课程前两周达到顶峰,基本每天语音回复量都很大,早上一睡醒都有十条以上问题;在课程逐渐步入正轨,学生各类问题被第一次暴露之后,QQ单独咨询问题的学生就很少了,反而多了一些炫耀进步和成绩的行为,这些都是良好的反馈[7]。

二、基于项目式教学的课程评价方法设计

(一)工程经验的指导作用

在笔者攻读研究生阶段及留校工作期间,有近二十年的国家大型工程项目开发经验和管理经验,因此,深知本科阶段偏应用类型的课程,最终到学习者工作实践时所能产生的积极作用。同时,在项目管理中摸索出一套如何培养人、如何锻炼人的方法,在本科教学中可以充分用以实践教学参考。

考虑到大学本科学生,尤其是大一新生,在思想、心智、毅力、能力基础方面,都还处于培养期和成长期,所以不能简单照搬针对研究生的训练方法。但是以项目为目标驱动,以项目开展为过程牵引,以项目要素为训练考查点,通过实践证明,是非常有益于教学质量提升的。这是因为大多数学生在接触这类实操课程时,会有很强的迷茫感,不知道学了有什么用、能做什么。在这个时候,给学生一个任务,相对于布置习题会更容易激发学生的挑战欲,也就是兴趣。通常学生在认知成熟之后,会产生责任感,依靠对一个事情的责任驱使其坚持下去,完成各项繁杂或者有难度的挑战,从而完成任务。但是在学生还处于懵懂状态时,更容易被兴趣所牵引,比如手机游戏、动画动漫。所以,利用好学生的兴趣,结合良好的教学内容设计,驱动其开始某个项目任务,在不知不觉中就可轻松完成各个要素的训练。项目的难度适当、带有时间限制、提示解决方法探索、引导最终效果的质量确认等,都会让学生培养相应的工程素养,同时会产生挑战一些难度的信心。

(二)评价机制的设计

项目式教学的评价方法通常具有多元性。在教学过程中,学生所实践的项目通常有多种解决方案,评价解决问题方案的标准并不能简单用“对”或“错”来定义。因此在评价方式上,项目式教学强调通过项目的完成情况,考核学生综合运用知识解决实际问题的能力。本课程练习大于学习,实践重于理论,更多的是需要学生大胆的开始,不要怕写代码会出错,在错误中纠正是最好的学习方式。因此,基于理论学习后进行上机实验课的传统形式,需要进行改革,“C语言程序设计”不应该只是一门学习课程,应该像英语、驾驶一样,成为一个基本技能,贯穿本课程学习过程,尤其是后续的工科类课程几乎不能离开C语言的编程基础,因此,在初始阶段需要让学生变被动学为主动要学,变课程期间学为贯穿日常思考和应用。

在评价标准上,主要考核学生是否达到本课程的教学目标,该目标的关注点是学生在项目式教学中的实践能力和学习能力的培养[8]。本课程设计了后续的软件设计实践活动,能够进一步让学生摆脱命题时的思维,自行寻找客观世界中的实际问题,然后类似数据建模一样,对其抽象为程序问题,最后利用学习的编程技能解决。这就需要在评价标准上,引导学生不只是简单地以学习考试成绩为目标。同样,在教师设计考核方式时,需要降低单纯的试卷考试成绩,而应该加大日常练习的评价权重,让学生从评价标准产生的正向积极影响中真正受益。

项目式教学方法能够克服传统教学方法的弊端。从学习内容看,学生可以与教师一起选择、规划和实施具体项目。学生根据项目任务的需要,主动寻求解决问题的方法,学习积极性更高,学到的知识更扎实。本文通过对电子信息类专业人才培养目标的分析,明确了“C语言程序设计”课程在本科教学过程中的定位,制定了明确的教学目标,并采用项目式教学方法实施于教学全过程。采取按项目完成度的方式对课程进行评价考核,并将授课过程中所积累的项目实施情况融入下阶段的教学中,形成持续改进机制。该课程在通信工程专业以项目式教学方式实施两年,学生反馈良好,且后续相关课程任课教师对本课程教学质量及学生能力提升程度给予了充分肯定。

猜你喜欢
C语言程序设计C语言课程
《无机化学》课程教学改革
数字图像处理课程混合式教学改革与探索
软件设计与开发实践课程探索与实践
基于Visual Studio Code的C语言程序设计实践教学探索
为什么要学习HAA课程?
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
论子函数在C语言数据格式输出中的应用