美章网 精品范文 程序设计教学论文范文

程序设计教学论文范文

程序设计教学论文

程序设计教学论文范文第1篇

关键词:VB实例教学激发性主动性

作为语言程序设计领域的前沿软件,VB的发展历史已经很久,相关的技术也比较成熟,由于其简单易学、功能强大、应用广泛,因此在很多职业院校都开设了这门课程,我校也在计算机信息与管理、计算机网络技术以及电子商务等相关专业开设了这门课程。正是由于社会办学力量的推动和“程序设计”职业的热衷,现在会VB的人越来越多了,但是我们也应该看到,很多人都局限在“会VB”,而不能灵活的运用,不能用VB完成相应的程序设计,更谈不上从事专业编程工作了。在这样的情况下,作为高职教师的我们,在教学中怎样才能够吸引同学们努力主动的学习好VB,这是我们值得探讨的问题。虽然我们学生的起点相对来说较低,但以后所从事的工作大多数也是以程序设计操作员为主的,因此笔者认为我们的主要教学目标,不仅是使学生熟悉VB的基本概念,而且还要能够熟练的掌握一些程序设计的相关技巧和方法,有一定的程序编写思维能力,并且在今后的教学中同学们能够积极主动的探索和学习。为了达到这个目的,笔者认为以下几个方面是我们在教学中值得开展的:

一、注重实例教学

对于一项操作性很强的工作,我们是不可以只讲理论的,正如当我们学习游泳的时候,如果教练只是告诉我们每个动作的名称但不告诉我们这些动作怎么完成,我们是不可能学会游泳的。那么我们在学习VB的过程中也必须结合大量的实例演示,让同学们真正体会到VB的可视化设计和它的实用性。

在最初接触这门课程的时候,我们必须先要详细的介绍各个控件,只有知道每个控件各自的作用以及使用方法以后我们才可以在VB中创造我们自己的程序。在控件介绍和程序设计中我们必须通过实例的演示来让学生在模仿中学会各个控件的使用和程序的编写。特别是在程序的编写方面,我们一定要有相关的实例来让学生在感性上得到认识。比如在介绍IF……ELSE选择控制语句的时候,如果我们只是讲解单纯的语句,学生听起来觉得比较枯燥,但笔者首先给同学们演示一个通过用户名和密码的登录界面,通过选择控制语句来确定我们在文本框中输入的条件是否为真做出判断,如果为真就登录到我们所需要的另一个界面,否则弹出一个提示信息框。在演示的过程中,同学们都表现出强烈的好奇心和学习的欲望,思维表现得非常活跃,因为他们觉得这些知识非常有用。在这个时候我们抓住这一特点,首先,讲解实现这一程序的基本思路,提出实现思路所需要解决的问题。其次,在程序中讲解新语句的使用方法,总结新语句的使用方法和注意事项。这样的教学使学生很快了解了程序设计的整个过程,并有豁然开朗的感觉,从而产生浓厚的学习兴趣。虽然这是一个简单的编程应用,整个创作过程只用到了简单的选择控制语句,但通过此例的学习学生学会了选择控制语句的使用以及如何设置选择控制语句,同时也激发了同学们学习程序设计的兴趣,从而创作出自己的程序。

目前市面上有很多关于VB的实例教材及各种参考书,但是都比较散而且内容也不是很详细,所以在讲解的时候笔者认为必须对实例进行慎重的选取和必要的修改,力求做到以下几点:

1、程序结构严谨化

笔者所收集的程序除了强调程序的可靠性以外,还要特别强调程序的结构性,即使是一个简单的实例,也需要做到程序结构的严谨化,使之符合大众的思维,但也要突出自己的特点。比如在讲FOR……NEXT等循环语句的时候,一般的都是利用从1累加到另一个固定的数值,来完成我们的循环讲解,这样的语句由于方法是完全一样的,所以最后的效果也没有什么吸引力可说。因此,笔者采用了另外一种方式,结合利用文本框输入的方式,即在两个文本框中可以输入任何两个数,使之从小的数值累加到另一个较大的数值,这样程序的效果也就更具结构严谨的魅力,同学们的感受也就会完全不同。

2、步骤详细化

因为同学们对新知识的接受,特别象程序设计这样的知识结构,还是需要一定的过程,因此为了让学生能够顺利的完成实例,从而在实践中提高自己的能力,笔者认为对每一个实例的操作步骤都要详细的板书出来,上机课或是在课余时间学生只要按照程序的操作步骤去做,就可以得到最终的效果,只有这样同学们才能掌握程序设计的基本思想和相关步骤。

3、方法常规化

在讲解的过程中,力求采用最简单、最容易的方法完成每一个实例,尽量采用常规化的语句,避开一些不容易理解的概念、方法。比如,在利用文件操作对数据录入以及把录入的所有数据输出时,我们可以避开利用Type语句定义自己的数据类型的使用,因为采用Type语句定义,有多少个字段,就会产生多少个相关的成员,在这种情况下同学们就很难想得到这个成员代表的是什么,它的作用是什么,这样就把程序复杂化了,其实我们完全可以采用简单的文本框来进行输入,然后用Input函数输出就轻松完成了。

二、注重培养学生的实际操作能力

还是以游泳为例,不管我们怎么看别人游泳,但自己却不下水实践,我们是永远都学不会游泳的,那么我们在学习VB语言程序设计的过程中也必须不断的练习、实践。

笔者曾担任了计算机网络技术两个班的该门课程的教学,为每周四学时,其中两学时是笔者的理论讲解课,两学时是上机实践操作课。由于学生的思想还不够成熟,自我控制能力相对来说还是比较差,因此自觉性还不够好,为了监督他们很好的学习、认真的实践,笔者每次课都留一次作业,第一次就是完全按照笔者的课堂实例上机操作,以加强对本节课课程内容的理解并熟练这些操作技巧,这项作业是必须要上交的,并作为平时成绩登记。因为这是这门课程中最基本的知识要点和教学要求,虽然学生不可能每个人都对这门课程有浓厚的兴趣,不可能以后都有可能去从事专业的程序设计工作,但是作为计算机专业毕业的学生,笔者希望他们不管以后从事什么样的职业,对于一些基本的程序设计思想以及常用的计算机软件操作,至少都能够体现出来。

在最后的综合实训、实践中,笔者结合同学们所学的知识并引进一些课外的知识实例来弥补课本上没有的相关内容。比如,我们利用VB做前台界面的设计,尽量用到所学过的所有控件进行布局、设置,把它们结合起来使用,而用小型的Access数据库做后台数据管理来做一个学生成绩管理系统,它具备一般的常用功能,即成绩的添加、查询、修改、删除,用户的管理等,虽然这个管理系统程序的设计比较简单,但通过这样一个小型的综合实例,就更加让同学们了解了VB语言程序设计的功能及特点。这是我们VB程序设计教学课程中不可缺少的一个重要环节,只有通过这样的一个综合实例,才能把同学们零散学到的知识全部的串联起来,让他们感觉到自己所学的知识终于有了一定的成果,他们自己也会感觉很有成就感,也会产生一种利用计算机解决实际问题的强烈愿望,在今后的学习中才能更加有信心和目标。

以上的两个方面是笔者认为的主要教学方法。采用实例教学的一个重要目的实际上就是为了使课堂生动,提高学生的积极性、主动性。虽

然是实例教学,有很多有趣的程序及相关的小动画,但是这样的有趣如果久了,也并不能完全抓住学生的心,因为这些过程进行的场所都是在课堂,课堂生活不可避免的具有一定的单调性,这只是一个方面。另一方面是,笔者要求学生在完成自由独立创作这一作业以后要相互交流经验,这种交流我们一般都是在自己班内部进行的,次数多了大家就会觉得似乎还需要加入一些更新的内容,希望与其他班的同学一起探讨学习。为了弥补课堂学习和班内交流的不足,笔者有时间就会将两个班的学生聚集在一起,首先每个班选几个优秀的作品演示给大家看,并向大家介绍创作的技巧和存在的问题,然后大家一起讨论。最后笔者会结合最近的学习内容对设计进行一个总的评说。通过这些活动既可以提高学生的学习兴趣,提高他们的专业技能。我们在教学中,实例的运用是提高教学效果的保障,在教学中,我们不防在讲解本次课的内容之前,先演示本次课需要用到的实例,这样既可以调动学生学习的积极性和主动性,也激发了他们的好奇性,这样也就抓住了同学们“人在教室,心也在教室”。

总之,教学有法,教无定法,只要教学得法。程序设计教学的主要目标是为了使同学们了解编程的基本思想,培养分析问题、解决问题的基本能力。围绕着这个目标,在保证同学们学习积极性的前提下,按照他们的认知规律组织教学,一切有效的教学方法都可以在我们的教学过程中加以运用,进而使综合素质得到整体提高,这是VB程序设计课程教学的最终目标。

参考文献

[1]刘炳文、杨明福、陈定中.全国计算机二级教程VB语言程序设计[M]高等教育出版社.20__.4

程序设计教学论文范文第2篇

一、学情分析

学情分析是教学设计系统中“影响学习系统最终设计”的重要因素之一。在教学设计中,依据教学设计理论,认真研究学生的实际需要、能力水平和认知倾向,“为学习者设计教学”,可优化教学过程,更有效地达成教学目标,提高教学效率。VB的开课学期一般在大一第二学期,按照专业培养计划,计算机网络技术等专业在新生入学的第一学期就开设了《C语言程序设计》这门课。对于从未接触过语言类课程的大一新生来说,C语言的学习,颠覆了大部分学生的思维方式,学生普遍感到很吃力,有相当一部分同学开始对程序类课程感到害怕。

二、教学方法探讨

1.消除学生的畏难情绪

为了打消学生的畏难情绪,对于VB教学,应首先与学生谈VB,而不是教VB。首先,要让学生明白VB和C语言是完全不同的两种编程方式,不要因为害怕C语言,而害怕VB。教学中,通过演示一个简单的例子,向学生演示只需要两行代码便可制作出美观的界面和可爱的功能。比如:示例1:制作美观的界面,实现窗体上的文字自动或手动的向下移动。突现VB相对于C语言的简单易懂,引导学生一步步完成所需功能。最后,启发学生:如果想让文字上移,如何修改程序?如果想让文字左移或右移,如何修改程序?如果想让文字左右交替移动,又要如何修改程序?通过上述示例的讲解,使得学生对VB有一个全新的认识——直观、简单、易学、易用。其次,要让学生了解为什么学习VB,VB对于他们有多么重要。这门课的开设除了承上启下其他专业课程外,还有一个重要的作用就是为了让学生能够参加计算机二级考证,VB在二级考证中相对比较易学易用。再次,告诉学生,有了C语言的基础,代码的编写会更为容易。从而激发学生学习的信心。

2.提高学生的学习兴趣

在教学过程中应尽量使用简单易懂的语言和示例,提高学生的学习兴趣,帮助学生理解知识点。比如,在讲属性、方法和事件这三个很枯燥的概念时,可以通过生活中有趣的示例来进行解释。示例2:通过“蟑螂从女生脚上爬过”的事例,讲解属性、方法和事件的概念。蟑螂从女生脚上爬过时,女生的脸色变红,脸的颜色为红色就是属性;女生尖叫起来,女生跳起来,这是女生本身做出的动作就是方法;蟑螂爬过女生的脚,这是外部事物对女生做出的动作,就是事件。通过这种类型的示例,成功吸引了学生的注意力,也帮助学生理解了这几个难懂的概念。在讲属性、方法、事件的书写格式时,也可将这个示例写成VB伪代码的形式:属性的表示方法:女生.脸的颜色=红色方法的表示方法:女生.尖叫啊事件的表示方法:女生_蟑螂爬过至此,学生对VB程序一下就理解了。

3.实践中学习,项目中巩固

要想学好程序设计类的课程,大量的练习是必不可少的。因此,将所有知识点都融入到一个个的项目实例中。课堂上边演示边制作,课后布置一些举一反三的题目,让学生自己在课后完成。

程序设计教学论文范文第3篇

关键词:Java语言;案例教学;编程能力

随着Internet的迅速发展,Java作为一种面向对象的高级语言得到了越来越广泛的应用。它既具有一般程序设计语言所具有的安全性、多线程等特点,同时又具有独特的平台无关性的优势。为了适应社会的发展,培养更符合市场需求的计算机专业人才,很多高校都陆续开设了Java语言的相关课程。但是在传统的Java语言教学过程中,课堂一般以教师为主导,首先按照教材章节顺序向学生灌输一个个抽象的概念、语法和算法,然后再去布置相关的实践任务让学生在机房实践操作。这种先理论后实践、理论和实践完全割裂的教学方式忽视了学生的互动参与,导致课堂乏味,学生学习兴趣下降,教学内容单纯倚重课堂讲授,学生实训操作练习很少,而且学与做相脱离,不利于学生理解消化课程知识和锻炼编程能力,难以取得理想的教学效果。针对这些问题,教师可以在该课程的教学中引入案例教学,以书本知识点为基础,以案例为依托,使学生在制作案例的过程中逐渐理解Java基本理论知识,在理解理论知识后不断提高Java语言的编程能力[1]。

一、案例教学法的实施意义

案例教学法由美国哈佛商学院提出,通过在课堂教学中由教师围绕案例组织教学,将学生引入特定的情境之中,启发学生分析案例,探讨案例解决方案,实现课堂师生的双向互动和学生学习效果的及时反馈,激发学生学习的积极性,提高教学效果。在Java语言程序设计课程教学中应用案例教学法就是通过实施一个完整的Java案例来组织教学活动,用典型案例把理论知识与实践教学有机地结合起来,把理论知识融入到案例制作之中。教师通过案例实施完成教学过程,学生通过案例制作掌握Java的语言知识和编程技巧,使教学做有机融合,提高该课程的教学效果。与传统教学方式相比,案例教学方法更能充分发掘学生的创造潜能,培养学生学习Java语言的兴趣,提高学生解决实际问题的综合能力[2]。在Java语言程序设计教学中实施案例教学,教学过程通过教学案例的实施过程来开展,通过“提出案例目标--分析案例任务--实施案例--边学边做--总结反馈”的环节分解每个知识点,充分体现学中做、做中学的教学理念,展现互动创新、注重应用、共同协作的教学风格。

二、Java语言程序设计案例教学的实施

(一)明确Java语言程序设计的教学计划在Java语言程序设计课程的教学中使用案例教学方法,教师首先要明确该课程的教学计划。具体包括特定的教学对象、明确的教学目的、课程的教学效果和对教学过程实施的整体设计及其控制。教学计划的制定必须以市场需求为导向,符合程序设计语言课程的教学规律,既不能脱离学生的实际学习能力,也不能丧失该课程注重实践应用能力培养的教学特点。因此,通过市场调研、企业专家访谈和毕业生信息反馈等形式,确定本课程的教学计划是使学生掌握面向对象程序设计的开发方法,理解类、实例、继承、包的应用,体会面向对象的程序设计方法在软件系统开发中的优势,使学生能够运用面向对象的思想、方法和Java语言开发应用程序。同时在该课程的教学中注重进一步的培养学生的软件设计与开发能力、程序调试能力,养成良好的程序编写习惯,从而为本专业的后续课程的学习奠定坚实的基础。(二)精心准备Java教学案例资料结合高职学生的特点,本课程将抽象的理论知识点细化和组织到具体形象的案例中去,让学生在具体的案例中体会知识点的应用。为此构建该课程规范的一体化案例教学资料库是非常重要的,选取的教学案例要能很好地和相关地教学知识点紧密融合。因此,在讲稿和课件中注重设计好每个案例“如何运用,怎样引入,何时引入,怎样与知识点有机衔接”。为了更好的提高学生的学习积极性,体现高职课程应用型、实用型的特色,Java教学中应用的案例要生动、实用,最好能从实际工作中的应用出发,提取一些典型的教学案例,能够模拟真实的企业工作环境,按照软件开发的流程组织教学。这样一方面可以使得学生可以了解以后工作的内容,激发学生学习的热情,另一方面可以改变高中时的以掌握理论知识为中心的学习方式,变被动学习为主动操作,突出实践技能的培养,使学生养成良好的程序设计开发习惯[3]。但是实际工作中的案例一般都比较综合,结构庞大,涉及的知识点比较多,如果直接应用到教学中对于初学者来说过于复杂,这就要求教师对这些案例必须要进行加工,抽取出关键部分,把繁杂无关的部分去除,有效引导学生进行学习。在学生具有一定的编程基础的情况下,再给学生真实的综合案例,通过由简单到复杂、由单一模块制作到综合案例制作的学习过程逐渐掌握Java语言的知识和编程方法,从而提高学生对实际工作情况的适应度。学生在分析案例寻求解决方案的过程中,会自然地与所学知识点进行结合,而案例中较为复杂问题的解决,能够激发学生不断学习、勇于创新的热情,打破学生原有的知识范围,拓展学生的知识领域,从而使得学生从被动的学习者转变为主动运用知识来处理各种各样的问题的开发者,不断提高软件开发的分析和解决问题的实践能力。(三)设计合理的课后练习案例由于Java语言比较抽象,知识点较多,对实践操作要求又比较高,仅仅凭着上课有限的教学时间是远远不够的,所以在每一章节的课堂教学结束后,教师必须选取合适的案例,为学生布置所涉及相关知识点的课后作业,从而让学生能通过课后作业练习对Java语言能够进一步深入的理解。(四)理论课和实践课合为一体传统的Java教学模式一般是先理论后实践,理论课和实践课分开,理论课在多媒体教室完成,而且理论课时一般都是实践课时的2倍以上。在具体的教学中,为了保证后期课程的教学难点能够掌握,理论课都先于实践课开始。这样的教学安排会使得理论课已经进行一半后,实践课才刚开始。而在Java语言等程序设计课程中,学生对于知识的掌握和编程能力的培养,在很大程度上是通过实践操作来实现的,但课后并不是每个学生都会自觉地在自己的计算机上编程练习,还有一部分学生虽然也在自己的计算机上编程调试了。但是一旦在调试中遇到困难得不到解决,往往就会退缩,把问题搁置等着上实践课再来解决,以至于造成学生学习进度缓慢,编程能力得不到有效提高。为此,可以把Java语言程序的理论课和实践课结合在一起,把授课地点设在机房中,教师以教学案例为主线,首先分析案例,然后引导学生思考案例解决方案,接着引出案例涉及的相关知识点,再把知识点应用到案例制作过程中,边做边讲,通过这种教学做一体化的教学方式把理论和实践有机结合起来,把抽象难懂的理论知识通过具体的操作帮助学生理解,学生的学习热情有了很大的提高,学习效果也有了明显的改善。(五)重视教学的互动与及时反馈传统的教学方法一般是教师讲、学生听,课堂只注重知识的单向输出,忽略了师生之间的沟通和学生的实际的接受效果。通过教师和学生之间的及时沟通,不仅能够使教师发现学生学习的薄弱环节,而且可以发现教学过程的不足,动态调整教学实施过程,更重要的是增进了师生感情,从而引发学生的学习兴趣[4]。在Java语言程序设计中应用案例教学法就能很好的实现教学的互动,使教师能够及时的得到课堂教学效果的反馈。首先在案例教学中,学生拿到案例后,在教师的引导下先要进行分析消化,然后在案例制作的过程中学习相关的Java语言知识,这无形中会使学生加深了对知识的理解,而且学习过程是在和教师的互动中进行的。同时学生的成果要经过学生自评、教师点评环节,这一方面调动了学生学习和动手的积极性,也促使教师加深思考,根据学生制作案例的情况了解学生掌握新知识点的程度,及时调整教学内容和教学进度,不断完善案例教学的实施过程。(六)典型教学案例实施过程:自动计数器图1计数器初值为0图2计数器自动加1图3加数器变为减数器图4计数器自动减1在Java图形界面开发讲授时,教师如果只是介绍各个组件的构造方法和常用的方法,就会让学生觉得枯燥乏味,不知道每个方法具体的应用,而且不能让学生了解组件显示的难点--坐标的确定,因此有必要通过案例教学来实施这部分知识点的教学。比较典型的一个教学案例是自动计数器的制作。计数器初值为0,如图1所示;当单击“自动加1”按钮时,程序实现计数器功能,如图2所示;当计到100时,“自动加1”按钮显示为“自动减1”,如图3所示;并自动实现减数器的功能,如图4所示。如此循环,直到单击“退出”按钮为止。在讲授时,教师可以首先演示该程序的功能和运行过程,让学生明确学习目的,然后对着运行界面引导学生分析程序的实现思路:自定义一个窗口类,在窗口类的构造函数中添加单行编辑框和按钮组件。然后重写按钮事件处理方法actionPer-formed。在讲解窗口类的实现中,要详细讲解单行编辑框组件和按钮组件的坐标的确定。接着再详细说明在用户单击了按钮后,如何控制计数器计数:先要判断选择了哪个按钮,这里教师告诉学生通过事件的getSource方法可以获得事件源;然后再根据按钮的文本内容执行相应的操作,“自动加1”将使num加1,“自动减1”将使num减1;最后用setText方法把新的num设置为单行编辑框的值。这是一个综合了多个知识点的案例,涉及到组件的添加、事件处理、整型数和字符串类型的相互转换、事件源的判断等知识点。这个案例的学了有助于让学生掌握这些界面开发的知识点外,也会让他们学到流程控制的编程技巧。

三、结束语

在Java语言程序设计的教学中,以教学案例的实施为主线,通过教学内容、案例选择、授课模式等一系列的改革措施,培养学生独立分析问题和解决问题的能力。实践证明案例教学法不仅可以提高高职学生学习Java语言的兴趣,使他们在学习的过程中由被动接收知识变为主动培养实践技能,而且增强了学生在实践操作中的自信心,学生的编程能力也有了明显的提高。

作者:王惠 单位:九州职业技术学院

参考文献:

[1]李天书.案例教学法在专业课教学中的应用与实践[J].职业时空,2014(6).

[2]李劲华.通识教育中Java程序设计课程的教学研究与实践[J].计算机教育,2008(20).

程序设计教学论文范文第4篇

关键词:移动学习,C语言程序设计,教学

 

1 移动学习

移动学习(M-Learning)是借助移动互连技术,使用移动计算设备(智能手机、PDA、移动电话等)实现学习者随时随地进行不同目的、不同方式的学习[1]。移动的内涵包括:形式上是移动的,即学习者不再受时间、空间和有线网络的限制,可以随时随地进行不同需求、不同方式的学习;学习环境是移动的,学习资源和学习者也是移动的;内容上是互动的,进行教学活动的双方实时交流,教育信息、教育资源与教育服务依靠移动计算技术和互联网技术实现双向“移动”,教与学相互促进,才能更充分的体现移动学习的优越性;实现方式上是数字的,移动学习是基于无线移动设备进行的数字化学习,它是在数字化学习的基础上发展起来的,是远程学习发展的一个新阶段[2] 。

现阶段的移动学习受技术条件的制约,通常作为高校教学的一种辅助学习模式,主要应用于管理和为学习支持服务提供“交互”通道,学生和教师通过使用移动设备(如手机等)方便、灵活地实现交互式教学活动。高校移动学习的主要应用模式分为三大类:基于短信息的在线移动学习,基于连接的在线移动学习以及存储移动学习模式[3]。基于短信息的在线移动学习具有使用费用低,设备普遍支持等优点,主要应用于通信数据少并且可用简单文字描述的学习活动和学习服务,可用于向学习者发送课程安排、考试安排和考试成绩等信息,提供指导、激励和支持等作用。基于连接的在线移动学习和存储移动学习,需要建设WAP站点,提供能够支持移动设备访问和下载的学习资源,着重选取能够贴近学习者生活和工作同时又较为时尚和流行的主题作为学习内容。存储移动学习和基于短信息的在线移动学习将是目前在高校中最切实可行的移动学习应用模式[4] [5]。

2 C语言程序设计课程特点

C语言作为当今最为流行的程序设计语言之一毕业论文范文,不仅是计算机专业的必修课,也是很多

非计算机专业的学习课程。随着计算机的普及,学生运用计算机的能力越来越强,但计算机程序设计课程因其较复杂的语法、编程等知识,依然是众多学生学习上的“拦路虎”。

C语言程序课程知识点琐碎,概念繁多,理论不易掌握;概念抽象且复杂,包含的数据类型和运算符丰富,需预习与复习相结合才产生较好学习效果;对应的规则繁多且易混淆,使用较为灵活,容易出错,使得学生容易产生畏难、厌倦情绪;理论与实验教学学时分布不均衡,导致课堂教学中,对如何分析和解决问题讲得不够充分,学生编程思路不清楚;实验过程中,不能将理论知识应用自如,在处理实际问题时往往不知从何入手,需要在平时教学中注意培养学生动手能力[6][7]。

C语言程序课程的这种特点,适合采用移动学习作为其辅助教学方式。针对C语言理论性强的特点,可以在课前课后发送定时短信,提示预习摘要求较高,不好的缩进格式影响其呈现效果,结构化风格使得程序占用篇幅往往较长等等,这些因素均会制约移动设备的可读性。

3移动学习在课程教学中的应用

根据上述分析,设计移动学习方式如下:总体原则,以传统教学方式为主,移动学习方式为辅,移动学习方式充当课堂教学的重要补充,能够实现课堂知识的延伸,指导和激励学生进行更深层次的学习和实践。实现方式,主要采用基于短信息的在线移动学习方式,配合基于连接的移动学习空间、论坛,以及存储移动学习资源建设。针对课堂教学,精心设计课前案例,提出驱动式问题,相关预习提示,课后设计相关重点回顾,知识点延伸,以短信形式发给学生,对于短信不能很好显示的内容可以邮件形式发送给学生,或者放在相关网站上,以消息的形式提醒学生查收。软硬件支持:考虑到学生普遍拥有设备的程度,将移动设备限定在普通移动手机,软件使用中国移动飞信校园版(EFetion_campus)[10],可以支持PC端向移动手机的短信群发,通过飞信、群、语音、邮箱、空间等多种方式实现互联网、移动网间的无缝互通毕业论文范文,还可以使用日程提醒,邮件提醒等功能打造个性化的学习指导。移动学习具体实现方式如图1。

图1 移动学习应用模式图

3.1功能模块介绍

移动学习做为一种辅助教学模式,能够参与到C语言课堂教学的课前准备,课后辅导以及实验指导等方面。

3.1.1短消息学习模块

(1)课前预习提示。可将每节的学习目标、重点、难点发送给学生,也可发一典型程序,加驱动式问题,发送到邮箱里,同时设置邮件提醒功能。

(2)课堂内容回顾。对前面课程学习过的知识内容以短信形式发给学生,提醒其回顾。

(3)作业提示、阶段测试。也可仿照上述短信设置方式,定时群发给所有的学生。

3.1.2移动学习空间或论坛

移动学习空间既可以方便学生在线浏览,也要努力适应基于连接的移动学习访问,其资料下载模块提供的学习资源,也要支持移动终端设备。移动学习论坛,实现学生自由交流空间。在移动学习论坛上定期设置讨论专题,既可以是关于某个错误进行分析,也可以针对相关程序选题集思广益,还可以是对当前教育进行探讨等等。

(1)课堂内容延伸。可提供诸如:MSDN使用介绍,帮助学生自如设计C/C++程序等;CSDN论坛介绍,提供同资深程序员交流学习的平台。

(2)常见错误提示分析。提供调试程序基本步骤,常见错误解读及可能出错原因。

(3)课程设计选题。设计相关程序选题,使其能够体现课程各个阶段的进度,并且具有一定的实用性,趣味性,能够调动学生的学习积极性。

(4)测试空间。提供一些历年试题,可以帮助学生巩固理论学习。

(5)教育思考。定期对教学进行总结,寻求更好的教学方式,也可以一些高校精品课程网站链接。

(6)资料下载。课程内容的各种学习资源,如PPT课件、多媒体课件、部分课程的录音、录像等;有关课程的各种辅导资料,如各章节的知识要点、课程设计任务库、程序设计案例库、试题库等都可以作为下载的资料。

3.2移动学习内容设计

在高校教育中,学生同时需要进行多门课程的学习,如果在针对某一门课程实施基于短信息的移动学习方式时,设计过多的短信内容,或者发送较多的次数,都将会给学生造成信息轰炸,带来过重的信息负担。配合C语言程序课堂教学,在课前课后发送两条飞信,每次不超过5页,对于无法以短信内容呈现的资源就发送到邮箱,同时以短信形式提醒学生注意查收。程序设计课程所涉及程序对格式要求较严格,一个程序案例通常占用较多篇幅,此时以邮件的方式发送较为合适,同时在相关论坛上设置讨论专题,根据学生回答设置最佳答案,统计学生活跃度,作为平时成绩参照。图2为课前预习的飞信基本内容设计。

图2 飞信基本内容设计

把课程内容按照“章-节-知识点”的层次模式进行组织,整理出每章每节的学习目标、重点、难点、学习指导、参考资料等内容毕业论文范文,并概要总结出每个知识点的核心内容和若干测试题目,学习者可以通过短信息随时随地自由学习、复习这些重要的知识点,并对学习的效果进行测试。设计短信内容时需考虑程序格式问题,屏幕显示行数,尽量控制在8行*5屏=40行,每行8字以内,不要以图片的形式发送(涉及彩信资费问题)。

另一方面,为课程的核心内容提供文档、PPT课件、课程录音、课程录像等多种媒体格式、适合多种移动终端的学习资源,满足学习者不同的学习需求和学习习惯。学习者只要把这些资源通过教学网站,下载到自己的移动终端上,当他们在教室外面、公共汽车上等地方时,都可以通过移动终端来浏览这些学习内容,充分享受移动学习的便捷与方便,而且不需要承担高昂的移动通讯费用。但是供下载的资料要充分考虑移动学习的特点,不仅要考虑学生的设备支持程度,还要考虑移动学习的片段性特点,对其中的部分资料需要进行特殊处理使其适合移动学习方式,主要处理原则,按知识点,将文档,影音资料都处理成片段,确保一个片段一个知识点,每个片段持续10分钟左右。

4 实验分析

借助中国移动飞信校园版,上述大部分移动学习方式都可以实现,从PC端到手机客户

端可以方便的实现短信群发,只要不超过一定数量,免费且易于操作。学生也分常乐意参与到这种形式的移动学习中来,非移动用户除了在接收短信受限之外,也可以加入飞信校园版PC端,可以共享资源。实验证明,使用移动学习方式作为程序设计课程的辅助教学方式能够大大调动学生学习的积极性。但是在学生中间出现了两级分化的现象,部分同学兴趣高涨,能够充分利用提供的学习资源,学习进度甚至出现超前现象,另外一部分同学上课时也在查看手机,学习不仅没有进步,反而沉迷于手机上网。这种现象提醒大家不仅应该注意实施移动学习的方式,同时还要加强大学生的思想教育,使其认识到网络资源的便利性和危害性,能够主动的去寻求有益的资源来提高自己。

使用飞信实现移动学习还有以下必须注意的地方:(1)飞信中涉及大量广告,容易分散学生注意力。(2)短信数量过大,易给学生造成信息轰炸,要限制性的使用。(3)需警惕不法分子盗取飞信或手机号,进行诈骗。可以利用飞信的二次开发功能,屏蔽其他模块,使其更适合校园使用。

移动学习对学习者也要有一定要求毕业论文范文,比如说需要一定的自学能力,自制能力,以及较强的学习动机等[8][9]。现阶段的移动学习在高校教学中应该起辅助作用,但不能排除其对研究生,博士生及在职人员充电的作用,所以还是要做好移动资源的建设工作,注意打上数字签名保护知识产权。

5 结论

当前,移动学习是教育界的研究热点。将移动学习方式引入语言类课程的教学中已取得较大进展,但将其应用到C语言程序设计课程教学中来,还属于尝试阶段。移动学习给教学改革注入新鲜活力,其对高校教学的促进作用,不仅依赖教师的合理使用和学生的大力配合,还依赖于软件平台的设计。本文所使用的飞信校园版,受到发送短信条数,广告绑定等不利因素的限制,不仅要考虑课程特点,还要考虑软件的使用规则,不能充分发挥移动学习的优势。下一步需要改进的地方,不仅在于移动学习资源的建设,还要建设实施移动学习的软件平台,不仅要适合移动终端在线浏览,还要能够与校园各个系统整合,充分利用现有资源,更加适应程序设计课程的要求。

参考文献:

[1]德斯蒙德·基更.移动学习:下一代的学习[J].开放教育研究.2004

[2]刘豫钧,鬲淑芳.移动学习——国外研究现状之综述[J].现代教育技术.2004

[3]王建武.3G网络下基于彩信的被动式移动学习实践研究[D].西安:陕西师范大学.2009

[4]张珑,王建华,张军,邸佳奇.移动学习在高等学校教学改革中的应用[J]. 计算机教育.2010(6):34-37

[5]王伟,钟绍春,吕森林.大学生移动学习实证研究[J].开放教育研究,2009,15(2):22-27.

[6]张素芹,吴连生.独立学院“C语言程序设计”教学改革实践[J]. 计算机教育.2010

[7]顾钧.程序设计语言课程的概念体系及教学策略探讨[J].中国成人教育.2010

[8]李望秀.高校教学中的移动学习[D].长沙:湖南师范大学.2008

[9]徐楠.M_Learning在现代远程开放教育中的应用研究[D].南京:南京师范大学.2005

[10]efeixin.10086.cn/product/category_15.html

程序设计教学论文范文第5篇

1.1重点

(1)单选按钮和复选框的Value属性单选按钮和复选框的Value属性值不同,均能实现判断用户的选择。但是单选按钮的Value值有true和false,分别代表选中和不选中;而复选框的Value属性值有三种:0表示Unchecked,即复选框处于未被选中状态,1表示checked即复选框处于被选中状态,2表示Unavailable即复选框处于禁止状态,不可使用,复选框将以灰色显示。此部分在讲解时,准备利用两类控件的Value属性,来完成判断字体、字形、颜色、滚动方向等功能,以强化知识点的理解。(2)多分支语句结构的书写多分控制结构语句书写也是本次课的重点之一,在本项目中主要实现根据用户不同的选择实现字幕的控制。因此在教学过程中,教师应集中讲解该部分知识点,更好促进学生消化知识。

1.2难点

(1)根据用户选择改变字型设置以“发现问题—探究问题—解决问题”为主线,采用讲授法、对比法、演示法等,引导学生使用思考分析,促进知识的消化吸收,提高课堂学习效率。(2)利用Timer控件和多分支结构语句设置显示字幕滚动通过将知识点融入任务中,逐步消化吸收,采用教师讲授和学生自主探究知识相结合的方法,使学生在理解的基础上能够做到举一反三。

2教学方法设计

2.1目标逆向教学法

以实践活动为中心,学生为主体,教师引导学生主动参与教学活动;在活动中发现问题,然后通过理论知识讲解来解决活动中学生提出的问题。

2.2双层情境教学法

教师将教学情境分类为两个阶段,在第一个阶段的重点是让学生了解必需的技术知识、概念和掌握常用的技术操作,并初步获得技术在工作中的感性认识,即技术情景化阶段。在第二阶段,创设应用技术的现实情境,让学生完成真实的任务并创新,即技术应用情景化阶段[3]。

3教学过程设计

3.1创设情境

假设你是某银行的IT技术人员,经理请你设计门头滚动字幕,更好地宣传银行的各种金融业务。此步骤设计的目的是让学生尽快进入角色,体验情境;明确任务。

3.2展示项目“滚动电子屏”设置程序

教师首先展示项目“滚动电子屏”设置程序,如图1所示。学生观看教师演示,对项目有初步的印象。然后回答老师提出的问题:这个程序主要用到了哪些控件?我们学过的有哪些?学生根据已有知识对窗体控件进行梳理;初步认识到单选按钮和复选框的功能和应用场合,巩固已有知识,并培养学生仔细观察能力,并为下面将单选按钮和组合框控件的讲解做铺垫。

3.3任务一为窗体添加控件、设置基本属性

在展示项目后,教师鼓励学生根据项目演示,利用前阶段所学知识,尝试向窗体中添加控件,并设置基本属性。在学生添加控件的过程中,很多同学不使用按钮数组,而直接向窗体逐个增加,这时教师应该及时提出问题:如果按钮单个添加,在编写程序时怎样区分这些按钮、并且能快捷地实现属性的统一设置?学生激起共鸣,然后教师讲解控件数组的优点。

3.4任务二编写字体、大小、字形、背景颜色和字体颜色的设置

在任务一完成后,教师引出任务二的内容。即:为“设置”按钮编写程序,实现字体、大小、字形、背景颜色和字体颜色的调整。由于字形和字体等属性学生已经学过,所以教师采用循序渐进的方法,先鼓励学生完成易实现的部分,即书写字形字体属性,树立他们的信心。对于教学难点多分支控制结构If-Then-Elseif,教师采用集中讲解的方式提高课堂学习效率。

3.5任务三设置字幕滚动方向和滚动速度

任务三主要是通过单选按钮控制字幕滚动方向和速度,为了完成此项功能,涉及到计时器控件Timer。由于Timer控件的属性较为简单,教师鼓励学生先通过自学的方式学习Interval属性;对于Timer事件中控制滚动方向实践代码的编写,教师通过启发引导的方式来鼓励学生完成。

3.6任务四设置滚动字幕颜色、背景颜色为随机色

任务四是编写程序语句,为滚动字幕设置随机字体颜色和背景颜色。此步骤涉及的知识点RGB()颜色函数和随机函数Rnd()较为简单,因此完全以学生自学和组内合作的方式解决问题。

3.7拓展任务

程序设计教学论文范文第6篇

1计算思维的概述

何谓计算思维,即借助于计算机科学基础概念来分析问题、解决问题、系统设计以及理解人类的一种行为。如下图灵奖得主ButlerLampson的报告,这种思维为人自身一种根本且概念化思维方式,是一种思想而非人造物,为数学与工程思维相互融合和互补所形成的一种思想。计算思维自身为抽象与自动化,这种抽象是借助于嵌入、简化、递归以及转换等方式,把某一个较为复杂的问题转变成多个简单的子问题,并实施求解的一个过程。而自动化则是指通过计算机自身所具运算能力的充分利用来分析、解决各种问题,以此来弥补人在计算方面所存在的各种缺陷和不足,这种自动化也在很大程度上使得计算机应用范围更为广泛。基于上述这些内容可知,计算思维其实就是一种人机共存、形式规整以及解答问题的思维。

2基于计算思维培养的C程序设计验教学

2.1教学目标的明确

众所周知,实施教育的主要目标就在于学生综合能力以及素质的培养。目前我国教育部门在计算机教学目标上予以了明确的规定,即计算机基础教学能力培养的目标应包含四个方面的内容,即计算机认知能力、计算机应用能力、网络学习能力以及借助于计算机的一种共处能力,在这些目标中,前两个目标所反映出来的内容及就为计算环境以及问题求解。在计算机这门学科中,C程序的设计就是计算思维中的语言机问题求解。对此,在C程序设计教学过程中,计算思维这一能力不仅仅为其核心能力,同时也是教学中的核心内容。鉴于上述内容,在本次C程序设计实验教学上,教学目标主要为计算机思维的培养,教学主要内容为程序设计方式的讲解,通过上机实践的强化,使学生能够借助于这种实践感受,以及计算问题求解基本方式与思维模式的领悟,为学生创新能力的培养以及综合素质的提高打好基础。下图为C程序的设计的教学模块。

2.2教学内容的设计

在计算机这门学科中,C程序设计这一课程属于理论和实践并重的一门课程,要求教师在教学过程中,必须要把理论教学和实践教学有机结合,从而使理论教学和实践教学能够互相推动。在教学过程中,由于学生对于所学内容缺乏一定的感性认识,对此,教师在实施教学,应综合考虑学生自身的学习情况,结合所要学习的内容,对C程序实验教学内容进行合理且科学地设计,把学生能力的培养、知识的传授以及技能的训练等融为一体,使学生能够在做的过程学到知识,在学习过程中获得相应的操作技能,继而使其能够将自身所学到的内容与知识有效地应用至实践中,并解决在实践中所遇到的各种问题。为达到理论够用实践突出这一目的,在本次C程序设计教学中,把所有的知识点归纳并总结为了九个核心点,根据所学内容的难易程度,把教学过程细化成为三个模块,即基础能力、中级应用以及高级应用,基于由浅入深这一原则,循序渐进地实施教学,把C程序实验教学分为了三个方面的实验,即验证实验、综合实验以及设计型实验,通过这种方式,使学生能够在记忆中来理解所学知识,并在理解中学会怎样应用这些知识,最后使学生在实践应用过程中学会创新。第一,通过验证型实验的实施,使学生能够熟悉该语言的设计环境。学生实施编程以及应用编程的一个基础就是基础能力模块知识,在该模块中,教师必须要求学生学会记忆以及理解,把该模块实验教学内容设置成为验证型的实验,让学生对于C程序设计环境以及步骤有一个基本的认识,使在学生熟悉这一环境后,了解该程序的书写格式、特点以及结构,了解并掌握该程序数据的基本类型、表达式以及运算符等,继而进一步使学生掌握C程序数据的输入以及输出,明白C程序所具备的三种结构,使学生通过验证型实验,可独立解决编程方面存在的各种问题。在实施验证型实验教学时,应要求学生应按照教师解决问题的方式来完成相应的实验内容,这种模拟的方式就是计算思维的模仿,在这一环节中,所强调的是科学内容活动的演示以及证明,注重是学生实验操作、观察、数据处理以及计算等个性化智力技能的培养,在教学过程中,学生借助于验证标准的这一已知程序来理解并学习基础模块中的内容,在理解和学习的过程中,学生可直观且清楚地看到在实际实验程序中各知识点的具体应用,能够更为快速地熟悉这种环境,继而更为地理解以及记忆C程序设计的基本知识。此外,在学生实施验证型实验之前,教师应实适时引导学生对以往所学C程序知识进行回顾,并在基础上对实验步骤实施讨论,提出相关的注意事项,针对学生在实验中容易出错的这些操作方,教师应该事先进行示范,以免在实验中学生出现一些不必要的错误。第二,通过设计型实验的实施,强化学生计算思维能力的培养。所谓设计型实验,就是指不同计算思维方式的综合应用来分析并解决各种问题。设计型实验是基于学生自身已掌握相应的实验方法与技能,通过所学知识的应用,自行提出相应的问题,并在此基础上分析和解决问题,经过算法的分析、程序运行结果的分析处理以及实验结果等,获得正确且规范的研究分析理论。在这一环节中,所注重的是学生团结协作、勇于探索以及的严谨求实精神的培养,在实施设计型实验教学时,教师应事先对程序进行填空、设计以及改错,并提出相关的思考问题,积极引导学生来讨论与分析,鼓励学生提出不同解决方案。第三,通过综合型实验的实施,强化学生创新以及应用意识的培养。在C程序设计实验教学中,为培养学生创新精神以及探索精神,使其计算思维得到扩展与升华,可结合学生自身的学习进度,基于所学内容的难易程度,定期设计一个相应的综合型实验程序题目,鼓励学生在课外课余时间来编程,同时在规定的时间内把所自己的所编程的这一源程序上传至电脑,由教师来进行批阅,对于参与这一活动的学生,教师应该实施相应的鼓励,这样不仅能够进一步激发学生学习的兴趣,同时还可提供学生的实践操作能力,使学生今后能够更好地适应社会市场,在潜移默化中使学生应用创新能力以及计算思维得到培养。总之选择了一些趣味性强、有吸引力的例子和话题以提高学生的学习兴趣,选择一些实用性强的例子和话题,以努力提高高校学生的工程实践能力。精选的“不断提升”的引导性例题、习题和实验题,以及贯穿全书的综合实例,起到了开拓思路、引导读者探究问题求解方法、激发读者程序设计兴趣的目的。

2.3基于计算思维能力培养的C程序设计实验教学

第一,上机操作实验流程的规范。在教学之前,教师应该要求学生对所学内容进行预习,通过题目的分析,明确实验教学中所需的数据结构,对参与运算的这些变量进行赋值,接着应用三种结构来解决问题,将结果输出,进行N-S流程图的绘制,基于该图编写相应的源程序,最后准备好测试程序所需的数据以及预期结果,进行上级调试工作,并归纳总结。通过实验流程的规范,不仅便于学生良好学习习惯以及思维习惯的培养,同时还可提升学生分析与解决各种问题的能力。

第二,加强上机操作过程中的指导与引导。在学生实际上机操作时,教师可借助于提问的方式来引导学生将自身所存在的问题找出来。在程序调试、上机输入以及编辑时,除了系统所引发的问题外,通常情况下,其他问题均由学生自己来独立解决。此外,在教学过程中,教师还还应鼓励学生采用不同的算法,正确引导学生反思这些算法,继而培养学生的计算思维能力。现以“打印水仙花树”以案例说明。

第三,加强实验过程的反思,采取合理且科学的考核评价制度,使学生的计算思维能够得到扩展。在上机完成以后,教师应要求学生对于本次实验实施反思、总结以及归纳,可采取小组的方式来交流和沟通,集思广益,使学生在交流和反思的过程中,拓展其计算思维。此外,还应采取相应的考核评价措施,可采取机考与笔试,结合学生平时学习表现情况,合理且科学地评价,对于学生所获得的成功,不管大小,均应予以相应的肯定,以此激发学生学习的积极性。下面以“打印水仙花数”为例,简要说明基于计算思维的案例设计的基本方法。“打印水仙花数”案例设计步骤(图3)打印水仙花数”案例的具体设计与实施(图4)

3结束语

程序设计教学论文范文第7篇

关键词:程序设计;案例教学法;理论教学;实验教学

中图分类号:G642文献标识码:A文章编号:1009-3044(2007)18-31761-02

Teaching Method Exploration for Basic Programming Course Based on Unitary Case

XIE Cong-hua

(School of Computer Science, Changshu Institute of Technology, Changshu 215500, China)

Abstract:In order to improve study efficiency and teaching effect of basic programming, a new unitary case teaching method is presented. This method elaborates a teaching case for all contents of this course, while emphasize unity, affiliation, applicability and practicability in the theory teaching, class discussion and experiment teaching. Teaching experience shows unitary case teaching method has good effect and is worthy of further researching and extending.

Key words:Programming; Case Teaching method; Theory Teaching; Experiment Teaching.

1 引言

《程序设计基础》是高等教育中计算机必修课程之一,是很多后继专业课程的基础,是高等教育的一门重要的基础课程。《程序设计基础》对初学者来说难于理解,学习效率和教学效果比较差。如何让学生学会读程和编程,引起了很多专家和学者的注意。

目前,已经有很多教师和学者为解决此类问题,提出过较好的方法。刘学[1]提出了上课教学应该点线面相结合的教学方法,肖随贵[2]提出要紧扣“程序=数据结构+算法“的核心,孟佳娜等人[3]提出了以任务驱动改进教学方法的思想。他们这些方法是多年教学的心得,给教学工作者很好的启示。

本文提出一种新的教学方法:即整体案例教学法。主要从以下三个方面进行探讨:(1)教学案例的选择与设计;(2)案例分析与讲解,课堂讨论,得出结论;(3)综合实验进行实战演练。案例教学起源于哈佛大学商学院,它是一种与传统教学的“概念――理论――应用”模式完全相反,采用“案例――理论――概念”模式的教学方法。通俗地讲,案例教学是通过对具体实例的演示、讲解,让学生对案例进行分析、讨论、交流,充分表达自己的见解,以达到高层次认知学习目标的一种启发式教学方法。本文针对《程序设计基础》的内容特征,提出了整体案例教学方法,可以让学生从整体上把握《程序设计基础》的主要内容,灵活应用这些知识点进行动手编程。

2 教学案例的选择与设计

《程序设计基础》的基本内容有:程序设计的产生发展过程、语言基础(包括数据类型及其定义)、程序设计的基本语句(赋值语句、输入/输出语句、顺序语句、分支语句、循环语句)、数组的定义和使用、程序的调试、文件的定义与使用和过程与函数的定义与使用。

常量、变量、常用函数等。如果呆板地按这样的顺序教学,学生学习的都是纯理论的知识,内容枯燥乏味,抽象不易记忆,缺乏连贯性,会挫伤学生的学习积极性。我们为《程序设计基础》的所有教学内容精心设计了一个学生都很熟悉的案例如图1所示。

案例选择学生熟悉的学生成绩管理系统,对整个学期的教学内容规划和进度安排作一个周密的计划,把《程序设计基础》的知识点都体现在里面。由于学生专业的不同,对计算机知识的要求也不同,存在不同层次的需求。为了满足不同人学习的需要,可以在图1中增加或者减少部分功能。把图1的功能用程序设计语言规范地开发出来,基本上按照书的章节分解模块,便于教学。

图1 基于文件的学生成绩管理系统

3 案例分析讲解与课堂讨论

案例设计和开发后,先把案例的整体功能及其与教材的章节关系进行分析和讲解,然后分析和讲解单个模块。根据作者的教学经验,总结经验得出以下几个原则。

3.1 生动具体的生活语言与专业术语结合

对于程序初学者来说,有些专业术语听不懂,比如什么叫内存地址,索引,递归,堆,存储变量的赋值,无法理解变量的作用域和生存周期,更是无法理解参数的地址传递和值传递的区别。在整体案例教学中,结合图1中成绩管理系统的各个功能模块学习和理解语句语法的用法,采用生动的语言和具体形象的比喻帮助学生理解,把枯燥沉默的课堂变得活跃有趣。如程序设计语言中的字符、词语、语句的学习,可以把具体的汉语和英语学习经验来类比抽象的程序设计语言学习。又如,对于图1中涉及到的交换和排序等算法,可以通过学生表演展示。两个变量的交换,老师在上课时让三个学生上台表演,一个人手里拿5元钱,另一个人拿10元钱,每人只能用1只手拿一张钱,如何才能把他们的钱互换,如果只要2个同学, 那这个结果是什么?关于排序的不同算法,可以让多名身高不等的学生如何按照算法的思想按照学生身高的升序或降序排队。通过这么形象的表演,学生会理解得非常深刻。

3.2 案例与教材章节的整体性与联系性相结合

首先系统分析一下图1中左右图框的对应关系,让学生有一个整体了解。然后具体分析调用相应的模块实现了什么功能,主要用到的了教程的什么知识点,是如何实现的。最后回到教材对一般的语法和规则应该怎么做。这样的案例法可以让学生不再觉得程序设计的枯燥,知道这些知识将有什么具体的作用,所以很容易接受。

分析和阅读程序模块时,把功能模块细分成块:包括数据的输入块,数据处理块和数据输出块。通过分解模块,让学生有一个清晰的思路,同时也可以培养学生以后按照这样的思路和规范写程序。

整体性还体现在前后不同章节的联系,让学生对几章的内容联系起来看问题,而不是孤立的去学习知识点。为什么有单个变量还要定义一组多个变量的数组? 为什么有了变量和数组还要学习文件,他们之间存在什么关系?为什么有了顺序语句、分支语句和循环语句还要定义函数和过程,以及的它们的区别是什么?通过回顾总结这些知识点,引入新课内容,为课程做好承前启后的过度。

3.3 课堂讨论反馈问题和培养创新。

课堂留下一些时间,让学生讨论案例的算法和功能的不足、基本知识点的疑问、教学方法和手段等问题,可以及时反馈给教师,供其修改教学方案和改正存在的教学问题。

课堂讨论中注意灌输一些计算机算法的思想,不只注意一些语言本身的细节,沿着程序设计,数据结构到算法分析的思路进行分析。对案例中实现的功能,讨论如何去改善算法,以提高程序的运行效率提出自己的设想,进而逐渐培养学生的创新能力。尤其是程序设计的重点与难点知识,通过大家积极思考,集体讨论,让老师和同学会有不同的理解。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

4 整体案例法的《程序设计基础实验》教学

《程序设计基础实验》教学是整个教学过程的重要组成部分,它可以培养学生多方面的能力:一是实际动手操作的能力;二是独立获取知识的能力;三是培养学生解决问题的能力;四是综合应用所学知识能力;五是团队合作的能力。基于整体案例法的《程序设计基础实验》,有以下几个建议和方法。

4.1 由简单到复杂的循序渐进实验

首先,通过调试编好的程序,深刻领会教程的知识点。单步调试可以从本质上理解一个程序的执行顺序和程序设计的概念。给学生提供一些经过调式过的规范程序,让其单步跟踪、各种输出语句等理解程序中词语和语法,变量值的变化过程,深刻领会教材中的基础知识、基本概念和基本原理。然后,实现一些比较容易实现的实验,不至于在实验初期使学生产生畏难心理和抵触心理。随后通过加大难度,补充案例中部分模块的一些语句、过程或函数,学生可以体会到成功的喜悦,产生学习的兴趣和动力。最后,通过综合实验提高灵活运用的能力。

4.2 实验课培养团队精神和创新能力

由于学生都没有编程和调试的经验,所以会遇到很多问题,其中有很多问题是共性问题。同时学生较多,大班有100-150之多,小班也有30-50人之间,而教师人手有限,所以实验课上往往是老师累得忙不过来,而学生的问题没有都得到及时地解决。为此,整体案例法的实验中把5个人分一组,按照“男女搭配,优差结合”的原则组合成一个“整体”。各个层次的学生相互取长补短,一方面大大地减少了问题的人数,另一方面学生帮助解决问题也是一种能力的提高,可以发现自己没有遇到的问题。

组建团队后,细节问题让小组讨论解决,而老师解决一些共性的问题,这样大大的提高了实验课的效率。同时,为了完成大实验作业,让小组团队分工协作,可以培养学生动手查阅文献的能力,设计出不同的算法的创新能力,以及团队协作的能力。

4.3 设计综合实验和考试诱导法,提高综合能力

在课程的后期阶段,要逐渐的加大实验难度,通过设计和实现一些综合实验,以培养学生自主学习能力和创新能力。实验项目最好结合整体案例法,设计与之相似的、功能比较全的综合实验。通过小组集体设计和分解模块,制定编程的规范,由小组成员协作开发。

考试诱导发可以避免临时突击, 死记硬背, “高分低能”现象,可以有力地督促学生加强动手能力的培养。通过考试诱导学生更加注重实验课程、编程规范和过程。这门课程的最后成绩包括理论考试和综合实验成绩,各占一半。其中综合实验的分数评定应根据实验报告的设计书、团队协作和组织情况、编程格式规范、编程流程和实验总结各方面,而不是只注重最后的结果。

5 结束语

本文对程序设计基础课程提出了一种整体案例教学法,精心设计和编程实现了一个学生成绩管理系统的案例,涉及到课程的所有知识点内容。从案例分析和课堂讨论,实验教学等方面提出了行之有效的教学方法。

参考文献:

[1]刘学. 程序设计课程教学中的有效方法[M]. 全国第五次程序设计语言发展与教学学术会议论文集. 清华大学出版社,2006:186-188.

[2]肖随贵. 高校程序设计语言课程教学改革探讨. 全国第五次程序设计语言发展与教学学术会议论文集.清华大学出版社[M]. 2006:189-190.

[3]孟佳娜,胡潇琨,谭征. 非计算机专业程序设计语言的教学改革与实践. 全国第五次程序设计语言发展与教学学术会议论文集[M]. 清华大学出版社, 2006:177-179.

程序设计教学论文范文第8篇

关键词:图式理论;程序设计语言教学;程序阅读

1 问题的提出

程序设计语言类课程是面向所有专业一年级学生开设的计算机基础课程,以南华大学为例,非计算机专业为4学分64学时,工科采用c语言,文科选用VB语言。课程目的是通过学习程序设计语言,掌握基本的程序设计思想和编程方法,具备运用程序分析解决实际应用问题的能力。目前教学中普遍存在教学课时短、学生基础参差不齐、教学以“语言”为主、上机以“验证”为主、考核方式单一、重语言轻应用等问题,导致部分学生不知学为何用,甚至滋生厌学情绪,致使教学质量不高。从语言学角度看,程序设计语言与外语同属语言范畴,可借鉴外语教学取得的研究成果与成功经验。

2 理论基础

图式记忆结构,包括语言知识、社会知识、文化知识等。1932年,英国心理学家Bartlett首先使用了图式(Schema)这一概念,用来解释人类的高级心理活动。1980年,美国人工智能专家Rumelhart进一步发展完善了这一理论。图式是大脑为了便于信息存储和处理,而将新事物与已有的知识、经历有机地组织起来的一种知识表征形式,是相互关联的知识构成的完整的信息系统。

图式理论的主要观点是,人们在理解新事物时,需要将新事物与已知的概念、过去的经历及背景知识联系起来,对新事物的理解和解释取决于头脑中已经存在的图式。图式能促进理解,也可阻碍理解。如果输入的信息与记忆中的图式结构不一致,会导致两种情况,一种是拒绝接受与自己原有概念相反的信息;另一种是修正、增补原有的知识结构、尽可能与新的信息一致。图式理论将阅读过程解释为读者所具备的背景知识和阅读材料相互作用的过程。这种对读者运用图式知识进行语言理解和文本解读的阐述就是图式理论,现已被广泛用于语言研究和阅读研究。

根据图式理论,程序阅读的心理构建过程基于两个方面:一是程序文本提供的新信息;二是读者已有的相关知识,如程序设计范式。这一心理过程的完成要求读者利用记忆中的编程语言知识,以及过去的经验、程序设计范式和背景知识对程序所传递的信息进行加工编码、联想和预测,领会作者通过语言符号表达的意图,从而达到与作者相互交流的目的。

按照图式理论,学习者的图式知识结构分3种类型:内容图式(content schema):指文章内容的背景知识,读者对文章主题的熟悉程度;形式图式(formal schema):指读者对文章体裁结构的理解程度;语言图式(1inguistic schema):指学习者对词汇、语法、习惯用法等语言知识的掌握程度及语言运用能力。

程序阅读具有鲜明的学科特色,应扩展图式知识结构内涵,如表1所示,内容图式(content schema):指程序应用的背景知识,如:N—tier、MVC、MVVC、ORM、SignalR等;形式图式(formal schema):指一定的程序设计范式,如:顺序、分支、循环、递归、控制流图、事件响应模型、数据访问模型、Web生命周期、设计模式等;语言图式(linguistic schema):指编程语言的基本符号集合、语句、对象、控件、属性、事件、方法等。程序设计语言教学本质上是以某种特定编程语言为基础,传授程序设计思想。它强调思维的定式,而非局限于语法语义本身,所以教学核心是帮助学生在头脑中构建程序设计有关图式,尤其应注重形式图式的训练。

外语教学以“听说读写译”为训练手段,程序设计采用“读译写”作为训练方法。“读”指阅读代码;“译”指理解他人代码,从代码中抽象出思想,如算法、控制流、数据结构等;“写”指编写程序解决应用问题,将自己的解题思想用程序设计语言加以实现。3种方法都离不开对程序的阅读理解,图式理论是解释阅读过程的理论,所以教学中应指导学生主动地运用图式理论,改善程序阅读效果,进而提高程序设计语言教学质量。《礼记·中庸》中使用“博学之,审问之,慎思之,明辨之,笃行之”来描述学习的层次,它指明了学习的一般规律。程序设计语言教学应遵循这一规律。“读”是基础,该阶段应博学、审问,即广泛阅读程序,掌握基本语法与常见范式;“译”是提高阶段,应慎思、明辨,即分析对比程序;“写”是最高阶段,应笃行,即学以致用,使用编程语言解决实际应用问题。

3 教学中的应用

根据上述分析不难得出以下结论,传统教学模式以教师为中心,以语法为纲,主要分析讲解语句,片面强调语法和算法的重要性,缺乏创新能力培养,显然有悖于图式理论。因此,教学实践中应以学生为中心,以应用为导向,以程序设计范式为核心,遵循“读译写”学习规律,帮助学生主动地构建形式图式,激活扩充丰富已有图式,培养创新能力、实际应用能力。

3.1 构建形式图式

因为学生没有任何程序设计基础,头脑中也就不存在相关图式,所以首先要帮助学生构建程序设计图式。根据图式理论,认知受已有图式影响,因此构建的图式应尽可能确保其质量,这将影响今后学习。我们从Microsoft OneCodeSample与微软示例项目中精心挑选阅读材料,保证程序代码遵循统一的命名规范、编码、注释和文档规范。以1~2个项目贯穿教学全过程,每次课都有一个UI,既容易激发学生兴趣,又可以作为示例模仿,课堂以形式图式讲解为主,辅以图片动画便于理解加深印象。因为语言图式比较简单而且IDE工具提供智能提示功能,因此这一部分由学生自学掌握。部分形式图式案例,如表2所示。

3.2巩固已有图式

因为新信息的获取质量取决于已有图式,尽早激活已有图式有利于学生对新图式的理解和掌握,为此教学中采用了以下措施:①每次授课先回顾上次内容以激活已有图式;②采用螺旋模型逐步增加新信息以丰富扩充已有图式,如表3所示;③联系生活实际,列举现实生活中或学习中遇到的问题,说明如何用程序设计思想进行解决;④邀请学生介绍课后练习的基本解题思路,与学生共同讨论存在的问题及改进意见,刺激学生的学习兴趣,激发学好程序设计语言的欲望;⑤由学生上机实践,解决应用问题;⑥采取“书面考试+上机考试+综合应用”的考核方式,引导鼓励学生学以致用。

4 结语

上述方案自2009年起在软件工程卓越班实施以来,已先后培养了3批学生,收效显著。与普通班比较,实验班学生不但熟练掌握了编程语言语法,而且能运用程序设计思想独立完成课堂示例与课后练习,部分学生还编写了宿舍管理、游艇出租管理、出租车计费等实际应用程序,自主学习能力、应用能力、创新能力明显提升。

程序设计教学论文范文第9篇

关键词:C/C++语言程序设计;教学改革;国家精品课程;教学方法

文章编号:1672-5913(2013)07-0095-04

中图分类号:G642

1 课程教学现状及存在问题

“C/C++语言程序设计”是理工科非计算机专业本科学生的第二门计算机课程,也是大学计算机基础系列课程的核心课程。“C/C++语言程序设计”课程的内容抽象,概念和语法规则较多,特别讲究适用技巧。长期以来,高校都在不断地探索和实践关于“C/C++语言程序设计”课程的教学改革,但仍然存在很多问题。例如,教学依然以传统教学方式为主,不能将实验环节与课堂教学环节很好地相互连贯,相互印证,使得理论教学和实践教学脱节;某些教师忽视学生的实践能力和创新能力的培养,使学生在分析问题和解决问题时无从下手,缺乏编程和调试的能力;实验教学中的多数实验内容是验证性的,学生机械式的运行程序,对知识的理解只停留在表面上;理论和实验课时数较少,上课信息量大,学生接受知识的进度不一样,这就导致教师和学生的学习步调不一致。

针对上述问题,许多高校对“C/C++语言程序设计”课程的教学作出了有益的探索,如文献[1]提出“通、实、新、联”的教学理念;文献[2]提出教学设计原理;文献[3]提出项目教学法;文献[4]提出案例教学法;文献[5]提出“机房授课+自主学习”的授课模式;文献[6]提出将“以应用为背景,以知识为主线,以提高能力和兴趣为目的,变应试为应用”的教学理念应用于该课程的教学中。这些方法均在一定程度上激发了学生的学习兴趣,增强了学生的动手能力,取得了较为明显的教学效果。

为了探究出适合成都理工大学人才培养的课程特点,“C/C++语言程序设计”课程组经过多年的课程建设和对教学环节的研究与探索,提出了“以应用为前提,学生为主体,知识为主线,培养学生的实践动手能力为着力点”的教学理念,构建了一套教材体系完善、教学资源丰富、教学手段先进、教学评价合理、考核方式差异化、精品课程网站新颖的教学体系。下面分别从教学设计、教学方法、教学手段、考核方式以及教学资源等方面进行阐述。

2 教学设计及课程内容组织

2.1教学设计

成都理工大学每年有4000名以上的学生参加“C/C++语言程序设计”课程学习。为实施因材施教,我们重视研究性学习、探究性学习、协作学习等现代教育理念在教学中的应用,根据课程内容和学生特征,对教学方法和教学评价进行设计,并在教学理念与教学设计上实施了多种改革举措。

1)以学生为中心的教学模式。

以学生为中心的教学模式让教师从传统的教学方式中解脱出来,变“教学”为“导学”。教师充分利用多种教学媒体和提示学习资源,讲重点、解难点、释疑点,讲评作业,指导学习方法,辅助小组学习,发挥学生的主体作用,引导学生自主学习,帮助学生培养自学能力。

教师要在理论课前了解学生是否掌握了与课程有关的基础知识和基本技能,根据学生在实验课的表现来了解学生是否掌握了教学目标中要求学会的知识和技能,以及掌握的程度等信息,从而确定后续教学中应重点讲解和辅导的知识,根据学生的实际情况设计教学环节。对于部分优秀学生和已经学习了程序设计的学生,我们要加快他们的学习进度,增加学习难度和深度,使他们可以很快在自己的专业中使用程序设计来解决相关问题。

2)精心准备每一节课,激发学生学习积极性。

激发学生对程序设计课程的学习兴趣,是本课程任务执行的重要目标。学生是主动学习还是被动学习会让教学效果产生明显的差别,因此每位教师都应精心准备每一节课。引领学生跨入程序设计大门的第一节课是极其重要的。学生所关心的是所学课程对自己的专业和今后的工作有什么作用,教师可从不同的专业角度,结合当前最热门的IT话题和实际应用为学生介绍学习本课程的意义和作用,同时介绍一些往届学生将所学程序设计知识用于数学建模、程序设计竞赛、专业课程学习等方面的生动实例,这些都是教师第一节课的良好素材。

3)培养学生系统化的程序设计思维。

程序设计课程长期存在着注重语句、语法和细节的特点,基本上是以程序设计语言自身的体系为脉络展开的。许多学生在学习程序设计语言课程时会觉得枯燥难学,学过后又不能用来解决实际问题。所以学生虽然学了一定的程序设计知识,但编程能力较差。‘部分学生在遇到实际问题依旧无从下手。而系统化程序设计思维培养模式是从本科生的认知特点出发,让教师在教授学生程序设计课程、提高学生编程能力的同时,培养学生的系统化程序设计思维。

程序设计课程不仅教学生如何进行计算机编程,而且教学生如何像程序员一样思考问题。系统化的程序设计思维的培养过程就是让学生自己动手解决实际问题的过程。这个过程充满了学生对未知问题的探索、研究与创新,不仅可以教会学生解决在程序设计中遇到的问题,而且可以锻炼思维,使学生的逻辑思维更加严密,这对一个理工科的大学生来说是至关重要的,对学生整体素质的提高、程序设计课程整体教学水平的提高都有现实意义。

4)互换角色思考与提问。

在教学过程中我们发现,很多学生不提问,有时是学生提不出问题,有时是不知该如何提问。这时,教师需要站在学生位置上,思考学生可能会有什么问题,然后由教师提出问题,让学生来回答。如果学生不能回答,教师再为学生解答。教师备课时不再只是准备我要讲什么,而是思考学生会遇到什么难点,需要向学生提什么问题、解答什么问题。基于此目的,教师需准备大量经典案例,提出问题,分析问题,并在问题中设置一些错误,让学生思考原因,并进一步思考如何修改错误,在这样的学习过程中潜移默化地掌握基本的语法知识和解决问题的方法。这种模式转变了学生的学习方式,激励学生积极思考问题、分析和解决问题。

2.2理论课程设计

由于科学技术的快速发展,计算机科学与其他学科间的交叉、融合日益增强。大多数非计算机专业的培养目标已将学生的计算机程序设计能力作为了一项重要内容。

本课程主要是针对非计算机专业的理工科一年级大学生开设的。与计算机专业不同的是,非计算机专业学生一般只学一门语言课程。因此,该课程的教学就担负起培养学生编程能力的重要责任,成为了学习其他程序设计语言的基础。

根据非计算机专业各学科的培养目标,“C/C++语言程序设计”课程在理论课程内容设计上注意知识结构的合理,强调基本能力的培养,注重基础理论与实际应用的融合。课程内容体系结构重点突出学以致用。课程内容知识结构由C语言简单程序的编写和调试、C语言程序设计基础、控制结构、数组、指针、函数、编译预处理与变量的存储类型、文件、结构体与共用体、图形程序设计基础、C++程序设计基础、查找和排序12部分组成。

根据学以致用的原则,在实际应用中,函数是程序设计的重要内容之一,也是学生学习的难点之一,因此在理论课程设计中,我们将函数的使用提前讲解,让学生尽早接触函数,理解模块化的设计方法,掌握函数的基本设计和操作。在讲授第2章有关输入/输出库函数时,可同时结合第8章文件的知识,使学生掌握实际问题中涉及不同数据的不同输入/输出方式,较好地解决了学生学习C语言后不能熟练掌握文件操作的问题。

教材在内容编排上注重易用性。每章的开头设置本章学习目标,之后设置本章学习指导,包含“课前思考”“本章难点”和“本章编程中容易出现的错误”。每章后的练习题涵盖了程序设计中的常见算法,涉及简单程序设计、较复杂程序设计、易于举一反三的程序设计问题等内容,使学生能够通过练习,大大地提高编程能力。

2.3实验课程设计

“C/C++语言程序设计”是一门实践性很强的课程。在近几年的课程建设与教学改革中,实验课程注重理论课程内容与实验内容的有机结合,强调学生创新能力和实际动手能力的培养。C/C++程序设计实验教学内容改变了以往验证性实验为主的现象,使设计性实验内容占了70%以上。通过实验,培养学生分析问题和解决问题的能力,以及动手能力和程序设计能力,从而加深对理论课程内容的理解。

实验课程配有实验指导书,共设计了11个实验项目和一个综合程序设计,其基本出发点是帮助学生理解和消化课堂教学的内容,培养学生自主学习能力,加强其实践能力和团队协作精神,让学生掌握程序设计的基本思想和方法。具体实验内容包括:C/C++简单程序的编写和调试、C语言程序设计基础、控制结构、数组、指针、函数、编译预处理、文件、结构体与共用体、图形程序设计、C++程序设计基础。

3 教学方法和手段

3.1教学方法

为了实现程序设计课程的教学目标,使学生不但掌握高级编程语言的知识、编程技术和基本算法,更要掌握程序设计的思想和方法,培养学生进行问题求解和编程的能力,以及探索和创新能力,我们采用了多种教学方法,主要做了以下改革。

1)课内与课外训练相结合,注重学生综合能力的培养。

课内教师根据教材进行引导学习,加强典型例题的启发式讲解。在分析常见错误案例的过程中,教师讲解程序设计的基本方法、程序测试方法以及程序调试和排错方法,帮助学生理解错误发生的原因和实质,掌握纠错的方法和解决的对策。在实验教学中,我们为每堂实验课设计相应的实验项目。实验项目的设计注重实用性和综合性。实践教学强调大量程序设计的训练。教师在网上为学生一些经典、实用、有一定挑战性的作业,鼓励学生课外多训练,倡导学生课后以寝室为单位,组成学习小组,进行讨论、分析和解决问题。

为了激励学生参与程序设计的实践,进一步提高学生程序设计的兴趣,提升他们的软件技术水平,成都理工大学每年举行一次全校范围的程序设计大赛。大赛采用初赛和决赛制,要求学生在2~4小时内完成一个综合性较强的程序设计题目,或在一段时间内完成一个综合程序设计题目,然后进行答辩。

2)重视实践教学环节、注重学生创新意识与应用能力的培养。

为了培养学生的实践动手能力,我们加强了实践教学环节的管理。教师要积极使用多媒体实验室的教学设备,进行启发、引导式的实验指导,将平时测试与期末测试结合,测试学生在1个小时内调试和正确编写程序的能力,引导和督促学生重视实践教学。开放性实验注重培养学生的创新意识与应用能力。

3)网站互动学习。

课程组建立的教学网站、精品课程网站、课程资源平台等为学生提供了网络课程、网上答疑、作业提交、理论试题及答案、上机试题及答案、教学录像、视频节目、精品课程网站链接、相关学习网站链接等资源,扩充了课堂教学区域。学生可以在任何时候、任何地点进行互动学习。这种方法及时地解决了学生在学习中遇到的疑难问题。

4)改革考核方式,采用多元评价方式考核实验成绩。

为了提高学生的学习兴趣,培养学生问题求解和编程能力,以及探索和创新能力,我们采用了开卷和闭卷相结合的考试方式,鼓励基础好的学生开卷考试,完成一个综合编程题目。经过实践,参加开卷考试的学生在独立分析问题、解决问题和编程能力上得到了很大提高。

3.2教学手段

多年以来,成都理工大学“C/C++语言程序设计”课程最大限度地、多方位地应用了以下现代教育技术手段。

1)课堂多媒体理论教学。

本课程的理论教学将传统教学手段和现代教育技术手段相结合,在应用现代教育技术手段的同时,继续发挥传统教学的优势。课堂上多媒体课件的播放效果直接影响到学生的听课效果,因此我们不仅制作了幻灯片,还利用Autherware、Flash等工具,制作了具有较强动画效果的多媒体课件,将程序的执行过程利用动画演示,生动、形象地模拟了计算机执行程序的真实情况。

2)建立计算机基础教学网站。

我们开发课程网上教学平台,为学生提供电子教案、多媒体课件、视频等丰富的网上教学资源,同时提供讨论和在线答疑,构建以学生为中心的自主学习环境。

3)网上考试系统。

网上考试系统为学生提供了模拟和考试环境,实现了系统自动组卷和评分功能,为学生课后自学和自测、提高教学效果搭建了一个有效的平台。

4 考核方式

课程考核可以采用开卷和闭卷2种形式。

1)闭卷考试由笔试和机试组成。

(1)笔试(占总成绩的50%)主要考核语言基础、基本的阅读和编写程序的能力。题型包括选择题、填空题、程序阅读题和程序填空题。

(2)机试(占总成绩50%)主要考核程序设计能力,包括上机考试(占总成绩的30%)和平时出勤及作业完成情况(占总成绩的20%)。

2)开卷考试主要考核学生综合程序设计的能力,独立分析问题和解决问题的能力,难度较大。通常只有学习优秀的学生可以参加开卷考试。这些学生必须是按时完成了每一次的实验项目,且中期考试合格。开卷考试要求学生提供源程序、开卷考试报告并参加面试。

5 结语

通过对各种教学方法和教学手段的研究和探索,我们改变了传统的知识传授理念,从而更加注重学生解决实际问题的能力,并提出“以学生为主体,教师为引导,网络教学为辅助”的全新理念,极大地激发了学生的学习兴趣,挖掘了学生的创造潜能,又培养了他们自主研究、协作学习的能力。实践证明,通过上述教学改革措施,教学效果取得了显著提高。在计算机二级c语言考试中,学生通过率较往年大大提升。当然,实际教学过程是一个相当复杂的系统,也还存在着一些需要解决的问题,还需要我们在今后的实践中继续开拓,不断探索。

参考文献:

[1]赵珊,贾宗璞,“C语言程序设计”课程教学模式改革方案探讨[J],科技资讯,2011(35):185-187。

[2]黄群,C语言程序设计课程教学设计探讨[J],计算机教育,2010(5):78-81。

[3]陈洪超,项目教学法在“C语言程序设计”课程中的应用[J],重庆电力高等专科学校学报,2012,17(3):29-30,36。

[4]左永文,案例教学法在“C语言程序设计”课程中的应用[J],科技创新导报,2012(18):175-175。

程序设计教学论文范文第10篇

(1.甘肃农业大学 信息科学技术学院,甘肃,兰州 730070;

2.兰州交通大学 电子与信息工程学院,甘肃 兰州 730070)

摘 要:高等农业院校程序设计类基础课程以培养实践人才为根本目标,将CBE教学模式和程序设计类课程教学结合起来,在教学内容、教材及教学资源建设、教学方式等关键环节进行了综合改革,形成了2+2+3的“理论教学及实验教学相统一的课程建设体系,理论教材及实验教材相统一的教学资源建设,CBE教学方式、项目驱动教学方式及双语教学方式三层次实践人才培养过程”实践人才培养模式,培养具有“宽基础、强特色、高素质、实用性”复合型实践程序设计人才,在实践人才体系培养方面取得了显著成效.

关键词 :高等农业院校;程序设计;CBE教学模式;实践人才培养模式

中图分类号:G645文献标识码:A文章编号:1673-260X(2015)07-0265-03

基金项目:中华农业科教基金会教材建设研究项目“基于CBE项目驱动式的C语言程序设计教学模式探索与研究(NKJ201203023);国家自然科学基金(61063028);甘肃省科技计划资助项目(No.145RJYA288);甘肃农业大学教学研究项目(GSAU120226,GSAU120229);甘肃农业大学盛彤笙科技创新基金资助项目(GSAU-STS-1322)

1 引言

