时间:2023-03-27 16:47:50
序论:速发表网结合其深厚的文秘经验,特别为您筛选了11篇程序设计教学论文范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!
2.算法的构建。在处理一些问题时,一系列可操作的步骤需要设计,或者设计它的可算操作,来通过这些步骤进行解决问题,这种解决问题的方法就是通常指的算法。广义的算法:就是一种工作的方法和步骤,例如,歌曲的歌谱、洗衣机说明书等都是它们使用的算法。数学教学中的算法:数学中,把计算机解决问题过程中的程序认为是现代意义的“算法”。这种算法可以用计算机实现,对求解的方法也是统一、机械的,例如:解方程、作图问题、函数求值等的算法。
二、ARCS动机设计模式在高中数学程序设计教学中的应用
1.注意策略。在学生考虑到需要输入输出时,实际上他们就已经开始有了算法思维,只是很多学生在开始时不确定如何准确划分步骤。通过上述例证使学生了解算法解决问题的思路和步骤。
2.相关性策略。《孙子算经》中原文是:“今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?答曰:二十三。”对高中生来说,在问题提出后,即使有些同学的思路一开始出现了偏差,但是和实际情况对比之后基本都能猜出正确答案。因此,对自己判断与实际情况不一致的同学来说,他们就会更深一步地问自己:为什么不一样?哪里出现了问题?这有助于学生独立思考能力的培养。只有让学生自己发现错误、判断错误、解决错误,才能让学生真正地掌握相关知识,这也有助于提高学生的高阶思维能力。
3.信心策略。算法实例基本是必考题,每次的考试中都有或多或少地涉及一些。算法题出题方式灵活,可考查内容较多,是一个全面评估学生知识掌握程度的考题。教师在对学生进行考核时,要考虑到学生自身知识的掌握水平,从学生角度出发,循序渐进地增加难度,切忌一次考核过难,打击学生的自信心,降低学生的学习兴趣。案例:例1.通过求1+2+3+4+5中的一个算法。解:算法1用逐一相加的方法来进行。第一步:计算1+2,得数3;第二步:把第一步中所得结果3与3相加,计算得到6;第三步:将第二步中所得的运算结果6与4相加,计算得到10;第四步:将第三步中所得的结果10与5相加,计算得得到15.说明:①一个问题的算法肯定不是唯一。②若将本例题改为“求1+2+3+…+100的结果,给一个算法”,则以上第二算法和第三算法表达较为方便。对刚开始接触程序设计的学生来说,这类题型可以提高学生的自信心,使学生产生强烈的荣誉感。题目的难度是明确的,但实际解题思路并不复杂,却有多种解题方法,对解题思路明确后,其流程图绘制也就轻而易举了。给学生自信心,让学生感受自身的能力有助于提升学生的学习动力。
4.满意策略。以满意度策略为基础的数学课堂教学方式有很多,如多媒体教学、学生学习目标设定、多元化教学方式等。在教学中,本人根据学生各自情况,与学生进行沟通后为每人设定了相应的学习目标。每次测评之后并不以全班同学的成绩来评论学生的好坏,而是通过横向与纵向两方面相比,让学生全面了解自身当前学习状况。另外,数学课堂教学中,要重视学生的能动性,通过参与问题、解决问题的方式让学生充分表现自己。通过满意策略提高学生的学习动机。
1.1核心知识点模糊
2010年之后,很多高校开始开设Android相关课程,对其培养目标、课程体系和核心知识点还处于探索阶段,教学方法仍处在研究和实践阶段,导致教师在对核心知识点的选择各有不同。
1.2学生基础薄弱
《Android应用程序设计》课程要求学生掌握Java知识、数据库应用和计算机网络等方面的基础知识,对学生的实际动手能力要求较高,因此很多学生学习该课程存在一定的难度。
1.3实践教学环节薄弱
受传统教学模式的影响,《Android应用程序设计》的课程讲授仍采用理论授课为主、上机实验为辅的教学模式,缺乏与实际应用结合;部分教师虽然在课堂教学中采用了案例教学,但这些案例往往是对特定知识点的练习,与实际项目开发相差很大,学生毕业后遇到项目开发时不能正确科学分析具体问题;课后作业虽然在一定程度上锻炼学生的编程能力,但这些题目往往针对某个特定的知识点,导致很多学生作业完成得很好,但实践能力得不到提升[3-4]。
1.4考核方式不科学
目前大多数高校采用类似表1所示的课程考核标准;其中期末考试占70%,其他占30%。这种考核方式主要考核理论学习,与《Android应用程序设计》强调实际动手能力的教学目标不一致,往往导致学生的笔头能力强而实践能力薄弱,因此,这种考核方式不能科学地反映学生的实践能力、团队合作和交流沟通等综合素质。针对上述问题,结合黄河科技学院信息工程学院应用型人才培养的目标,确定《Android应用程序设计》课程的目标是培养学生对移动互联网产品的设计、开发、测试、维护等能力,因此通过在教学过程中引入案例教学法达到提高学生实际操作能力的目的。
2案例教学在《Android应用程序设计》中的应用
20世纪初,哈佛大学创造了“案例教学法”。案例教学法是指教师以学生为中心,围绕教学目标和教学任务,对实际应用的真实的情景加以典型化处理,使学生进入特定情境之中,然后通过学生对事件进行积极主动的探究活动,来提高学生分析问题和解决问题能力的一种教学模式[3-5]。
2.1案例的设计
教师在选择典型案例时,应考虑以下4个因素:①案例的选择应该覆盖若干个核心知识点;②案例的选择应该贴近实际生活且生动有趣;②确定案例的规模要适当;④确定案例的难度要适中;表2显示了《Android应用程序设计》核心知识点与典型案例的对应关系。教师对学生采用案例教学,能够充分调动学生学习的主动性和创造性。例如针对当前很多大学生都非常喜欢在手机应用商店下载自己喜好的APP,教师可以以这个兴趣为话题,引导学生开发简易音乐播放器为切入点,教会学生了解软件开发的流程以及在开发过程中应当注意过程控制。
2.2案例的实施
Android应用程序的开发环境需要在PC机搭建,搭建步骤:第一步,安装Java的运行环境;第二步安装Eclipse集成开发环境;第三步安装SDK套件,配置SDK的安装路径;第四步创建Android模拟器(AndroidVirtualMachine),可以模拟仿真不同型号的Android智能手机。
2.3案例的讨论
开展案例教学培养学生具有独立分析问题能力、项目管理能力、团队协作和沟通协调能力等职业素质,丰富学生的实际移动互联APP开发经验[7]。教师在案例教学过程中应注意以下几点:①要求学生掌握Android应用程序开发过程和方法;②采用启发式教学,恰当地引进教学案例;③学期开始就安排学生自由组队,每4~6人组成一个项目团队,以小组为单位完成一个Android应用程序的开发。教师在案例教学过程中穿插一些相关知识点,通过开发科学计算器,满足学生的成就感,提高学生的学习热情,使学生对Android课程产生浓厚的兴趣。2.4案例的考核结合《Android应用程序设计》的课程特点,该课程主要考核学生基本技能和解决实际问题的能力,因此课程考核采用如表3所示考核标准。
(2)基于TCP套接字编程模型
面向连接的网络通信的建立有多个步骤,要使用多个函数。为了便于理解,可以将其比喻为“打电话”这个过程。要建立基于TCP的C-S(客户-服务器)通信,首先双方进程必须各自创建一个端点,也就是调用socket函数创建套接字,正如打电话之前,双方必须都拥有一台电话机一样。Socket是面向模型设计的,针对C-S通信双方提供不同的socket系统调用。客户随机申请一个socket号,这类似想打电话的人可以在任何一台入网的电话上呼叫。服务器拥有全局公认的socket,调用bind函数将套接字地址和所创建的套接字句柄联系起来,任何客户都可以向它发出连接请求和信息请求,这就类似于被呼叫方的电话号码告知了呼叫方。客户端调用connect函数发出连接请求,就好比拨打对方的电话。而服务端有可能在完成当前请求之前又发生多个服务请求,为了很好的处理这个问题,服务器调用listen函数将所有的服务请求放在一个请求队列中排队,并尽快处理这些请求[2],这就如被呼叫方在开启呼叫等待的功能,不错过任何呼叫请求。服务器端执行accept函数等待来自某一客户端的实际连接请求,实现与客户进程连接,这就如被呼叫方拿起电话,双方可以正式通话。最后,客户端与服务端完成数据传输后调用close函数关闭套接字,撤销连接。这就好比打电话双方通话结束后,挂掉电话。
(3)基于UDP的通信机制
用“邮局系统通信”来类比这一种通信机制是非常恰当的。基于UDP通信是面向非连接的,无法保证数据以正确的顺序到达。这就类似我们先后寄出两封信给对方,不能确保第一封信一定会比第二封信先到达对方手上。而在通信过程中,服务端和客户端双方首先都需要绑定IP地址和端口号,这就好比寄信之前,对方的通信地址我们是要已知的。而客户端发送信息以及服务端回应的时候,调用sendto函数来实现,需要指明对方的地址。这如同在寄信的时候,需在信封上要注明对方的地址信息。
(4)协议端口
在讲解“协议端口”时,学生总是不能理解为什么在网络通信的时候要指明端口号,为了解决这个问题,同样采取比喻教学法。大多数操作系统是支持多进程的,目的主机到底把收到的数据包送给哪个进程呢?就好比我们去银行办理业务,银行的业务有多种,有多个服务窗口。我们要成功地办理业务,必须知道对应的窗口号。同理,当你的主机开启多个服务时,如FTP、WWW、E-Mail多个服务,当接收到传送过来的数据包时,主机要准确的把数据包传送给相应的进程,这就需要数据传输的双方进程开启端口,这样数据包将会有标识有源端口,确保接收方顺利地将数据包传送至这个端口。
(5)带外数据
通常数据是按顺序传输的,然而套接字API概念性的提供了一些使用程序,从而可以使得一串数据无阻的先于普通的数据到达接收端。这就是所谓的发送带外数据。这就好比大家排队在银行依次办理业务,有个强盗拿着枪走入银行,越过整个队伍走到柜员面前。这个就可看作为带外数据。这个强盗能越过整个队伍,是因为枪标识他的特殊性,给了他凌驾于众人的权力。
1.1《VB程序设计》课程中项目的设计
1.1.1章节项目
在整个教学过程当中,采用了“大项目、小案例、任务驱动不断”的教学模式,设计并选取与生活相联系的合理的能够调动学生学习积极性的项目。针对课程教学的最终目的,设计了一个比较完整的图书馆管理系统综合项目,但是这门课程知识点较多,要想完成这个综合项目,学生首先必须熟悉VB开发环境、掌握VB程序设计的基本概念和基础知识、各章节的知识点内容。为了配合整个课程最后综合项目的完成,在具体的教学中按照教学内容由易到难,针对教学中的重点和难点安排了13个章节项目,帮助学生更好地学习教材各章节中的知识点。项目一:由现实生活中的汉诺塔游戏、交换两个杯子中饮料的问题,引入一个利用VB程序解决两幅图片对换位置的具体案例,使学生熟悉VB集成开发环境以及各种窗口的使用、掌握常用控件对象的建立以及布局、利用VB开发简单应用程序的步骤、并初步引入程序设计思想,引导学生思考两数互换的问题,使学生通过观察、思考、总结得出两数互换的问题和两幅图片互换位置是一类问题。项目二:编写一程序,在屏幕上显示“欢迎来到VB世界!”,并输入自己的名字。使学生熟悉VB编程四部曲———界面设计、相关对象的属性设置、相关对象的代码编写、调试运行,尤其注意程序的调试过程。项目三:设计一个华氏温度与摄氏温度之间转换的程序。通过这个项目熟悉VB的数据类型及其运算,掌握VB的常用标准函数、变量以及常量的使用等语法知识点。项目四:利用输入函数输入一元二次方程的系数a、b、c,编写程序计算一元二次方程的两个实根或虚根,用输出语句输出结果。熟悉常用的输入输出控件、掌握Print方法、Inputbox()函数、Msgbox()函数和Msgbox过程的使用方法。项目五:设计一个账号和密码的输入检验程序。规范整理英文文章,即对输入的任意大小写的英文文章进行整理,规则是:所有句子开头应为大写字目(句子是以符号“?”、“.”、“!”作为结束符的),其他都是小写字母。使学生熟练掌握程序三大结构中的选择和循环结构。项目六:对一个班级的学生成绩进行输入统计,找出所有成绩中的最高分和最低分、全班成绩的平均分等。使学生掌握数组的使用。项目七:编写一个函数,在已知的字符串中找出最长的单词。假定已知字符串中只含有字符和空格,空格用来分隔不同的单词。通过该项目的学习使学生掌握过程程序的设计、实参、形参等基本概念。项目八:常用控件的使用。设计一个类似Win-dows记事本的应用程序,并完善其各项功能。通过该项目使学生掌握菜单、对话框和多重窗体程序设计。项目九:导入手机号码文件,编写一个手机选号程序,比如说选出手机尾号后四位相同的手机号码等。要求学生通过学习,掌握文件的相关操作,利用文件能够建立简单的应用程序。项目十:建立本班同学信息库,具体包括:学号、姓名、性别、出生日期、寝室电话、手机号码,并用数据控件及绑定控件实现对同学信息的浏览,并实现按姓名查询相关人员的基本信息。通过该项目掌握VB数据库的相关技术。项目十一:设计多文档应用程序,熟悉VB高级界面的设计。项目十二:用MMControl控件设计一个录音机,用API函数设计一个用户化的CD播放器。通过学习,使学生掌握VB多媒体程序设计。
1.1.2阶段项目
为了使整个学期的教学内容具有连贯性,糅合各章节零散的知识点,使教学实践具有可操作性,将整个学期的教学实践分成了三个阶段,每个阶段选用一个打破章节限制的阶段项目,使学生对所学知识内容有一个阶段性较完整的认识。这三个阶段依次是实践的开始阶段、实践的展开阶段、实践的结束阶段,分别对应阶段项目一、阶段项目二和阶段项目三。每个阶段中抓住关键教学环节,按照“大项目、小案例、任务驱动不断”的具体教学流程组织教学。阶段项目一:选用简单的项目,如蝴蝶飞舞、字幕滚动的项目。由于是初次接触计算机编程语言,所以对于非计算机专业的学生来说,这门课程的入门学习很关键,如果按照常规授课方法,依据书本上的章节内容安排依次讲授VB语言发展史、VB语言特点以及编程环境等内容的话,学生很难接受,往往是听得稀里糊涂,不知道学习VB究竟有什么实际作用,从而会产生畏难情绪,最终导致学生对VB知识学习失去兴趣和信心。为消除初学者的畏难情绪,第一阶段主要以激发学生的学习兴趣为主,让学生对VB有一个直观的认识,同时让学生在轻松的气氛中了解VB的编程环境和编程步骤,以及VB面向对象、事件驱动的编程机制。万事开头难,一旦学生对VB产生了兴趣,就有利于后续知识的学习。阶段项目二:难度稍微加大,选用计算器项目。通过本项目,一方面让学生理解控件数组的含义和设计使用方法,以及简单下拉菜单、常用数学函数的使用、过程函数的编写等,进一步加强学生对概念的理解。另一方面让学生注意可视化界面的设计,因为友好美观的人机交互界面,给人赏心悦目感觉的同时是软件的门面。阶段项目三:选用综合项目———学生信息管理系统。通过这个项目让学生真正了解掌握软件的开发过程。虽然这个项目比较难,但是有了前面知识的铺垫,会变得容易接受理解,也是对前面所学知识点的一次巩固和进一步更深入的理解,更是对前面知识的综合应用,让学生由浅入深、由易到难,逐步领会掌握编程的基本思想、基本方法和开发一个软件的完整步骤。三个阶段通过运用“大项目、小案例”,每个阶段让学生带着具体任务去学习,把枯燥的理论知识与生动形象的教学方式相结合,以清晰简明的表达方式深入浅出地向学生传授VB程序设计语言课程的知识,使学生在完成具体任务的实践过程中不断加深对面向对象程序设计思想和知识的理解。
1.2《VB程序设计》课程中的案例选取
有了已经准备好的各模块的项目,并展示给学生,学生有了兴趣后,就会想这些项目是怎么完成的,任务就落到各个模块项目里面具体的案例上了。由于VB程序设计授课内容多,授课时间紧张,按各知识模块划分选取项目后,在每个项目里面,按项目选取具体案例或是进行设计各项目的各功能模块,各功能模块实际就是一个个案例。在教学过程中应循序渐进,可以在原有案例的基础上逐步改变或增加一些条件,将应用进行引申,启发学生思维,让学生对知识点的理解更透彻,掌握各知识点之间的联系,提高学生发现问题、解决问题的能力,并在教学中兼顾学生生活经验与知识趣味性,达到事半功倍的教学效果。
1.3任务设计
围绕每一知识模块的教学内容、教学知识点,设计相关的项目,并在各个项目中采用了系列案例以及完成各功能模块的案例,为了让学生更加熟练、更好地掌握教学内容,在各知识模块的学习中设置学习情景,给学生留有感兴趣的任务,让学生去完成。同时根据各知识模块提出了单元任务,单元任务设置两个层次———基本任务和提高任务。由于学生自身水平有差异,对于基础好、学有余力的学生,要求他们不但要完成基本任务,还要完成提高任务;对于大多数学生,只要求他们完成基本任务。由于时间的限制,可以让学生在课余时间分析任务,在上机实践课以及课余时间去完成任务,最后做任务的总结。有了兴趣和任务的驱使,学生为了完成任务,就会利用各种方式和手段积极主动地去解决问题,他们会通过查阅相关书本、浏览网络资源、同学之间互相协作等方式解决问题,充分调动了学生的主观能动性,在完成任务的过程中学生分析问题、解决问题、实际开发应用程序的能力得到了锻炼,为学生知识的创新奠定良好的基础,同时知识面也更广、更大了。学生不会再觉得教学只是教师一个人的“独角戏”,而是教师和学生的“二人转”。在相互的配合以及友好和谐的师生关系中,教学顺利完成的同时学生个人的知识库也得到了构建。
1.1学生感到程序设计较难理解
计算机程序设计的学习困境主要表现在概念难懂,技术难以掌握,理论与实践的脱节等方面,尤其是在程序语言学习中面向对象程序设计语言时,绝大多数的学生不理解面向对象程序设计思想,不会使用类的思想进行程序设计。往往感到困难重重而方式深入学习,导致学习成绩节节下滑,不利于后来其他计算机专业课的学习。
1.2主动学习能力差
学生长期在传统应试教育环境影响下,形成了被动学习的习惯,缺乏学习的积极性与主动性,另外还有一些学生养成的不良学习习惯,在课堂学习中情绪比较懒散,精神比较散漫,对教师所讲的内容没有兴趣,这样很难提高学生学习成绩,影响教学效果的提高。
1.3实践能力不高
计算机是一门实践性比较强的学科,不仅需要学生掌握基本的理论知识,更重要的是理论应用于实际的能力,因为学习计算机的目的就是解决实际中遇到的问题。但是在实际教学中,很多教师设计的教学目标脱离学生的应用宗旨,教学过程中理论课比较多,实践课程比较少,这样较难培养学生的实际动手操作能力,很难真正提高教学效果。
1.4教学方法单一
过去教师一般采用传统的教学方法,从程序设计的概念出发,围绕理论知识点加以讲解,过多注重理论知识的讲解,而教材中的实力一般与学生实际生活相差较远,学生在学习的过程中感到生涩难懂,只会比葫芦画瓢,不会举一反三,缺乏独立思考问题和解决问题的能力。教师在教学过程中忽略了学生的主体地位,较难提高学生学习兴趣,同时也达不到较好的学习效果。
2项目驱动教学模式特点
2.1项目实践环境突出
项目驱动教学过程中,导师带领学生在学习专业理论知识的同时进行实际应用项目的开发。学生与老师在学习的过程中始终处于一种相互配合、沟通的环境下,强调学生的自主学习、积极沟通、勇于实践。学生在项目驱动下,带着问题进行有效的学习,这样能够培养学生思维扩散能力、动手操作能力与团结合作精神。
2.2强调教师的引导作用
项目驱动教学模式注重把理论知识转化为实际技术,在教学过程中教师仅仅起引导学习的作用,课堂的主体是学生。学生按照项目需求被划分为若干个小组,导师在课堂中主要监督、指导学生行为,在项目学习过程中导师要随时解答学生的疑问,为学生补充技能知识,实时启发学生在项目学习中解决问题的正确思路,开发学生思维创造能力,帮助学生掌握项目技能。
2.3培养学生计算机专业能力
项目驱动模式的实施目的是提高学生软件开发与应用能力,事件性知识一般比较隐蔽,而项目驱动教学能够通过教学过程中各种功能的实施,使一些隐藏在软件开发过程中的核心要素显现出来,通过这种方式的学习,学生将很快的具备软件应用开的基本能力,提高学生实践能力与应用能力。
3项目驱动教学实施过程
3.1项目设计
项目驱动模式教学过程中,首先导师要根据程序设计教学内容,设定教学目标,将教学计划、目标融入到教学项目中,然后将整个教学项目按照学习小组分成若干个独立的小项目,再把这些小项目按组分配给学生,最后导师围绕项目内容设计具体教学内容,项目来源一般源自于教师纵横向教学项目。
3.2实施形式
利用项目驱动模式进行教学的过程中,学生需要进入专门的工作室进行软件程序的学习与开发。在工作室中,主要的学习方式是自学,教师在这种模式下主要起引导作用,课程知识除了很少部分较深的理论课由导师专门讲授以外,其他的课程都是学生围绕项目进行自主学习、合作学习,主要学习方式包括:小组研讨、导师解疑、技术交流、调查研究等形式;课程的具体的实施要根据教学内容以及学生的实际认知情况进行合理的分配。这种教学模式的目的在于各种信息技术及认知提高计算机教学质量和效率,培养学生自主学习能力、创新能力和勇于探索精神以及实践能力。其中自主学习是由学生自己积极主动的去学习,在学习过程中导师的角色是解答疑问,并不是直接帮学生解决问题,导师可以向学生传授解决问题的方法和思路,引导学生向正确的解答思路上靠,提供给学生解决问题的资料,引导学生围绕疑问积极探索。如果学生在学习过程中遇到难以解决的问题,导师首先要积极引导学生找到解决问题的方法,同时教会学生利用移动通信、互联网、QQ以及电子邮件等先进技术手段进行搜索或者在线讨论与交流,尤其要教会学生怎样使用互联网查询资料,丰富程序设计知识,提高深深学习能力。在个人自主学习的基础上进行小组讨论与交流,在交流中不仅扩展知识与视野,而且能培养团队协作精神,增进同学之间的感情。导师还要积极引导学生发现规律,找到自己的不足,积极改正,不断超越自我。
3.3项目驱动教学模式中的成绩评定
成绩评定是项目驱动模式教学的重要组成部分,成绩评定一般具有激励、引导和反馈的作用,能够全面反映学生的近况。成绩评定比较重视学生在学习过程中能否解决实际问题,旨在培养学生动手操作的能力和创新能力以及计算机素养,树立科学精神和坚韧不拔的性格以及积极向上的人生观。如果学生成绩提高,教师要给予鼓励和表扬,激励学生再接再厉。成绩评定的方式采用项目答辩的形式进行,每个小组派出一个代表作主辩手,其他学生补充,导师可以随时提问,最后结合项目答辩情况给出学生最终考核成绩。
中图分类号:G64 文献标识码:B
文章编号:1672-5913(2007)12-0018-03
C++不仅是一门程序设计课程,而且是这些专业后续专业课程(如数据结构、操作系统、微机原理、单片机及应用等)的重要基础,更是这些专业开展计算机研究和应用的重要表达工具和开发工具。因此,Visual C++程序设计课程的教学改革与建设具有十分重要的意义。本文下面从教学方法改革、教学内容研究、实践环节建设、特色教材编写等方面介绍我校VC++课程建设的一些做法。
1积极推进教学方法改革,形成颇具特色的负反馈教学法
负反馈教学法的原理是从教学过程中反馈(作业、实验、答疑、单元测验等)的问题入手,通过及时讲评,解决学生学习中存在的问题,以达到预期的教学目标。由于反馈的是教学过程中存在的问题故称此方法为负反馈教学法。负反馈教学法包括以下方面。
1.1用“范例”组织课堂教学,贯彻“发现式”教学思想
范例教学法由教育学家瓦根舍因提出,教师通过范例辅助学生理解、掌握知识和原理,其目的是让学生能够独立地获得判断能力、推理能力、认识能力和继续学习的能力。以往,程序设计课程教学通常以一门具体语言为主线,围绕语法知识展开。而实质上,设计程序是为了解决实际问题,是一种缜密思维方式、创新素质和综合能力的培养。要使学生对程序设计有兴趣,必须亲自感受并体验程序设计的无限魅力。为此,我们改用范例组织课堂教学。在多媒体教学设备和真实编程环境的支持下,课堂教学以程序(范例)为主线。所选范例程序具有典型性、综合性和可扩展性,涉及基本语法、基本算法和基本调试技术。范例程序的讲解首先符合“现象发现问题分析问题解决问题验证”的探索过程,使学生掌握基本语法、算法及应用。其次,通过对范例程序的启发式扩展,揭示程序由小到大、由简单到复杂直到实用的过程,激发学生的探索热情和兴趣,使学生掌握知识间的联系和编程的工程化思想,获得实际编程能力。
1.2采集教学负反馈信息,做好分类、分析和讲评
按负反馈教学法要求,任课教师做好作业和实验报告的抽样批改、单元测验的全样批改,重视实验指导和答疑,从中了解学生的学习情况。在获取足够的负反馈信息后,任课教师及时做好问题的分类、分析和讲评,及时发现和解决学生学习中存在的问题,确保学生对所学知识的真正掌握。
1.3根据大班教学特点,推进强同步教学策略
大班教学成功的关键在于保持师生教与学的同步状态。负反馈教学法的师生同步措施有授课、作业、实验、讲评和测验等。其中,作业与实验报告由于学生存在一定抄袭现象,同步效果欠佳,为弱同步措施。授课、讲评和测验同步效果较好,为强同步措施。为使大班教学取得较好效果,采用强同步措施是必要的。特别地,我们在每个单元安排一次测验,以实现师生的强同步,及时取得真实的负反馈信息。
1.4编写负反馈教学法配套教辅资料,培养学生自学、探索和自我完善能力
配套教辅资料主要有:①学习指导。注重概念理解、知识巩固,设单元测试,便于学生学习和自测自查;②实验指导。共有17个实验,每个实验包含调试技术介绍、程序调试题、程序设计题和选做题,注重培养学生的编程能力和调试能力,激发学生编程兴趣;③典型问题和综合问题编程。共8个专题,便于学生突破难点,融会贯通,体验综合编程的乐趣,培养分析和解决问题的能力;④二级考试模拟试卷;⑤VC++ 6.0程序调试技术,包括使用VC++ 6.0 IDE编写和调试程序的方法和技巧。
2强化实践教学,注重培养学生的实际编程能力
VC++课程是一门难点多、综合性较强的课程,实验是该课程至关重要的环节,只有通过实验才能检验自己是否真正掌握和运用该语言。通过上机调试程序,会发现很多想不到的问题,通过解决这些问题,可以加深对语言和算法的理解,提高程序调试和实际编程能力。为此,本课程设有课内实验(32学时)和课程设计(两周)实践教学环节。
2.1课内实验注重培养学生基本编程和调试能力
基本编程和调试能力是深入学习本课程并取得实际编程能力的前提。课程实验是至关重要的教学环节,与课堂教学同步进行。我们根据教学内容编写了一套以调试技术、基本语法、基本算法、综合编程为核心内容的同步实验指导,共拟定了17个实验,每个实验通常包括调试题、编程题和选做题,可供不同层次的学生选用。
2.2课程设计注重培养学生综合编程和实际应用能力
课程设计安排在课程结束以后,以综合性程序设计训练为主,选题具有典型性、综合性和示范性,突出难点与实用价值,使学生体会到难点不难,难点在实际编程中非常有用。通过课程设计,学生进一步巩固和掌握基本语法、基本算法和基本调试技术,养成良好程序设计风格(模块化、结构化)和严谨的科学作风,初步形成软件工程化思想,具有一定的程序组织能力。
课程设计的内容涉及基本算法和数据结构。基本算法包括穷举、迭代、递推、递归、排序和查找等。基本数据结构包括数组、结构、指针、动态内存分配、单向链表、对象、文件等。课程设计的实施,对非计算机专业采用小综合方案,计算机专业采用大综合方案。所谓小综合是指程序规模在几十到几百行的小题目,大综合则是程序的规模在数百行以上有一定实用价值的题目。
2.3实践教学认真实施,严格考核,确保效果
在课内实验和课程设计的实施过程中,配备富有经验的指导教师,现场实时进行辅导和答疑,指导学生解决编程中出现的问题。同时对学生严格要求,严格考核,确保实践教学质量。加强实践环节的考核是提高实践教学质量的重要保证。预习和考勤占总成绩的30%,上机检查并回答提问占总成绩的40%,课程实验报告和课程设计报告占总成绩的30%。
3积极开展教学内容研究,不断优化和更新教学内容
根据程序设计课程本身发展快、更新快、综合性强、存在问题多的特点,针对同类教材中存在的一些问题和不足,积极开展教学内容的研究,先后发表 “C++运算符重载教学和编程中易被忽视的问题”、“C++中二维数组与指针关系的深入剖析”、“C++语言引用型变量的实现机制浅析”、“C/C++语言可变参数函数的参数传递机制剖析” 等论文,并及时把这些教研成果和学科最新进展引入教学。
3.1课程内容分为三个知识模块
(1) 结构化程序设计基础:包括C++概述、数据类型、运算符、表达式、简单的输入输出、算法与流程控制语句等。
(2) 模块化程序设计:包括函数、编译预处理、程序的多文件组织、数组、结构体、共用体、枚举类型、指针和引用。
(3) 面向对象程序设计:包括类、对象、构造函数、析构函数、继承、派生、友元、虚函数、静态成员、运算符重载、I/O类库、命名空间、模板和异常处理等。
3.2课程的重点、难点及解决办法
(1) 算法表达、结构化语句:结构化编程的基础。注重讲授算法的结构化表示法,结构化语句,常用基本算法,断点+单步调试技术。
(2) 函数:模块化编程基础。注重讲授程序的模块化组织思想和方法,自顶向下逐步求精的程序设计思想,参数传递,变量作用域,程序的多文件组织。
(3) 数组、结构体、指针:数据的结构化和模块化组织基础。指针是重点和难点,应正确区分指针与地址,强调指针类型的作用,讲清各类指针的含义及作用。特别注重讲授指针在动态生成基本数据结构,解决实际问题方面的综合实例。
(4)类、对象、继承、运算符重载、虚函数:面向对象程序设计基础。运算符重载较易理解,但有些方面易忽视,应提请学生注意。虚函数是重点和难点,应注重讲授虚函数的必要性、重要性、实现机制和综合实例。
4改革考评方式,正确发挥考试的导向作用
根据VC++课程的特点,正确发挥考试的导向作用。改革考评方式,实行考教分离,并使其与江苏省大学生计算机等级(二级)考试方式接轨,采取笔试(50%)+机试(50%)的方式,理论与实践并重。
试卷的试题源自题库和现任教师的征卷,试卷由选题算法和软件系统产生,难度与二级考试相当,提高了考评的科学性。
5总结提炼教学经验和成果,积极开展特色教材建设
教材建设是课程建设的重要方面。几年来,课程组对国内外流行C++教材进行研究、分析和试用,总结、积累和提炼自己的教学经验和成果,从校内讲义开始,逐步开展具有自己特色的教材建设工作。2005年2月,自编教材《Visual C++程序设计习题、实验与编程实践》由华东理工大学出版社出版,同年12月又第二次印刷,得到了社会读者的认可。2005年10月,本课程获江苏省高等学校精品教材立项建设,课程组编著的体现“负反馈”教学特色的教材《C++程序设计实践教程》一书目前已与清华大学出版社签订出版合同,书稿已经交付,将于2007年上半年出版。
6运用现代化教学手段,加强网络教学资源建设
经过多年的教学、研究、建设和总结,本课程已积累了丰富的网上教学资源,经常更新,在教学中发挥重要作用。网上教学资源包括:课程教学大纲、课程设计大纲、教学日历、课程设计任务书、实验指导书、教学课件、习题集、典型问题及参考程序、相关教学论文、英文版课外辅导材料、模拟试卷等。课程组成员开发的“基于WEB的《C语言程序设计》教学系统”2006年11月获得第二届全国高等学校计算机课件评比二等奖。本课程网上教学资源的网址为:。
参考文献:
[1] 刘维富,陈建平,王春明. 浅谈“C++程序设计”课程的建设与实践[C]. 第二届全国计算机课程报告论坛,2006,11.
[2] 刘维富,丁卫平,沈学华. Visual C++程序设计习题、实验与编程实践[M]. 上海:华东理工大学出版社,2005,2.
[3] 顾晖,刘维富,管致锦. 负反馈教学法的原理与实践[J]. 电气电子教学学报,2004,(4): 102-104.
[4] 邱建林,刘维富,顾晖. C语言程序设计教学的研究与实践[J]. 电气电子教学学报, 2003,(4):96-98.
[5] 刘维富. C++运算符重载教学和编程中易被忽视的问题[J]. 南通工学院学报(自然科学版),2003,(3):56-59.
[6] 刘维富. C++语言引用型变量的实现机制浅析[J]. 南通工学院学报(自然科学版),2002,(1):64-66.
[7] 顾晖. C/C++语言可变参数函数的参数传递机制剖析[J]. 电脑与信息技术, 2004,(3): 37-38.
[8] 丁卫平,刘维富,沈天晴. C++中二维数组与指针关系的深入剖析[J]. 南通工学院学报(自然科学版),2004,(3):85-87.
投稿日期:2007-2-24
作者简介:陈建平(1960-),男,江苏南通人,硕士,教授,研究方向为快速算法设计与实现等。
刘维富(1961-),男,江苏南通人,硕士,副教授。研究方向为计算机语言与程序设计等。
通信地址:江苏省南通市啬园路9号南通大学计算机科学与技术学院陈建平邮编226019
E-mail:
1C++教材建设现状
C++语言是兼容C语言的面向对象程序设计语言,随着软件工程技术和面向对象程序设计技术的发展,迅速成为主流的面向过程和面向对象的程序设计语言,是编写系统软件和应用软件的通用语言,也是各类高校,尤其是理工类和综合性高校开设高级语言程序设计课程的首选教学语言之一,同时也是非计算机专业计算机等级考试和计算机专业程序员水平与资格考试指定语种之一,其影响广泛而深远。C++程序设计课程(以下简称C++课程)也因此成为国内外高校普遍开设的计算机基础课程。它不仅是一门程序设计课程,而且是许多专业课程(如数据结构、操作系统、微机原理,单片机及应用)的重要基础,更是这些专业开展计算机研究、应用和综合运用本专业知识的重要表达工具和开发工具。它的基础性、普遍性和重要性逐步为人认识和重视。国外高校比较重视该课程建设,从原版影印教材可见一斑。国内高校讲授该课程较晚,课程建设也较晚,现有教材状况可分下列几类。
1) 英文影印版。主要用于高校图书馆馆藏、教学参考和高校双语教学试点,如高等教育出版社影印出版的《The C++ Programming Language》(BjarneStroustrup著)和《Programming in C++》(Nell Dale,Chip Weems和Mark Headington著)。由于国外高校课程体系与国内高校有较大差别,且国外高校的教学课程通常只指定教学参考书而不指定教材,因此,若把这些教学参考书当教材使用,必然使主讲教师所讲内容与所选教材吻合度较差,很难发挥教材应有的作用。
2) 英文编著版。这类教材是指由高校主讲教师依据本校双语教学试点要求和/或合作办学要求自编,目前尚处于探索阶段。
3) 编译版。这类教材是指引进国外经典C++教材,翻译成中文,在国内销售的教材,如Harvey M.Deitel, Paul James Deitel编著的《C++ How to Program》分别由清华大学出版社出版(名为《C++程序设计教程》,施平安译)及电子工业出版社出版(名为《C++大学教程》,邱仲潘等译)。由于翻译质量、阅读习惯、价格、教材配套、课程体系等方面的问题,通常用作教学参考和图书馆馆藏,很少用作教材。
4) 中文编著版。这类教材量大面广,通常由高校主讲教师(如南京理工大学张岳新,浙江工业大学钱能,清华大学郑莉,西安交通大学罗建军,华南理工大学周霭如,北京大学吕凤翥等)结合本校实际编写。编写思路多,如有的以算法为主、有的以语法为主、有的先讲面向过程程序设计后讲面向对象程序设计、有的自始至终贯彻面向对象程序设计思想,还有的参照国外教材的编排体系等。但上述教材或多或少存在一些不足,如起点高、跨度大、系统性不强、急于阐述C++的新进展等,对实验、学习、课程设计指导等重视不够,不一定满足其他学校的教学要求。
2C++教材建设思路
C++课程是各类高校普遍开设的计算机核心基础课程,应用广、影响大。与欧美发达国家高校相比,我国高校生平均教学资源占有率严重偏低,尤其是可用的C++课程教学参考资料较少,因此,教材在我国既是知识的载体,又是教学的工具,对保障教学质量显得格外重要。与传统教材相比,C++课程教材的内容广,理论性、实践性和综合性强,更新速度快,成熟意味着过时,教材作者新人辈出,教材种类多、更新快、问题也多。因此,C++课程教材改革与建设有其自身的显著特点。
C++课程理论教学和实验教学并重,学以致用,以通过编程解决实际问题为目标;课程内容涉及基本语法、基本算法、基本数据结构、编程思想、编程技巧和程序调试技术等,综合性、实践性强,理论与实践结合紧密;实验编程环境极其严格,结果要求百分之百正确,对培养大学生编程能力、创新能力和严谨的科学作风有非常重要的作用。
好的C++程序设计教材首先应以长期持续的课程建设为依托,以坚实的教学研究和教学实践为基础,体现课程建设成果;其次应结合自身实际,分析研究C++课程的目标、特点、内容、结构及与其他课程的关系,在教材的编写思路、框架结构和教学内容的组织、取舍、阐述、更新、难点处理等诸多方面有所改进和创新,注重学生实际编程能力培养和创新能力培养;再次应符合读者的认识规律和编程能力的形成规律,既便于自学和教学,又利于教学效果的巩固和教学质量的提高;最后还应有必要的优质的配套教学资源。
3C++课程建设历程
我校于1998年在计算机专业首先开设C++课程,2000年扩展到电子信息工程、电子科学与技术、通信工程、电气工程、自动化、信息计算、信息系统与信息管理等非计算机专业。目前课程规模年均近2000人。
基于C++课程的基础性和重要性,2000年在校教务部门和院领导的指导和支持下,专门成立了以具有丰富教学经验和实际编程经验的教师为主体的C++教学研究小组(以下简称教研组),并设立课程负责人,使课程的教学、研究、建设和管理步入持续不断的良性发展轨道。
十多年来,教研组结合我校实际,对C++课程的特点、内容、结构、方法及与其他课程的关系等方面做了大量研究工作,以提高教学质量为首要目标,改进教学方法,形成了一整套针对该课程实际的教学理论和教学方法,即C++课程负反馈教学法,并编写了大量具有负反馈教学法特色的教学材料,采取了一系列的教改措施,使该课程的教学质量得到明显的提高,为本课程的精品化建设奠定了坚实基础。
3.1积极稳妥推进教学方法改革,形成颇具特色的负反馈教学法[1-3]
课题组根据多年教学研究与实践,在教育学和心理学的基础上,用现代过程控制理论分析传统教学过程,于2002年建立负反馈教学模型(如图1所示)。由于模型引入了负反馈环节,从理论上可以确保教学质量的稳定。在负反馈教学模型基础上,吸收单元教学法、布鲁纳的“发现教学法”和瓦根舍因的“范例教学法”的合理成分,形成负反馈教学法,在我校C++课程教学实践中,取得了较好的教学效果。
负反馈教学法的原理是从教学过程中反馈(作业、实验、答疑、单元测验等)的问题入手,通过及时讲评,解决学生学习中存在的各种问题,以达到预期的教学目标。由于反馈的是教学过程中存在的问题,故称此方法为负反馈教学法。负反馈教学法包括以下4个主要方面。
1) 教学内容单元化组织。
按程序设计方法演进发展的自然顺序及C++实际编程能力形成的3个关键期,即结构化程序设计模块程序设计面向对象程序设计,将C++教学内容组织为3个单元,有利于教学的组织、实施、考核,有利于教学效果的巩固和教学质量的提高。
2) 用“范例”组织课堂教学,贯彻“发现式”教学思想,注重学生创新素质和优秀人才的培养。
范例教学法由教育学家瓦根舍因(M.Wagenshein)提出,教师通过范例辅助学生理解、掌握知识和原理,其目的是让学生能够独立地获得判断能力、推理能力、认识能力和继续学习的能力。以往,程序设计课程教学通常以一门具体语言为主线,围绕语法知识展开。而实质上,设计程序是为了解决实际问题,是一种缜密思维方式、创新素质和综合能力的培养,要使学生对程序设计有兴趣,必须使他们亲自感受并体验程序设计的无限魅力。为此,我们改用范例组织本课程的课堂教学。在多媒体教学设备和真实编程环境的支持下,课堂教学以程序(范例)为主线。所选范例程序具有典型性、综合性和可扩展性,涉及基本语法、基本算法和基本调试技术。范例程序的讲解首先符合“现象发现问题分析问题解决问题验证”的探索过程,使学生掌握基本语法、算法及应用;其次,通过对范例程序的启发式扩展,揭示程序由小到大、由简单到复杂直到实用的过程,激发学生的探索热情和兴趣,使学生掌握知识间的联系和编程的工程化思想,获得实际编程能力。
3) 采集教学负反馈信息,做好分类、分析和讲评,注重学生整体水平。
按负反馈教学法要求,任课教师做好作业和实验报告抽样批改、单元测验的全样批改,重视实验指导和答疑。在获取足够的负反馈信息后,任课教师及时做好问题的分类、分析和讲评,以保证学生整体水平的提高。
4) 根据大班教学特点,推进强同步教学策略,确保整体效果。
大班教学成功的关键在于保持教学的师生同步状态。负反馈教学法的师生同步措施有:授课、作业、实验、讲评和测验。其中,作业与实验报告同步效果欠佳,其原因是大班教学学生抄袭现象较为普遍,因此,作业与实验报告为弱同步措施;授课、讲评与测验同步效果较好,为强同步措施。为使大班教学取得较好的效果,采用强同步措施是必要的。我们在每个单元结束时安排一次测验,以实现师生的强同步,及时取得真实的负反馈信息。
由于采用负反馈教学法,所以课堂教学可以突出重点和难点,而将易于自学的内容只做要求不做讲解,这样,一方面解决了课时少与内容多、难点多的矛盾,另一方面也提高了学生的自学能力和自我解决问题的能力。
3.2强化实践教学,注重培养学生的实际编程能力和创新能力[1-3]
C++课程难点多、综合性,主要涉及基本语法、基本算法、基本操作及综合应用等方面内容。
实验是本课程至关重要的环节,学生只有通过实验才能检验自己是否真正掌握和运用该语言:通过上机调试程序,会发现很多想不到的问题;通过解决这些问题,可以加深对语言和算法的理解、提高程序调试能力、实际编程能力和创新能力。为此,本课程设有课内实验和课程设计实践教学环节。
1) 课内实验注重培养学生基本调试能力和基本编程能力。
基本调试能力是学生通过深入学习取得实际编程能力的前提,常被人忽视。因此,我们根据教学内容编写了一套以调试技术、基本语法、基本算法、综合编程为核心内容的同步实验指导,共拟定了17个实验,每个实验通常包括调试题、编程题和选做题,可供不同层次的学生选用。
2) 课程设计注重培养学生综合编程能力。
C++课程设计以综合性程序设计训练为主,选题具有典型性、综合性和示范性,突出难点及其实用价值,使学生体会到难点不难,而且感到难点在实际编程中非常有用。学生通过训练进一步巩固和掌握基本语法、基本算法和基本调试技术,养成良好程序设计风格(模块化、结构化)和严谨的科学作风,初步形成软件工程化思想,并具有一定的程序组织能力。
C++课程设计的内容包括基本算法和数据结构的综合运用。其中,基本算法涉及穷举、迭代、递推、递归、排序和查找等,数据结构涉及数组、结构、指针、动态内存分配、单向链表、类、文件等。
3) 强化实践教学辅导和考核,确保实践教学质量。
实践环节实行教师辅导、答疑和考核。课内实验实践环节主要涉及预习情况检查、辅导情况记录、实验报告批阅和典型问题讲评,课程设计实践环节主要涉及预习情况检查、辅导情况记录、联机考核和课程设计报告批阅。对于课程设计考核,每位学生的联机考核时间约5~10分钟,考核内容包括讲解和演示自编程序,回答老师提问(3~5个)。通过采取上述措施,实践教学质量得到充分保障。
4) 及时总结和推广实践教学经验。
根据教师多年的实际编程经验和教学经验,编印典型问题和综合问题编程专题,供学生课外阅读参考,便于学生突破难点,融会贯通,体验综合编程的乐趣,培养他们分析和解决问题的能力。
3.3积极开展教学内容研究,及时更新教学内容
根据程序设计课程本身发展快、更新快、综合性强、存在问题多的特点,针对同类教材中普遍存在的问题和不足,积极开展教学内容的研究,确保教学内容的正确性和系统性,确保将重点难点内容讲清讲透,先后发表教学内容研究论文20多篇。代表性论文有:C++运算符重载教学和编程中易被忽视的问题、C++语言引用型变量的实现机制浅析、C/C++语言可变参数函数的参数传递机制剖析、C/C++中数组与指针的关系、C++中二维数组与指针关系的深入剖析、C++迭代器机制剖析、C++标准模板库与代码重用。
4C++教材建设成果
教研组根据对国内外流行C++教材的研究分析和试用,结合我校非计算机专业计算机基础教学改革、计算机专业教学改革和课程建设的实际,积极稳妥地开展体现负反馈教学特色的系列教材的编写和出版工作。
2005年2月,教研组自编教材《Visual C++程序设计习题、实验与编程实践》由华东理工大学出版社出版,同年12月第二次印刷,累计印刷3次,得到了社会读者的认同。2005年10月,我校C++课程获江苏省高等学校精品教材立项建设,在清华大学出版社的支持下,于2007年2月主编出版教材《C++程序设计实践教程》(含教学课件),累计印刷3次;在高等教育出版社的支持下,于2007年11月主编出版教材《C++程序设计教程》(含教学课件)和《C++程序设计实验与编程实践》。
教材的配套建设充分发挥了教材的作用,满足了我校教学需要。其中,《C++程序设计教程》和《C++程序设计实验与编程实践》主要用于我校计算机专业教学,《C++程序设计实践教程》和《Visual C++程序设计习题、实验与编程实践》主要用于我校非计算机专业教学。
下面简要介绍教研组近年主编出版的C++课程系列教材的特点。
4.1 《C++程序设计教程》及其配套教材[4-5]
1) 内容组织结构合理,层次分明。教材按程序设计方法演进发展的自然顺序及C++实际编程能力形成的三个关键期,将C++教学内容分为三大单元,即结构化程序设计(1~4章)模块化程序设计(5~9章)面向对象程序设计(10~14章)。内容组织由浅入深,循序渐进,符合读者的认识规律和编程能力的形成规律,便于教学的组织、实施和考核,利于教学效果的巩固和教学质量的提高。
2) 紧跟标准,内容求新。本书介绍的是标准C++,符合ANSI/ISO C++标准(包括1998第一版和2003第二版),引导读者按C++标准编写程序。本书对以往教材中带有一定普遍性的问题如“指针就是地址,地址就是指针”等进行了澄清和纠正。
3) 不避难点,力求突破。许多有一定基础的读者学习程序设计半途而废的重要原因之一是未能突破实际编程中的难点问题,这与不少主流教材以各种理由极力回避难点有密切的关系。本书针对教学和实际编程中的难点(如递归、指针、动态内存分配、虚函数等),精挑多选范例程序,想方设法讲清讲透,力求使读者突破难点,学以致用,不致半途而废。
4) 范例程序,精心设计。程序是语法、算法、思想和方法有机结合的载体,是计算机解决实际问题的钥匙,学习程序设计离不开程序。书中大量的范例程序是经过作者精心挑选和精心设计的,表达准确、简练,书写规范,示范性强。
配套教材《C++程序设计实验与编程实践》分三部分:
1) 实验指导。实验与课堂教学同步进行,是本课程至关重要的环节。共20个实验,每个实验通常包括调试题、编程题和选做题,供不同层次读者选用。
2) 典型问题和综合问题编程。列举实际编程中提炼的典型和综合问题的编程范例,突出难点及其实用价值,使读者体会到难点不难,难点在实际编程中非常有用。所列范例程序涉及程序的结构化书写格式、程序由小到大、由简单到复杂直到实用的过程。
3)Visual C++ 6.0程序调试技术。这部分内容帮助读者熟练掌握主流的C++开发环境Visual C++ 6.0的程序调试技术,使他们具备主动上机调试程序的能力。
4.3 《C++程序设计实践教程》[6]
1) 内容组织原则与4.2一致。
2) 内容取舍上,根据阅读对象为高校理工类专业的一年级新生的实际,注重基础和系统,兼顾提高。内容包括:结构化程序设计基础(C++概述、数据类型、运算符、表达式、简单的输入输出、算法及其表示、流程控制)、模块化程序设计(函数、编译预处理、数组、结构体、共用体、枚举类型、指针和引用)和面向对象程序设计(类、对象、继承、派生、友元、虚函数、运算符重载、I/O流类库、模板、异常处理、命名空间等)。
3) 编写思路上,通过以基本语法和基本算法为主线的典型、综合范例程序,适时阐述有关程序设计的思想、方法和技巧,将C++语法、基本算法和程序设计方法有机结合起来,理论联系实际,注重学生实际编程能力培养。
4) 内容阐述上,注重概念准确、由浅入深、循序渐进、图文并茂、简明扼要、举一反三、用例精练,便于教学和自学。范例程序表达简洁,书写规范,示范性强。
5) 难点处理上,不回避教学和实际编程中的难点,并适时提出扩展性问题,激发学生的探索热情和兴趣,利于创新人才培养。
6) 内容的更新上,及时反映C++程序设计课程的教学研究成果,对以往教材中带有一定普遍性的问题如“引用型变量不占内存”等进行了澄清和纠正。
7) 配套的教学资源上,丰富、实用,包括实验与编程指导、学习指导、课程设计指导、电子教案、试卷库和课程网站等。
8) 教学的试点上,校内试用多年,几经调整,起点低,教学效果好。
4.4 《Visual C++程序设计习题、实验与编程实践》[7]
1) 学习指导。根据非计算机专业计算机等级考试要求,按章编排了相应具有较强启发性的典型例题和习题。为取得较好学习效果,按C++实际编程能力形成的三个关键期,共设置了三个单元测验。单元测验的内容突出重点和难点以及综合运用,目的是及时发现并解决教学中存在的问题。
2) 实验指导。共有17个实验,每个实验包含调试技术介绍、程序调试题、程序设计题和选做题,注重培养学生的编程能力和调试能力,强化其实际编程能力训练,激发其编程兴趣。
3) 典型问题和综合问题编程。共8个专题,便于学生突破难点,融会贯通,体验综合编程的乐趣,培养他们分析和解决问题的能力。
4) 二级考试模拟试卷。
5)VC++ 6.0程序调试技术,包括使用VC++ 6.0 IDE编写和调试程序的方法和技巧。
5结语
十多年来,教研组围绕C++课程,潜心教学、研究、建设和积累,形成了颇具特色的负反馈教学法,发表相关教学论文20多篇,出版教材4部,建成1门省级精品课程(《Visual C++程序设计》)、1部省级精品教材(《C++程序设计教程》)和1个校级优秀教学团队,取得中国交通教育研究会2007-2009年度优秀成果一等奖(《C++程序设计实践教程》)1项,获得第十届“挑战杯”全国大学生课外科技作品竞赛全国二等奖等5项省级以上奖励。
精品教材建设是一个长期过程,我们将继续沿着自底向上的建设路径,及时总结C++教材建设的经验,认真做好特色系列教材的编写、重印、修订、再版和配套建设,进一步提升教材建设的层次,不断扩大C++教材在校内、省内和国内的受益面。
参考文献:
[1] 陈建平,刘维富,王春明,等. Visual C++程序设计课程建设研究与实践[J]. 计算机教育,2007(12):18-20.
[2] 刘维富,陈建平,王春明,等. 浅谈“C++程序设计”课程的建设与实践[C]//大学计算机课程报告论坛组委会. 大学计算机课程报告论坛论文集2006. 北京:高等教育出版社,2007:92-97.
[3] 顾晖,刘维富,管致锦,等. 负反馈教学法的原理与实践[J]. 电气电子教学学报,2004(4):102-104.
[4] 陈建平,刘维富,葛建芳. C++程序设计教程[M]. 北京:高等教育出版社,2007:前言.
[5] 刘维富,葛建芳. C++程序设计实验与编程实践[M]. 北京:高等教育出版社,2007:前言
[6] 刘维富,陈建平,葛建芳,等. C++程序设计实践教程[M]. 北京:清华大学出版社,2007:前言.
[7] 刘维富,丁卫平,沈学华,等. Visual C++程序设计习题、实验与编程实践[M]. 上海:华东理工大学出版社,2005:前言.
C++ Programming Course Research and Textbook Construction
LIU Wei-fu, CHEN Jian-ping, WANG Chun-ming, GE Jian-fang, QIU Jian-lin, GU Hui
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2016)19-0111-03
课程是知识的载体,是能力形成的着力点,课程建设的好坏,直接关系到人才培养质量的好坏。
1 课程建设的定义
课程是指教育内容的进程,是为实现教育目标而规定的教学科目及其目的、内容、范围、分量和进程的总和。这是一种广义的理解,狭义的课程是指一门学科。课程建设指的是为了推进教学进程的实现所包含的“师资队伍建设、教学内容和质量建设、教学方法和教学手段建设、教学条件建设和教学管理建设”等与之相适应的各种分量的总和。
课程建设是提高教学质量、深化教学改革的一项综合性的建设,课程建设是确保人才培养质量的最重要的基本建设任务之一,是教学改革的核心。
2 课程建设的内涵、外延及其相关要素的关联
探索和明确课程建设的内涵、外延及其相关要素的关联,是课程建设基础,主要包含以下几个方面的内容:
(1)师资队伍建设。它是课程建设的先导,主要内容包括学历结构、年龄结构、职称结构和学缘结构以及学术水平、教学水平、教育理论和思想素质等,要建设具有一流水平的课程,首先要有一流的学术水平、丰富的教学经验、深厚的教育理论功底、扎实的教学技能、严谨治学的师资队伍。
(2)教学内容和质量建设。它是课程建设的核心和主体,也是衡量课程建设质量的主要标准,包括:教学思想的改革与建设,知识内容建设、教学水平建设、教材建设、教学资源建设以及结合专业特点积极开展教学改革与教学研究等内容的建设。
(3)教学方法和教学手段建设。它是实现课程建设目标的主要途径和基本保证。要紧紧围绕提高教学质量、提高学生素养和能力,结合专业的特点、教学内容积极开展现代化教学手段、教学方法的研究与建设。
(4)教学条件建设。它是课程建设重要保证,包括:课堂教学的基本设施、实验、实训、实习等实践教学条件的开放性、先进性、教学环境和教学氛围等建设。
(5)教学管理建设。它是课程建设的组织保证,包括:科学、规范、系统和配套的教学管理规章制度、教学质量评价体系、教学档案资料和教学激励机制等内容的建设。
3 我国国家层次课程建设的路径(近15年)
我国从2003年起开始精品课程建设,先后经历了“精品课程、精品资源共享课、精品视频公开课,大学MOOC、微课 ”等过程,加上即将推出的“系列微课”,现在统一称之为“精品开放课程”,下面简单的介绍。
3.1 精品课程
精品课程是教育部为推进教育创新,深化教学改革,促进现代信息技术在教学中的应用,共享优质教学资源,在“高等学校教学质量与教学改革工程”中开展的一项工作。这项工作开始于2003年,截止2010年底,教育部组织建设了3909门国家精品课程,主要集中在985和211高校。省级、校级精品课程数量也达2万多门。
精品课程建设出现,对当时各高校的课程建设,起到了引领作用,对推动教育创新,深化教育改革,起了十分重要的作用。通过几年的实践,加上互联网技术的发展,人们发现,精品课程建设离当初的想法渐行渐远,暴露了不少问题,主要表现在:
(1)精品课程建设脱离教学实际
精品开放课程建设了不少,其中相当一部分是为申报国家级、省级精品开放课程而应急建设的,没有充分考虑平台的服务性和实用性,一些精品开放课程成了学校的品牌装饰,与教学过程“脱节”。
(2)建成的精品课程不少,但比较零乱,不成体系,名校、名师和“大家”的作品少见。
(3)建成精品课程资源不足,满足不了学习者的需求,后期维护跟不上,资源的再开发、再利用严重滞后。
(4)课程建设的目标不正确,重申报轻可持续发展现象严重。
很长一段时间,我国精品课程大多为立项而建,建设周期短,一次建设即告完毕,许多课程长期缺乏维护,资源内容陈旧,难以成为优质资源。因此,对已经建成的精品开放课程要定期检查、评估和反馈后续建设情况。只有持续改进课程资源,才能保证精品开放课程资源的质量和时效性,才能减少“重申报轻可持续发展”的现象,从而切实提高精品开放课程的质量。
针对以上问题,教育部【教高厅〔2012〕】2号发文强调:在“十二五”期间,教育部将在原国家精品课程建设成果基础上,科学规划,合理布局,优化结构,通过高等学校本科教学质量与教学改革工程,支持建设5000门国家级精品资源共享课。其中,2012年和2013年重点开展原国家精品课程转型升级为国家级精品资源共享课的建设,采取遴选准入方式选拔课程;同时,从2013年起,适应新需求,结合高等教育发展趋势和教学改革成果,采取招标建设和遴选准入两种方式建设一批新的课程。
3.2 精品资源共享课
资源共享课除了要提供全部教学单元的录像外,突出基本资源共享。
包括课程介绍、教学大纲、教学日历、教案或演示文稿、重点难点指导、作业、参考资料目录和课程全程教学录像等反映教学活动必需的资源。
精品课程和精品资源共享课由于专业性强,主要的受众群体是高校教师和在校大学生,受众群体狭窄。
3.3 精品视频公开课
精品视频公开课是以教师授课录像为展示内容的一种开放教育,每门课程总讲数应至少5讲,每讲时长30~50分钟。有科学文化素养教育类和专业导论类两种类型,其中科学文化素养类推荐单位为部属院校或者教育主管部门,专业导论类的推荐单位为本学科国家级教学指导委员会。
3.4 微课
微课是指按照课程与教学实践的要求,以视频为主要载体,记录教师在课堂内外教育教学过程中围绕某个知识点或者某几个知识点(重点、难点和疑点)或教学环节而开展教与学的全过程
它最早是由美国新墨西哥州圣胡安学院的高级教学设计师、学院在线服务经理戴维・彭罗斯(David Penrose)于2008年秋首创的。后来,戴维・彭罗斯被人们戏称为“一分钟教授”(the One Minute Professor)。
4 我校课程建设的基本做法
学校开设这门课程源于上个世纪90年代,受当时的条件限制,教学大纲、教学方法和教材均参照本科院校,培养出来的人不能满足市场对人才质量的要求。随着职业教育的浪潮的到来,受理论讲解力求体现“必须,够用为度”的影响,学校把人才培养的落脚点绑定在市场急需的应用型人才培养的目标上。先后申报学校《IT 蓝领系列专业办学方向探索建设》、《IT 蓝领软件人才的素质培养》、《计算机类学生实践技能培养模块的构建及应用》、《应用型大学课程的样板建设研究――以为例》等教学研究项目,通过深入企业、事业单位调研,了解市场对计算机类人才的具体需求,形成了计算机类各个层面的培养模块,并将能力培养模块落实到具体的课堂教学和实践环节之中,《C语言程序设计》课题组率先完成了应用型大学的课程教学大纲、上机实训大纲、自编了上机实训手册等一些齐备的课堂教学资料编写工作。2007年3月在中国水利水电出版社出版了《C语言程序设计》教材。
4.1 明确课程建设的基本思路
2007年年初,我校升格为本科院校并招收计算机科学与技术专业本科生,自此《C语言程序设计》和其他课程一样面临着从专科层次向本科层次转型的问题。本着突出应用特性,课题组理清的《C语言程序设计》课程建设的思路是:
(1)高职高专阶段课程建设的成果、资料、经验和团队协作精神不能丢,在搞清楚《C 语言程序设计》(本科)的规格和内涵之后,将相应的积累和经验移植到本科课程建设之中,提高建设速度和质量。
(2)围绕学校创办“应用型大学”的战略目标,将“培养应用型人才,建设双师型、社会型教学团队”的理念融入到课程建设之中。
(3)打造精品开放课程。有步骤,分层次将《C 语言程序设计》打造成校级、省级、国家级精品开放课程。
(4)建设优秀的教学资源,满足广大师生自主学习的需要。到2020年末,所有的教学资源(包括精品课程网站、精品视频公开课网站、微课等)全部上线,做好跟进维护工作,让优质资源发挥应用的作用。继续完善《C语言程序设计》及其配套教材修订工作,力争把教材做成应用型的精品,完成《C 语言程序设计》系列微课的录制。
(5)加强团队建设,打造梯度结构的“双师型”教师队伍,发挥教学名师,学科带头人的 “引领、传承、创新、共享”作用,促进课程建设质量的提升,争取有一批优秀的教师脱颖而出,争创学校和省级的教学名师。
4.2 对课程建设的教学定位
《C语言程序设计》是计算机语言类教学中第一门系统地讲授程序设计的课程,通过该课程的学习,使学生了解程序设计语言的基本语法、基本结构,理解计算机科学求解实际问题的基本过程,掌握程序设计的基本思想、方法和技巧,了解计算机的一般算法,养成良好的程序设计风格,培养利用计算机求解问题的能力。
学生通过该课程的学习,应该在知识与能力方面达到以下基本要求。
(1)基础知识要求
通过该课程的学习,学生深入了解计算机的基本工作原理,掌握程序设计语言的基本语法、数据表达形式和流程控制的方式。理解模块化程序化的基本思想,掌握程序设计的基本方法和流程。
(2)能力培养要求
重点培养学生读程序、写程序和调试程序的能力,突出实际编程能力的训练。学生应该掌握基本的分析问题和数据表达的能力,以及算法描述与基本算法实现的能力;掌握面向过程的程序设计方法;掌握集成化程序开发环境的使用和程序的调试方法;初步具有利用程序设计技术求解实际问题的技巧与方法。
4.3 研究制定了我校《C 语言程序设计》课程建设的实施方案
按照行业的岗位需求进行“理论教学内容的设计”,“实践教学内容的设计”,“课程设计”。 “理论教学内容的设计”和“实践教学内容的设计”都是以知识点为单位进行设计的。
(1)理论教学的知识点分布及能力基本要求(以“结构控制”知识点为例)
[知识单元 教学内容 教学要求 教学目标 重点和难点 常用的结构控制 用读/写及赋值实现顺序结构的程序 掌握 熟练第掌握C 语言的各种语句的使用,熟练输入/输出等库函数的调用;正确选择使用相应的流程控制语句实现三种基本结构的程序设计;掌握几种重要的算法(求和、统计、求数列等)的算法思想及其实现;了解几种常用算法的思想 重点: 三种基本控制的实现,各种流程控制语句的正确使用
难点: 多分支、循环嵌套、分支和循环结构的嵌套,常用的算法设计与实现 用if、switch语句实现分支结构的程序 掌握 分支结构的嵌套 掌握 用while、do-while
、for实现循环结构的设计 掌握 循环嵌套的控制与执行 掌握 break、continue语句的使用 掌握 分支和循环结构嵌套的特点和应用 掌握 一些常用算法设计思想,部分算法的实现 理解 ]
(2)实验实践教学设计
本课程实践教学的指导思想是:首先通过教师案例讲解、编程演示使学生对程序设计有一定的感性认识;然后通过设计由浅入深的实验项目,使学生通过理解程序、模仿程序、改写程序到编写程序的实践训练,逐步强化学生熟练掌握程序设计的基本方法;加强学生的实际编程能力、动手操作能力和团队协作能力。
实践教学分为“演示实验”和“知识单元实验”两个部分。知识单元的实验有验证性和设计性两大类,前者是理解和巩固理论课所学知识的,后者意在培养学生运用课程知识独立进行问题求解、程序设计的能力。下表给出了“分支结构”知识单元的实验方案。
实验教学中课程实验方案(以“分支结构”为例)
[实验序号 实验内容 实验目标 建议实验项目 3 分支结构 掌握分支、多分支结构程序设计的办法;
掌握排除语法错误的基本技能 案例:超速判断、出租车计价,成绩转换,纳税问题
项目:比较大小,分段计算居民水费、计算天数、简单计算器、出租车计费系统 ]
(3)课程设计
课程设计的主要目的是通过大型程序训练,培养学生研究性学习、综合应用能力、复杂程序的调试能力,要让学生深刻体会程序设计的全过程,初步体验软件工程方法,培养学生软件文档的写作能力。加强团队工作中的个人责任,培养学生团队协作精神。
课程设计示例:
作物产量统计系统
问题描述:输入某村各户各类农作物的产量,以便统计全村各种农作物的总产量以及向亩产较低的农户提供参考数据。作物产量统计系统中每条记录包括各户村民的编号、户名、种植作物种类、亩数、产量等信息,主要实现作物产量等信息的输入、打印、查找、排序、统计等基本管理功能。
基本功能:
输入n户村民及其种植作物的基本信息,并将输入的数据存入文件。
统计全村各类作物的总产量,并将结果写入文件。
计算各户各种农作物的亩产量,输出计算结果。
按由小到大的顺序对全村各类农作物的亩产量进行排序,将排序的结果写入文件。
按户查找指定村民的作物信息。
设计要求:
在输入村民及其作物种类等基本信息时,要求输入完一户村民的所有种植作物及其产量等信息后再输入另一户村民的基本信息。
5 我校在《C 语言程序设计》课程建设中取得的成绩
教学工作是学校的中心工作,“加强课程建设,夯实发展基础”是学校内涵建设的理念,自2010年以来,《C 语言程序设计》课程建设取得了如下成绩。
(1)微课《冒泡法排序》和《汉诺塔与递归算法》2015年参加 “第二届全国高校微课教学(本科)比赛” 分别湖北赛区“一等奖”和“二等奖”,《数组元素的冒泡法排序和选择法排序》参加全国决赛获得“优秀奖”。
(2)教学研究项目《基层应用型大学课程建设探索与研究(教材)》参加2013年“湖北省第七届教学成果奖”的评选,湖北省人民政府授予“三等奖”。
(3)课程《生活中的C程序设计》被湖北省教育厅评定为“2014年度精品视频公开课”。课程《C语言程序设计》2011年被湖北省教育厅评定为本科层次的“精品课程”。
(4)教材《C语言程序设计》2010年被教育部“教指委”评定为“优秀教材”。《C语言程序设计》(第二版)被中国电子教育学会评定为2012全国电子信息类(研究生、本科教育)“优秀教材”。
(5)编辑出版《C 语言程序设计》、《C 语言程序设计上机指导与习题解答》3个版次共6本教材,发表与《C语言程序设计》课程内容有关的教学论文7篇。
(6)指导的学生从2012年起参加第三届至第六届全国“蓝桥杯”软件专业人才设计与创业大赛(C/C++类),多人次获奖。
(7) 将《C语言程序设计》按照知识点重组录制成“系列微课”共65讲,时长1350分钟,该项目是目前国内第一门将专业知识碎片化重组后以“微课”形式进行展示的课程,我们坚信,只要进入该课程的学习者,一定会有所获。
6 对课程建设的几点思考
(1)课程建设必须遵循高等教育规律
课程是知识的载体,课程教学是为落实人才培养方案服务的,起着强基固本的作用。高等教育有别于基础教育,有他特点和规律,只有营造宽松、和谐的教学环境,为多样性、个性化、有思想的教学科研人员提供条件;排除“不确定性、非物理性、外部性”的干扰,才是还原“学校教育质朴真实的面目”的,凡是“追求短期内量化、有形的物理绩效”都是严重违背高等教育发展规律。
(2)对教学工作的重视程度决定了“课程建设”质量的好坏
近10年来,各级教育主管部门和各高校都把“加强专业建设、学科建设,加强课程建设”作为“本科质量工程”的重要内容。由于各校理解上的差异,对待教学工作的重视程度也参差不齐,导致在课程建设的效果和结果上不尽相同,近10年来,全国各级教育主管部门和各高校共建设精品开放课程不少于二万门,建成的这些课程比较零散,成体系的不多,特别是名师,名校、“大家”的作品甚少,如果把各名校、名师、“大家”的积极性调动起来,用他们的眼光,用他们的智慧来打造优秀的教育资源,对于教育均衡、信息共享一定会起到事半功倍的作用。
(3)组建教学团队、发挥名师的作用,是做好“课程建设”基本保证
当今社会是一个多元化的社会,靠一个人的单打独斗,是无法建功立业的,所以课程建设需要一个团队的协作才能做好,课程建设的结果一定是一个团队集体智慧的结晶。尽管课程建设的周期长,也有可能长时间出不了成果,还是需要一批愿意奉献的人来完成。所以,就要发挥团队的作用,发挥教学名师,学科带头人的 “引领、传承、创新、共享”作用,促进课程建设质量的提升。
(4)加强“教学设计”,是目前环境下提高教学质量的重要环节
“教学设计”涉及很多方面,包括课程的基本描述,课程的教学背景,教学目标、重点、难点的拟定,重难点突破的方法,教学手段的确定,教学时间的分配等, 在目前环境下,实现教学的辅助手段很多,无论采取什么样的辅助手段,都要根据课程的性质、学生的认知基础和学习特点、授课内容等进行教学设计,只有充分的“教学设计”,才能保证教学质量的提高。
8 结束语
高等教育的根本问题是人才培养的问题,根据国务院《统筹推进世界一流大学和一流学科建设总体方案》要求,建设高校强国,到2020年底推进一批学校进入世界一流行列,若干学科进入世界一流学科行列,只有遵循高等教育规律,认真开展专业建设、学科建设,扎实推进课程建设,努力打造人才培养特色,充分开发优质资源,才能使“双一流”建设方案得以实现。
参考文献:
[1] 高等学校计算机基础核心课程教学实施方案[M].教育部高等学校计算机基础课程教学指导委员会,高等教育出版社, 2010.
[2] 李金萍.新建地方本科院校课程建设理论探讨与有效实践[J].科学决策,2008(10):83-84.
1.通分:5/6和2/9、3/4和1/7、2/3和7/24、11/20和4/15,思考:通分 时,确定公分母有几种情况?
2.计算1250+125、1.38+6.2、2/9+5/9三题,回答下面的问题:
(1)计算整数加法要注意什么?
(2)计算小数加法要注意什么?
(3)同分母分数相加,为什么可以把分子相加,分母不变?
【设计意图:通分训练及加法运算,能强化“计数单位相同才能直接相加”的算理,为学习新知识作好铺 垫。】
二、进行新课
1.巧引妙转,引入新课。教师出示同分母分数加减题2/4+1/4、32/40-15/40、21 /60-8/60,要求学生口算、回答计算法则及解题依据。学生说清分数单位相同可以直接相加减这一算 理,教师板书计算结果,又布置学生把题目中不是最简分数的约成最简分数。学生边说教师结合前面的板书板 书出以下的形式。对照板书,让学生比较化简前后算式的异同,从而引入新课。
(附图 {图})
【设计意图:由同分母分数相加减,转化为异分母分数相加减,在新旧知识的连接点上着力,有利于知识 的迁移与渗透,有利于学生发现算法,掌握解题思路。】
2.启发谈话,引导观察。教师说:“异分母分数相加减,怎么算?我们还没有学过,但这3道异分母分 数加减题,我们又都知道了它们的结果。同学们仔细观察,这些结果是怎么得到的呢?同座同学互相讨论讨论 。”
3.尝试练习,共同探究。教师出示尝试题:计算1/2+1/3,4/5-2/15,请俩学生上台板 演,其余学生独立试算。学生尝试练习,师生集体校正后,教师组织学生自学课本,讨论下面的思考题:
(1)分母不同的两个分数,能不能直接相加减,为什么?
(2)如果不能直接相加减,怎么办?
(3)异分母分数相加减与同分母分数相加减有什么区别和联系?
【设计意图:学生通过前面的教学铺垫,较容易想到通分,把异分母分数转化为同分母分数。这时,教师 大胆地让学生试一试,他们能从中体验获取知识的成功兴趣。尝试实践后组织学生讨论思考题,有助于揭示算 理。】
4.直观演示,验证算理。教师出示3个大小形状相同的长方形图,在上两个图中,用阴影分别表示1/ 2和1/3,上下平移相加得出第三图中的阴影(如下图)。然后提问:相加后,图中的阴影部分是2/2吗 ?是2/3吗?是多少呢?继学生观察、思考,教师组织以下操作谈话:
(附图 {图})
师:以第三个长方形的空白部分为一份(出示和空白部分完全重合的硬纸片)去量这个长方形,谁来试一 试?量得它有这样的几份?
生:6份。
师:阴影部分应是这样的几份?
生:5份。
师:阴影部分是这个长方形的几分之几呢?
生:5/6。
师:所以1/2+1/3得多少呢?
生:5/6。
师:这个5/6是怎么得来的呢?请同学们用刚才的小硬纸片量一量第一、二个长方形各有这样的几份, 阴影部分各占几份?
生:都是6份,阴影部分分别占3份和2份。
师:所以1/2+1/3也就是几分之几与几分之几相加呢?
生:3/6与2/6相加。
师:对。刚才同学们的操作思路,我们可以用下图表示出来:
完成以上操作谈话后,师生共同归纳小结:要进行异分母分数加减法,必须先通分,统一分数单位后再加 减。
(附图 {图})
【设计意图:借助直观操作,让学生看到“分数单位不同,不能直接相加减,必须先通分,化成同分母分 数”的事实,有利于学生清晰地理解算理,牢固地掌握算理。】
三、课堂质疑
教师要求学生回忆刚才的学习过程,发现问题,及时提出,师生讨论解决。
四、课堂练习
1.口头填数(化成同分母分数)。
3/5+1/4=( )/( )+( )/( )
1/2-1/8=( )/( )-( )/( )
1/3-1/24=( )/( )-( )/( )
5/8+3/7=( )/( )+( )/( )
3/8+3/10=( )/( )+( )/( )
5/12-7/18=( )/( )-( )/( )
2.看谁算得又对又快。
5/6+2/9 3/4-1/7 2/3+7/24
11/20-4/15
3.改错。
1/3+3/7=4/10=2/5
7/10-4/15=7/30-4/30=3/30=1/10
4/9+7/12=16/36+21/36=37/36
2/3+4/7=14/21-12/12=2/21
4.计算下面各题,再想想,这些题怎样算比较快?
关键词:数据结构;精品课程;课程规划
中图分类号:G642
文献标识码:B
烟台大学“数据结构”课程组在多年的教学实践中踏踏实实地做了许多有益的工作,取得了一定的成绩。课程组承担的“‘数据结构’课程的教学改革创新与实践”课题,获得了2004年烟台大学优秀教学成果一等奖,并获得2005年山东省优秀教学成果二等奖;“数据结构”课程在2002年被烟台大学评为首批校级优秀课,并于2004年被山东省教育厅评为烟台大学首批三门省级精品课之一;2007年又被烟台大学作为学校唯一一门推荐课程参加国家精品课的评选。在精品课程的建设过程中,我们有如下一些体会。
1学校各级各部门高度重视
各级领导高度重视和支持是精品课程建设的关键。在一系列相关文件的基础上,早在2004年学校又出台了《烟台大学关于开展精品课程建设工作实施意见》。在此基础上,制订了国家、省、校、院(系)四级精品课程十年建设规划,积极组织精品课程建设立项,全面推进精品课程建设工作,以精品课程建设全面带动课程建设,推进教学改革,为本科教学提供高水平的课程教学平台。
根据精品课程建设规划,学校有计划、有目标、分阶段、分层次地开展精品课程建设工作,形成并执行了行之有效的政策和措施。学校对各级精品课程建设项目实行目标管理,定期聘请专家评估。精品课程重点建设项目实行激励滚动机制。学校投入大量的专项经费,支持精品课程建设特别是精品课的网络建设、网络维护与资源共享。此外学校在职称评聘、岗位津贴等各个方面也向精品课教师做出倾斜,学校的这一系列相关政策,充分调动了教师参加精品课建设的积极性。
2抓住切入点及早规划
“数据结构”是计算机科学专业的一门核心课程,在80年代初,“数据结构”课程才逐步在国内高校计算机专业开设,并成为国内计算机专业教学计划中的核心课程。ACM/IEEE CC-2004仍将“数据结构”课程列为核心课程之首,“数据结构”愈显出其在计算机学科中的重要地位。正是在这样的背景下,在学校的支持下计算机系把“数据结构”课程确立为计算机专业的重点课程之一,并有计划、有目的的给予重点扶持。
“数据结构”课程在我校的发展沿革可以分为以下几个阶段:
学习、初创阶段:烟台大学是一所80年代在清华大学、北京大学的支援下新创建的地方性综合大学,1984年开始招生。“数据结构”是烟台大学计算机系成立伊始即开设的课程。当时计算机专业的核心主干课程都由清华大学的骨干教师担任。在此期间,烟台大学计算机系就有目的选择了具有敬业精神、教学效果优良的本系几位年轻教师组成了“数据结构”课程组,全面接受清华老师的帮助,接受他们的教学新理念、好经验和好方法。
初始发展阶段:1990年清华援建老师返回清华后,“数据结构”课的全面教学由烟台大学教师担任。由于学习、初创阶段的良好基础,这一阶段基本上形成了我校“数据结构”的课程体系结构,从教学大纲的制定、教学内容和实验内容的确定等一系列教学环节上都认真严格按照计算机人才培养的高标准要求。
初级提高阶段:1999年学校提出了百门优秀课建设规划,“数据结构”课程进入了一个全面建设和提高的阶段。首先从教师队伍建设着手,一方面派教师出去攻读博士学位,另一方面吸取教学认真、效果好的老师进入到课程组,进一步充实课程组教师队伍。其次从教材建设和实验体系结构等方面做了精心的准备,并把课程建设的目标定位在:2002年达到校优秀。在此阶段,课程组进行了一系列教学内容和教学法的研究,发表了多篇课程教改论文,取得了优异的成绩,实现了2002年达到校优秀课程的目标。
提高阶段:随着“数据结构”的发展,算法在“数据结构”中的重要作用越来越被人们认识。为了把算法与数据结构紧密联系,2004年课程组教师在多年使用的教材和讲义的基础上编写了系列教材(《算法与数据结构》、《算法与数据结构实验与习题》、《算法与数据结构考研试题精析》)3部,2004年9月由机械工业出版社出版。教材把算法放在了“数据结构”教学中的重要位置。该系列教材覆盖了从课堂授课、课后复习和练习到考研复习材料等多个方面,满足了我校“数据结构”课程的各层次学生的需要,因此2005年至今开始采用自编教材。
从1984年至2003年,采用课堂讲授和实习相结合的方式,实习时间为16个机时。从2004年开始,增加了“数据结构”课程设计,学时为24学时。在授课学期结束后采用集中的形式用一周的时间让学生设计一个综合性的数据结构设计题,通过此环节让学生对数据结构的应用有了更为深刻和良好的理解,效果较为显著。从2002年开始,制作电子教案,采用多媒体教学方式教学,并在每一轮授课过程中进行更新,确保在课件中体现新的技术和理论。从2004年开始,使用自编教材配备的多媒体课件。同时在学校多方帮助下建立了“数据结构”教学网站,网址为,将课程的教学大纲、教案、习题、网络课程、网络课件、考研试题等教学资料上网开放,实现优质教学资源共享。同时设立了网上答疑系统,为学生自主学习、个性化学习提供了方便的平台。
2006年,在学校各级单位的支持下,64学时的全程教学录像工作完毕,并且全部都挂到网上,实现了教学资源的全方位共享。
这一阶段又吸收更加年轻的教师进入课程组,使教学队伍进一步壮大和年轻化。
通过各阶段不断的改革和建设努力,课程组取得了显著的成绩。“‘数据结构’课程的教学改革创新与实践”获得2004年烟台大学优秀教学成果一等奖,并获得2005年山东省优秀教学成果二等奖。在此期间,课程负责人被评为“数据结构”课程群首席教师。2004年“数据结构”课程被评为我校首届山东省精品课立项课程,2007年该课程被推荐参评国家级精品课立项。
纵观“数据结构”课程在烟台大学的发展历程,可以明显的看到正是由于首先选好了切入点并及早做好长期规划,课程组有计划地从一开始就得到了名校高水平教师的传、帮、带,课程组基本功扎实,师资队伍力量雄厚,为课程改革和建设的进一步发展和提高奠定了坚实的基础。
3重点抓好课程教学内容的改革
“数据结构”课程一直是计算机科学与技术专业的一门理论性和实践性并重的核心课程。课程的目标是使学生掌握数据的基本的逻辑结构和存储结构、一些典型的数据结构算法及程序设计方法和技巧,要求学会分析数据对象特征,掌握数据组织方法和计算机的表示方法,为数据选择适当的逻辑结构、存储结构以及相应的处理算法;要求具备算法分析的基本技术和能力,并培养良好的程序设计风格,掌握开发复杂、高效程序的技能。课程组主要从课程内容体系结构、教学内容组织方式和实践性教学的设计等几个方面进行了重点建设。
根据课程的重点(如线性表、二叉树、排序等)和课程的难点(如图、集合等),课程组提出了相应的解决办法:采用多媒体授课的方法,将算法思想通过CAI课件进行动态的演示,使学生通过直观的认识掌握抽象的理论。坚持理论联系实际,观察分析实例,让学生通过各章的基本实验理解抽象数据类型的概念,在此基础上设计复杂的程序,培养学生的学习兴趣和实践动手能力,从而激发创造力和想象力,从实践中理解并掌握本课程的重点与难点。课程组进一步提出了“以理论学习为主线,以课程实验、项目设计为补充”的数据结构课程体系的构建方案,让学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力。为了便于学生掌握基本知识,实践活动通过两个环节来实现,第一个环节为课程实验(16机时),较偏重于对课程内容的理解,实验题目与章节内容相呼应,随课堂授课内容分散在整个学期进行。第二个环节为课程设计实习,用集中的一周时间(24学时)进行。课程设计是进行软件设计的综合训练的第一门课,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,以至一整套软件工作规范的训练和科学作风的培养。课程设计规定若干难度较大的题目,学生可在这些题目中任选一题或两题完成。
通过实验实践内容的训练,提高了学生组织数据和编写较大型程序的能力;更好地理解和掌握了算法设计所需的技术,为整个专业学习打下了良好的基础。课程设计课从设立以来,受到了学生的普遍欢迎,学生普遍反映通过课程设计才更加真正了解了数据结构,对课程期末考试的算法设计题目也更加胸中有数。
4积极创造良好的教学条件
学校和院系各级部门为本课程提供了大力支持,从教材、配套实验教材、实验设备以及实践性教学环境和网络教学环境等各方面都为课程建设提供了良好的条件。
本课程在教材的选择上,一直选用获国家级优秀教材奖的教材。对于应用型高等学校,教材的应用性和实践性尤为重要。本着有利于培养学生获取知识的能力、运用知识的能力和科学创新能力的原则,课程组根据多年教学经验的总结和教学实际编写了“数据结构”系列教材三部。其中的《算法与数据结构(C语言版)》在每章最后都单独增加一节算法设计举例,这个内容实际上把本章进行了一个高度的概括,使得学生能够从更高层次理解本章的内容。三部教材是课题组多年教学研究结果的结晶,在教材教学的内容安排及顺序以及所选的例子等方面都做了精心的安排,覆盖了从课堂理论授课和学习、课后练习和作业、实验课到考研复习材料等有关教学的各个方面,把理论学习和实践环节融为一体,满足了我校“数据结构”课程各层次学生的需要。通过三年的教学实践和考研成绩的检验,证明我们所编写教材的科学性。通过不断的教学实践,课程组教师对所编教材多次开会进行研究,对教材中出现的疏漏之处进行了修订,到目前为止教材均已重印多次,并于2008年出版了第一部教材的第二版。
实验环节采用自编教材《数据结构实验与习题》,该教材详细列出了具体的实验要求和内容,使学生充分了解每次课的实验目的和步骤,消除了学生实验的盲目性,使学生有预习和编写静态代码的时间,增强了知识的系统性。同时将每次的实验内容上网,在实验结束后将程序代码放到网上供学生参考。经过各学期的教学检验表明教学效果良好。
实践教学一直在我校的实验中心机房进行,做到了人手一台机器,指导实验采取教师加实验员加学生小教员相结合的方法,尽最大程度保证指导的时间和质量。2005年计算机学院创建了本院的开放性实验室,该课程的实验采取了在开放性实验室进行的方法,提高了实验的效果和质量。
网络建设方面,在学校、学院和网络中心的大力支持下,课程的网络建设有了一定的成效。课程网络主页的内容十分丰富,包含了教学文件、教学系统、辅助教学系统、考研辅导、远程教学系统等不同的模块。目前课程的全程教学录像也已经上网,学生可以随时在线或者下载收看学习。该课程网站的访问点击率已经达到近16万人次。经常有不少兄弟院校的教师或学生通过不同的渠道向课程组教师索取相应资料并进行探讨。该课程网络主页在学校服务器无故障的情况下全天24小时对校内外开放。这些网络资源对增加学生学习的主动性和实现个性化学习起到了非常重要的作用。
课程组同时还创造条件让学生进行各种实践活动。计算机学院与大型企业东方电子集团公司合作建立了“东方电子实习基地”,通过在基地的参观和实习,使学生学到了很多在课本上学不到的东西。尽管或许和课程内容看上去没有什么直接的联系,但通过参观学习开拓了他们的视野,丰富了他们的想象,进一步激发了他们的学习兴趣。
5充分应用多种教学方法和教学手段
在教学方法上:从传统的粉笔+黑板模式为主过渡到“计算机+大屏幕”为主的授课模式。授课的电子教案开始时使用以静态文字为主的Powerpoint幻灯片方式提供,现在采用以动态算法演示为主的CAI和多媒体课件;对于一些重点和难点算法用形象的动画在屏幕上展示这些抽象算法的执行过程,辅之以板书交流,大大增加了从教师到学生传递的信息量和信息种类,有助于建立从感性到理性的深入理解与掌握。
在教学手段上:通过研制和引入课程辅助教学软件CAI,融入新的教学理念。通过采用模拟方法、单步显示、自动演示多种方式,突出实质观察算法实现过程。在CAI个性、针对性和交互性的基础上,渗透模块化、抽象和信息隐蔽等新观点、新技术,使教师在讲课中可以对内容进行重新组合,为教师教学的个性化发挥提供基础。课件和CAI教学已在我校5届学生的教学中应用,课件作为远程教育的教学工具,便于学生课后的学习和答疑,使授课过程突出重点,发挥传统教学与多媒体教学的能力优势,提高了教学质量、效率与效果。
此外课程组还开发了计算机辅助教学系统――基于Internet的数据结构试题库系统。根据教学的需要,自主开发和建设了标准化试题库,将多年搜集的各个高校的考试试题和考研试题加入到该系统之中。该系统可以根据教师的需要,进行随机抽题或手工选题,能够生成完整的试卷和试卷答案。
教学辅导方式上:从传统的辅导老师面对面的辅导教学逐步过渡到教师辅导与通过校园网进行实时联网辅导相结合的方式。答疑系统开通后,收到了很好的效果,在同学中的影响也很大,现在许多同学都将自己的疑问提交到网上,教师基本上都能在第一时间给出问题的解答。网上答疑也是精品课建设的一个重点,让同学们将自己在学习过程中遇到的一些疑难问题提交到答疑系统,教师统一作出回答。开通答疑系统有三个好处:消除学生提问时的恐惧心理;避免重复回答;不受时间地点限制。
目前,学校已经投入专项资金建立起了Blackboard教学平台,学校将分期分批地把学校各级各类精品课和优秀课接入到该教学平台上,以实现真正意义上的网络教学和优秀教学资源的共享。”数据结构”课程将被首批接入到网络教学平台,课程组将很快在该平台上创建在线课程,并将使用该平台和学生开展在线讨论。该教学平台的使用必将为课程建设水平的提高提供强有力的支持。
6教学法研究常抓不懈
在新学期的教研工作中,继续以深入推进基础教育课程改革为工作中心。组织学科教师进一步加强理论学习,加强对《普通高中课程方案(2017年版)》《普通高中信息技术课程标准(2017年版)》《XX省义务教育信息技术课程纲要(2017年修订)》、《XX省普通高中信息技术课程标准教学要求》和《课型范式与实施策略——信息技术》的学习,更新教育教学观念,提升课程实施的能力和研究水平。深入了解并及时解决信息技术课程实施中的困难和问题,并对这些困难和问题进一步开展专项研究。在课程改革的实践中,不断提高教师的教学水平和中小学信息技术课程的建设与实施能力。加强学科中心组和教师协作组建设,引导广大教师不断学习和研究,进一步落实信息技术学科教学建议。开展学科教师教育教学系列活动,提升我区信息技术学科教师的教学基本功和能力,促进我区信息技术学科教学质量和中小学生信息技术素养的稳步提高。
二、主要工作
(一)加强学习思考,努力提升课程实施的理论水平。
1.加强对《普通高中课程方案(2017年版)》和《普通高中信息技术课程标准(2017年版)》的学习和研究。组织高中学科教师学习和研究2017年版高中信息技术课程标准的新理论、新内容、新模块,同时继续学习《XX省普通高中信息技术课程标准教学要求》,钻研教材,增加参与式培训的机会,提高教师自主学习的能力;采取专家讲座、学术沙龙、参与式研讨、公开课观摩与评价、校际合作、案例设计等多元的研训活动方式,切实提高研训活动的针对性和有效性,从而努力提升新课程实施的水平。
2.努力引导全区信息技术学科教师加强对教育教学理论和课程理论的学习和研究,认真研究信息技术学科的课程功能、课程结构、课程内容、课程实施、课程评价和课程管理,深化课程理解能力,提高课程规划、开发与执行的能力,深入了解并及时解决教学中的困难和问题,总结、推广优秀教学经验,探索教学规律,在课程改革的实践中,引导教师不断提高教学水平和课程建设与实施能力。充分利用学科中心组,开展针对课改重难点问题的专项调研,力求突破课改的薄弱环节,为教育行政决策提供参考。
3.组织全区义务教育阶段的信息技术教师深入研读《XX省义务教育信息技术课程纲要(2017年修订)》和新教材,把握好义务教育阶段的信息技术课程新的目标和内容,更新教学观念,提升对课程的理解力和课程的实施能力。在尊重教育实践的基础上,引导我区信息技术学科教师进一步理解课程纲要和新教材。针对新版教材在实施过程中出现的重点和难点问题开展专项研究:如各年段信息技术学科教学的重点和难点、如何有效开展新增教学内容(如程序设计、人工智能、机器人、物联网等)的教学活动、不同年段信息技术学科适用教学方法的差异、信息技术课型的研究、义务教育阶段中信息技术课程相关资源的开发和利用、如何在学科教学中体现出以培养学生的信息技术素养为宗旨的课程目标,等等。
4.切实加强常态课研究,引导教师在日常教学中开展改善课堂教学的措施与策略的有效性研究,不断提升学科教师自身的科研能力和教学水平。
(二)立足课堂实践,切实提高信息技术学科教学质量。
1.落实学科教学建议,要求信息技术教师以学科教学建议为依据进行备课和上课,经常交流教育教学经验;采用多种方式引导教师对教学行为进行认真的分析和反思,调整和改进教学策略,不断提高教学水平;老教师要做好传、帮、带工作,促进青年教师健康成长。组织参与XX市信息技术学科教师基本功竞赛和优质课评比活动,为教师发展夯实坚实的基础。
2.开展形式多样的专题研究。引导教师在认真落实“XX市中小学学科教学建议”的基础上,开展多种形式的课堂教学研讨和观摩活动,在良好的研究氛围中逐步提升教师观课、议课的能力和水平。
3.在学科教学中,倡导师生互动、思维充分、学生信息素养得到发展的高效益课堂教学模式。加强对提高课堂教学效益和动态生成资源及其关系的研究,引导教师夯实知识基础,促进教学智慧的生成。
4.组织各年段课堂教学同题异构研讨活动,引导教师探索学科教学中的研究性学习方式,分享教学实践智慧,共同探讨提高课堂教学效益的途径和方法。引导教师认真进行教材分析、开展教学创意、教学设计和论文撰写等活动,切实提高对学科的理解与分析能力。
5.进一步建立和完善义务教育阶段学生信息技术基本技能评价指标体系。各初中学校应落实针对新教材的学生学业评价方法,提高信息技术学科的教学质量,促进初中信息技术学科教师的专业成长。同时全面提高初中学生的信息技术素养,以适应高中信息技术课程学习的需要。
(三)抓好组织建设,加快促进学科教师的专业成长。
1、进一步加强中小学信息技术学科中心组建设,完善新课程研究小组的活动内容和形式。以课堂教学研究为核心,以问题研究、项目研究为抓手,提升中心组教师和学科教研组的研究水平和课堂教学水平,并带动其他学科教师的专业发展。
2、继续完善信息技术教师协作组建设,积极鼓励和引导各协作组开展形式多样,内容丰富的交流研讨活动,帮助各协作组建立对话、交流和指导机制,营造一种互助成长和主动发展的良好氛围,真正为青年教师的快速成长和优秀教师的专业成长提供机会和平台,有效促进我区信息技术学科教师能力素质的整体提升。
3.不定期举办专题学术沙龙,营造良好学术氛围,为各种不同类型的教师交流教育教学改革的经验、探讨自身素质提高的途径和方式提供条件和机会。
4.根据信息技术变化发展快的特点,要求各校信息技术教研组要结合本校学科教师的情况继续组织业务进修活动,全面提高业务素质。
(四)搞好竞赛活动,全面提升中小学生的信息素养。
1.引导各中小学积极开展学生电脑制作活动和信息技术应用能力竞赛的培训和辅导工作,并通过组织培训、讲座、交流、研讨等形式的活动,进一步提升学科教师组织与开展社团活动的能力与水平,切实提高辅导质量,提升和培养学生信息技术应用能力和素养。
三、日程安排
九月份:
1、召开信息技术学科中心组成员会议;
2、针对修订后的教材,明确各学段学科教学建议和进度安排;
3、组织参加XX市小学信息技术教师教学基本功比赛;
4、组织全区高中信息技术学科教学研讨活动;
5、组织信息技术学科优秀教学论文评选活动。
十月份:
1、组织全区小学信息技术学科教学研讨活动;
2、以线上、线下方式组织《XX省义务教育信息技术课程纲要(2017年修订)》和新教材学习培训;
3、组织高中信息技术教师新课程技能Python程序设计语言培训;
4、组织参加XX市初中信息技术学科“同题异构”教学研讨活动
5、各信息技术教师协作组活动。
十一月份:
1、全区初中信息技术学科教学研讨活动;
2、组织《普通高中信息技术课程标准(2017年版)》学习培训;
3、组织参加XX市高中信息技术学科“同题异构”联校教研活动;
4、各信息技术教师协作组活动;
十二月份:
1、组织参加XX市小学机器人及人工智能教学现场观摩研讨会;
2、组织全区小学信息技术学科教学研讨活动;
3、各信息技术教师协作组活动;
一月份: