C,语言程序设计课程的金课建设实践

李 薇,黑新宏,王 磊,2

(1.西安理工大学 计算机科学与工程学院,陕西 西安 710048;
2.陕西理工大学 数学与计算机科学学院,陕西 汉中 723001)

目前,由于关键环节核心技术、中央处理器、操作系统均受制于发达国家,从而导致国内企业做不出高端设备,只能实现一些低端化和空心化的应用[1]。美国分别于2018 年4 月16 日和2019 年5 月16 日引发的中兴事件和华为事件,对我国制造业发展产生较大影响。通过自主创新,中兴已经掌握了很多核心技术,但是一些高端新产品仍然依赖于发达国家,核心技术、关键零部件依然是企业的薄弱环节;
在华为主打产品智能手机业务中,基带芯片使用近10%来自于美国高通公司的专利。“中兴、华为”事件一方面表明要想在国际舞台上拥有更多的话语权和主动权,就必须打造自身的核心竞争力;
另一方面真实反映了我国计算机专业高等教育的现状,即所培养的学生缺乏基于使命和技术的系统能力、创新能力。

随着精英高等教育转变为大众普及教育,生源质量受到了一定的影响;
计算机技术和互联网技术的快速发展,网络已经成为学生学习和生活的重要组成部分。当代学生的特点是视野开阔、充满自信、独立性强、个性鲜明,能快速接受新事物;
缺点是学习动机不明确、缺乏学习动力、自我约束能力弱、自学能力弱、缺乏探索和研究能力,沉迷于手机、社交网络、短视频、电子竞技游戏、直播等,是互联网和移动互联网的原住民。面对这种现状,如何改革与创新计算机教育,培养具有高度竞争力的人才,是教育领域研究的热点问题。

教育部高教司司长吴岩[2]指出,课程是人才培养的核心要素,是体现“以学生发展为中心”理念的“最后一公里”。在新时代全国高等学校本科教育工作会议上,陈宝生部长指出本科教学要合理提高课程难度,拓展课程深度,提升学生学业挑战度。《教育部在关于一流本科课程建设的实施意见》中指出,课程质量直接决定人才培养质量,高等院校要全面开展一流本科课程建设,树立课程建设新理念,推进课程改革创新,实施科学课程评价;
要让课程优起来、教师强起来、学生忙起来、效果实起来。因此,对课程进行探索与创新,淘汰“水课”,打造“金课”,对学生思维能力培养、解决复杂问题的综合能力培养和系统能力培养都具有重要的意义。

“金课建设”是指建设国家级一流课程和省级一流课程,包括具有“高阶性、创新性、挑战度”的线上、线下、线上线下混合式、虚拟仿真和社会实践各类型课程。高阶性是指通过知识、能力、素质的有机融合,培养学生解决复杂问题的综合能力和高级思维。创新性是指课程内容要反映前沿性和时代性,教学形式呈现先进性和互动性,学习结果具有探究性和个性化。挑战度是指课程具有一定难度,需要跳一跳才能够得着。C 语言程序设计课程是一门实践性很强的课程,也是本科生接触的第一门程序设计课程。这门课程将培养学生的计算思维能力、数据分析能力、问题求解能力和基本编程能力,不仅为学生后续课程的学习奠定良好的基础,也为培养学科交叉人才奠定坚实的基础[3]。

2.1 锤炼课程内容,提升课程内涵

图1 课程内容设计逻辑结构

课程内容不是一个个分散的知识点,而是围绕一条主脉络、主线索组织教学内容。以C 语言为载体,程序设计的基本方法和思想如图1 所示,主要内容有基本知识、程序设计和数据组织3 部分。首先,在介绍课程背景和发展时,引入当前最新科技发展,使课程内容具有前沿性和时代性,如华为技术有限公司研发的面向未来的鸿蒙操作系统,让学生明白C 语言是执行效率最高的高级语言,操作系统的关键代码都是用C 语言编写的。其次,采用深度优先策略,由浅入深组织课程内容。为了让学生树立计算思维意识,介绍计算机科学的“计算”与数学的“计算”的差异,引出程序与计算系统的关系。第三,介绍高级语言,怎样用程序求解问题,从问题引出算法再引出程序,从而让学生对课程知识建立深度认识。第四,采用要素优先策略组织课程内容,如程序设计部分包括常量与变量、表达式、选择结构、循环结构、模块化程序设计(函数)、递归程序设计、结构化程序设计等;
数据组织部分包括批量数据组织(数组)、表单数据组织(结构体)、外部数据组织(文件)和指针等数据存储形式。最后,采用深度优先和广度优先相结合策略,以经典案例驱动方式组织教学内容,促进学生主动思维,培养其逻辑思维、计算思维方式;
引入专业案例,促进学生在思维层面的联想与创新,实现计算思维与专业思维的有效融合、能力构建的层次性,进而培养学生解决复杂问题的综合能力和高阶复杂性思维技能。