当前,我国农业正处在由传统农业向现代农业转变的时期,用信息技术对农业生产的各种要素进行数字化设计、智能化控制、科学化管理,能够大幅度减少农业消耗,降低生产成本,提高产业效益.根据教育部“面向21世纪教育振兴行动计划”提出的以培养人的创新思维和创新能力的创新教育来适应日新月异的科技发展和社会需求的有关精神,结合高等农业院校的具体情况,以创新教育为导向、深化农业院校学生计算机程序设计能力培养的教学体系建设为目标,对高等农业院校程序设计类课程人才培养模式进行了探索和改革.

程序设计类课程是高校计算机教育的基础与重点,是一门对理论与实验开展同步教学的课程[1].在不远的将来,程序设计和数学建模与微积分、高等代数、大学物理一样,成为所有大学的核心基础课程[2].程序设计类课程具有知识点多、概念复杂、规则繁多、使用灵活、自由度大、抽象度深等特点[3-5].我校生源中农村学生居多,基础教育阶段接触计算机较少,大学低年级阶段急需大力普及计算机基础知识、培养计算机应用能力.作为农业院校,程序设计类基础课程培养人才的目标要更明确,方法和手段要更有效,因此培养具有“宽基础、强特色、高素质、实用性”复合型实践人才是非常有必要的.

在这个培养目标基础上,学校按照国家精品课程指标体系要求,突出创新意识和能力培养的先进教育思想,强化教学全过程管理,以把程序设计类基础课程建设成为能够反映本学科领域的最新研究成果、具有农业院校鲜明特色的示范性精品课程为目标,在教学内容、教材及教学资源建设、教学方式等关键环节进行了综合改革,形成了2+2+3的实践人才培养模式,在实践人才体系培养方面取得了显著成效.

2 基于CBE项目驱动式的程序设计类实践人才培养模式

CBE(Cometency Based Education)的涵义是“职业综合能力为基础的教学模式”,简称能力教育[6].CBE教学模式的特点是教学方法多样化,一切以学生为中心,强调在实践中学习,在学习中实践[6].CBE的特点恰好和我校实践人才培养目标相符合,学校以“十二五规划”建设为契机,融合CBE教学特点,建立程序设计类基础课程实践人才培养模式,结合高等农业院校的实际,以岗位必须的知识、技能、行为意识为从业能力的基础,以能力表现为教学目标,教学进程的基准,注重“学”并以学生的学习为中心,不受时间和环境限制组织课程与实施教学,形成了2+2+3的实践人才培养模式.

2.1 理论教学内容及实验教学内容相统一的建设体系

2.1.1 理论教学内容课程体系建设

随着我国经济持续快速增长和信息技术的飞速发展,我国走新型农业现代化道路对培养新一代具有信息素养和计算科学创新能力的农业科技创新人才提出了迫切需求.以这种社会需求为导向,对农业院校程序设计类课程体系建设进行探索和改革,构建“分层次、分专业”的课程体系,贯通三大层次全校五十三个农业本科专业培养方案,将程序设计类课程按专业分三类开设,农医类专业开设VB、文史类专业开设VFP、理工类专业开设C,实现了因材施教、以社会需求为导向的目的.教学内容强调课程内多知识点融合、跨课程知识体系融合、已学与拓展知识融合、实验与课外研究融合等四方面,做到了从点到面、从单元到系统、“引导入门-基础系列-专题研究-科学研究”的循序渐进的教学过程.

2.1.2 实验教学内容体系建设

通过实验进一步理解程序设计的基本知识,通过理论和实践教学,使学生较好地掌握程序设计语言各方面的知识,掌握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用程序设计集成环境进行程序设计语言的编写、编译与调试,达到全国计算机等级无纸化考试的要求.为配合理论教学我们将实验分为以下三种类型.第一类是基础与验证型实验,主要涉及该课程的相关知识点;着重培养学生逻辑分析的能力,学会使用流程图、伪代码描述问题,学会使用计算机的处理方法思考问题,把计算机语言的教学内容从数学游戏的圈子转变到社会实践中的计算机应用,培养和训练学生分析、解决实际问题的能力.第二类是设计与开发型实验,有效培养了学生综合应用知识与技术的能力,培养学生带着问题自主学习、寻找答案的能力.实际中结合学生信息管理系统、数值数据处理、信息数据管理等开发案例展开实验.第三类是研究与创新型实验,针对部分兴趣高、编程能力强的学生设计该类实验,重在培养学生的研究能力与创新意识.采用软件工程的方法引导学生进行分析和设计,实现完整的小型应用系统,主要以“挑战杯”、“创新杯”竞赛、SRTP项目及毕业设计的形式进行开展.

2.2 理论教材及实验教材相统一的教学资源建设

2.2.1 理论教材建设

根据《普通高等教育农业部“十二五”规划教材》的要求,并按照2013年全国计算机等级考试调整方案要求,对教材每个知识点按照“提出问题—解决问题—归纳分析”三部曲进行建设.对每个实例按照“提出实例—程序设计分析—参考程序—程序运行结果—程序分析—注意事项”几个步骤进行编写.在各知识点中,增加了一些兼具趣味性和实用性于一体的程序实例,并补充了代码风格、函数封装、程序调试、常见错误分析等现代程序设计必备的知识.这些资源通过整合后上传至网络教学平台成为网络课程,由授课教师按课程进度授权给学生使用.

2.2.2 实验教材建设

为配合等级无纸化考试要求,实验教材运行环境建立在等级考试集成开发环境下,增加了无纸化上机测试题,包括选择题、程序改错题、程序填空题和程序设计题四大部分.教材建设过程中,收集整理了大量教学资源,注重立体教材建设工作,教材全部配套编写了多媒体课件、讲义和教案,习题提供标准答案.配套课件实现“文字分层显示、算法动态演示”的功能,增强图文并茂的特点.

2.3 CBE教学方式、项目驱动教学方式及双语教学方式三层次实践人才培养模式

强调实践对理论教学的指导作用,将企业作为实训基地,建立校企长期合作,采取校企互动的方式,针对性地培养既具有扎实的基础理论知识,又能解决实际工程问题的复合型、实用型人才.实践项目内容从知识方法应用、综合设计到研究探索循序渐进,深化实验项目的层次性和工程背景,实现以工程为背景、研究方法多样、综合应用所学知识、对实验进行研究探索的程序设计类实践教学体系,从而使程序设计类课程体系更加适应社会需求,更加灵活应变.实践教学体系如图1所示.

充分利用现代化教学手段,注重各种立体化教学资源的积累和充分利用,采用项目案例递进式实训过程LTM(Learning Training Mentoring)的循序渐进的模式提高实训质量,利用网络教学平台优化课程答疑和反馈的方式和途径,改革课程的考核方式使其更有利于检验学生的能力,广泛利用网络教学平台帮助学生课后学习和自主学习,培养学生的学习能力.具体教学方式如下,教学过程见图2所示.

2.3.1 CBE教学方式

第一层次是通过互动式和案例教学法,在教师的指导下根据教学目的和要求,运用多种形式启发学生独立思考,根据遇到的实际问题,进行综合分析研究,提出见解,做出判断和决策,从而提高学生分析问题和解决问题的能力;第二层次是基本操作技能训练和基本工作能力培养,培养学生具有严谨的科学态度与规范的操作方法,采用仿真与实际相结合的手段,既加强了学生对基础理论知识的理解,又学会了知识的综合运用,使学生能运用掌握的理论知识来解决实际问题;第三层次是实践和创新能力的培养,在实习基地实现基本技能转化现实的工作方法和工作能力,实现“校园人”向“社会人”角色转变.

2.3.2 项目驱动教学方式

从农业院校实际需求出发,项目力求既结合实际,又能涵盖课程教学的要求.教师提出学生自学和开发、研究的进度,设计教学进程,以程序编制牵引理论教学,以项目开发和程序的拓展驱动教学.通过项目和实例讲授程序设计的基本概念、基本方法,把重点放在解题思路上.从开始就使学生将注意力集中在所解决的问题领域,从具体实例理解程序设计类课程的开发特点和程序总体框架,通过实例本身既学会某一类问题的解决方法和算法设计,又掌握了程序设计类课程的基本语法、语句.即在程序设计类课程的环境下,针对农业类实际问题进行分析、构建数学模型、设计算法、最后编程实现.

在学习的不同阶段设计不同针对性的实例,主要包括以下三个阶段.第一,开始阶段设计的实例是将学生的注意力吸引在程序设计类课程的总体功能和程序的总体框架上;第二,在学习中间阶段设计针对某些数据类型或应用特点的实例、针对模块分解和组合的实例、针对算法分析与设计的实例等;第三,在学习的后期进行综合课程设计,将所学知识融会贯通.在设计实例的同时还需要调整课程的教学模块,有些章节知识需提前引入,如函数、文件等,先不深入学习,仅作为宏观分析问题解决问题的工具,可在后续实例学习过程中逐步加深理解和应用.

2.3.3 双语教学方式

双语教学是贯穿于以上各教学方式中的.作为程序设计语言,其语法表达采用的就是简单而含义明确的英文单词,且上机环境也为英文界面,二者关系密不可分.程序设计课程教学中加入适当的计算机及程序设计方面的英文专业词汇,部分或全部教案采用英文形式,有助于学生专业英语水平的提高和尽快熟悉、适应以英文信息为基础的软件开发环境.

3 教学成效

程序设计类基础课程实践人才培养模式在全校推广的几年内,教学成效显著,具有显著的教学示范效果.(1)课程教学质量评价高,教学效果好.由教务处组织的学生评教结果显示,课程组的所有教师近3年的评价平均成绩均在90分以上.(2)凝练并更新教学内容,融入农业院校的特色先后编写出版了8部教材,其中《C语言程序设计》两部教材先后被列入《普通高等教育农业部“十二五”规划教材》,“VB程序设计”和“C语言程序设计”课程先后被评为甘肃农业大学校级精品课程.按照省级精品课程建设要求,搭建了程序设计类课程学习网站,并开发了程序设计类课程学习论坛.(3)学生学习效果整体得到提升.我校学生参加全国计算机等级考试(二级)的过关率逐年稳步上升,并在全省高校中名列前茅;参加全国计算机等级考试(三级、四级)的学生人数逐年增加,过关率也有所提高.培养模式应用推广期间,课程组教师负责指导学生参加学校SRTP项目50余项;指导学生参加第一、二、三、四届甘肃省“创新杯”计算机应用技能大赛,共获奖项30余项,参与学生90余人;指导学生参加全国大学生数学建模竞赛,共获奖项8项,参与学生24人;指导学生参加全国大学生电子设计竞赛、共获奖项3项,参与学生9人;指导学生参加甘肃省“挑战杯”课外科技学术作品竞赛,共获奖项3项,参与学生10余人;近三年内课程组成员指导学生累积获得省级以上奖励120余人次.我校生源中农村学生居多,基础教育阶段接触计算机较少,但在全国计算机等级考试中通过率已连续多年高于全省高校平均水平.

4 结束语

高等农业院校程序设计类基础课程以培养实践人才为根本目标,将CBE教学模式和程序设计类课程教学结合起来,形成了特色鲜明的2+2+3的实践人才培养模式,全校推广后教学成效显著,具有显著的教学示范效果,为高等农业院校培养具有“宽基础、强特色、高素质、实用性”复合型实践程序设计人才奠定了基础.

参考文献:

(1)付沙,薛娟,陈智俐.计算机程序设计类课程实验教学改革与研究[J].计算机时代,2010(4):56-58.

(2)习慧丹,胡洋.高校计算机专业程序设计课程教学改革探讨[J].信息技术与信息化,2012(3):37-39.

(3)乔淑云,黄刚.程序设计类课程教学改革与计算思维之培养[J].计算机教育,2012(10):17-23.

(4)王方.C语言教学模式:“简单任务+归纳法”[J].安庆师范学院学报(自然科学版),2011,17(3):112-116.

程序设计教学论文范文第11篇

中图分类号:G424.1 文献标识码:A

Improving the Experiment Equality on the C Programming

by Group Teaching in the Network Environment

ZHU Juan

(Information Science and Technology, Jiujiang UniversityJiujiang, Jiangxi 332005)

AbstractGroup teaching method is an important method that used widely in the practical classes. And it is important to reform the teaching model, and to improve the teaching quality. In this paper, the method of group teaching is introduced to the experiment of C programing class. By developing the group strategy, the students complete the experiment tasks by team working. The result proves that the method of group teaching is valuable in the C programing class.

Key wordsgroup teaching; teaching mode; teaching feedback

0 引言

C程序设计课程受众非常广泛,普通地方高等院校几乎都有开设,对计算机专业的学生而言,这是程序设计的入门课,也是专业核心课;对非计算机专业学生而言,这是通过计算机等级考试的核心科目,是必选通识课。

随着计算机理论教学的逐步深入,C程序设计课程的教学模式也几经改革,取得了很大的进步,但是,还存在着一些问题:C程序的教学往往过于强调语法的讲授,对如何分析和解决问题讲得不够透彻,没有把编程思路放在主体地位上;过于注重课堂讲授,对学生编程能力和程序调试能力的训练不够,忽视学生实际动手能力的培养。C程序作为一门程序设计类课程,实践能力是其重要的环节,虽然大多数高校都安排了实验上机环节,但是将近一百人的课堂,只有一个教师进行指导,这样的实际情况下,教师对学生实际操作的指导是远远不够的。因此,往往在一个学期结束之后,仍然有不少同学甚至不能进行简单的程序调试。

针对以上现状,本文试图构建分组实验的教学模式,提高C程序课程实验教学的质量,提高学生编程能力。

1 分组实验教学的概念

分组实验教学是根据实验课程及现有学生特点进行分组,使之以组为单位来完成实验任务,以提高实验教学效果,促进学生动手能力的提高。

2 分组教学的准备

2.1 分组实验设施的配置

C程序设计课程的实验教学一般都分配有专业的实验室,人均一台电脑,安装有专业的实验软件,一般为Turbo C2.0或Visual C++6.0,学生以自己的电脑为单位独立完成实验任务。本文拟提出的分组实验教学模式,在原有的实验设施的配置之上,还需要配置有网络连接,通过网络实现分组讨论。

2.2 小组的划分

在以往的类似分组实验教学活动中,对学生的分组一般是按学号顺序进行分组,这样的分组会导致学生学习能力在各小组分配不均匀,可能会出现有的小组实验能力特别强而另外小组实验能力非常弱的情形。因此,本文拟提出以学生上一学期的期末成绩作为分组的依据,每五人一组,使得成绩好和成绩较差的学生在各组基本平均分配。

2.3 小组组长的指定

每个小组指定一名组长,组长在小组里很大程度上起到教师的作用,不仅自己完成实验任务,还要负责组织小组成员的讨论安排以及,帮组解决小组成员程序调试中出现的问题。所以,一般指定小组内成绩最好的同学为小组组长。

3 分组教学的实施

3.1 实验任务的布置

利用QQ群功能,以班级为单位构建一个班级群,然后各小组成员构建自己的小组群,便于实验任务的布置以及群之间的讨论。教师在班级群将实验任务出去,实验任务包括指定实验名称、实验内容、调试计划等,各小组的实验任务可以相同也可以不同。

3.2 分组实验教学的实施

算法讨论。由于C程序设计是一门程序设计类课程,实验内容主要以编写程序代码为主,而编程的核心是算法的分析与设计。以往很多同学无论是计算机专业还是其他非计算机专业的学生拿到程序题目就开始编写代码,没有算法设计这一环节,因此对于程序调试过程中的逻辑问题无(下转第40页)(上接第38页)法解决。所以,算法设计纳入本实验环节,小组长组织本小组成员在QQ小组群里首先对算法的思路进行讨论,确定行之有效的算法,甚至为了强化大家对于算法概念的掌握,可以要求一个题目用多个算法来实现。

