计算机程序设计课程教学的内容改革
时间:2022-02-25 09:48:53
导语:计算机程序设计课程教学的内容改革一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。
摘要:提出以程序设计课程为研究对象,以培养计算思维能力尤其是系统能力为主要目标,以教学内容改革为主要途径,针对本科程序设计课程进行教学改革探索,并给出具体的实施方案和典型案例。
关键词:程序设计;计算思维;系统能力;教学内容改革
0引言
信息技术的不断发展对应用系统开发和维护人员的能力提出了越来越高的要求。2013年ACM/IEEE公布的教学调整方案中,系统知识和系统能力的培养成为重点[1-2]。系统能力可以作为计算思维能力的一部分,而计算思维能力不仅适合开发、维护等专业人员,还适合各类人群,具有更加广泛的适用性[3]。作为本科阶段的第一门软件类课程,程序设计课程是一门非常适合培养系统能力和其他计算思维能力的课程,如果能够在课程教学过程中渗透计算思维能力的培养,将为提升学习者的后续能力奠定更好的基础。目前,该课程存在的主要问题是,很多学习者容易陷入对语法的强记硬背陷阱,无法真正提升其系统能力。为了解决这个问题,有必要改革课程的各个环节,其中教学内容的重新组合划分、优化选择、重难点界定等方面是基础性的环节。本文将以教学内容的改革为侧重点,探讨以能力培养为导向的程序设计课程教学改
1以能力培养为导向的程序设计课程教学内容改革的指导思想
随着应用系统的巨大化、复杂化,系统能力的重要性越来越凸显。而其中顶层设计能力至关重要,自顶向下的细化方法举足轻重,而具体实现可以放在次要位置。为了让学员在学习过程中提升系统能力,需要将授课内容从具体语法中解脱出来,以系统观的思想为指导,注重每个教学设计过程,从课程设计到课堂设计,优化教学内容,使内容更有层次感,更能体现系统设计的思想。计算思维强调将计算机科学方法与解决实际问题的具体方法相映射,而程序设计的很多具体知识点,如循环、数组、函数等,均能体现处理实际问题的方法。因此,对内容进行优化设计,可避免学员陷入具体语言的语法陷阱,而忽略理解掌握具有计算思维能力培养的思想性内容。计算机系统能力的培养虽然主要针对计算机专业学员[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结语
针对目前程序设计课程教学过程中,学员容易陷入程序设计语言的语法细节的问题,以提高学员对程序设计课程的理解、提升包括系统能力在内的计算思维能力为目的,以教学内容改革为主要方式,对程序设计课程进行了具体的改革设计与实践。实践结果表明,学员的计算思维能力,尤其是系统能力得到了较大的提高。教学内容改革也带动了教学模式与教学方法的改革,三者相互促进、相互补充,也为下一步的教学改革指明了方向。
作者:韩庆龙 李瑛 刘瑜 单位:海军航空工程学院基础部
参考文献:
[1]ACM\IEEE.ComputerScienceCurricula2013IronmanDraft(Version0.8)[EB/OL].[2013-03-26].ai.stanford.edu/users/sahami/CS2013/.
[2]王志英,周兴社,袁春风.计算机专业学员系统能力培养和系统课程体系设置研究[J].计算机教育,2013(9):1-6.
[3]WingJM.ComputationalThinking[J].CommunicationsoftheACM,2006,49(3):33-35.
- 上一篇:三七微丸的临床药学探讨
- 下一篇:普通高校音乐鉴赏课程教学研究