2.2 创新教学方法,提高综合能力

研究表明[2],大学课堂教学具有五重境界:①寂静,课堂上教师热火朝天地讲,学生鸦雀无声,睡、看手机、发呆,互不干扰,一片祥和;
②问答,教师提出一些非常简单的问题,学生只是回答对不对?是不是?这只是一种机械的、形式上的互动;
③对话,教师针对授课内容与学生进行讨论、交流,学生讲述自己对问题的理解;
④ 批判,批评质疑,教师营造讨论氛围,培养学生的质疑能力;
⑤辩论,课堂上学生之间、学生与教师有争论、争辩,甚至争吵,学生对教师讲解的知识有自己的见解。在寂静的课堂上,学生循规蹈矩,只是记忆、掌握知识,不能灵活运用知识;
在批判或者辩论的课堂上,学生通过独立思考,敢于批评、质疑教师讲解的知识,有助于培养学生的创新思维和创新能力。第一重境界、第二重境界属于低阶课堂;
第三、第四和第五重境界属于高阶课堂。低阶课堂是水课的一种形式,即低阶层次教学[4],学生掌握的是低阶知识,培养的是低阶思维,形成的是低阶能力。如何构建高阶课堂,让学生能够与教师进行积极互动,能够批评质疑教师所讲授的知识,进而形成高阶思维,培养学术的高阶能力?可以采用“能力驱动+知识融合+兴趣培养”的个性化发展教学理念,通过“MOOC+翻转课堂”的教学形式,激发学生主动学习的兴趣与动力,使学生能够探索并解决复杂专业问题,进而培养学生解决复杂问题的综合能力和高级思维。

以C 语言程序设计课程第五章函数的教学内容为例,在线上学习阶段,教师首先制定一个能清楚展示学生学习成果的学习蓝图,即学生取得的学习成果是什么?根据预期的学习成果设计问题,问题见表1。在授课之前,将设计的问题发给学生。学生通过观看教学视频、查阅相关资料等方式进行自主学习,完成老师所布置的任务,记录有疑问的知识点。

表1 函数问题示例

在课堂教学中,如果单一地讲解概念,学生不仅觉得枯燥,而且会有“只见树木不见森林”的感觉,因此,可以在课堂教学中采用多元化教学方法。

(1)串联多方面知识,采用启发教育模式。例如,在讲解函数的性质和作用时,首先从“图书借阅”入手,通过讲解借阅图书的过程,使学生明白输出图书信息、查找图书、借书、还书等操作,其本质都是一些独立的模块,每个模块完成一定的问题求解;
其次,进一步介绍图书管理系统是一个复杂问题,包括图书的录入、删除、查找、借书、还书等功能,很难直接实现。一个复杂的问题通常是由若干个比较简单的问题构成,为了解决这个复杂问题,可以把它分解为若干个较小的、简单的部分,即“模块划分”,每一个模块对应一个函数;
同时,引出在程序设计时,先考虑总体目标、后考虑局部目标的“自顶向下、逐步求解”的设计理念;
最后,讲解调用函数的过程。调用者将传递给函数的参数一一压栈,函数建立自己的栈帧,为局部变量和可能用到的临时变量分配空间,调用并执行函数;
函数执行完后将程序控制权返回到调用者,整个函数调用结束。通过事例引出问题,再到如何实现,形成具有启发性的教学,使学生理解和掌握用计算机解决复杂问题的方法,实现由知识传授到思维培养。

(2)采用翻转课堂,增加师生互动,促进学生主动学习,提升学生学习成效。学习效果金字塔理论指出[5],如果学生用被动地听教师讲授、阅读、演示等手段进行学习,这种被动学习的学习成效只能达到30%左右;
如果让学生参与讨论、教授他人等主动学习,其学习成效最高达到90%。课堂教学主要分为3 个教学活动:秀成果、提问—研讨、答疑解惑。首先,检查学生MOOC学习成果,即“秀成果”,针对教师布置的任务,每个小组选派1 个代表展示其学习成果,重点讲解自己的设计思路和算法原理,从而展现本小组的学习效果和学习深度。其次,其他学生进行提问,在提问过程中,一方面学生能清楚地认识到自己的知识漏洞;
另一方面,引导学生积极思考、讨论、交流、研究,从认识知识到消化知识,培养学生的探究习惯和研究能力。最后,教师对学生存在的问题进行答疑解惑,并对重点、难点知识进行讲解、总结,保证学生知识的系统性和连贯性,加深学生对知识的理解与应用。

