基于课程项目的“C语言程序设计”课程教学实践
作者: 王力 杨钊 彭燕霞
[摘 要] 针对现有的“C语言程序设计”课程教学中存在的不足,利用工程教育专业认证提供的教学理念,结合目前的教学现状和教学目标,提出以课程项目为驱动的教学实践。根据课程知识点开发出专题项目和开放性项目,并在实施过程中融合课程思政内容,最后通过多样化考核机制实现学生评分的全面性和科学性。教学实践可提升学生学习的积极性和创新能力,并进一步提高“C语言程序设计”的教学效果。
[关键词] 课程项目;C语言程序设计;教学实践
[基金项目] 2022年度广州市教育局高等教育教学质量与教学改革工程高等教育教学改革一般项目“项目穿插式教学方法探索与实践:以‘面向对象程序设计’课程为例”(2022JXGG032);2022年度广州大学教育教学研究项目“基于项目驱动的‘C语言程序设计’课程教学方法探索与实践”(58)
[作者简介] 王 力(1986—),男,湖南衡阳人,博士,广州大学电子与通信工程学院讲师(通信作者),主要从事人机交互研究;杨 钊(1987—),男,湖北孝感人,博士,广州大学电子与通信工程学院副教授,主要从事模式识别研究;彭燕霞(1988—),女,广东汕头人,硕士,广东女子职业技术学院应用设计学院助教,主要从事大学生心理学和思想政治教育研究。
[中图分类号] G642.0 [文献标识码] A [文章编号] 1674-9324(2023)48-0075-04 [收稿日期] 2022-10-14
引言
工程教育是我国高等教育体系的重要组成部分。教育部为深化工程教育改革,开展工程教育强国建设,自我国成为《华盛顿协议》成员后正逐步推动工科专业以高标准通过工程教育专业认证。基于学习产出的教育模式(Outcomes-based Education, OBE)是工程教育专业认证的重要标准,也是工程教育的核心理念[1]。相较于传统的投入导向、学科导向或内容驱动的教育方式,OBE以“实现学生特定学习产出的教育过程”提供了新的教学理念。“C语言程序设计”是高等院校本科工程教育,尤其是电气信息类专业学科的核心课程,同时也是能考验学生动手能力和创新能力的应用型课程[2]。因此,在工程教育认证背景下,如何在“C语言程序设计”课程教学中强化对学生的学习能力、实践能力、创新能力和工程能力的培养,成为课程改革所关注的重点方向[3]。
对于电气信息类专业的学生,程序设计是该类专业的必备技能,也是学习专业其他课程知识的起点[4]。以广州大学电子与通信工程学院的电子信息工程专业为例,“C语言程序设计”为本专业的学科基础课程,在大一上学期开设,共48学时。该课程又属于程序设计类课程的核心课程,教学内容具有点多面广、实践性强等特点,非常适合以能力培养为目标开展教学。因此本论文在OBE理念的基础上提出基于课程项目的教学改革方法,通过实施教学改革,为最终培养适应新时代、新技术发展需要,具有扎实基础、较强的创新能力、具备自我提升能力的高素质工程技术人才打好坚实的基础。本课程教学改革的特色和创新点包括三方面:(1)在课程项目驱动的基础上,将“C语言程序设计”的项目设计与课程知识点进行关联,激发学生的上课积极性。(2)通过主动式学习,扩展学生学习的时间和空间,帮助学生利用身边的资源积极主动学习。(3)采用笔试、项目答辩、编程能力考核等多样化的考核方式,引导学生积极思考,并制定具有良性循环的评分系统,考查学生的综合素质。
一、C语言课程教学现状探析
现有的“C语言程序设计”课程教学以PPT讲授为主,程序代码演示为辅[5],这种授课方式表现出了明显的不足。
(一)单纯理论概念的讲解使学生感觉枯燥
“C语言程序设计”的教学内容中含有大量的数据类型、运算符、数组、函数和指针等抽象概念。学生只有在理解概念的基础上才能进行编程,但单一的概念介绍容易使学生在学习过程中感觉枯燥无味。
(二)很难激发学生的主动学习能力
目前的课堂教学方式主要是PPT讲授加代码演示。这种方式虽然有利于教师系统讲解“C语言程序设计”课程知识,但是容易让学生养成依赖教师的习惯。学生遇到编程的困难时,首先想到的是翻看课上PPT和教材,或者是直接把问题抛给教师或其他学生,缺乏主动分析问题、解决问题的意识和能力。
(三)学生的实践能力与创新能力欠缺
学生在进行程序设计时,更倾向于在现有的代码上进行修改,当遇到全新的编程任务时很容易陷入迷茫,不知如何下手,不懂得分解编程任务的知识点和程序结构。解决问题的手段拘泥于已学的知识,缺少独立思考的习惯和打破常规的勇气,对新思路和新方法易产生抗拒心理。
针对上述不足,本论文从课堂教学和实践相结合入手,以学习产出为目标,提出以课程项目为驱动的教学改革实践。本实践首先突出了学生的主体地位,切实做到以学生为中心,增强学生的学习主动性和探索性。在课堂教学中融入案例、项目应用和思政元素[6],以更有利于理论与实践的结合,并能提高学生的自主能力和学习兴趣,实现对学生的实践能力、工程能力、学习能力和创新能力等多种能力的提升培养[7]。
二、以课程项目为驱动的教学方法
以课程项目为驱动的教学方法切合OBE以学生为中心、以学习产出为目标、理论与项目实践相结合的教学理念。“C语言程序设计”教学内容具有点多面广、实践性强等特点,尤其适合培养学生的实践能力、工程能力、学习能力和创新能力。针对目前课程教学中存在的问题,本论文主要从课堂教学设计、以项目驱动的主动式学习方法设计、课程思政融合及多样化考核机制四方面进行课程改革与实践,实现如图1所示的闭环反馈式教学方法。
(一)知识点与项目相结合的课堂教学设计
将“C语言程序设计”的知识点进行梳理,提炼出适合作为项目的知识点,在课堂教学中融入案例教学,激发学生的学习兴趣,同时采用项目设计的方式将课程知识点进行关联,加深学生对课程的整体理解。
(二)以课程项目驱动的主动式学习方法设计
将课程重点和难点知识及重要实践操作步骤拟定为若干个课程项目题目,融合课程思政内容,并将其开发过程贯穿整个教学过程。学生在课后根据项目需要,开展主动式学习。
(三)课程思政的融合
在课程项目的实施过程中,针对性融入和项目相关的思政元素,做到思政内容教学与项目开发实施的有机结合,实现课程思政的润物无声。
(四)多样化的考核机制
课程考核作为高校教育教学的关键环节之一,考核方式的改革已经成为教学改革过程中的重要环节。始终以评价学生综合素质能力为核心,开展多样性、连续性、过程性、公平性、创新性和科学性的考核方式。最终通过课程目标达成度计算和调查问卷的反馈调整课堂教学设计,实现教学过程的闭环。
针对课程项目驱动的教学内容,本论文采取的具体实施方案如表1所示,包括了课程知识点、专题项目和开放性项目设计、课程思政内容融入和多样化考核机制探索四方面,以闭环的形式在实践中检验和完善教学改革措施。
第一方面是梳理“C语言程序设计”课程知识点并设计相关项目案例。在课程教学中,将教学内容按照时间顺序分成3个部分。按顺序讲解知识点时,穿插3个专题项目,每个专题项目分别涵盖3个知识点。
第二方面是相关项目案例的实施。学生以项目书面报告的形式完成3个专题项目,报告需包括解决思路、代码和总结三个部分,教师针对项目报告评分,帮助学生培养出严谨、清晰的程序设计风格和良好的编程习惯。学习阶段接近尾声时,要求学生按照3~4人进行自行组队,以小组形式独立完成开放性项目。让学生体会团队合作、攻克难关和解决问题的成就感和乐趣,激发钻研新知识、新技能的劲头。通过项目答辩的方式验收开放式项目,帮助学生学会分工合作和相互学习的习惯,最终形成学生主动做、主动学的实践环境和机制。
第三方面是在项目的完成过程中融合课程思政的内容。按照项目的进展内容分别融入职业理想、正确的人生观、逆向思维、辩证思维、工匠精神、职业素养、团队合作和使命担当等思政元素。鼓励和引导学生从项目知识中挖掘思想内涵,协助学生形成正确的价值观。让学生不仅具有扎实的理论基础和较强的创新能力,还让其成为德才兼备、全面发展的高素质人才。
第四方面是多样化考核机制。考核的形式包括了笔试、口试、项目答辩和编程能力考核等多样化方式;考核的内容更加全面化,包括了课本基础知识、项目总结和案例分析等开放性知识。通过鼓励学生多参与课堂互动、小组讨论,实现主动式学习,最终科学提升学生的编程素质,并实现评分系统的全面化。课程项目为驱动的教学方法可将课堂内的编程能力考核与课本知识以外的开放性、创新性和拓展性知识考核相结合,培养综合素质全面发展的新工科工程师。
结语
“C语言程序设计”作为电子信息工程专业的重要课程,对本专业的人才培养起着至关重要的作用。针对该课程的实际情况,从激发学生对编程的兴趣出发,提出了以课程项目为驱动的教学方法,实现了具体课程内容的有机串联。让学生在项目应用场景中融会贯通课程知识点中的重点和难点,并同时培养学生的编程思维和团队合作意识。在学生参与课程项目的过程中,潜移默化地融入思政元素,实现思想境界的进一步提升。
参考文献
[1]蒋社想,陈辉,刘惠临.工程认证背景下高级语言程序设计教学改革[J].软件导刊,2022,21(2):235-238.
[2]葛日波,朱志刚.新工科背景下C语言程序设计改革路径探究[J].计算机教育,2022(1):120-124.
[3]张显,印东,刘毅文,等.“双万”背景下的高级语言程序设计“金课”建设[J].软件导刊,2022,21(8):188-192.
[4]佟强,蒋玉茹,赵淳,等.课程设计项目驱动的“C语言程序设计”教学方法探索[J].教育教学论坛,2021(51):138-141.
[5]梁达平.画块式分解法在“C语言程序设计”课程教学中的应用[J].喀什大学学报,2022,43(3):107-111.
[6]靳小燕,周围.基于课程思政的C语言程序设计课程教学改革探索[J].高教学刊,2022,8(18):146-149.
[7]邱晓红.“C语言程序设计”课程德智融合教学探索[J].教育教学论坛,2021(36):149-152.
Teaching Practice of C Language Programming Course Based on Course Project
WANG Li1, YANG Zhao1, PENG Yan-xia2
(1. School of Electronics and Communication Engineering, Guangzhou University, Guangzhou, Guangdong 510006, China; 2. School of Applied Art Design, Guangdong Women’s Polytechnic College, Guangzhou, Guangdong 511450, China)
Abstract: Aiming at the deficiencies in the existing teaching of C Language Programming course, with the teaching concept provided by engineering education professional certification, this paper proposes the teaching practice driven by course projects combined with the current teaching status and teaching objectives. According to the knowledge points of the course, special projects and open projects are developed, and the ideological and political content of the course is integrated in the implementation process. Finally, the comprehensive and scientific grading of students is realized through the diversified assessment mechanism. Students’ learning enthusiasm and innovation ability can be enhanced by this teaching practice, and the teaching effect of C Language Programming can be also further improved.
Key words: course project; C Language Programming; teaching practice