程序设计风格范文
时间:2023-03-23 11:03:21
导语:如何才能写好一篇程序设计风格,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
【关键词】面向对象;程序设计特征
程序的质量取决于程序设计的质量,选择了程序设计语言之后,编程风格决定了程序的可读性、可测试性和可维护性。对面向对象实现来说,良好的面向对象程序设计风格,不但要遵循传统的结构化程序设计风格和准则,也要遵循为适应面向对象方法所特有的概念(例如,继承性)而必需的一些新的风格和准则。
一、提高可重用性
提高软件的可重用性是面向对象方法的一个主要目标。软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析甚至知识领域等多个层次。在编码阶段主要考虑代码重用的问题,代码级的重用是最简单,也是最流行的,是迄今为止研究最深入、应用最广泛的重用技术。传统上,代码级重用部件的主体是子程序(函数或过程)。现在,由于基于对象和面向对象的程序设计语言及相应开发环境的发展,代码级重用部件的内容更加丰富,不仅包括结构化程序设计语言中的函数或过程,同时也包括面向对象程序设计语言中的程序包和类。
一般说来,代码重用可分为两种形式,一种是本项目内的代码重用,称为内部重用;另一种是新项目重用已有项目的代码,称为外部重用。内部重用主要是找出本项目设计中相同或相似的部分,然后利用继承机制共享它们。要做到外部重用,即一个项目重用另一项目的代码,就要求开发人员必须具有重用的设计思想,做到反复考虑,精心设计。虽然为实现外部重用与内部重用需要考虑的范围不同,但是有助于实现这两类重用的程序设计准则却是相同的。实践经验表明,主要的准则有:
1.提高方法的内聚,减小方法的规模
一个方法(即服务)应该只完成单个功能,这样的方法是高内聚的。如果某个方法涉及两个或多个不相关的功能或规模大的方法,则应该把它分解成几个更小的方法。
2.保持方法的一致性
实现代码重用的一个重要因素是应该保持方法的一致性。一般来说,功能相似的方法应该有一致的名字、参数特征(包括参数个数、类型和次序)、返回值类型、使用条件及出错条件等。这样有助于实现代码重用。
3.把策略与实现分开
方法从所完成的功能来看有两种类型:策略方法和实现方法。策略方法负责做出决策,提供变元,并且管理全局资源;实现方法只负责完成具体的操作,但却没有执行这个操作的决定权,也不知道为什么执行这个操作。
策略方法不直接完成计算或实现复杂的算法,只是检查系统运行状态,并处理出错情况。该方法通常紧密依赖于具体应用,这类方法易编写、易理解。
实现方法仅仅针对具体数据完成特定处理,通常用于实现复杂的算法。实现方法既不制定决策,也不管理全局资源。实现方法如果在执行过程中发现错误,只返回执行状态而不处理出错情况。由于实现方法是自含式算法,与具体应用相对独立,因此,容易在其他应用系统中重用,具有较高的可重用性。
在编程时分清策略方法和实现方法,不要把它们放在同一个方法中。应该把算法的核心部分放在一个单独的具体实现方法中。为此需要从策略方法中提取出具体参数,作为调用实现方法的变元,才能提高方法可重用性。
4.采用全面覆盖技术
在编程时,对系统全面考虑,写出覆盖整个系统所有可能的方法。而不能仅仅针对当前需要的功能写方法。例如,如果在当前应用中需要写一个获取表中第一个元素的方法,则至少还应该为获取表中最后一个元素再写一个方法。一个方法不仅能处理正常值,而且还能够对异常情况(如空值、极限值及界外值等)作出有意义的响应。
5.降低方法的耦合度
降低方法与外界的耦合程度的一项主要措施是在方法中尽可能少使用或不使用全局信息。
6.充分地利用继承机制
使用继承机制可实现共享和提高重用性,是面向对象程序设计的主要途径。
(1)使用子过程。把公共的代码分离出来,构成一个被其他方法调用的公用方法,是实现代码复用最常用、最简单的方法。通常可以在基类中定义这个公用方法,供派生类中的方法调用。
(2)分解因子。提高相似类代码可重用性的另一个有效途径,是从不同类的相似方法中分解出公共代码和不同的代码(即因子)。把公共代码作为公用方法,定义在一个抽象基类(额外的)中;把不同的因子作为名字相同而算法不同的方法,定义在不同类中,并被这个公用方法调用。把这种分解与面向对象语言提供的多态性机制结合起来,抽象基类中定义的公用方法可由派生类来继承,在新子类中只需编写其特有的代码,由于增添新子类编写的代码减少了,显然为增添新子类所需付出的工作量也就明显降低了。
(3)使用委派。当确实存在一般—特殊关系时,利用继承关系,子类可以继承父类的所有方法和属性。但是,当逻辑上不存在一般—特殊关系时,为重用已有的代码,可以利用委派机制。要恰当地使用继承机制,否则会降低程序的可理解性、可修改性和可扩充性。
(4)把重用代码封装在类中。解决同一类应用问题时,程序员往往希望重用其他方法编写的程序代码。那么就将被重用的代码封装在类中,这样使用起来比较安全,也是程序员应该提倡的编程风格。例如,如果开发一个应用数学系统时,发现有现成的实现迭代法的商品软件包,程序员想重用这个算法,于是先定义一个迭代法类,然后把这个商品软件包的功能封装在该类中即可。
二、提高可扩充性
前面所述的提高可重用性的准则,同样能提高程序的可扩充性。通过实践研究,有助于提高程序的可扩充性的面向对象程序设计准则如下:
1.封装实现策略
为了提高类中数据结构或算法可修改性,应该把类中描述属性的数据结构以及修改属性的算法等实现策略封装起来,只提供公有的接口供外界访问。
2.方法的功能应该单一
一个方法应该高内聚低耦合,包含对象模型中的有限内容。如果用一个方法遍历多条关联链,将使方法过分复杂,既降低了可理解性,又影响了可修改性和可扩充性。
3.避免使用多分支语句
在实施系统开发过程中,可以利用DO-CASE语句测试对象的内部状态,避免使用多分支语句来根据对象类型选择应有的行为,否则在增添新类时将不得不修改原有的代码。一般来说,应该合理地利用多态性机制,根据对象当前类型,自动决定应有的行为。
4.精心选择和定义公有方法
公有方法是对外公用的接口,私有方法是仅在类内使用的方法,通常利用私有方法来实现公有方法。一般来说,公有方法的修改代价要比私有方法大得多,因为对公有方法的修改常常会引起许多其他类的修改,而私有方法的删除、增加或修改所涉及的面要小得多(仅在类内),因此代价也比较小。为提高可修改性,降低维护成本,必须精心选择和定义公有方法。
三、提高健壮性
提高健壮性,也是程序员在编写实现方法的代码时应该考虑的一个重要方面。通常需要在健壮性与效率之间做出适当的折衷。健壮性对任何一个实用软件都是不可忽略的质量指标。遵守下述准则将有助于提高健壮性。(下转第83页)
(上接第81页)
1.增强系统的容错功能
系统应该具备容错功能,即具有处理用户操作错误的能力。当用户操作失误或输入数据出错时,不会引起程序运行中断,更不应该造成“死机”,而应该对操作进行检查,发现了的错误,必须给出有关的提示信息,并允许用户再次输入或正常退出。
2.检查参数的合法性
对软件系统中所使用的方法或过程,尤其是公有方法或过程,应该着重检查其参数的合法性,不能因为用户在使用公有方法或过程时,违反参数的约束条件而引发程序运行中断或造成系统“死机”现象。
3.不要预先确定限制条件
预先确定限制条件对所开发的系统往往会产生一些不良的后果。特别是在设计阶段,往往很难准确地预测出应用系统中使用的数据结构的最大容量需求。当系统中使用的数据结构的容量大于预先确定的限制条件时,系统有可能引发一连串的问题。因此不应该预先确定限制条件。如果有必要和可能的条件下,则应该使用动态内存分配机制来创建数据结构,当然,该数据结构是未预先确定限制条件的。
4.先测试后优化
为了提高健壮性,往往需要增加大量的代码,这就或多或少地影响了系统的执行效率。因此,就需要在效率与健壮性之间做出合理的折衷。一般来说,首先根据应用程序的特点,确定需要着重测试的部分(例如,最坏情况出现的次数及处理时间等),进行测试。然后为提高性能,确定着重优化的关键部分。此外在选择算法时,要综合考虑内存需求、速度以及实现的简易程度等因素,选择出适当的算法。
篇2
关键词:软件工程;程序设计;课程群;建设;实践
软件工程专业的培养目标是面向我国软件产业培养急需的工程应用型人才。软件产业的发展要求学生具备较强的系统分析、设计、开发与维护能力[1]。为培养学生软件系统方面的相关能力,许多高校的软件工程专业都设置了系列课程模块,如程序设计课程模块、网络技术课程模块、计算机体系和操作系统课程模块、软件工程课程模块等,这些模块往往是一些单独课程的组合,有很多学生学了这门课程,又忘记了那门课程,到毕业时专业能力达不到社会所要求的层次。程序设计课程群是软件工程专业系列课程的重要组成部分,其承载的技能培养目标是专业培养的子目标[2],处于非常重要的地位。课程群建设是专业建设的一部分[3],有利于打通课程知识脉络,避免课程内容重复或前后脱节,使前后连贯,内容融合,进而获得整体优势[4]。程序设计课程群主要培养计算思维能力、算法设计与分析能力、程序设计与实现能力和系统分析开发能力[5]。学生通过程序设计课程群的学习,可掌握1~2门程序设计语言,更进一步理解程序设计方法,熟练掌握常用的数据结构和算法,形成良好的程序设计风格,可独立分析、设计和开发中小型软件系统。所以对程序设计课程群进行研究并积极实践对专业培养目标的实现具有重要现实意义。
1问题分析
目前,大多数高校信息类相关专业都开设了程序设计系列课程,一般为C语言程序设计、数据结构与算法、java程序设计等。许多高校都将C程序设计作为第一门程序设计课程[6],一般安排在第一学期或者第二学期,学完C语言之后,再学其他程序设计课程,如数据结构等。由于C语言本身比较灵活且语法内容比较多,对于初学者来说并不太好掌握。一些教师在授课过程中,没有站在软件设计的高度思考教学内容,往往过多地强调语言成分的语法和语义,而忽视了计算思维能力[7]的培养,使学生从开始就扎进程序设计语言的细枝末节中去,忽略了软件工程思想的渗透,到最后学生掌握了一些语法,却不能写出较为优美的程序或没有形成较好的程序设计思维和风格。算法是程序的灵魂,数据结构和算法在课程群中具有基础和核心地位[8]。在实际教学过程中,学生普遍反映数据结构和算法课程抽象难学,在学习和实际应用中出现的问题比较多,很难写出能正确运行的程序,学习过程中成就感不强,学完之后还是不知道如何应用,很难达到预期的效果。由于在前期的学习中,程序设计基础没有打牢,对常用的数据结构和算法没有真正掌握,模块化程序设计思维没有有效建立,良好的程序设计风格没有形成,导致后续的高级面向对象语言程序设计学习很难深入,最终导致软件分析与设计能力得不到有效的提升。
2程序设计课程群建设
我校软件工程专业采取校企合作办学模式,由吉首大学和中软国际共同建设,企业参与人才培养的全过程,在具体实施过程中,学校侧重于理论教学部分,企业侧重于实践教学部分[9]。程序设计课程群是软件工程专业课程体系的重要组成部分,企业参与讨论与建设,确定该课程群以软件设计能力培养为主线,以C语言程序设计、数据结构、面向对象技术、算法设计与分析几门课程为基础组建课程群,C语言程序设计开设在第一、二学期,数据结构、面向对象技术、算法设计与分析分别开设在第三、四、五学期,第六学期可开设JavaWeb程序设计或Asp.NetWeb程序设计,使课程群在能力构建和开设形式方面形成一个不间断的体系。
3程序设计课程群实施
3.1精讲课程主要内容,提高程序设计能力
课程组教师首先需要站在软件分析与设计的角度研究各门课程在课程群中的地位和作用,把课程群中的系列课程作为一个有机的整体,研究各门课程的主要教学内容,针对课程重点、难点、疑惑点进行精讲,做到理论与实践课并重,有效提高学生程序设计水平。在课程群系列课程中,由于第一门课程是后续系列课程的基础,所以学生必须掌握它。在C语言的教学中,要渗透软件分析与设计的思想,把握程序的主要框架,不纠缠于一些细枝末节的语法。函数是C语言教学中的重点,需要重点突破,从模块设计的角度来考虑函数设计,对于一个具体的函数,则要掌握函数的返回类型、参数类型以及参数个数。如用函数处理一个数组时,需要传递数组的首地址和数组的规模,首地址用指针表示,数组的规模则有两种表示方法,一是数组的长度,二是数组的起始下标和结束下标,这两种方式可能会分别应用到不同的地方,如果教师一直不提示第二种方法,则将来学生在写数组做参数的递归程序时可能会遇到困难。从多年的教学实践来看,如果学生真正掌握了函数设计方法,再加上必要的算法知识,一般情况下,程序设计就会变得得心应手而且十分有趣;对于数据结构课程,采取以数据存储(内存)为主线的方法,将重点放在数据的存储和相关算法方面,在算法实现时渗透模块化的思想,需注意头文件和实现文件的定义,因为数据结构内容具有很强的连贯性且程序的初始化工作较多,如链表的具体应用则先要建立链表、树的遍历和节点的查找等则先要建立树、图的遍历和最短路径及关键路径等则先要建立图,在实验过程中有意识地把一些基础工作放入头文件,则会极大地提高实验的效率;在面向对象技术教学中,以面向对象程序设计的方法为核心,以语言中的面向对象机制为主要内容,在适当的时候引入《ThinkinginC++》、《EffectiveC++》、《ThinkinginJa-va》等优秀书籍中的一些思想和经验,要注重面向对象程序设计过程中大的程序框架的合理性以及具体处理算法的正确性;在讲授算法设计与分析的时候,应集中精力将主要算法讲透,直到学生学懂为止,在实现算法时,应充分运用面向对象设计的思想,将算法封装在类中;在web程序设计教学中,采用案例驱动的方式,精讲软件项目设计中的主要方法和主要问题,培养学生工程化设计思想。精讲的目的是让学生多练,精讲之后要布置任务并为学生提供练习环境和相关指导,必须充分发挥教师主导和学生主体作用,教师要认真检查学生的作业、实验和练习情况,及时纠正问题,引导学生运用软件工程的思想设计程序,培养学生良好的程序设计思维和程序设计风格,激发学生自觉学习和实现相关算法,最终提高程序设计能力。
3.2大规模开展程序设计训练,培养程序设计能力
为培养学生算法设计与分析能力,学院在晚上和周末开放了实验室,在实验室搭建了ACM在线测评系统(ACMOnlineJudgeSystem),并接入了校园网,结合C程序设计、数据结构与算法等课程部署了大量习题。学院利用课余时间,有计划组织学生进入实验室进行编程训练,并为每次训练配备了指导教师。平时,学生也可以在寝室登录平台进行训练。教师在讲授C程序设计等课程的时候,要求学生利用课余时间在ACM平台上完成至少上百道题的训练,并将完成情况计入课程的平时成绩。通过大规模开展在线程序设计训练,学生的程序设计能力有了明显的提高。
3.3开展课程设计训练,培养工程化设计思想
在课程群中除开设理论课程对应的实验项目之外,还针对整门课程开设了综合性课程设计项目,如C语言课程设计、面向对象技术课程设计、javaweb课程设计,单个课程设计周期为1-4周。学院课程设计项目主要由企业教师指导完成,该类项目采用分组形式,在组内模拟软件企业运行模式设置相关岗位角色,学生在仿真企业环境中,利用仿真的软件开发项目,进行轮岗和角色体验,培养学生的软件工程应用能力、软件项目开发与测试能力、职业素质等,从而使学生熟悉软件项目开发流程和规范,养成良好的软件开发习惯。课程设计结束时,要求学生演示并讲解自己的项目开况,由学院教师和企业教师组成评定小组进行评分。
3.4改革考核与评价方式,理论与实践、平时与期末相结合
理论与实践相结合。程序设计课程群内的课程都是实践性很强的课程,其目的是运用所学的知识解决实际问题,决定了课程的期末考核要综合考虑理论和实践两部分内容。理论部分主要考查学生对基本概念的理解和对基本知识的掌握情况,实践部分侧重考查学生的综合应用能力,这两部分成绩都在期末完成,占课程总成绩的60%左右。平时与期末相结合。期末考核重在体现学习的结果,平时成绩则侧重于体现学习过程,在课程总成绩中,平时成绩占40%左右,即一门课程约有40分来自平时的学习过程。平时成绩一般由出勤、作业和平时实验情况、课程设计情况组成。在学期开始第一堂课的时候将课程评分方式告知每一个学生,必须抓紧平时的学习,若平时分小于20分,则取消课程考试资格或直接将课程总成绩记为不及格。
4结语
程序设计课程群对培养学生计算思维能力、算法设计与分析能力、系统分析与设计能力具有重要作用。本文分析了学生在课程群学习中遇到的一些问题,从软件分析与设计的角度对课程群进行建设与改革,提出了以C语言程序设计、数据结构、面向对象技术、算法设计与分析等几门课程为基础组建程序设计课程群,给出了课程群的主要知识与能力体系要求,通过精讲课程主要内容、大规模有组织地开展程序设计训练、企业教师指导课程设计、改革考核与评价方式等方法进行教学改革,学生的程序设计能力得了到较大的提高。
参考文献
[1]韦迎春,文俊浩,陈蜀宇.以能力培养为核心构建示范性软件学院实践教学体系[J].中国高等教育,2011(2):49-50.
[2]乔付,王国权,张凤武.CDIO理念下计算机程序设计课程群建设探索[J].内蒙古师范大学学报,2011,24(11):39-41.
[3]孙雷,王新.计算机专业程序设计课程群的研究与实践[J].教育教学论坛,2013(11):222-224.
[4]翁伟,吴克寿,吴芸,等.程序设计课程群建设探索与实践[J].计算机教育,2009(23):123-125.
[5]王海舜,蒋巍巍.基于程序设计能力培养的软件设计类课程群架构[J].计算机教育,2012(2):23-26.
[6]万臣,谢芳,胡泉.计算机专业程序设计课程群的建设与研究[J].合肥工业大学学报:社会科学版,2009,23(1):33-36.
[7]汪红兵,姚琳,武航星,等.C语言程序设计课程中的计算思维探析[J].中国大学教学,2014(9):59-62.
篇3
关键词:C++高级编程;实践教学;案例教学;综合性实验
“C++高级编程”是一门对学生理论基础及实践能力要求较高的课程。C++高级编程是基于C++静态数据类型检查的、支持多重编程范式的通用程序设计语言基础上的高级编程。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标、泛型程序设计等多种设计风格,对学生理论水平及动手能力综合素质要求较高。
在教学工作中,我们坚持理论联系实践,帮助学生建立科学、有效的编程思想。并结合教学工作进行开发应用,提高了学生编写程序的动手能力,取得了较好的教学成果。
1教学中存在的主要问题
通过对我院计算机专业“C++高级编程”课程教学现状分析,发现主要存在以下问题:
(1) 重“理论教学”轻“实践教学”。我校计算机专业该课程教学总课时为70学时,要求学生在较短的学习时间内既要掌握理论知识,同时又具备较强的动手实践能力。因此,教师在授课过程中,要么过分强调理论教学,要么过分侧重于流行数据库开发工具的教学,致使理论教学与应用实践比例失衡,使学生存在理论高分实践低能现象。
(2) 教学方法和手段缺乏多样性。目前,多媒体教学日趋流行,我校教师在“C++高级编程”理论授课中大多采用CAI课件进行教学。此教学方法虽然减轻了教师的板书负担,增加了信息量。但学生反映在学习过程中,教学内容重视语法细节而轻视实践环节,理论结合实际解决问题的能力较低,始终处于被动学习状态。
(3) 实验内容过于简单,覆盖理论知识范围有限。在实验课教学过程中,每章节课后题可供学生选择范围较小,各章节实验内容联系不紧密,存在脱节现象。学生无法将所学知识应用到项目的分析、设计、实施、验收各环节中去。既不利于学生理论联系实际,也不利于学生适应工作后的企业项目开发环境。
(4)“教”与“学”考核方法过于单一。我校在“教”与“学”考核方式上以传统的理论笔试为主。该考核方式在“教与学”环节上存在重理论学习轻实践应用,使得绝大多数学生学习目的就是为了顺利通过考试,而忽略了实践能力的培养,致使“高分低能”现象的出现。
2教改思路
“C++高级编程”包括理论讲授、实验和课程设计三个环节,只有各环节紧密衔接、密切配合,才能保证该课程的教学效果。
2.1理论联系实际,采用案例教学法吸引学生兴趣
“C++高级编程”课程涉及知识面较广,理论性和实践性要求较强。在教学过程中,我通过设置具体案例,将学生学习内容溶入到分析、讨论、表达等教学过程中,让学生在具体的问题环境中积极思考、主动探索,培养学生认识问题、分析问题和解决问题的能力。
(1) 以典型案例为例证,引入核心知识。结合教学过程中每个关键知识点设置一些典型程序,以典型程序为例,详细讲解相关的知识点。在此过程中,以教师讲授为主,学生通过对典型程序代码的研讨学习,加深对知识的理解和掌握[1]。
例如,在讲解“网络程序设计”这一章时,首先向学生展示目前网络中最常见的即时聊天软件,如腾讯QQ;其次演示具体的程序实例,并讲解文字、语音或视频聊天程序的核心代码,遇到核心知识点时,再深入讲解相关的理论知识。
采用这种方法授课,可将复杂的问题简单化、枯燥的知识趣味化、抽象的道理具体化,可以使学生产生浓厚的兴趣,极大调动了学生研究学习代码的积极性。
(2) 围绕实际案例,展开讨论。当课程进行到中期时,学生已具备了一定的编程经验,这时可以借助一个实际案例,组织学生开展辩论和研讨。教师提出该案例,但不对案例作具体的解释说明,让学生在课堂上各自阐述自己的观点、论据,并相互提问和回答[2]。
例如,在“数据库程序设计”一章的学习中,总结该章节的内容后,就可以用一个学生做过的数据库程序为实际案例,让学生们讨论该程序有何优点、不足及如何改进。这种方法不仅可以锻炼学生独立发现问题、思考问题的能力,还有利于培养学生敏锐的应变能力、思维能力和语言表达能力。
2.2加强实验教学,锻炼学生动手能力
“C++高级编程”课程的实验教学是整个教学过程中一个非常重要的环节。上机实践不仅能提高学生灵活运用理论知识的能力,而且使学生在编程、上机操作、程序调试等方面受到严格的训练,有效地提高学生程序设计能力。
在开始学习“C++高级编程”课程之前,学生通过“C++程序设计”和“面向对象编程方法”的学习,已具备一定的编程基础。很多学生对程序设计的认识还只是停留在借助程序熟悉语法的程度上,对如何使程序高效、稳定、可移植性强等方面没有很理性的认识。如何培养学生养成良好的编程习惯,真正从专业角度进行软件设计,是“C++高级编程”实验教学需要认真思索和努力解决的问题。
首先,向学生介绍自己多年来的编程经验体会,推荐一些好的书籍和文献资料供学生使用。其次,让学生大量阅读和仿写优秀的程序,通过学习和借鉴快速掌握这些优秀程序员的经验和方法,少走弯路,养成良好的编程习惯。第三步,也是最关键的一步。在实验过程中,始终严格检查学生设计的程序,及时指出其在编程习惯上的错误。很多学生认为只要编写的代码能调试运行出结果就万事大吉,这是错误的思想。作为教师要具有极大的耐心和持之以恒的耐力,及时指出并纠正学生编程中出现的问题,使学生养成良好、高效的编程习惯。
另外,为取得实验教学的最佳效果,在实验项目的设计上采取由浅入深,逐渐增加难度的办法,引导学生逐步提升编程能力。开始时,多设计一些验证性强的实验,让学生结合事例步骤仿写程序。在中后期设计一些具有较强综合性的实验项目,锻炼学生综合运用知识的能力。教师开始时要详细讲解,分阶段布置一些难度较大的作业由学生独立完成,培养学生动手能力。
2.3通过综合性实验,培养学生独立研究的能力
课程设计环节安排在整个教学过程的后期,目的是着重提高学生软件分析、设计和开发的综合能力,是培养学生综合运用知识独立研究的关键环节。
所谓综合性实验是指实验内容涉及本课程的综合知识或相关课程知识的实验。开设综合性实验的目的在于培养学生的综合分析能力、实验动手能力、数据处理能力及查阅中外文资料的能力[3]。为此,我布置了4个综合性设计实验项目。
(1) 多媒体软件设计项目:设计开发一个多媒体播放器,能够播放某种格式的音频文件、视频文件或动画。要求该软件具有选择播放文件,播放、暂停、继续播放、停止、音量控制等基本功能。
(2) 图形图像软件设计项目:设计开发一个图形图像软件,要求该软件能够画出点、直线、圆等基本图形,具有设定颜色、大小、位置等基本功能。
(3) 数据库系统程序设计项目:设计开发一个后台数据库与一个前台信息管理系统,可以对数据库中的记录进行管理。要求该软件具有浏览、修改、增加、删除和查询等基本功能。
(4) 网络程序设计项目:设计开发一个客户机/服务器模式的网络软件,要求能够根据选择建立客户机端程序或服务器端程序,客户机端和服务器端之间能够相互交换数据。
实验中教师采取个别讲解、个别辅导、就普遍存在的问题演示相结合方法进行讲授,有针对性地发现和解决每个学生存在的问题。在课程设计过程中始终坚持以下要求:①按照软件工程思想使用面向对象技术进行程序设计。②注意养成良好的编程习惯和程序设计风格。③不断提高程序调试技能。
要求学生提交的课程设计报告包含的内容有:设计项目涉及的核心知识介绍、设计开发的步骤、程序功能介绍、核心源代码、设计总结。
经过4周共20学时的实践课程学习,学生按时提交了设计结果。其中40%的学生选择了多媒体软件设计项目,45%的学生选择了数据库系统程序设计项目,10%的学生选择了网络程序设计项目,5%的学生选择了图形图像软件设计项目。从设计过程、设计结果和课程设计报告综合分析来看,10%的学生非常优秀地完成了设计,30%的学生完成得较好,50%的学生基本达到了设计目标,而有10%的学生未完成或部分完成了设计。学生普遍反映通过实践学习开阔了视野,提高了编程综合能力,增长了信心,达到了预期的课程设计实践目标。
3结语
2008年5月教育部对我校的本科教学评估中,“C++高级编程课程设计”作为综合性、设计性实验项目获得专家的好评,该科目评审结果为优秀,教学经验在全校教师中进行了推广。
“C++高级编程”这门课程在教材、教学内容、教学方法的选择及实验内容的设计等方面都对任课教师提出了新要求。坚信通过不断实践改革“C++高级编程”教学内容,改进教学方法,我们会培养出更多具有创新型、研究型、综合素质高的人才。
参考文献:
[1] 黄英琼. 谈“计算机图像处理”课程实例教学法[J]. 计算机教育,2007(3):24-26.
[2] 马晓敏,姜远明,胡光. 试论计算机案例教学的新思路[J]. 教学与管理,2007(4):133-134.
[3] 江静.“数据结构”课程综合性实验的实践[J]. 实验科学与技术,2006(6):64-66.
Exploration and Practice on the Teaching Method in C++ Advanced Programming
MA Xiao-ting
(School of Information Engineering, Lanzhou University of Finance and Economics Lanzhou 730020, China)
篇4
关键词:C语言;程序设计;教学改革;能力培养;计算机辅助评测
中图分类号:G642 文献标识码:B
1背景
随着计算机技术的迅速发展和日益普及,越来越多的高校毕业生涌入计算机技术及应用产业,特别是软件产业。这些人中不仅有计算机专业的毕业生,也有些非计算机专业的毕业生。在与这些非计算机专业学生的竞争中,计算机专业的学生并未表现出明显的专业优势。造成这一现象的一个重要原因就是,计算机专业学生所掌握的基础专业知识和能力,缺乏专业性的深度和广度,计算机专业学生所学的一些专业课程和专业基础课程没有为学生提供足够的专业知识和训练。课程改革前的C语言课程就是这样一门在专业性方面有待加强的专业基础课程。
程序设计是计算机专业学生的基础课程,程序设计能力是计算机专业人员的重要专业基础能力,C语言是目前计算机专业工作者的第一语言。随着计算机技术和知识的普及,越来越多的非计算机专业学生也在这一层次和深度上掌握了C语言知识和运用能力。与此同时,计算机专业在C语言的教学方面依然采用原来的教学内容和教学方法,在程序设计知识的深度和广度以及C语言的运用方面没有大的进展,导致计算机专业学生与非计算机专业学生之间在这方面的专业能力差距逐渐缩小甚至消失。计算机专业学生所完成的程序在程序结构、程序的可靠性、可维护性、可扩展性、程序的时空效率、以及程序的风格和可读性等方面与非计算机专业学生的程序差别不大。
造成上述这种情况的原因,从教学方面看主要有三点:一是目前“C语言程序设计”课程的教学内容偏窄偏浅;二是教学方法不适当;三是实验考核手段落后。从学生学习的角度看,也存在对学习内容和方法不适应的问题。大多数的学生从小学到中学,已经适应了记概念、背知识点、应付书面考试的学习模式,对于灵活运用所学知识去分析解决问题,缺乏必要的训练。当程序设计教学仍然是以程序设计语言为主、以概念为主、以书面教学为主时,就更会强化学生原有的思维模式和学习方法,把这门课程当成以概念和知识点学习为主的理论型课程,忽视了对实际能力的培养。
2指导思想
C语言课程是培养学生专业能力的重要课程,其教学效果对学生今后其他专业课程的学习以及毕业后的专业工作前景都有重要的影响。为解决C语言课程在程序设计能力培养方面的不足,需要根据当前学生的特点,在课程教学目标、课程指导思想、课程内容设置和组织、练习和考试的方法及重点等方面进行调整和改革,使学生在掌握运用C语言进行程序设计的同时,在分析问题和解决问题的能力上有显著的进步,在程序设计的各个环节养成良好的习惯,为后续的专业课程学习提供必要的程序设计知识和能力,为今后深入掌握专业化的程序设计能力打下良好的基础。
对于计算机专业的学生来说,C语言课程的教学目标不仅仅是使学生了解和掌握C语言本身,而且应该使学生深入掌握程序设计的思路和方法。C语言课程应该是学习使用C语言进行程序设计的课程,而不是仅仅学习C语言本身的课程。程序设计语言与程序设计是互为表里的。程序设计的作用是表达程序设计者的思想,是按照计算机所能理解和执行的方式描述需要让计算机完成的工作,而程序设计语言则是表达这种思想的工具。在程序设计工作中,首先需要明确的是所要表达的思想到底是什么,也就是到底需要计算机按照什么样的步骤来执行计算过程,产生什么样的计算结果。至于采用什么样的语言,以及这种语言的细节,则是第二位的。因此,对于没有程序设计经验的学生的教学,必须把程序设计的思想和方法放在中心的位置,而把程序设计语言作为讲述程序设计思想和方法的工具。
3课程的内容和安排
为使学生通过C语言的学习掌握程序设计的能力,养成良好的程序设计习惯,并在分析问题和解决问题的能力上得到培养和锻炼,需要在课程的教学内容和侧重点上进行必要的调整,在教学方法上进行必要的改进,在实验和考核的手段上进行必要的革新,在教学过程的组织和安排上与其他相关课程更好地协调。
首先,需要把教学的重点从C语言本身转移到程序设计的思路和方法、以及运用C语言进行程序设计上来,把讲授语言的概念转变为讲授语言运用,把对概念的讲授由抽象的分析和讲解转变为通过实例和经验对概念的学习。教学内容应当围绕程序设计的思想和方法进行组织,把C语言作为讲解程序设计的工具,在讲解程序设计的思想、方法和步骤的过程中,根据程序描述的需要,本着由简到繁,由浅入深的原则,逐步讲解C语言中的知识点,特别是C语言要素在程序设计中的运用。
其次,“C语言程序设计”课程是一门实践性和应用性很强的课程,因此这门课程在教学方法上必然要不同于其他各种理论性课程。它不是以概念的学习为中心,而是以概念运用能力的培养为中心。对于概念和基本知识的掌握,更多地不是通过理论分析,而是通过对实例的分析和在实践中的运用。对练习题的分析、讲解、讨论以及在练习现场的答疑都是教学中的要点。对一些复杂概念的引入和探讨只有在学生具有了相当的实践经验时进行,才能使学生真正地接受。
第三,在教学安排方面要充分考虑C语言的基础性、应用性、专业性的特点,以及该课程与其他课程的关联和配合。复杂的程序设计知识需要有“数据结构”等先修课程作为基础,同时,基本的C语言知识和程序阅读和理解能力,也是其他一些专业课程,包括“数据结构”等课程在内的基础。为了适应学生知识水平和学习能力的现状,并考虑与其他课程的衔接和协调,我们把“C语言程序设计”课程的内容分为两个部分,分两个阶段讲授。第一个阶段主要针对没有程序设计经验的初学者讲授程序设计的基本方法和C语言的入门知识,第二阶段主要是在第一阶段的基础上进一步提高学生的程序设计能力,培养学生专业化程序设计能力的基础,以及对C语言的深入理解和把握。
第一阶段课程教学的重点内容是程序设计的基本思路、步骤和方法,以及简单的程序设计技术和C语言的运用,目的是培养学生程序设计的基本能力和初步培养学生良好的程序设计习惯,使他们知道如何着手分析一个问题,如何把解决问题的过程分解成一个个紧密衔接的步骤,如何用C语言准确地描述这些步骤,以及当程序出现错误时如何迅速准确地发现问题的原因,找到解决的方法。在这一阶段的教学中,在讲授方法上应以例题分析和讨论为主,避免从概念到概念的论述,特别注意避免过于深奥的概念的引入和讨论,以免学生在未掌握程序设计基本方法和思考习惯的情况下把注意力不适当地投入对概念理解的过分追求。对于概念和理论,应该只对必要的内容做适当的介绍,更多地把学生的注意力引入到对这些概念的运用中。应该更多地讲授使用C语言进行程序设计的实例,通过实例讲授分析问题的方法以及程序设计的基本思路、过程和步骤。对于C语言本身,主要应介绍各种基本语言要素和使用方法,介绍简单程序的编写、调试和运行过程和操作步骤,讲授一些基本的算法、数据结构的C语言实现方法和特点。对于C语言的语法和语义,应尽量通过例题的示范进行概括性的介绍。对于其中的细节,则应留给学生通过上机实习,自己逐步深入了解和掌握。这一阶段的教学目标是使学生能阅读和理解一些较为复杂的程序,并能在较短的时间内独立完成具有初等难度、长度约几十行的程序的设计、实现和调试。
第二阶段的教学主要集中在对程序设计能力、特别是专业程序设计能力基础的培养上。在学生学习了“数据结构”及其他相关的课程之后,可以进一步引入专业化的程序设计思想,介绍专业化的程序设计应当考虑的一些问题,对比不同的解题思路实现的难易程度,对比不同的算法和实现方法在时空效率方面的优劣,对比不同的程序设计风格对程序的可读性、可维护性、可扩展性、可移植性等方面的影响,讲授程序质量的判断标准等。在这一阶段也可以引导学生进一步深入理解C语言中的一些重要概念和C语言的特点,使学生在C语言运用的技巧方面得到锻炼,在程序设计的水平方面得到提高。这一阶段的教学内容包括对C语言属性、特点和重要概念的深入讲解、对C语言中难点的深入分析,对程序设计思路、过程和步骤的进一步系统化,以及信息领域常用算法的实现,程序和软硬件系统的关系,程序的调试和测试,程序的时空效率和优化,程序设计的风格,中型程序的结构和组织等。在掌握了这部分内容之后,学生应该能够独立完成较为复杂的,长度在百行以上的程序的设计、实现和调试,知道如何充分测试一个程序,以保证其运行的可靠,知道如何正确地组织一个较大的程序,以保证其可维护性和可扩展性,知道如何优化一个程序,以满足对时空效率的要求。在这一阶段的教学过程中,在教学方法上可以更多地采用启发式的方法,可以拿出一定的时间展开课堂讨论和习题分析,引导学生主动地学习。同时,在练习题方面也可以适当提供一些难题,以便为学有余力的学生提供更大的学习空间。
4练习和考试
程序设计课程是一门实践性很强的专业技术课程。只有加强实践环节,让学生在失败的和成功的实践中通过自己的经验积累才能切实掌握实际知识的运用能力。在课程教学的过程中不仅要重视理论教学,重视教学内容的设置,也要重视实践环节的设置,重视为学生提供具有及时监控和反馈环节的实践环境。在课程的考核环节,应该以检验学生的实际程序设计能力为主,关键概念为辅。对于语言的语法细节和使用方式,则不应单独作为考核的题目,而应该与对程序设计能力的考核有机地融和在一起,以改变学生读书、背概念、应付考试的学习模式。
程序设计题目和源程序答案具有高度的灵活性和差异性,难以进行常规的标准化评测。受评测方式的制约,传统程序设计语言的练习及考试一般以标准化的笔试题为主,偏重于考察程序设计语言的基本概念和语法细节,而程序设计题目所占比重较小。这种练习及考试方式易于导致学生忽视编程实践能力和理论联系实际能力的培养。为此,需要在练习和考试中改变传统的方法,要求学生以实际程序设计为主进行练习,通过实际程序设计对学生的学习效果进行考核。这种练习和考试的方式改变了练习的目的,使练习由过去简单地复习课堂的讲授内容改变为由学生通过实践环节进行自学。这样,课堂讲授就可以集中对关键内容上,而不必在语言本身的细节上花费过多的时间。
5技术支持手段
为采用“以实际程序设计为主进行练习,通过实际程序设计进行考核”的实践及考试方式,需要为学生在编程实践中提供具有及时监控和反馈功能的实践环境,并在课程作业方面增加程序设计题目的比例。这样,不但可以提高练习和考试的强度,使得习题更加接近实际程序设计的要求,而且也更能检验教学效果和学生的实际程序设计能力。学生的答题工作全部在计算机上进行,提交的答案必须是不存在任何语法和逻辑错误、能解决一个完整问题的源程序。学生在学习阶段必须重视实际编程能力,提高对代码质量和编程风格的要求,养成良好的编程习惯。同时,这也可以改变以往基于经验和直观感觉的人工阅卷方式,提高阅卷的效率,减轻教师的阅卷负担,保证成绩评定的准确和公正。而且,在C语言这样一门具有很强实践性的信息技术专业基础课程的实践环节采用基于信息技术的自动化支持手段,其本身也是对学生的一种示范和启发。
在自动化的评测系统中,最重要的问题是对程序设计题目的评测方式和标准。对程序的评价既有内在属性的指标,如功能、性能、正确性、可靠性等,也有外在属性的指标,如程序的结构、可读性、风格等。根据本课程的教学要求,程序评测系统主要采用内在属性指标,学生所完成的程序必须通过编译,产生可执行代码文件,在计算机上运行,根据题目的要求读入输入数据,进行正确的运算,产生正确的输出数据,才能得分。这种方式可以检查学生程序语法和基本功能的正确性。对程序的功能完整性和性能的评测通过设计具有不同难度的输入数据来完成。这样,就可以对学生的程序在问题分析、数据结构和算法的选择、实现的正确性和效率等多个方面产生适当的区分度。同时,为了全面提高学生专业化程序设计的能力,也可适当引入一些外在属性的指标以及相应的评测手段,以检验学生程序在程序的结构、可读性、风格等方面的水平。
根据这些原则,我们设计和实现了一个基于Web的程序设计语言练习及考试评测系统,并开通了C语言课程教学网站。该练习及考试评测系统由配置工具、命题及题库管理工具、Web应用服务器、程序题评测服务器、考试控制工具、成绩统计工具等组成,具有很强的可配置性和可扩展性,能够适应不同的练习和考试要求。为防范考试中可能的作弊行为,系统提供了实时网络监测工具和程序源文件及可执行码的功能;在一场考试中可以使用具有相同难度的多份试卷,以避免相邻座位学生之间的交流和抄袭。练习及考试评测系统既支持程序设计类型的试题,又支持单选、多选、填空等标准化试题。为适应练习和考试的不同要求,对所提交的答案可以分别设置为立即评测和定时评测。这样,在练习过程中学生就可以及时得知自己的答案是否正确,并及时改正错误。练习及考试评测系统可以自动完成对学生成绩的评测和统计,并根据需要生成成绩表。这样,不仅可以使教师及时准确地掌握学生的成绩,发现存在的问题,而且可以大大减轻教师的工作负担。
篇5
一、如何应对全国计算机二级等级考试的公共基础知识大纲
计算机二级考试大纲中关于基础知识的有数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分,下面笔者分别介绍一下这些部分的学习重点和方法:
1.数据结构与算法。
本章内容在计算机专业基础课中相对较复杂,考生对本章的内容必须理解,死记硬背是无效的。在二级等级考试中本章考核的重点和难点为二叉树的相关知识,其考核的形式主要为二叉树的遍历问题(如给图求遍历序列,给前序、中序遍历求后序遍历等)、二叉树的结点问题(如给出一些条件然后求叶子结点个数)、排序和查找。排序主要以计算时间复杂度的形式考核,查找主要以计算最佳、最坏比较次数的方式考核,其余的知识点主要以概念的形式考核,考生需要仔细看书并理解。
2.程序设计基础与软件工程基础。
这两章以概述的形式简介了规范化开发软件的方法。与数据结构不同,这两章内容主要是记忆性的知识点。程序设计基础这章在原大纲的基础上添加了面向对象程序设计的内容,考生对这部分知识了解即可;软件工程基础这章主要考核结构化分析、结构化设计方法(即SA及SD,约占50%)、软件测试(约占20%),考生需熟记相关的概念及规则。
3.数据库设计基础。
数据库是当前软件处理的信息核心,目前大部分软件是基于数据库的,因此,考生学习数据库的知识对程序开发是大有裨益的。本章主要的考点是关系模型、关系代数及数据库系统的基本概念,考生对其余的知识点了解即可。对于数据库的设计和管理,考生结合软件工程来看,会发现这两者有很多相似之处。本章内容除了关系代数会考一些简单的计算问题外,其余的都以概念题的形式出现,考生需要有针对性地进行复习。
二、二级公共基础知识的特点
大纲对全国计算机二级等级考试作了重大的调整:在取消了过时的考试科目和调整了一些科目的考试之外,新增加了目前比较流行的计算机语言C++、Java和Access数据库。公共基础知识的考核方式为笔试,与C语言程序设计、C++语言程序设计、Java语言程序设计、Visual Basic语言程序设计、Visual FoxPro数据库程序设计或Access数据库程序设计的笔试部分合为一张试卷,共有10道选择题和5道填空题,占全国计算机二级等级考试笔试总分的30%。公共基础知识部分的试题具有如下特点:
1.涉及面广,但难度小。
全国计算机二级等级考试中有关公共基础知识部分涉及的内容,从整体上分析,考核内容的难度不大,考点也相对比较集中。
2.考核重点为基本概念、基本方法和基本运算。
考试中涉及的题目都是基本概念、基本方法和基本运算,考核以概念和认识性内容为主,理解性、应用性内容极少。
3.考核重点是数据结构和算法。
数据结构和算法、程序设计基础、软件工程基础、数据库设计基础部分各占公共基础知识部分题目的百分比分别为:50%、12.5%、18.75%、18.75%,可见在全国计算机二级考试中,数据结构和算法是重点。
三、学习方法
1.考生的复习必须遵守“80/20的原则”。
全国计算机二级等级考试的公共基础知识部分覆盖面广,它至少涵盖了计算机应用专业的四门核心课程:数据结构与算法、程序设计基础、软件工程基础、数据库设计基础。事实上,这些课程本身的涉及面就很广,难度系数较大。所以,考生应把80%的时间用在20%的重点知识点上,争取用20%的重点知识点来答对80%的考题,这是考生复习全国计算机二级等级考试的公共知识部分的总体思路。
2.复习的关键是考生必须准确判断和掌握常见的考点。
考生必须准确判断和掌握常见考点,例如:算法部分主要考查算法的概念及算法的复杂度,数据结构部分主要考查最基本的概念、最典型的数据结构和最常见的操作,程序设计部分主要考查程序设计风格的基本要求、结构化程序设计的最基本知识和面向对象程序设计的最常见概念,软件工程基础部分主要考查软件工程的基本概念和软件生命周期的各个阶段的基础知识,数据库设计基础部分主要考查数据库基本概念、数据模型、关系代数基础知识、数据库设计方法和步骤。考生对常见考点的准确把握能避免盲目地复习,从而轻松面对考试。
3.基础知识的掌握方法。
很多考生在复习公共基础部分时都会发现内容零散,知识点之间的跳跃性大,似乎没有连续性。所以掌握起来很困难,似懂非懂,对知识点处于模糊认知状态。因此,考生必须在准确把握知识点的基础上,学会把“知识点”连成“知识链”,并把“知识链”织成“知识网”。
4.做题技巧。
考生切勿采取题海战术。对全国计算机二级等级考试公共知识部分,学生没有必要做大量的题目,更不能为了应付考试记一大堆错误答案。
5.非“灵活”地掌握知识点。
考生在掌握知识点时最好经历一个“先死后活、熟能生巧”的过程。全国计算机二级等级考试要求的知识点都是最基本的、最简单的,真正需要“灵活”掌握的考点极少。很多考生在考试过程中发现,该部分的题目“会做就是不懂”。所以笔者建议考生在复习过程中不要急于“灵活”,其实考生只要掌握基本的知识点,自然就“灵活”了。
6.答题技巧。
考生在遇到难题时要考虑成本和效果的关系,公共知识部分仅占30分,题目相对简单。因此,考生在答题过程中,对这部分内容要争取速度快、准确度高。在全国计算机二级等级考试中常常出现这样的情景:有些考生为了一道小题花费很长时间仍没有找到任何线索。一般来说,公共知识部分的考题难度不大,没有一道题目需要考虑很长时间。所以,考生如果做一道公共基础题在两分钟内没有任何思路时,就应该跳过此题,把时间留给后面的题目。
参考文献:
[1]全国计算机等级考试二级教程――公共基础.2008.
篇6
关键词:C语言;教学效果;激发兴趣;注重实践;多媒体教学
中图分类号:G420文献标识码:A文章编号:16727800(2011)012020002
作者简介:宋美英(1982-),女,山西吕梁人,硕士,吕梁学院离石师范分校助理讲师,研究方向为计算机应用技术。1引导学生正确定位课程性质,明确学习目标
1.1明确学习本课程的重要性
C语言程序设计作为一门程序设计入门课程,对培养学生的算法和程序的设计能力、形成良好的程序设计风格起到基础性和先导性的重要作用。通过学习,可以使学生掌握程序设计的基本思想,具备通过程序设计解决实际问题的基本能力。同时,也是学习数据结构、C++程序设计等课程的先修课程,在教学培养方案中起到承上启下的作用。
1.2了解C语言的用途
C语言是目前世界上最为流行的计算机高级程序设计语言之一,它的应用领域非常广泛,既适合于编写应用软件,又特别适合于编写系统软件。目前,C语言在其原有应用领域的基础上,又拓展了支持大型数据库开发和Internet及嵌入式系统等新的应用领域。C语言广泛应用领域和极强的生命力,使其受到广大计算机工作者的肯定和欢迎。
有一种错误的认识,认为C语言就是DOS下的编程,这种错误认识直接导致学生学习C语言的兴趣远不及其他面向对象的程序设计语言,如Visual FoxPro、Visual Basic等。针对这种情况,可以在正式授课之前,通过向学生展示历届学生的优秀作品,来展示C语言的数据处理、图形和动画等功能,使学生对C语言有一个正确的认识,明确学习目标。
2精选实例,激发学生的学习兴趣
2.1选取的实例应是科学性与趣味性的高度统一
选取的实例,应既能涵盖知识点又具有趣味性。例如,在讲授算术运算符时,可以设计“计算器”问题;在讲授选择结构时,可以设计“判定闰年”问题、“学生成绩管理系统的菜单界面设计”问题;在讲授循环结构时,可以设计“水仙花数”、“完全数”、“素数”等数学数据问题,也可以引入中国古代数学家张丘建在他的《算经》中提出的著名的“百钱买百鸡”问题和“验证歌德巴赫猜想”问题(100以内任何一个大于6的偶数都可以表示成两个素数之和);在讲授数组时,可以设计“杨辉三角形”、“歌手大奖赛”问题;在讲授循环链表时,可以引入“约瑟夫问题”等。这些具有趣味性的实例,可以有效激发学生的学习兴趣,提高教学效果。
2.2不同技能培养阶段,应循序渐近地选取难易适中的实例
学生们经常会对看起来稍微有些复杂的程序望而却步,往往不是因为难度太大,而是感觉离成功的距离还很远。如果选取过于复杂的实例,反而会导致学生的自信心受到打击,降低学习兴趣。例如,在讲授数组时,可以设计“歌手大奖赛”问题:10个评委为选手打分,为了遵循公平公正的比赛原则,记分方式为去掉一个最高分和一个最低分,中间8个评分的平均值为该选手的最后得分。教学时,可以引导学生循序渐近地将该实例分为以下几个阶段来完成:①输入10个评委的评分;②查找最高分和最低分;③最高分与最低分不计入总分,计算其余8个评分的平均分(该阶段实现时,需引导学生注意有多个最高分或最低分的情况)。这样,把大目标分解成若干个小目标,分阶段去实现,让学生品尝阶段性成功的喜悦,增强学生攀登知识高峰的信心和勇气。
3加强实践环节,突出动手能力的培养
3.1分组实验,促进各个层次学生的全面提高
课程进行一段时间后,教师已经对学生有了一定的了解,此时可根据学生的知识掌握情况和编程能力,将学生进行搭配分组。在平时的实践课上进行需独立完成的小规模程序时,可以通过互相讨论有效促进各个层次学生的全面提高。在课程末期进行较大规模程序的课程设计时,以小组为单位,自行分工,合作完成。这个综合实践作业不仅可以培养学生使用所学知识解决实际问题的能力,而且可以培养学生的创新意识、团队合作精神和集体观念。
3.2将实践环节记入期末成绩,进行课程考核方式的改革
传统的考试多以C语言复杂多变的语法为难点,测试学生对基本概念等理论知识的掌握程度。在题型上普遍采用选择、判断、填空、简答等形式,涉及编程的部分所占比例比较小。这种考核方式使不少学生为应付考试而死记硬背概念,完全偏离了理论与实践相结合的教学准则。因此,结合学生在平时实践课和学期末的课程设计两方面的编程情况作为平时成绩,与期末考试卷面成绩按一定比例折算,作为学生的期末综合成绩较为妥当。一方面,更有利于全面衡量学生的学习情况,另一方面,也可以提高学生对实践课的重视程度,有利于开展教学工作,全面提高教学质量。
4充分利用多媒体教学手段,提高教学效率
传统的黑板加粉笔的教学手段,往往由于板书、绘图等占用很大比例的课堂时间,学生课堂消化知识的时间较少,课外作业负担重。而在讲授上机步骤和程序调试方法等内容时,传统教学方式也暴露出了明显的弊端。
提高教学效率是多媒体教学手段的显著优势。将多媒体教学手段与传统教学手段有机结合,不仅可以增加学生的课堂讨论与练习时间,而且可以使抽象的知识具体化、形象化,图文并茂地将枯燥的程序设计知识变得形象生动,更有助于学生对知识的理解。例如,在讲授选择结构和循环结构的流程、函数的递归调用和嵌套调用时,利用生动的画面演示执行的过程,可以达到事半功倍的教学效果。
5结束语
只要在课程初期对学生加以正确的引导,在教学过程中注重培养学习兴趣,加强实践环节的培养,进行教学手段和课程考核方式的改革,就一定能够充分调动学生的学习积极性,使学生真正能够通过所学知识解决实际生活中的问题,开创C语言程序设计教学的新局面。参考文献:
[1]董汉丽.C语言程序设计(第五版)[M].大连:大连理工大学出版社,2009.
[2]董志民,崔建平,肖利娜.《C语言程序设计》教学改革探索与实践[J].福建电脑,2007(5).
(责任编辑:周晓辉) Research on Improve the C Programming Education Effect
篇7
一. 目前团委网站现状。
团委工作在网站的开展不断深化,现有的功能应用已不能满足需求。网站目前存在重多问题,局限了网站的发展。企业对信息安全的重视,暴露出网站安全管理上的设计缺陷。鉴于存在的问题,将对网站整体改版,打破现有内容布局,完善后台管理,制定网站发展规划。
目前网站存在的问题:
1. 功能设计不能满足需要。
2. 用户管理混乱,带来信息安全隐患。
3. 页面布局不合理,信息分类管理杂乱。
4. 页面设计不美观。
二. 网站改版项目计划。
〔1〕 项目资金。
****元
〔2〕 费用明细。
1. 网站设计支出。
2. 服务器租用与维护。
3. 网站推广活动。
〔3〕 人员组成与分工。
***:负责网站改版所有事务,制定网站发展规划,协调各方工作。
***:负责网站后台程序设计,技术维护。
***: 负责网站美工制作,视觉设计。
(4) 网站改版日程。
2010年2月中旬完成整体设计;
2010年3月正式投入使用。
三. 网站改版项目规划。
设计原则:
以界面的简洁化,功能模块的灵活变通性为原则,建立适合自身需求的网络平台,提供广泛的涵盖用户多种需求的功能。网站的整体规划及框架设计具有可扩充性,前台页面的设计能保证网站在增加栏目后不会破坏网站的整体结构。网站的内容及栏目规划充分考虑到了日后维护的便捷性,方便的对网站内容进行审核、管理、维护。提高网站易用性、改善用户体验。
(1) 网站内容规划。
1. 团委工作。
开展团委日常工作,宣传报道开展的活动。
2. 基层团支部。
报道团支部开展的团委工作,优秀团员事迹,介绍团委专题工作。
3. 学习天地。
学习共青团知识,思想教育。开展网络课堂,以图片、视频形式学习各种知识。
4. 青年服务。
通过青年服务工程,为日常生活提供便利;推出青年卡,介绍打折优惠信息;开辟娱乐板块,活跃网站气氛。
(2) 网站功能设计。
1. 完善团委工作平台,实现网络办公。
2. 完善网络会议功能。
3. 设计访问统计,分析职工思想动向。
4. 增上信息服务,提供生活便利查询。
5. 完善信息搜索功能。
6. 建立图片宣传动态管理。
(3) 网页设计风格。
遵循石化企业团委vi(企业视觉识别)设计风格,主色调选择红色,要求结构严谨而简洁,采用模板及css网页风格技术。
(4) 后台管理。
网站后台管理将网站信息进行集中分类管理,操作界面简单、方便。管理员管理权限系统能够支持用户分级管理,设置后台用户可管理哪些栏目,将庞大的资料管理工作分配给多个管理员完成,做到专人专职、责权分明,优化人力资源,提高网站信息的更新效率,简便网站信息审核与管理的流程。同时网站管理员能够实时对版主进行管理,随时修改、删除版主的信息与使用权限,保证系统的安全可靠性。
四. 网站日常管理。
〔1〕 网站日常运作。
1. 网站管理组负责网站日常维护,管理网站事务。
2. 团委负责团委工作的日常。
3. 各车间团支部负责车间团委工作及活动的。
4. 版主负责各版块日常维护。
5. 厂协会、合作团体在指定板块授权发帖。
6. 开辟个人专栏,授权发帖。
〔2〕 信息安全管理。
1. 网站服务器委托信息中心管理。
2. 建立网站管理员、团支部、版主,授权分级管理。
3. 信息严格审核,追踪不良信息的ip来源。
4. 用户功能授权设置,部分页面授权查看。
〔3〕 网站宣传推广。
1. 配合团委工作制作专题。
2. 结合青年卡、青工技能网、文艺社团开展活动。
3. 版主组织开展活动,活跃板块气氛。
4. 结合相关事件、节日开展网站活动。
5. 与洛石化工会、各协会,以及其他单位合作开展活动。
五. 网站改版效果评测。
进行用户满意度调查,及时修改纠正改版后功能和栏目中不太合理或不足的地方,保证最大限度地满足需求。
网站评测内容:
1. 内容布局合理。
2. 页面设计风格。
3. 功能操作便捷。
4. 网站访问速度。
5. 用户体验指数。
篇8
关键词: 双语教学;Java程序设计;教学方法
中图分类号:G642文献标识码:A文章编号:1006-4311(2012)04-0244-020引言
随着经济的快速发展,英语在IT行业显得越来越重要。如何在IT领域中培养具有国际合作意识和国际交流与竞争能力的专长人才成为高校教师需要仔细考虑的问题。国家教育部要求高校本科教学改革要推动双语教学课程建设,探索有效的教学方法和模式,提高大学生的专业英语水平和直接使用英语进行科研的能力。双语教学正成为高校课程改革的一个热门话题,也是教学改革中的一个新鲜点和困难点。
所谓双语教学[1,2],是指在专业学科课程的教学中采用国外原版教材,而授课中采用中外两种语言交叉进行的一种方法。双语教学有助于学生直接地了解国际文化和教育背景,更好地参与创造和分享世界最新的文明和文化成果。采用双语教学[3,4]把外语作为知识的载体,使所讲授的知识与英文语言相联系,不仅让学生掌握所学知识,而且让学生从两种语言,两种思维角度来理解同一问题,加深学生对知识的理解程度。
Java是20世纪90年代初由sun公司推出的一种纯面向对象的程序设计工具,具有与平台无关的特性,特别适合于Internet的应用开发。Java语言已经成为国内外各IT公司首选的开发语言之一。因此,学习和掌握Java已成为越来越多程序设计人员的选择,国内外许多大学都已将《Java程序设计》列入了信息类专业的骨干课程。因此开展《Java程序设计》双语教学是十分必要的,不仅能够进一步提高学生的外语水平,也有助于培养学生独立获取国外先进科技成就的能力。
1《Java程序设计》双语教学实践
1.1 教材选取实施双语教学,教材的选择至关重要。本课程采用美国Harvey M.Deitel编著的Small Java How to Program,6/E原版教材进行授课,内容符合教学大纲要求的深度和广度。该教材简明清晰、论述层次分明,具有较强的逻辑性和较新的知识体系。该教材通篇使用大家熟悉的学生成绩管理这个案例来呈现Java的各种操作以及面向对象的各种相关概念,并且配备了大量的自测练习与程序设计练习,从而使学生在理论上和实践上达到统一。
1.2 教学方法与手段无论学习哪一种程序设计语言,最重要的是掌握其程序设计思想,而不是语言的外在形式。程序设计思想是在反复的实践、观察、分析、比较、总结中潜移默化积累的。掌握了程序设计思想的学生在面对新的程序设计语言时,只需要了解该语言的语法特点就可以在很快的时间内融会贯通,最终达到学以致用的目的。为了更好的启发学生的程序设计思想,首先要培养学生的形象思维能力。形象思维是在形象反映客体的具体形状或姿态的感性认识基础上,通过意象、联想和想象来揭示对象的本质及其规律的思维方式。在教学中恰当地应用形象思维的联想和类比的方法,可以使抽象的难以理解的教学内容具体化、形象化,不仅有利于学生理解和记忆,而且使教学生动、有趣,激发他们的学习兴趣和创新能力。形象思维有助于激发学生的学习兴趣。兴趣是思维发展的巨大动力,是最积极的内在学习动机。其次,要培养学生解决实际问题的能力,以解决实际问题的程序设计思想作为教学的切入点,加强基础、强化实践、注重应用、引导创新,启发学生用程序的方式来解决问题,要把程序的组织结构、语句含义、运行流程和实际问题对应起来。为了有效地使学生掌握程序设计思想,在教学的过程中,运用案例教学、网络教学和阶梯式教学等多种教学手段。
1.2.1 案例教学在Java语言的教学过程中,教师讲授的所有演示程序都是来自于现实,例如Small Java How to Program教材中的成绩评定案例。首先,通过案例的教学,使得学生掌握程序设计思想和形象思维能力。其次,通过对案例采取逐步加强式的扩展,揭示程序由小到大、由简单到复杂直到实用的过程,激发学生的探索热情和兴趣,使学生掌握知识间的联系和程序设计思想,获得解决实际问题的程序设计能力。
1.2.2 网络教学Java语言是一门实践性很强的语言。为此,将传统的课堂教学改为在实验室进行网络教学,通过网络教学,学生能够积极参与到教师教学中来,增强学生学习的主观能动性。使用网络进行教学,学生可以同步感受和参与软件的运行过程,增强他们的学习兴趣。这项教学方式可以使学生通过视、听等多种手段获取教学信息,避免了学习时的倦怠情况产生。网络教学能真正体现出教学过程的实时交互性,教师可以通过监视管理功能,指导学生解决问题,学生也可以通过电子举手的方法提出自己的看法和问题,向老师提出疑难,它与传统教学的区别在于,不受时空方面的限制,可以是课堂教学的延续,也可以自成一体,真正实现计算机独立教学。学生在这种交互式教学环境中有了主动参与的可能,教师在主端提问,学生在各个终端设备上可以即时实施回答,保证了教学的同步性、及时性,教师可以及时检查学生的学习情况,学生也可以及时向教师提问,让两者之间的关系更为紧密,交流更为便捷。
1.2.3 阶梯式教学它是引导学生循序渐进的一种新的教学模式。可以防止学生在学习的过程中产生畏惧和排斥心理。对于大部分学生而言,英语基础较为薄弱,它要求学生灵活掌握中文和英文的使用比例,在双语教学过程中,并不急于求成,而是根据自身的具体情况和教学的基本要求来制定教学计划,以便顺利地实现教学目的。
1.3 实践教学Java程序设计课程是一门综合性较强的课程,上机实验是至关重要的教学环节。上机实验注重培养学生基本程序设计和调试能力。基本程序设计和调试能力是深入学习本课程并取得实际程序设计能力的前提。通过上机实验,学生会发现很多意想不到或未引起足够重视的问题;通过解决这些遇到的问题,学生会加深对语法的理解,提高程序调试和实际程序设计能力。通过上机实验,可以检验学生是否真正掌握和运用该语言。根据教学内容编写了一套以调试技术、基本语法、基本算法、综合程序设计为核心内容的综合性程序设计来进行上机实验。综合性程序设计以一个或若干个章节为基础,设计若干个具有典型性、综合性和示范性,能突出难点与实用价值的综合性程序设计题。通过综合性程序设计,学生能进一步巩固和掌握基本语法、基本算法和基本调试技术,养成良好程序设计风格,形成软件工程化思想。
1.4 考核方式在考核方法的选择上,我们要根据双语教学的具体特点,制定灵活多样的考核形式,注重对学生综合能力的考察,不仅考察学生的专业学科知识,更注重考察其实际应用能力。平时作业、课堂表现和期末考试是考查教学效果的有效方法。平时作业的内容是教材的基本的程序设计题,侧重考查学生对课堂内容的理解,占总成绩的20%。课堂表现主要考查学生的课堂参与能力和专注能力以及表达能力,占总成绩的20%。期末考试,占总成绩的60%,注重对教学的重点内容和所学知识的综合应用能力的考评。基础知识考核以选择、判断、填空为主,检查学生对Java语言基础知识的掌握程序以及对于英文原版教材的熟悉程度。程序设计题考核学生运用Java语言进行程序设计的能力。实验环节的成绩单独评定。通过Java语言的双语教学,学生能够掌握大量的英文专业术语,对于提高学生的能力、开拓学生视野有很大的帮助。
2结束语
按照以上教学方法和手段,《Java程序设计》课程的双语教学基本达到了预期目标,收到了较好的效果。通过实施双语教学,学生提高了程序设计能力和外语的应用能力,了解了国际上程序设计语言的动态。。在双语教学过程中,教师要认真研究教学对象、精心设计教学过程,重视对学生的引导和辅导,双语教学才能收到较好效果。要根本地提高Java程序设计双语教学的教学效果,经过各方面的共同努力,总结经验与教训,探索适合自己的更有效的双语教学方法。
参考文献:
[1]隋红霞.关于高校双语教学中几个问题的思考[J].大家,2010(23).
[2]张引琼,戴小鹏.“Java程序设计”双语教学模式的分析与实践[J].当代教育理论与实践,2011,3(4):126-127.
篇9
关键词:案例;案例教学;C++语言程序设计
“C++语言程序设计”作为计算机应用及相关专业的重要基础课程,具有较强的理论性、实践性和创造性,它是在C语言的基础上发展演变而来的一种面向对象程序设计语言,提供了面向对象程序设计风格,更接近于目前常用软件开发平台的软件开发思想,从而成为当今计算机教学的核心内容。由于C++牵涉到的概念比较复杂,规则繁多,使用灵活但容易出错,长期以来,C++语言被认为是较难学习的专业开发语言,如果采用传统的课堂讲授教学法,则教学内容仍然是理论与实践相脱节,使课堂教学显得空洞、呆板,缺乏学习兴趣,束缚了学生的思维发展且不能考核出学生的实际操作水平、综合分析能力及创新能力。经过多年的教学实践和不断探索,笔者认为案例教学法能弥补传统教学法在讲授“C++语言程序设计”时的不足,也是提高学生学习兴趣的有效手段之一。那么,如何在对高职院校专科生进行C++语言的教学中,使学生能够了解C++语言程序设计的基本概念和方法,进而领会程序设计的奥秘,掌握C++语言的编程技巧,提高该课程的教学效果,是每一位计算机教师在教学中应该努力探讨的问题。
1案例教学法的基本思想
案例教学法是一种生动、灵活、多样化的教学方法,由于它自身的特点,同时经过长期的教学实践,已经形成了独具特色的教学方法,更确切地说,它已成为一种重要的教学形式,是教育者本着理论与实际有机整合的宗旨,遵循教学目的要求,以案例为基本素材,将学习者引入一个特定的真实情境中,通过师生、生生之间双向和多向互动,积极参与,平等对话和研讨,重点培养学习者的批判反思意识及团体合作能力,并促使学习者充分理解问题之复杂性、变化性、多样性等属性的重要教学形式[1]。它在非计算机专业学科教学中采用较多,由于它的独特魅力,现在已被应用到很多学科的教学当中,而关于案例教学在“C++语言程序设计”教学中进行运用的理论性研究相对来说目前并不多,所以如何更好地发挥案例教学在教学中的作用值得探讨。程序设计教学的最终目的是要让学生学会进行软件设计及软件开发,培养学生的实际动手能力和探究、创新能力,所以在案例的选取方面要精,要有代表性和典型性,同时要考虑到学生的认知特点。
2案例教学法中的案例选择
案例教学法的成功取决于:(1)教师的素质和教师在教学过程中角色的合理定位。在案例教学中,教师不是主角,他只起一个引导和启发的作用。(2)学生的角色定位。学生是主角,积极主动地参与到案例教学过程中,他们之间可以开展讨论,甚至辩论,其目的就是要把问题分析透彻,最后解决问题。(3)选择案例的质量。案例的选择是“C++语言程序设计”课程案例教学法的重要环节,直接影响教学效果,应依据专业方向的培养目标,课程内容,教学目的以及课程特点来进行案例的选择,在课程的案例选择中一般应注意以下几个方面的内容。
2.1实用性
将案例引入教学的目的在于理论联系实际以促进教学。学习C++后要求学生能系统地进行程序设计,而不是学会一些语句及简单地计算机操作,所以,从教学内容和教学要求上看,在教学中举出一些实用的案例是很有必要的,通过案例,学生从知其局部到知其全面,从知其然到知其所以然,使学生通过具体的实例有“身临其境”的感觉,以某个系统设计员的角度考虑问题,这样做能启发学生把具体案例与C++语言联系起来,彼此贯通。
2.2趣味性
俗话说,兴趣是最好和老师,如果选择时钟这样传统的案例,学生初学时很难认可它的价值,不知学它何用,学习缺乏目的性,激不起学生学习的兴趣,这就需要教师在选择案例时要充分考虑其趣味性,让学生产生兴趣,从而有效调动学生的学习热情。
2.3综合性
C++是适合于编写大型复杂程序的语言,在编写小的程序时根本显现不出它的魅力,所以选择的案例要具有一定的难度,深度和综合性,不应过于简单,这样可以吸引学生对案例去反复琢磨、推敲,激励学生去系统地研究、分析,加深对难点、重点问题的认识和掌握,从而取得较好的整体教学效果。
2.4挑战性
“C++语言程序设计”是一门实践性很强的课程,而运用案例进行教学又是编程中不可缺少的一种方法,但是多数情况下,教师习惯采用正面实例进行对比分析,其实,反面实例往往比正面更能加深学生对问题的认识和理解。因此,在教学中可以采用一些反面实例,引导学生深思,鼓励学生运用所学知识完善实例,这是具有挑战性的环节,一般改别人的程序要比自己编程还难。
3实施案例教学的方法及策略
在程序设计教学中实施案例教学基本上分为两类方法:一是案例讲解法,二是案例分析法[2]。案例讲解法主要用于课堂教学中那些应用性很强的案例,放弃逻辑讲授而直接用案例讲解来教学,这里主要强调教师的讲解作用。案例分析法也叫案例讨论法,这里主要强调学生的参与性,主要培养学生创造性思维和解决问题的能力,通过讨论和分析来培养学生解决问题的思维方法和能力。
对于案例而言,由于它并不能包含某一种程序设计语言课程的全部内容,特别是一些原理性、概念性相对比较强的内容,虽然案例教学在实用性和重应用性方面有很大的优势,但在知识的系统性、连贯性上不如传统教学有优势。所以,要根据课程内容的性质寻找这两方面的接触点和相互之间的联系,将传统教学与案例教学有机地结合起来[3]。对于案例教学在“C++语言程序设计”教学实施中的具体教学流程如图1所示。
同时,教师在实施案例教学的过程中要进行不断地反思,进而改进教学策略来适应不断变化的课堂和学生的需求。
4 “C++语言程序设计”教学案例分析
以下通过一个案例在“C++语言程序设计”教学中的运用来更好地说明如何运用案例教学。
4.1案例选编
在案例的选编上,遵循案例选取的原则,选择一个大家比较容易理解的数制转换案例,该案例是计算器中的一个功能,比较有实用性,并且覆盖了C++语言中的数据类型定义、程序的流程控制、数组、函数调用和结构等内容,在设计上充分了体现程序开发的基本思路,既符合所需掌握知识的特点,又能让学生感兴趣[4],在完成了十以下进制的数制转换之后,还可在此基础上进行扩充,如增加十六进制转换和小数部分的转换等。
4.2案例的实施
(1) 在案例实施前,要运用传统的讲授法对C++语言的数据类型定义、程序的流程控制、数组、函数调用和结构等内容作一下简要的、系统的复习。让学生对这门语言有一个总的认识和总的把握,对在程序设计中所用到的堆栈结构和一些重要的概念进行了简要的介绍,因为这些概念相对来说比较难理解,主要是让学生在案例学习当中以及自己在实践操作中去慢慢接受和理解。
(2) 对案例进行讲解和分析。将十进制数N转换成r进制的数学模型如下。
N=(N div r)*r+ N mod r
计算过程:首先用十进制整数N除以基数r,得到的余数是r进制y的最低位y0,接着以x除以r的整数商作为被除数,用它除以r得到的整余数是y的最低位y1,依次类推,直到商为0时得到的整余数y的最高位ym,假定y共有m+1位。这样得到的y与N等值,y的按权展开式为:
y=y0+y1.r+y2.r2+...+ym.rm
算法思想:将计算过程的r进制数逐位进栈,然后逐个出栈[5]。
例如,若十进制整数为3929,把它转换为八进制数的过程如图2所示。
(3) 根据高职学生的特点和水平,给出案例的设计流程及部分参考程序。
//打开相关的头文件
const int StackMaxSize=30; //定义数组的最大长度
typedef int ElemType; //定义元素类型为整型
struct Stack
{
ElemType stack[StackMaxSize];
int top;
}; //定义一个栈结构
//定义栈操作的相关函数
//把一个长整型数num转换为一个r进制数输入
void Transform(long num,int r)
{
Stack a;//利用栈a存储转换后得到的每一位数字
InitStack(a);//初始化栈
while(num!=0)//由低到高求出r进制的每一位并入栈
{
int k=num%r;
Push(a,k);
num/=r;
}
while(!StackEmpty(a))//由高到低输出r进制数的每一位
cout
cout
}
//主函数
运行结果如图3所示。
(4) 教学过程交流互动。案例教学过程中一个重要环节是学生参与问题的讨论,讨论案例旨在分析问题,提出解决问题的算法,使学生能够主动参与学习活动,教师和学生能够相互交流。学生学习由被动变为主动,主动提出问题、思考问题。教师作为案例讨论的组织者,要能够驾驭课堂讨论的进度和氛围。教师作为案例讨论的引导者,要创造宽松的氛围。对同一案例允许学生提出不同的分析结果和实现方法,如本案例可以用老师的给出方法来实现,也可以用学生自己的方法来实现,老师帮助学生分析算法的优劣,让学生真正成为学习的主体。
(5) 案例评述。案例评述是案例教学中极其重要的一个环节,通过评述可以发现算法中的漏缺,将各知识点有机地串连起来,便于知识的融会贯通,保证知识的完整性。为了便于加强对所学的重要知识点的巩固和对新知识的学习,提高学生的学习积极性和综合应用所学知识解决实际问题的能力,让学生对本案例的算法进一步完善。如:如何解决十六进制的转换和小数部分的转换等问题。
5结语
教学实践表明,通过案例教学在“C++语言程序设计”教学中的实施,能够激发学生创造性思维,充分调动学生学习的积极性,提高了学生分析问题和解决问题的能力,所以在教学中合理、有效地使用案例教学,容易使教学过程充满挑战性、趣味性,很好地解决传统教学中遇到的问题。
参考文献:
[1] 张新平. 案例教学的内涵[J]. 云南教育,2002(32):6.
[2] 张继学. 案例教学及其在国内的发展研究[J]. 职业教育研究,2004(11):60-61.
[3] 龚沛曾,杨志强,陆慰民,等. 案例教学法在“Visual Basic程序设计”课程中的应用[J]. 计算机教育,2004(5):62-63.
[4] 李宁. C++语言程序设计[M]. 北京:中央广播电视大学出版社,2000:1-8.
[5] 许卓群. 数据结构(C++语言描述)[M]. 北京:中央广播电视大学出版社,2001:129-130
Application of Case-based Teaching Method in the C + + Programming Language
XIAO Ming
(Guangzhou Light Industry Technician Institute, Guangzhou 510220,China)
篇10
关键词:信息技术;课堂教学;创新能力;培养与提高
中图分类号:G633.67 文献标识码:A 文章编号:1671―0568(2013)24―0027-02
信息技术教育的创新性与实践性较强,教学中如何发挥其创新性与实践性的优势,激发学生对该课程的学习兴趣,培养创新能力呢?笔者认为,在信息技术课教学中,要根据学生的年龄特点和发展水平,按照信息技术课程的设置要求,使学生了解和掌握该课程的基本知识和技能,从而不断提高信息素养,为今后的学习、工作和生活打下坚实的基础,并运用所学的知识和技能解决实际问题。
一、从现有的知识中引发新问题,培养创新意识
在教学中,教师要善于运用各种教学手段创设问题情境,调动学生思维的积极性,激发探究的兴趣,培养学生的创新意识。如在教学《用程序画图》一课时,因势利导,引导学生灵活运用编程工具箱中的控件,掌握控件的属性设置及修改;结合实际问题,通过分析,编写程序,形成良好的程序设计风格。教师要了解学生的学习心态,善用学生对程序设计的神秘感和强烈的好奇心,使之熟悉VB程序设计环境,明确本节课学习任务和学习目的,激发其学习程序设计的求知欲,在此基础上再引导学生观察并思考:《编程序和画图一样简单》这样的程序我们能不能重编写一个《用程序画图》的程序呢?并对程序窗口中控件的属性,能不能设置及修改呢?要添加什么样的代码才能让这相应的按钮画出对应的图形呢?一系列的问题激发了学生尝试练习,学生打开《用程序画图》尝试完成添加“画矩形”这按钮的代码,教师则巡回指导。学生启用VB设计一个程序,为“画直线”、“画矩形”、“画圆”这三个按钮添加代码,单击按钮并画出相应的图形。实践证明:在知识中引发的新问题,可以激发探究的动机,从而培养学生的创新意识。
二、贴近学生实际,挖掘教材中创新的契机,培养创新能力
中学生的思维极为活跃,参与意识较强,想象力极为丰富,因此,在教学中要以学生为本,要由传统的课堂主宰者和知识灌输者转变为课堂的组织者、探究知识的引导者、合作学习的协调者和培养创新能力的促进者,要善于挖掘和寻找信息技术教材中的点滴契机来激发学生的创新意识、培养创新思维,从而提高他们的创新能力。要积极为学生创设有利于创作和想象的契机,扩展学生自由创新的空间,使他们的创新思维得以无拘无束地释放和飞跃,这样才有可能实现创新的梦想。例如,在教学《使用PowerPoint制作幻灯片》时,可以根据教学内容,让学生利用PowerPoint制作一张张精美的“明信片”送给自己的亲朋好友。由于此教学内容符合学生的年龄特点和心理特点,能够很好地发挥学生的想象力,所以,学生对这种内容的练习非常感兴趣,积极性极为高涨。教学实践证明:学生制作的明信片主题各异,内容丰富,形式多样,很好地体现了自己的创意。有的同学设计的明信片以展现祖国山川美景为主题内容,有的同学设计的明信片以介绍名胜古迹为主题内容,还有的同学设计的明信片以突出家乡的巨大变化为主题背景,甚至有的同学设计的明信片以展示自己风采为主题内容。学生在创作过程中,合理想象,充分张扬自己的个性,充分体现了学到的技能和创新能力。
实践证明:学生的学习兴趣是创新的内动力,有兴趣会激发强烈的探索欲望,从而萌发创新的意识,促生创新的行为。
三、鼓励自主实践,提高学生的创新能力
教师在教学中要鼓励学生自主实践,运用自己已有的知识经验,独立解决问题。例如,在教学《电子信箱的使用》一课时,教师首先对什么是电子信箱和电子信箱的工作原理进行简单介绍,并介绍几种常见的免费电子信箱,要求学生通过自学教材内容,查看网络提示,合作讨论,尝试实践申请一个免费电子信箱,并向教师成功发送一个电子邮件。学生通过自学教材内容,查看网络提示,尝试用自己申请的用户名和密码登陆自己注册的电子信箱;通过合作、交流、讨论,知道了写邮件时应注意的填写内容,并尝试发送、接收和回复邮件。在学生体验成功的喜悦中,引导学生探究通讯录的使用与管理技巧,对邮件科学分组管理,提高邮件交流的效率;引导学生养成健康、安全的自我防范意识,形成主动、自觉抵制不良信息的习惯,并引导他们学会如何抵制不良邮件的操作办法以及如何添加文件、图片等进行发送。
实践表明:在探究中培养学生的实践能力会激发学生的深度思维,从而促使其创新能力在实践过程中得到锻炼和提高。
四、实施分层教学,发挥学生的创新潜能
学生来自不同学校,存在着诸多方面的差异,对此,教学时如果对学生的教学要求和目标同等对待的话,势必会造成基础差、能力弱的学生学习吃力,而又影响基础好、能力强的学生创新发展。因此,在信息技术教学中,要使不同层次的学生都得到发展,逐渐缩小差异,有必要对学生进行分层教学,使不同层次学生的个性都得到发展和创新。这就要对刚入学的学生进行广泛的调查研究,如针对目前掌握了计算机的哪些操作技能,学过哪些软件,能处理哪些计算机程序等进行详细调查,或是对新入学的学生进行摸底测试,然后根据调查的结果和摸底测试进行高、中、低三个层次的分层。然后在具体的教学中,制定不同的教学目标,实施分层教学,让各层次的学生都能找到发挥自己创新潜能的突破口。
实践证明:针对学生的年龄特点和个性差异因材 材施教、分层教学可以让各层次的学生都能找到发挥自己创新潜能的突破口,有利于学生的个性发展和发挥创新潜能。
参考文献:
[1]冯文乐.让思维能力在信息技术教育课堂中升华[J].湖南教育,2010,(12).