计算机程序设计语言有哪些【计算机程序设计课程教学的内容改革】

计算机程序设计课程教学的内容改革

计算机程序设计课程教学的内容改革 摘要:提出以程序设计课程为研究对象,以培养计算思维能力尤其是系统能力 为主要目标,以教学内容改革为主要途径,针对本科程序设计课程进行教学改革 探索,并给出具体的实施方案和典型案例。

关键词:程序设计;
计算思维;
系统能力;
教学内容改革 0引言 信息技术的不断发展对应用系统开发和维护人员的能力提出了越来越高 的要求。2013年ACM/IEEE公布的教学调整方案中,系统知识和系统能力的培养 成为重点[1-2]。系统能力可以作为计算思维能力的一部分,而计算思维能力不仅 适合开发、维护等专业人员,还适合各类人群,具有更加广泛的适用性[3]。作 为本科阶段的第一门软件类课程,程序设计课程是一门非常适合培养系统能力和 其他计算思维能力的课程,如果能够在课程教学过程中渗透计算思维能力的培养, 将为提升学习者的后续能力奠定更好的基础。目前,该课程存在的主要问题是, 很多学习者容易陷入对语法的强记硬背陷阱,无法真正提升其系统能力。为了解 决这个问题,有必要改革课程的各个环节,其中教学内容的重新组合划分、优化 选择、重难点界定等方面是基础性的环节。本文将以教学内容的改革为侧重点, 探讨以能力培养为导向的程序设计课程教学改 1以能力培养为导向的程序设计课程教学内容改革的指导思想 随着应用系统的巨大化、复杂化,系统能力的重要性越来越凸显。而其中 顶层设计能力至关重要,自顶向下的细化方法举足轻重,而具体实现可以放在次 要位置。为了让学员在学习过程中提升系统能力,需要将授课内容从具体语法中 解脱出来,以系统观的思想为指导,注重每个教学设计过程,从课程设计到课堂 设计,优化教学内容,使内容更有层次感,更能体现系统设计的思想。计算思维 强调将计算机科学方法与解决实际问题的具体方法相映射,而程序设计的很多具 体知识点,如循环、数组、函数等,均能体现处理实际问题的方法。因此,对内 容进行优化设计,可避免学员陷入具体语言的语法陷阱,而忽略理解掌握具有计 算思维能力培养的思想性内容。计算机系统能力的培养虽然主要针对计算机专业 学员[2],但对计算机系统能力的培养不应该局限于计算机专业学员。在实际开 发应用系统时,开发人员不一定是纯粹的计算机专业人员,而缺乏计算机系统能 力的非计算机专业人员在进行应用系统开发、维护和使用时,会面临诸如系统设计不合理等问题。因此,有必要在非计算机专业的课程中有目的地培养计算机系 统能力。

2程序设计课程教学内容改革的具体方案 2.1课程标准修订 首先,根据本科程序设计课程的教学目标,课程标准不应依赖于具体的计 算机语言,而是高度提炼程序设计的知识点、思想、方法,在使学员理解各知识 点的内在关系的基础上,利用某种特定语言具体呈现,有时甚至可以使用多种语 言实现同一知识点,以便使学员更好地理解知识点,并对比不同语言的特点。因 此,如果课程标准中还存在依赖具体语言的标准内容,则必须进行修订。其次, 课程标准中要指明该课程要进行系统能力和计算思维能力培养的宏观和微观目 标,并在内容要求部分给出具体的能力培养要求。最后,在以上原则的指导下, 从宏观上改进课程标准的内容,有效指导任教人员和学习者重视结构、思想和方 法,降低陷入语法陷阱的可能。表1给出了两个课程标准知识点内容要求修订前 后的对比。表1课程标准部分内容要求修订示例修订前要求修订后要求…掌握if、 switch、for、while、dowhile语句的使用方法,理解while和dowhile的区别,掌握 break、continue的使用,能够编写三种结构的简单程序……掌握顺序结构、选择 结构、循环结构的特点,绘制三种程序结构的流程图,使用一种语言对三种结构 进行具体实现……理解函数的基本概念,掌握C语言函数的定义、调用及返回的 方法,理解C语言自定义函数参数的传递方式,掌握C语言函数的嵌套调用和递 归调用……复述函数的概念,阐述函数引入的意义和作用,基于一种高级语言实 现函数的定义和调用,编写带有参数和返回值的函数并进行调用… 2.2课程教学内容模块化重组 教学内容的模块化重组有利于教学人员在教学过程中宏观把握教学知识 点,有利于学员理解课程的总体结构。遵循建构主义的原则,逐步提高学员的计 算思维能力和系统能力。涉及到具体语法的部分,不应花费过多的课堂时间,可 利用MOOC平台或微课视频给学员提供自主学习的平台。表2给出了课程模块化 划分的结果。

2.3能力培养知识点整理 课程中适合培养系统能力和计算思维能力的知识点较多,进行科学的归纳整理,有利于教学人员在备课过程中进行有针对性的准备。表3给出了部分能力 培养知识点的分布情况。

3教学案例 在教学实施过程中,要完成培养学员系统能力、计算思维能力的目的,必 须根据教学内容、学员特点、教学条件等进行更加细致的设计,以达到最佳的能 力训练效果。可以以“函数”一节的教学为例,给出具体的教学设计案例。

3.1教学内容和重难点确定 该节课的教学内容为函数,主要包括函数的概念、如何定义和调用函数。

其中函数的概念部分是本节课的重点,主要包括什么是函数、为什么要引入函数、 函数在整个程序中的作用和地位等。让学生理解并掌握形式参数和实际参数是该 节课的难点。

3.2教学目标和要求设定 通过该节课程的学习,使学员进一步建立模块化程序设计的思想,具有初 步利用函数进行模块化程序设计的能力。具体来说,要求学员能够复述函数的概 念,阐述函数引入的意义和作用,能够基于一种高级语言实现函数的定义和调用, 能够编写带有参数和返回值的函数并进行调用。

3.3学员特点分析 学员在前面的学习过程中基本掌握了程序的3种基本结构,能够编写一些 较复杂的程序,部分学员已经发现当程序较复杂时,往往会出现一些重复的代码。

虽然他们了解过模块化程序设计的概念,但对如何实现模块化程序设计并没有直 观的认识,对于“自顶向下,逐步细化”的认识更加模糊。

3.4课堂教学过程及内容设计要点 课堂开始阶段,为了让学员更容易理解引入函数的目的,采用现实生活或 生产实际中的例子,如飞机制造与组装等,并让学员反思前面编写过的较复杂的 程序中出现的代码重复现象,从而引出函数的概念,让学员更加轻松地接受函数 这个新知识点。在这个过程中可采用视频、动画、图片等多媒体形式向学员展示 生产生活中“模块化”组装的例子;
可以通过讨论发言,让学员挖掘前面学习过的内容中有哪些可以进行模块化设计。随着讨论的深入,学员就会思考应该如何借 助模块化思想解决程序设计中的问题,从而过渡到本节的第二个问题――函数的 定义和调用。在开始具体讲解函数的定义和调用之前,为了突出“学为主体”的课 堂特征,设定一系列的讨论问题,如函数应具有哪些要素等,便于引入函数形参 和实参概念,并加深学员的理解。在这个过程中,可结合生产生活实例进行启发, 结合学员小组讨论,建构出函数的定义和调用的机理。模块化组装的例子和函数 的知识有不同之处,应该花少量时间讲解或讨论它们的不同之处,从而避免造成 误解。在讲解完实参、形参的概念之后,利用具体的程序语言,如C语言,对函 数的定义和调用进行代码实现,并向学员说明其他语言的实现是类似的,可结合 微课资源向学员提供其他语言的实现例子。这里需要着重强调的是,以往的教学 内容多以代码实例引出函数、形参、实参等概念,而这里采用的是类比理解概念、 讨论引出概念、代码实现概念的顺序,学员理解层次更深,更适合学员在其他高 级语言中实践,更有利于能力培养。本节课程结束阶段,师生共同总结函数的意 义,使学员对模块化程序设计的理解进一步升华,系统能力得到真正的提高。

4结语 针对目前程序设计课程教学过程中,学员容易陷入程序设计语言的语法细 节的问题,以提高学员对程序设计课程的理解、提升包括系统能力在内的计算思 维能力为目的,以教学内容改革为主要方式,对程序设计课程进行了具体的改革 设计与实践。实践结果表明,学员的计算思维能力,尤其是系统能力得到了较大 的提高。教学内容改革也带动了教学模式与教学方法的改革,三者相互促进、相 互补充,也为下一步的教学改革指明了方向。

作者:韩庆龙 李瑛 刘瑜 单位:海军航空工程学院基础部