代码编写。通过算法讨论,并确定算法的正确性之后,各小组成员分别独立完成自己程序代码的编写。

程序调试。程序调试时C程序设计实验课程的重要环节。再有经验的程序设计者也不可能将所有程序一次性编写成功,调试――修改――调试,这是程序设计必经的环节。而限制学生C程序实验课程教学效果提高的重要因素就是学生程序调试能力太差。学生往往缺乏程序调试的意识,成绩好的同学遇到问题问老师,成绩不好的同学遇到问题干脆放弃,长此以往,很多同学上机的兴趣就遗失了。本文拟通过分组的形式,遇到问题,小组讨论,众人拾柴火焰高,在小组长领导之下,对于简单问题,成员之间共同解决。对于实在解决不了的,由小组长发给教师,在教师的指导下解决。这样的解决方式,一方面锻炼了学生调试程序的能力,另一方面自己的问题自己内部解决也激发了学生的成就感启发了其继续学习下去的兴趣。

实验报告的编写。以往的实验报告按人头上交,每个学生每次实验课均提交一次实验报告,大部分同学的实验报告均照抄程序代码,敷衍了事。实验报告是对一次实验过程的总结,包括算法的设计,程序的调试等,认真的总结也是一次学习的过程。在本论文中,拟每个小组只需以小组为单位提交一份实验报告。这种形式,一方面避免学生将大部分精力投入抄写实验报告中,另一方面,通过小组长督促本小组成员对本次实验认真总结,除了算法的设计之外,更重要的是调试程序的经验。

4 分组实验教学的反馈与调整

笔者在所授课班级通过实施分组实验教学,班级学生实验动手能力整体比较高,国家计算机等级考试过级率也高出同类班级。

同时,对班级不同小组成绩进行横向比较,发现实验内容难易程度、小组长的沟通和组织能力以及小组成员的学习积极性是影响教学效果的重要因素。因此,需要在教学实践中不断加以关注和调整,发挥有利因素,抑制不利因素,使得分组实验教学模式在C程序设计课程教学中发挥更加重要的作用。

5 小结

将分组式教学模式引入C程序设计课程教学,就课程改革而言具有重要意义,实践证明通过分组式教学,学生的C程序设计理论知识得到了很好的巩固,编程动手能力得到了很大的提高,同时对学生的学习积极性也起到了很好的激励作用。

参考文献

程序设计教学论文范文第12篇

摘要:本文就笔者在“算法设计与分析”课程中的教学改革实践对理论与技术的平衡问题提出了一些看法,并结合近期在学生中所作的调查统计提出了一些观点。

关键词:算法设计;算法分析;实践环节

中图分类号:G642

文献标识码:B

“算法设计与分析”近年来在很多院校的本科阶段开设,体现计算学科以算法为主要研究内容的学科目标。算法研究的是解决计算问题的操作序列,早在计算机技术发明之前,人们就对算法作了大量的研究。在本科阶段开设“算法设计与分析”,就是要使学生通过本课程的学习认识算法的设计与分析对程序设计与程序性能改善的理论指导作用,为今后在职业生涯中开发出具有创新性的应用程序打下良好基础。

基于这一指导思想,在计算机专业本科阶段“算法设计与分析”课程的教学改革就要求我们把握好理论与技术的平衡。如何把握本门课程中理论与技术的平衡,笔者认为需要从如下几个方面加以考虑。

1教学内容

算法课是理论课,它指导的是程序设计的思想和行为。因此,本课程的教学内容以理论为主应是合理的。问题在于对本科阶段的理论深度与广度的把握。首先,从我国普通高校本科阶段数理基础课的教学实际出发,学生掌握的数学知识限于微积分、线性代数、数理统计初步以及不多的离散数学(包括集合论、近世代数、数理逻辑和图论的基本概念)基础知识,远不能达到在理论论证中灵活运用的程度。在算法课程中,无论是算法的设计还是算法的分析,都不能超越这一基础。盲目追求理论严密将会严重挫伤学生的学习积极性。其次,本课程往往开设于高年级阶段,课时少也限制了教学容量。但是,通过有限的理论教学要使学生明白如下几点:

程序设计不能没有理论指导

理论指导下设计的程序更优秀

实际的应用需求将会推动理论的发展

因此,笔者在本课程的教学中在内容上注重以下三个方面:

经典算法设计方法

常用的算法分析方法

算法性能改善对理论研究的要求

2教学模式

很多重点院校,特别是偏重于理论研究的院校开设算法课通常不包含实验环节。但计算学科发展至今,更多的学生走进计算机系学习计算机技术,把算法课作为一门纯理论课来开设,对大多数学生是不利的。以前算法课不含有实践环节的一个可能的原因是技术远落后于理论(数学理论已有近千年的历史,而计算机技术却仅有短短几十年的发展历程),很多精巧的理论很难用当时的描述工具和运行平台加以实现。今天,我们不但能够用高度抽象的程序设计语言描述复杂的算法,在微型计算机上实现大多数流式算法,很多院校还配置了中小型计算机,让学生可以做并行算法的实验。所以,现在我们已经有了验证理论的物质条件,就应当把算法课的课堂扩展到实验室去。

应当认识到,为算法课增添适当课时的实验环节不但是可行的也是必要的。这首先要从教学目标出发,我们培养的是今后从事计算机软硬件开发制造和计算机技术应用的工程技术人才,学习算法就是要培养他们能用正确的理论指导创新开发的实践。其次,通过实验,让学生知道现有技术可能还不足以实现理论上已有的成果,引导学生思考明天可能的技术改进或理论创新。笔者所在学校将算法课的教学模式设置为3:1的理论与实践教学学时比。课堂教学以理论阐述论证为主,实验课实现算法并验证算法的效率。笔者最近在学生中作了一个问卷调查,调查了如下问题:

对你而言“算法设计与分析”课程对提高程序设计技术的水平________________。

回答“没有什么帮助”占3%,回答“有一点帮助”占23%,回答“有较大帮助”占47%,回答“有很大帮助”28%。

对你而言学习“算法设计与分析”课程的最大好处在于_______________。

回答“深入学习程序设计语言”的占20%,回答“深入学习数据结构”的占23%,回答“提高程序设计能力”的占56%。

这说明大多数学生认为算法课确实能提高他们的程序设计能力。

3实验课的设计

笔者认为,在实验课中将课堂讨论的理论加以验证,加深对理论的理解仅仅是实验课最基本的任务。绝大多数学生必须保质保量地完成这一任务。但是,我们从调查问卷中对如下问题的统计数据中却看到一个很让人担心的情况:

你认为学习“算法设计与分析”课程的最大困难在于___________________。

回答“听课理解”的占5%,回答“阅读理解”的占26%,回答“习题练习”的占17%,回答“算法实现”的占53%。

也就是说,半数以上的学生认为用他们在一、二年级所学的程序设计技能来实现已有的算法有困难。认真想来这也符合规律:一、二年级学习的是程序设计语言和基本的数据结构,学生没有充分体验到用语言和数据来设计解决问题的算法进而开发出能实际运行的程序的问题。所以,算法课的实践环节对工科学生来说,不仅是必要的,还是必须的。算法课增添实验环节既能让学生验证理论,还能在低年级所学的程序设计基础上提高程序设计开发的能力。

然而笔者认为,仅仅停留在算法的验证上还是不够的。当今的程序设计技术日新月异,利用当前的新技术实现并应用经典算法,使学生能够跟上技术发展的步伐,增强就业竞争力应当是我们在“算法设计与分析”课程中加入实验环节的另一个重要着眼点。利用诸如模板、仿函数、迭代子、对象合成等程序设计模式将实现的算法拓展成通用的函数库或类库,以此方式在实验中让学生自己掌握在高级程序设计语言课程中由于学时限制未曾深入研习的程序设计技术,从而切实地提高程序设计能力。

普通工科院校计算机专业的学生学习算法的设计与分析的最重要的目标,应当是其在程序开发中的应用。实验内容应该包含应用。笔者认为ACM/ICPC(国际大学生程序设计竞赛)历年来的题目很好地反映了算法设计与分析技巧在程序设计中的应用意义。笔者尝试着在本课程的实验中让有能力的学生研习一些这方面的题目,效果在一部分学生中是显著的。

总之,计算机教育工作者都在思考计算学科教育的本质以及如何提高本学科的教学质量。理论与技术的平衡是这场思考中的一个重要主题。厦门大学的赵致琢教授曾经指出“理论与实践相结合,理论与实践的统一是计算科学发展中最重要的特点之一。”因此,在教学中如何凸显本学科的这一特点,是每一门课程的教师应当认真思考并努力实践的。

参考文献

[1] 中国计算机科学与技术学科教程2002研究组. 中国计算机科学与技术学科教程2002[M]. 北京:清华大学出版社,2002.

[2] 钱能. C++程序设计教程(第二版)[M]. 北京:清华大学出版社,2005.

程序设计教学论文范文第13篇

【关键词】TRIZ理论;创新;程序设计;教学方法

0 引言

我国高等教育已经把培养具有创新能力的人才作为一项迫切的任务。创新问题解决理论是前苏联发明和创造学家G.S.Altshuller 在1946年创立的,“TRIZ”是其俄文单词(Teoriya Resheniya Izobretatelskikh Zadatch)的首字母。目前TRIZ在创新设计、创新教学、创新科研等方面得到应用,取得了可喜的成果,其中阮汝祥 [1]和高常青 [2]在TRIZ的理论和发展、应用等方面做了详细的研究;江敏[3]和卢惠林 [4]在计算机课程中具体如何应用做了深入的研究。但是,这些研究一般都是针对TRIZ理论本身的研究,或是对程序设计类专业课研究,很少对计算机程序设计公共课程的研究,对于非计算机专业学生,程序设计类课程作为一个学生必修课,它不像计算机专业学生要求那么高,设计的程序也不是特别深,只是与自己所学专业有效结合,通过该课程,培养学生的计算机思维、计算机素养,所以更体现出需要创新思维的深入挖掘。本文将TRIZ理论与学生创新能力培养相结合,将其应用到计算机公共课程素养教育中,为培养具有计算机素养软件的创新性人才培养提供一条辅助途径。

1 TRIZ理论的创新思想

TRIZ的含义是 “发明问题解决理论”。经过50多年总结出解决技术矛盾所遵循的创新原则,建立起了一整套实用的解决发明问题的理论和方法体系――TRIZ理论体系。TRIZ理论体系[1]主要包括以下几个方面:问题分析与建模方法;技术系统进化法则;冲突解决原理。

TRIZ理论的创新方法指的是解决冲突的原理,最终建立了包括发明原理、发明问题解决算法和标准解在内基于知识的逻辑方法。在利用TRIZ理论解决实际问题的过程中,首先可以将问题建模成TRIZ模型,然后利用TRIZ理论提供的方法和工具,找出该问题的普适解,再根据实际的情况和环境,最终将普适解转化为领域解或特解。

2 程序设计教学传统模式

程序设计课程长期沿袭传统教学模式:以一种高级语言(如Visual Basic或Visual C++)的语句体系为脉络展开教学,详细地讲解其语句、语法。教学通常采用整堂灌输书本知识,比较抽象,枯燥无味,使学生产生畏惧心理。学生每学习一个语句只需要做一些与该语句有关的习题,学生很少动手实践。教师在实践教学过程中, 对一些问题的解决,方法模式化、绝对化,有没有其他途径或思路,存在哪些不确定因素和各种选择的可能性等。

3 TRIZ理论在计算机程序设计教学中的应用

教学中采用TRIZ理论中发明式教学,将本课程与专业特色相结合,鼓励学生自己思考,并对他们的思考结果给予鼓励,培养他们思考的成就感,进而激发他们的创新思维,使得课堂教学在动态思维变化中,不断提高学生创新能力。

3.1 基于TRIZ 理论进行发明式教学,启迪学生的创新思维和发散思维

针对非计算机专业的学生,在教学中采用TRIZ理论,将本课程分为几个关键点,对关键点鼓励学生自己思考。对学生的创新思维训练的主要方法有:

3.1.1 采用基于专业特色的案例教学法

1/4时间教师传授该知识点,使学生在理论上产生认知。

1/2时间教师与学生互动式解决问题,本专业实际应用在哪些方面,如何应用,有没有更好的方法等等。

3/4时间学生在教师引导下,练习完成问题分析和求解过程,并有效地举一反三。

最后学生自己梳理、总结、提炼知识,并归纳分析问题和解决问题方法,教师进行适当调整。

3.1.2 采用综合作业(项目)引导学生的创新思维

TRIZ理论认为,对问题中存在的矛盾和冲突的解决,作为程序设计类课程,其最终目标在于培养学生的程序开发能力,所以在程序设计课程中,所谓的“冲突”,就是如何培养学生根据实际专业特点,学以致用中的项目开发能力,提高实战能力,即项目教学法[5]。在教学进行到一定阶段时,可以让学生完成一个完整系统的开发,完成整个的开发流程,包括需求分析、设计、开发、测试等等,同时,在实践的过程中,给学生足够的创新空间,在实际项目中培养和鼓励学生发散性的、创造性的设计。

3.1.3 进行创新思维技法和思维方法的训练

每讲完一个知识点,可以让学生相互启发,激发他们的联想思维、想象思维、灵感思维, 进而得到创新的成果,然后再进行拓展,使学生在视觉、感性认识得到充分利用,激发他们的创新激情。

3.2 TRIZ理论ARIZ算法的实践教学,强化实训教学

在课程教学中穿插TRIZ理论的ARIZ算法实践教学,主要从下面几个方面改革:

3.2.1 课程设计和实验内容的改革

将实验课程加强综合性和设计性实训的开设,加入自己的创新思维,才能完成实训内容。这个实践环节对培养学生的创新能力有着重要作用。这些实践课程采用兴趣组合、团队合作、相互帮助和启发的方式,对现有的问题提出创新性解决方案。

3.2.2 实验考核方案改革

采用上机自主学习系统,对每个实验项目按知识要点分配分值,为每个实验项目配置评分程序和测试数据,在实验课结束前10分钟对所有学生的提交的程序进行快速评测,生成评测结果报告,报告中详细记录每位学生的得分情况以及每题完成情况。这种实验考核方案不仅将教师从低层次的批改实验报告等繁杂的工作中解脱出来同时增强了批改的准确性,降低教师重复性、简单性工作量;而且在分数驱动下,大大提高了学生的实验积极性和主动性,实验出勤率达到 95%以上,提高学生了动手编程能力。

3.2.3 积极开设第二课堂, 鼓励学生参与创新活动

基于TRIZ理论的问题解决过程, 是发散思维和收敛思维相互作用的过程, 是运用逻辑思维和非逻辑思维的过程,具体环节的思考又充分利用各种创新思维方法。结合各个学院专业特点和教学优势, 程序设计创新实训联盟,具有实践经验的双师型教师构建第二课堂, 供学生在课余进行创新活动。

4 总结

经过对非计算机专业计算机程序设计类课程的教学研究和实践,我们认为要破除旧的教学体系,需要用新的理念、新的内容、新的方法组织教学,针对非计算机专业学生对程序设计类课程的认知特点、认知心理、学习模式。提出基于TRIZ理论培养创新能力,TRIZ理论不能直接提供问题的创新解决方案, 将通用解转化为特殊解是有效运用TRIZ理论的关键。用先进的程序设计理论指导程序设计教学,在教学中加强编程算法、逻辑思维和编程方法的学习。