为了检验C 语言程序设计课程的教学效果,笔者选择了2 个专业的学生,分别进行“MOOC+翻转课堂”教学模式和传统教学模式,并在教学过程中分3 个阶段对学生进行测试。基础阶段测试的内容是基础知识、常量、变量和表达式、顺序结构、选择结构,8 道题目(80分),主要考核学生对知识的理解、掌握程度;
算法思维阶段测试的内容是循环结构、函数和数组,9 道题目(90 分),考核学生对知识的掌握和编程能力;
第3 阶段即期末测试(100 分),考核学生对知识的理解、应用和综合能力。采用“MOOC+翻转课堂”教学模式和传统教学模式的学生在3 个阶段学习成果评价对比如图2所示。

图2 传统教学模式和“MOOC+翻转课堂”教学模式学习成果评价对比

图2 表明,在基础知识与技能方面,传统教学模式方式下学生对知识的掌握比“MOOC+翻转课堂”的学生掌握程度好。这是因为基础测试主要是测试学生对C 语言的基本概念的理解和掌握程度,传统教学模式以教师的讲授为主,详细的讲解有助于学生理解、记忆知识,此外,这一部分的程序测试比较简单,主要考查学生的基本编程能力。“MOOC+翻转课堂”教学模式要求学生先看视频进行自学,然后在课堂上进行讨论,最后教师对重点、难点知识进行讲解。个人学习能力强的学生,通过自主学习、课堂讨论、教师讲授等过程,能够掌握程序设计的基础知识,并具有编写基本程序的能力;
反之,个人学习能力弱的学生,由于未能适应这种教学模式,因此基础知识掌握不扎实,且编程能力弱。算法思维阶段不仅检测知识的掌握程度,还有能力考核。采用“MOOC+翻转课堂”教学模式的学生成绩略高于采用传统教学模式的学生成绩。这是因为经过一段时间的学习,采用“MOOC+翻转课堂”教学模式的学生已经适应了这种教学模式,学习能力、计算思维能力和问题求解能力逐步增强。期末测试结果表明,“MOOC+翻转课堂”教学模式通过线上学习、串联多方面知识、启发教育模式、翻转课堂等方式,引导学生将知识内化为经验、能力,提高了学生数据分析能力、编程能力、复杂问题求解能力和独立研究能力,因此采用“MOOC+翻转课堂”教学模式的学生学习成果比采用传统教学模式的学生学习成果有了显著提高。

金课不是客观知识的搬运工,必须具有高阶性,即培养学生的实证思维、逻辑思维和计算思维,实现知识、能力和素质的有机融合。必须实现创新性,即发掘学生潜质,激发学生兴趣,提高学生能力,成就学生价值;
必须具有挑战度,即课程要具有难度、深度和广度;
笔者通过锤炼课程内容和创新教学模式,探索并实现了C 语言程序设计课程金课建设。统计数据表明,通过本课程的学习,学生在形成计算思维的基础上,培养了探究能力、编程能力和解决复杂问题的求解能力,为后续课程学习奠定了坚实的基础。

猜你喜欢 金课程序设计教学模式 基于OBE的Java程序设计个性化教学研究电脑知识与技术(2022年11期)2022-05-31群文阅读教学模式探讨少男少女·教育管理(2022年3期)2022-05-12“金课”建设背景下光传输技术课程的建设实践电脑知识与技术(2022年9期)2022-05-10项目化教学在Python程序设计课程中的应用电脑知识与技术(2022年9期)2022-05-10C++程序设计课程教学改革研究高教学刊(2022年11期)2022-05-05“思”以贯之“学、练、赛、评”教学模式的实践探索体育教学(2022年4期)2022-05-05课程思政改革背景下“金课”建设的探索与实践现代职业教育·高职高专(2022年16期)2022-05-05高校体育“金课”建设的基本认知、现实困境与实践路径①当代体育科技(2021年14期)2021-11-21大学生心目中的“金课”现代职业教育·高职高专(2021年36期)2021-09-22医学专业“Python程序设计”课程教学改革总结与思考现代信息科技(2021年21期)2021-05-07

推荐访问:实践 课程 语言程序设计