【参考文献】

[1]阮汝祥.TRIZ理论与创新方法[K].北京:中华人民共和国工业和信息化部,2009.

[2]高常青,黄克正.由TRIZ理论的通用解求问题的特殊解[J].中国机械工程,2006(1):84-88.

[3]江敏,花丽.TRIZ理论在Web程序设计教学中的应用[J].电脑知识与技术,2012,8(23):5641-5644.

程序设计教学论文范文第14篇

关键词:程序设计 教学 算法

程序设计是我国高校各专业学生必修的一门核心课程,该课程的教学目的是使学生掌握程序设计的基本方法和理论,应用某一程序设计语言编写具体的程序。程序设计的教学质量将影响到学生的程序设计能力,影响到学生创新思维的培养。

一、程序设计课程教学现状

“程序设计”课程长期沿袭传统教学模式,即以一种高级语言的语句体系为脉络展开教学,详细地讲解其语句、语法甚至一些细节内容,学生每学习一个语句需要做一些与该语句有关的习题。课程枯燥无味,学生学习积极性不高,很少动手实践。课程学完后,学生除了学到一些呆板的语句外,收获甚微。

1.理论基础薄弱

有些教师过分重视程序设计语言的教学,而对于程序设计中所涉及的程序设计理论、程序设计的方法和算法的设计思想等理论知识的讲解不够深入、透彻。

2.学生缺乏创新能力

学生可以解决那些和已经学过的知识有直接或有密切联系的问题,而面对一个需要用已经学过的知识进行综合求解的程序设计问题时,就不知从何下手,对所学知识做不到举一反三,缺乏程序设计的创新能力。

3.动手能力不强

学生实际动手能力差,具体表现在两个方面。其一,学生上机调试程序的能力差,难以找到错误产生的原因;其二,实际编写程序的能力不强,编写的程序功能不够完善,风格不一,程序健壮性差。

针对以上出现的问题,我们认为应该在教学过程中对学生各方面的编程素养进行引导和培养。

二、编程方法引导

程序设计的观念虽然发生过很多变化,但程序的基本结构仍然是顺序、选择和循环三种。因此,在学生初学程序设计时就应该注意渗透结构化程序设计的思想,以便使学生养成良好的程序设计习惯。

我们这里谈的不是纯粹的程序设计方法,如结构化的、面向对象的等,而是在教学中渗透程序设计的技巧。这里举一个结构化程序设计的例子。

例:求100以内的素数。

经过分析可以发现,除了“2”以外,偶数不可能为素数,所以外循环有50次是多余的,同理在内循环中,也不必用偶数测试。再进行分析又发现,一个合数最小的因子不会大于它的平方根,所以内循环中的次数被再次减少。最后程序变为:

通过不断改进程序,可以使程序效率得到不断提高,当然这些提高是在数据规模不断增长时才能体现出来。尽管现在很多人认为硬件的速度发展很快,我们应该把速度提高的任务交给硬件去实现,这样的想法未免过于武断。姑且不论类似上述的技巧对于程序执行效率的提高有多少益处,单从基于问题的学习方法这个角度的出发,程序的衍生对于提高程序员的编程水平也是一个很好的训练方法,所以这样的编程技巧是不可多得的,我们在教学过程中就是要进行这方面的引导。

三、编程风格和规则引导

前面提到我们在进行程序设计教学时,传统教学模式比较少注意编程风格和规则的引导,所以很多时候,学生编制出来的程序都是一路下来齐刷刷,缺乏良好风格,死套语法,缺乏考虑可能的不安全因素。

由于学习程序设计是一个循序渐进的过程,所以在教学中如果潜移默化地引导学生从程序设计入门开始,就注意程序设计的一般风格和应该遵守的规则,就能让学生更快更好地编制出高质量的程序来,并且具备良好的编程习惯。

举例说明。我们知道,free和delete都可以把指针所指的内存给释放掉,比如:

这段程序运行一定没问题,但如果在其后加上这样一段代码:

我们会发现出错了!这是因为,p所指内存被释放,但是p存放的地址值仍然不变,即p成了“野指针”。尽管尝试用if(p!=NULL)来判断p的可用性,我们却发现出错处理并没有起作用。所以,良好的习惯是在free和delete后,都要对指针作置空处理,即p=NULL。有人会说如果要这种情况出现在程序结束时,一切指针也会消亡,动态内存也会作系统回收,所以P置空是多余的。但是如果有人将这段程序取出来用到其他地方会怎样呢?结果不是我们想见到的。

四、算法设计概念的引入

程序=算法+数据结构。这就提出我们在进行程序设计教学过程中,不仅要重视语法的讲授,也要重视算法的讲授,甚至是要将算法提到更为重要的地位。程序设计是要解决问题,语言只不过是为解决问题而使用的工具,真正解决问题的是算法,难怪专家说“算法是魂,程序是衣”。

如在C语言程序设计课程教学中,当完成分支结构程序、循环控制和数组,进入内容较多的算法设计教学后,我们将教学内容分为以下五个方面。

(1)一般数据组织算法:查找、排序、字符串处理、求素数、筛选、迭代、穷举等;

(2)函数调用,函数嵌套归、递推及贪心算法等;

(3)指针算法,动态内存分配,链表等;

(4)用矩形法、梯形法计算定积分、模拟算法的随机抽样、蒙特卡罗法等算法;

(5)文件数据处理。

在课堂上增加算法设计的分析和讨论,强调算法设计的优化和程序的优化,是提高学生分析和解决实际问题能力的有效方法。

五、开展研究性学习

在程序设计过程中,开展研究性学习,是为了提高学生分析和解决实际问题的能力,主要是通过对解决问题的算法进行研究而展开的。由于课时所限,并且学生没有足够的实践经验,所以对算法问题的研究也是初级的,主要是讨论典型问题的典型算法及其应用。

1.通过研究性学习,可以重构知识体系,加深对算法的理解。

研究性学习是学生在教师的指导下,选定主题,然后搜集相关材料,对材料进行归纳、加工处理、分析、总结得到相应结论的学习活动。在教学中,可以根据教学内容,经过反复研究,确定研究主题,并根据学生的自愿报名成立研究小组,如搜索算法研究小组等。然后各小组根据自己研究的算法,重新整理相应的知识,对知识进行归纳、总结。通过对各种算法知识进行整理、分类、小结,加深学生对这些算法的理解。

2.通过研究性学习,同学之间取长补短,共同提高。

每个学生都有所长,也有所短,研究性学习一个重要特点就是:分工合作,共同讨论,共同提高。我们可以根椐学生的特点、特长,对他们进行分工,每位学生研究一种算法其中的一个问题,然后整个小组一起讨论,每位学生介绍自己的研究情况、研究成果,然后其他同学进行补充,发表自己的见解,这样每个学生都使自己的研究内容得到补充,同时也学习到了其他同学研究方面的知识,可以取长补短,共同提高。

3.通过研究性学习,总结算法的应用规律,提高程序设计能力。

在进行研究性学习时,除要求学生归纳、整理专题算法知识外,还要总结出算法的应用规律、应用算法解题的步骤和算法的框架。学生通过自己对算法应用规律的总结,对算法的应用得到升华,进一步提高算法的应用能力和程序设计能力。

4.通过研究性学习,提高分析问题的能力、算法表达能力和归纳、综合能力。

对算法的专题研究,不仅要对算法理论进行总结,算法应用的研究也是很重要的一方面,通过算法的解题应用,既提高了学生分析问题的能力,也加深了学生对算法的理解,提高了学生的算法应用能力。另外,我们在算法研究过程中,要求学生透彻理解算法内容,用算法语言准确描述算法,通过这种途径进一步加深学生对算法的理解,同时也提高了学生的算法表达能力和归纳、总结的能力。

结论

我们认为在程序设计教学中,要改革旧的教学体系,需要用新的理念、新的内容、新的方法组织教学。首先要用先进的程序设计理论指导教学,并加强编程算法、逻辑思维和编程方法的引导。其次,重视和鼓励学生对具体问题进行分析和研究,勤于动手和上机训练,养成良好的编程习惯。此外,对不同层次的学生可以进行分阶段教学,前一阶段讲授基本的程序设计方法,除了讲授程序设计语言的基本语法,还对学生进行编程方法及程序设计风格的引导;后一阶段主要讲授程序设计的较高级的语法和功能,提高学生对算法的认知和重视程序,并且在学生中开展研究性学习,培养学生实际动手能力。

参考文献:

[1]李云清等.程序设计创新能力的教学研究[A].全国计算机新科技与计算机继续教育论文集2003.

[2]李海伦等.“程序设计”课程教学改革的研究与实践[J].计算机教育, 2005.7.

[3]丰振.计算机程序设计教学方法研究[J]. 教学研究,2004.9.

[4]等.浅谈程序设计语言课程教学方法[J].吉林大学学报,2005.8第23卷.

程序设计教学论文范文第15篇

关键词:程序设计 创新能力 教学改革

中图分类号:G642 文献标识码:A 文章编号:1672-3791(2016)07(b)-0099-02

计算机的本质是“程序的机器”,只有懂得程序设计,才能懂得计算机,才能真正了解计算机是怎样工作的。程序设计课程在计算机学科知识体系中具有核心的重要位置,在程序设计过程中贯穿阅读判断、分析思考、工具利用、抽象表达等多项技能,对计算机专业人才的培养至关重要。

1 程序设计课程中存在的不足

目前高校计算机专业教育要求培养有一定的计算机基础理论、较强的计算机应用能力的毕业生,计算机应用能力最终是通过程序设计能力体现出来的。当前,程序设计课程教学中存在的问题主要表现在:

(1)课程设置泛而不专。程序设计课程的教学内容有雷同,每门课程都学了一些基本的知识,教学的深度还不够。学到的知识广而不精,毕业生面对社会择业时很难适应工作。

(2)教学方法陈旧落后。目前基本上采用课堂教学主要介绍语法知识、实践教学让学生调试程序。枯燥的语法知识介绍往往提不起学生的兴趣,而简单的验证性上机实践使学生的上机可以草草了事。

(3)理论教学偏离重点。目前一般是以语言为主线,把主要精力放在对语言的掌握和使用上,而对程序设计过程中涉及的基本方法和技术的教学就显得比较薄弱。

(4)实践能力培养不够。目前仍然采用按教材内容的先后顺序来设计实验项目,很少将各个知识点融合起来设计综合性的实验、项目,尤其缺乏综合性的应用实验项目,缺乏实践能力的培养,从而忽视了对课程整体性的把握和实践能力的培养。

(5)实验项目缺少创新。实验项目多以验证性实验为主,缺少创新性实验,这种简单的验证性实验项目很难涉及算法设计、编程实现、调试修改、功能测试等多个环节,对学生程序的检查缺少严格的数据测试,不利于对学生实践能力和创新能力的培养。

2 研究现状

为了提高程序设计课程的教学效果,国内已有许多学者对程序设计核心课程的教学进行了研究,提出了一些改革方案,这些研究对学习某一门程序设计语言和某个教学环节能起到很好的作用。然而这些研究大多是独立地针对某一门程序设计语言课程或者某个教学环节,如针对课程体系[1],针对某一门课程,如C语言程序设计[2]等。程序设计能力的培养不是简单地学习几门语言和改革某个教学环节就能达到的,程序设计能力的提高需要经过一系列课程的训练才能实现。因此,很有必要对程序设计能力的培养作更深入的研究与探索,以提高学生的实践能力和创新能力。

3 程序设计核心课程改革措施

以培养学生的实践能力和创新能力为导向,总结程序设计能力培养中取得的成功经验和存在的问题,分析和研究C程序设计、C++面向对象程序设计、JAVA 程序设计、数据结构、算法分析与设计五门课程的知识体系,对程序设计课程教学进行改革,建立课程体系和实践教学体系,加强教学资源建设,引导学生自主学习,开展综合性、创新性实验。

3.1 课程体系改革

从课程体系规划的大处入手,通过分析和研究五门课程的知识体系,用工程应用理念全面改革了程序设计课程体系的设置;结合计算机产业应用型人才需求,建立了相应的课程体系和实践教学体系,制订出了有针对性的课程标准,全面改革了程序设计课程的教学内容。

3.2 课堂教学方法改革

(1)案例型教学。程序设计中有很多情景性的方法、技术和工程原则,例如各种不同的分析和设计技术,它们只有在具体的应用环境中才能得到深刻理解。通过采用案例型教学方法,紧密结合应用环境的理论教学使知识具体化,让学生真正理解和掌握设计原理。

(2)面向问题教学。建立这种“有目标的选择性”观念就是“工程”观培养和技术主题培养的最大不同之处。培养学生的这种观念,通过采用面向问题的教学方法,在教学当中紧紧抓住“解决实际问题”这一目标,培养学生从解决问题的角度来看待程序设计开发,而不是单纯的技术运用。

(3)研讨式教学。简单的课堂教学只能建立对这些知识浅尝辄止的理解,无法帮助学生真正将其融入“能力”。通过采用研讨式的教学方法,给学生提供了对相关知识进行深入分析的经典文献,组织学生进行思考和讨论。既能帮助学生深入理解重要的知识,又能激发学生的主动学习热情。

(4)面向“实际”教学。五门课程的教学内容是程序设计的知识积累,既有程序设计的经典理论、方法和技术,又涉及程序设计的现状和最新进展。采用面向“实际”的教学方法在保证教学内容完整性的同时,还能进一步促进学生职业素质的培养。

3.3 实践教学方法改革

(1)面向问题的实践教学方法。为了培养学生的工程化程序设计观念,除了在课程讲授上使用面向问题的教学之外,在实践中也将采用面向问题的实践教学方法。例如,在C程序设计课程中,将一个系统的开发分为规划、需求分析、设计与实现、测试4个阶段。分别对每个阶段提出过程规范和验收要求,培养学生在过程规范下为满足验收要求而运用工程方法与技术,完成“工程”活动,解决“工程”问题的能力,而不仅仅是让学生开发一个程序。

(2)探究型学习。程序设计中经常会出现各种各样的特定问题,而且它们大都是课堂教学内容难以覆盖的。为了培养学生解决这些特定问题的能力,在实践中采用了探究型学习方法。在解决问题的过程中,安排使用了一些在课堂教学内没有涉及的方法与技术,并要求学生有效利用网络资源,自主进行探究型学习。

(3)校企合作体验式教学。通过校企合作方式,采用一系列的实践设计,在一个受控的环境下模拟程序开发生命周期的各个部分,使学生在其中获得了尽可能真实的体验。强化团队合作能力和交流沟通能力的培养,将团组实验引入课程,重视文档写作、交流沟通,提高了团队合作积极性和团队协作能力。

3.4 加强教学资源建设,引导学生自主学习

开发了“韶关学院程序设计在线评测系统”。系统包含了核心课程群的相关课程资源,系统已经实现了教师作业、学生自我测试、师生之间自由讨论、程序设计竞赛等功能。学生利用网络向系统提交程序代码,评测系统可以自动按照教师的测试用例执行程序,从执行情况来评判程序的正确性。使学生感受到程序设计不仅要求“对不对”,还要求“好不好”,既可培养学生分析问题和解决问题的能力,同时能训练学生科学、严谨的作风,提高学生自主学习的积极性。

4 结语

提高学生学习程序设计的兴趣、实践能力和创新能力日益成为深化程序设计课程改革的重要课题。针对程序设计课程群,提出了课程体系、教学方法、资源建设和引导学生自主学习等方面的改革措施,这些措施还需要在今后的教学过程中不断完善,进一步培养学生的实践能力和创新能力。

参考文献