欢迎来到易发表网,发表咨询:400-808-1701 订阅咨询:400-808-1721

关于我们 期刊咨询 科普杂志

程序设计教学论文优选九篇

时间:2023-03-07 15:18:57

程序设计教学论文

程序设计教学论文第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篇

《网络程序设计》的教学知识点很多,也很杂,不同类型的高校在教学中采取教学方法存在很大差别,是学好网络安全、动态网页设计和网络管理等的充分条件,教学内容通常可以分为三类,一类是强调广而浅,使学生掌握最基本的程序设计,并了解网络程序设计的前景发展;一类是覆盖类,基于规范或者工具开发网站,使学生的网络知识体系和程序设计的进一步提高,这部分内容更加倾向于技能性培养;一类是覆盖第一类,此部分的教学内容更加重视于网络程序设计能力的培养。

项目教学法是理论教学和实践教学的有机组合,因此非常适合使用在网络程序设计的教学中,项目教学法旨在培养学生整合知识和经验的能力,并不断培养学生积极探索的精神,在改变教学内容和学习评估方面具有很大的优势。项目教学法改变了传统的教学模式,使学生和教师共同参与到教学中,虽然在完成项目实践的过程中,学生同样会遇到很多的困难,但是为了解决问题,很多学生会自发的查询资料,从而,课程教学变得十分生动。在项目教学中教师把课程的重点和难点都落实到了实践中,通过讨论等反馈机制及时了解学生的学习动态。

二、项目教学法的实施

1.项目教学法实施原则

项目教学法和传统教学法相比最大的区别在于把学生作为教学的中心,把项目作为教材中心,学生是认知的主体。项目教学法在实施中需要遵守以下原则,项目的选取要充分结合现实,教师在备选项目案例之前,必须先经过大量的市场调研,项目必须具有实用性、教学型和通用性,在项目的选取中必须选择学生感兴趣的,项目活动必须能够充分调动学生已学过的理论知识,能够渗透到教学中,项目的分解能够保证教学过程的连贯性。

项目教学法以学生作为主体,虽然教师是项目的设计和实施教学的负责人,但是在实践中需要教师和学生共同参与,教师有目的的引导学生进行知识的掌握。在项目教学的实施中,教师最主要的工作是创建学习的资源和协作学习的环境,在学生面对困难的时候,教师需要进行引导,并把学生分为合适的工作小组,实现分工和合作。在项目教学法应用的过程中,教师还必须确定一个多元性的评价方式,强调运行完成项目的方式。

2.项目教学法实施步骤

项目的选择。项目教学法的关键,是设计和制定一个项目的主体,项目化教学法成功首要部分就在于项目的选取。整个教学过程与内容基本来源于教师所布置的任务,因此项目的实施过程中,重要的并不是学习的结果,而是学习的过程。项目内容的选取以及情景的设置必须与所学知识和现实生活息息相关,明确目标,包括相关知识与技能的掌握。通过大量的专业实例考察,总结出网络程序设计所需的主要知识和专业素养,将所学的知识融合在一起,把典型的程序设计融入教学中,要求学生通过学习,掌握基础理论知识,能根据需求自行查找资料。在教师选取项目时为最大化的激发学生的学习兴趣,需要列出应用表单,使学生有目标地参与到项目的实施中。

选择的项目要有层次感以及典型性等,能够使学生联系自己所学知识进行发挥,教师在项目教学法实施之前需要先整理分析学生要完成的具体情况,为项目做好准备工作。从教学方法上来看,教师在项目教学法实施的过程中设置一些问题,引导学生自主性的学习。学生的个体特点以及接受能力存在很大差别,因此在布置项目的时候需要注意项目的难易程度以及学生的接受能力,不能打击到学生的自信心。项目的设计实施需要学生广泛的积极参与,最后在项目的选取中教师需要留出思考空间,启发学生不断尝试,培养学生的创新能力。

具体而言,类与对象以及输入输出流技术是项目的关键部分,在选取项目的过程中必须渗透到其中,项目必须具有实用性和可理解性,本文选取的项目为《学生档案管理系统》的程序设计。

项目的实施。把其分解为多个课内教学实验,本文的设计中共分为五个任务,每个任务都对应着学生的理论知识,前一阶段的学习是后一个任务的前提条件,具体而言五个任务分别为学生档案管理系统——对象和类的识别、学生档案管理的设计(类的封装)、学生档案管理的设计(模板技术应用)、学生档案管理的设计(继承的应用)、学生档案管理的设计(输出输入流的应用等)。使学生有一个整体的认识。在软件预览中教师需要先把制作好的《学生档案管理系统》进行展示,为学生说明学习的目的,激发学生的兴趣,在数据库的设计中,教师可以与学生共同参与到研究中,保证学生所创建的应用程序具有非常高的性能。程序设计一直是学习的重点和难点,在这部分的项目实施中,教师应重点强调课程设计方法,使学生能够熟练地掌握常用函数以及表达式的用法。

本文以第一个分解项目为例,目的是识别学生档案管理系统的类和对象,在情景设置中,先与学生回顾所学过程知识,以及要求用到识别方法,在项目的讲解中,教师需要先向学生讲解学习目的,以及常用构造函数等,通过对象用例分析,逐渐抽象出不同类,还可以采用UMI建模技术来识别类与其类的关系。学生在实践中独立思考理解知识点,在学生遇到问题时,教师可以先给予指导。学生完成项目后,教师可以当堂表扬学生,并通过批阅学生的项目代码,查找学生普遍存在的问题,在项目的回顾中,发现本设计的项目存在很多的全局函数,因此需要进行一些改进,在下阶段的类的封装中进行下一步的学习。

项目教学法的最后一个环节是项目评估,为了保证学生评估的公平公正性,教师需要先设计互评表以及自评表,表中包含具体的分数登记以及评定条目,为提高学生的责任感和自主学习性,在评估中还需要采取自评和互评,评价表需要便于学生的操作等。

三、项目教学法实施需要注意的问题

项目教学法虽然能够极大的提高学生整体规划能力以及交流能力等,但是在实践中还会出现很多问题,因此在项目教学法的应用中还需要注意以下几方面的问题。教学中教师虽然需要足够重视项目的完成,但是也不能忽略掉基本知识的掌握,必须为学生构建一个系统的全面的知识框架。

在学习小组的划分中,必须重视学生的能力,根据学生的特长和能力进行分工,每组的人数不需要太多,最好采取优势互补的方式进行学习,组员之间为避免产生依赖心理,最好先进行分工。在采取项目教学法的过程中,学生的个性能够得到极大的发挥,但是非常容易出现两极分化的情况,因此在分组中,教师一定要注意这个问题,及时对学生的不良情况进行纠正。在评估中教师需要创建一个合理的课程考核机制,把学生项目的完成过程和完成结果也添加在课程考核机制中。最后项目教学法对教师提出了一个很大的挑战,在教学中教师不仅需要指导学生本专业的知识,还需要了解相邻学科间的知识,因此教师在以后的教学中需要不断完善自己。

四、结束语

程序设计教学论文第3篇

1.1理论教学

对于大多数课程而言,从宏观上将课程知识点及其关联讲授给学生非常必要,这便于学生更加系统深刻地理解所学内容。作为教材讲解C语言程序设计的知识点结构。知识点之间的关联可以层层细化,教师首先从宏观上给学生介绍C语言程序的整体组成结构。教师对涉及的知识点进行归类,共包含预处理命令、数据类型、运算符、语句和函数等5部分,从宏观上梳理C语言与程序设计课程的知识点是非常必要和重要的,这样可以避免学生“只见树木,不见森林”,最后只学到一堆零散的知识点,只有从宏观上把握各个知识点在知识体系中的位置和作用,才能学得深、记得牢。对于程序语言课程,如果仅仅介绍语法的运用,学生往往对知识点理解不深刻。我们在教学实践中的体会是:在讲解C语言语法的基础上,适当地剖析编程语言在计算机中的运行机制,会让学生的理解更加透彻。因此,我们的课堂教学方法分为如下两部分。

1)课件讲解。课件讲解包括两部分,即知识点要点总结和知识点运行机制剖析。知识点要点总结就是告诉学生该知识点如何使用;而知识点运行机制剖析则告诉学生该程序在计算机内存中的执行过程。由于绝大部分高校在开设C语言程序设计之前都会开设计算机文化基础等课程,因此学生有足够的计算机基础知识来理解C语言程序的运行机制。

2)实例演示。作为一门编程语言,C语言需要在实践中理解和掌握,因此,课堂教学中,在具体的编程环境(如VC++6.0)下演示十分必要。通过在具体的软件环境下编程,告诉学生应该做什么和不应该做什么,并总结该知识点的注意事项。相比传统的脱离编程环境,只在PPT或黑板上进行板书的教学模式,该方法的教学效果要好得多。在课堂教学中,具体的教学步骤如下:①使用PPT或者板书列出该知识点的注意要点;②在编程环境(如VC++6.0)下演示该知识点的用法,给出正确的和错误的使用方法,并进行对比;③通过幻灯片动画或Flas等形式演示程序在计算机内存中的执行过程,让学生更加深刻地理解程序的运行机制。

3)教学难点与重点——“复合知识点”。从C语言的教学内容来讲,数组、函数和指针是教学的重点章节,这些章节之间相互关联的部分又是重点中的难点,如数组和函数结合,数组名做函数参数,数组和指针结合,指向数组的指针变量,函数和指针结合,指向函数的指针变量等。在教学过程中要反复强调各个知识点的注意事项,如果基本知识点能够理解透彻,上述难点内容也就迎刃而解了。

1.2上机实践教学

在实践教学中,教师可以通过实际教学案例循序渐进地强化学生对C语言知识点的理解。上机实践的教学内容通常分为两部分:基本知识点练习和综合训练。首先通过基本知识点的练习,让学生掌握该知识点的使用,即巩固课堂所学内容;然后通过一个综合性的大作业,训练学生综合应用C语言知识点的能力,例如,通过编写“学生课程成绩统计系统”考查学生对数组、结构体、指针、函数、文件等知识的综合掌握情况。对于初学编程语言的学生,往往没有养成良好的编程习惯,出错的可能性较大,而出错之后进行调试又将耗费较长的时间,这势必对学生的学习热情产生负面影响。因此,一开始就给学生制定科学的编程步骤和规范,使学生养成良好的编程习惯,将大大减少程序出错的可能。下面是按照上述五步编写的一个完整的C语言程序,用来比较两个整数的大小。按照上述五步进行编程,经过一段时间的训练之后,学生出现语法错误的可能性大大降低,此时学生更多的精力将集中在程序算法的设计和实现上。

1.3考试形式

对于C语言程序设计的考核方式,我们采用知识点考核和编程实践相结合的方式。知识点考核偏重于C语言基本语法,用于检验学生对知识点的掌握是否全面,此项考核约占总成绩的40%;编程实践考核用于检验学生的实际动手能力,学生将在规定的时间内根据题目在机器上编程,此项考核约占总成绩的60%。为了实现知识点的考核,我们将考试与计算机二级C语言上机考试紧密结合,采用题库平台进行上机考试,学生直接在机器上答题并提交,知识点考核多采取客观题,如填空题、程序修改题以及读程序题等,编程题在实战编程中考核。C语言程序设计课程的重要特点就是实践性强,学习该课程的目的就是为了编写程序。因此从考试的角度讲,进行编程实践是最合适的方式,通过上机编程来考核学生的学习情况也是最公正和客观的方式。

2C语言程序设计教学实践结果分析

中国矿业大学(北京)每年都有40多个班级同时开设C语言程序设计课程,因此该课程教学质量的高低将直接影响全校理工科学生对C语言的理解和掌握。中国矿业大学(北京)C语言程序设计教学团队经过长期的探索总结出一套行之有效的C语言教学方法,我们将上述方法在学校越崎实验班中进行了试点。如图2所示,采用上述教学法的越崎实验班的C语言程序设计课程考试成绩要明显好于其他班级,其中90分以上的学生占10.7%,80分以上的学生占总人数的53.6%。另外,学生的学习积极性比采用上述方法前得到明显提高,很多学生都对计算机编程产生了浓厚兴趣,实践证明我们提出的上述方法是行之有效的。

3结语

程序设计教学论文第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篇

一、相关概念

(一)面向对象程序设计

OOP是一种计算机编程架构,它具备软件工程的灵活性、重用性和扩展性。OOP不仅具有丰富的理论知识,同时具有很强的实践性,坚持在真实的项目中锻炼编程能力,才能理解其精髓,进而活学活用。

(二)项目教学法

项目教学法以学生为教学中心,是学生在教师的指导下处理项目,提高自身能力的教学方法。其优势在实践性较强的OOP课程中体现得淋漓尽致。具体实施时,教师化身为顾问,主要的作用是引导学生把课堂所学用在实践过程中,理论联系实际,进而提高动手能力;学生是项目的具体操作者,知识水平和发现问题、解决问题能力均能得到提高。

二、改革的必要性

OOP是一门实践性很强的课程,如果不进行实践教学,学生不能全面掌握其核心思想。原因主要有以下两方面:

(一)难理解

由于面向对象概念较抽象,是基于现实世界的特点,对系统的复杂性进行概括、抽象和分类,对象是OOP的核心,是将代码和数据封装起来的具有某些特性的具体事物的抽象。从学生角度来看,以知识点为中心的讲解教学方式理论性太强,不好理解,甚至有部分学生自始至终也无法掌握OOP的重要概念,不能满足课程考核要求。

(二)理论教学多

教师上课采用多媒体教学,这种方式基本上是教师在课堂上唱独角戏,把理论和方法灌输给学生,学生被动地学习,只是把教师讲的内容在大脑中形成记忆,没有自己独立思考的过程,不利于培养学生的创造能力。

三、项目教学法的改革要点

项目教学法设计了完整的软件项目教学背景,克服了传统教学中注重理论知识忽视应用实践的缺点。学生在慢慢了解、逐渐熟悉软件项目开发的过程中,能够理解应用,学习和掌握各种知识并训练相关技能。

(一)项目题目的设定

教师在进行项目教学引导时需要策略,创设学习的资源,协调学习合作环境。教学项目题目的选取是其中的关键问题,选题最好能与软件公司进行交流或合作,应具备针对性和实用性,能体现出学生综合能力的运用,并且可以进行客观评价。首先,项目题目应尽可能覆盖教学大纲的多项知识点;其次,应该构建具有完整项目的项目案例库,项目题目应有不同的难易度和适当的工程工作量,适应所教班级的不同学生的实际水平;最后,项目题目应尽量贴近大学生的生活,并可以用一些标准,如软件是否易用、是否有良好的用户交互性等进行公平、准确的评价。

(二)互动增强

传统的教学环节中,老师和同学的交流仅限于课间十分钟或者课下较短时间的交流,交流时间少,沟通的问题也只是教学内容中个别的知识点。而在项目教学法中,沟通渠道是多向的,老师与学生之间沟通的宽度和广度都加大了。另外,即使在同一课堂上听讲,不同的学生在学习动机、学习心理、学习兴趣和学习能力等方面仍然会有一些差别。

(三)角色换位

在项目教学法中,学生居于教学活动中的主要地位,应该是项目的积极参与者,首先要认真阅读选定的真实项目材料,和同一个项目的同学讨论,甚至就项目问题的不同理解与同组同学展开争辩。其次在真实项目实战场景下,经过认真的独立思考和判断动手编写程序。学生的自学能力和实践能力得到提升,并主动构建自己的知识体系。居于教学活动中从属地位的是教师,教师不再是整个课程的中心。教师对整个教学活动按照工程项目的需要加以指导,做适当的示范,只是项目的指导者或者说是项目进度的推动者,引导学生进行深入学习。

程序设计教学论文第6篇

在教学过程中,教师将基本理论知识重新构建,按照其内在逻辑进行有机筛选、组合在一个或几个项目之中。学生通过对项目进行分析、讨论,明确它大体涉及哪些知识,并找出哪些是已学知识,哪些是新知识。学生在努力完成项目任务的过程中,在教师的指导帮助下找出解决问题的方法,进行自主学习。学生通过对子任务、子项目的学习和掌握,逐层递进为分角色轮岗的综合项目开发学习,教学过程注重对学生的引导学习,培养学生软件设计、数据库设计技术、软件编程调试和软件测试的职业能力。虽然项目做完,但存在对知识掌握还不很牢固的现象,需要做最后总结评估。这一环节,首先让学生表达分享自己,都学会了哪些知识;同时找到自己理论及操作技巧上的不足,以及在项目活动实施过程的最大收获与体会;然后教师要在评估中指出项目活动存在的问题及解决的方法,通过总结经验,分析存在问题、提出困惑、讨论、交流,从而实现对所学知识的掌握。基于项目的过程学习培养学生实际软件开发能力、创新能力和研究性学习能力,培养学生的良好的编程习惯和团队协作精神。

2项目教学法在《程序设计》课程教学中的实践

2.1项目的确立

将项目教学法应用于《程序设计》课程的教学中,教师依据教学内容设计合理的项目。例如选取学生成绩管理系统、学生选课管理系统、通讯录、订单管理系统等,以项目来贯穿整个教学过程和所教授的内容。再把此项目分解成几个子项目,每个子项目可分解为若干个任务,学生通过完成各个任务、子项目,直至最后完成整个项目,来达到对教学内容的掌握和应用。项目与任务的分解可以参照表1。这样设计教学环节,把传授知识为主的传统教学,转变为以解决问题、完成项目任务为主的多维互动式的教学方式,既使学生有兴趣动手编程,又能与理论教学内容相结合,把程序设计语言的学习过程由枯燥的单方向接受变成愉快的探索之旅。例如,在C#的教学中,可以将整个项目分解为几个子项目,每个子项目分解为若干任务[2]。

2.2项目的实施

学生以小组为单位,探究与协作学习相结合。由每个小组负责完成自己所选定的小项目或班级大项目中的一个任务模块,小组成员在学习过程中学会按照软件工程的思想,把每个项目分解为几个任务,探索或发现的信息和材料为全体组员所共享,甚至为全班所有成员所共享[3],小组内或各组间的同学相互学习和借鉴。项目的实施过程中,教师要进行随时点评,即通过随时观察学生编程进展情况,进行实时提示、指导,指出问题所在与解决方法,引导学生不断完善项目的开发,师生按照“学习-改进-总结-提高”的过程进行教学,提高了学生运用计算机语言编程解决实际问题的综合能力。与此同时教师也要指导学生在面对不同的观点时,学会理清和表达自己对编程问题的见解,学会聆听和理解他人的想法,注重团队合作的配合和沟通。由此,学生可以看到编程问题的不同算法和实现途径,从而对编程知识产生新的洞察。

2.3项目的总结与考核评价

项目成品的效果演示是一个组的成员分享劳动成果的时刻,可以激发学生的学习兴趣,探究的欲望,更明确学习的目标。考核方式也是采用以小组为单位的考核方法,每个小组的项目负责人陈述本项目的主要功能构成、设计流程、开发过程,重点介绍原理和方法,以及在完成任务过程中遇到了哪些问题,怎样解决,等等。小组其他人员进行现场演示和补充说明,并共同回答教师以及其他小组成员的提问。教师根据每个小组的任务完成、陈述情况结合在项目确立阶段制定的项目完成的评价指标和标准,给出学生项目成果的考核评价。教师要对项目完成步骤及如何提高项目的解题思路作总体性的概括,同时可对教学知识点的遗漏进行补充,也可进行相关知识点的扩展。编程语言的项目教学评价重在鼓励学生探究、创造、实践,激发学生探究编程问题的积极性、主动性。重视学生能否把学到的编程知识与技能用于解决实际问题,以及在探究和解决问题中所获得的编程体验。总之,其评价应充分体现项目教学中学习目标的达成。

3结语

3.1取得的效果分析

项目教学法在C#程序设计教学过程的应用,是教学模式的改革,是对教学内容和教学过程的重新描述;使教学过程从“以教师为中心”转变到“以学生为中心”;将理论教学与实践教学有机结合起来;为学生创造了充分的发展空间。项目教学法可以促使学生将软件工程的思想和项目管理的方法应用到具体的任务实践中;使学生在学习程序设计的同时能按照软件工程的思想,对任务进行系统的分析、设计、开发、集成和测试,养成良好的程序设计习惯,提升程序设计素养,为以后就业以及参加实际项目开发做好铺垫。通过进行一系列的教学评测,包括学生的问卷调查、教学督导的观摩、企业同行的参与等环节,均取得了良好的反映。

3.2需要注意的问题

程序设计教学论文第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篇

关键词:图论;计算机专业;程序设计竞赛;在线实践

中图分类号:G642 文献标识码:B

1图论及图论教学

图论(Graph Theory)是数学的一个重要分支,以“图”为研究对象。图论中的图是由若干个给定的顶点及若干条连接两个顶点的边所构成的图形。这种图形通常用来描述某些事物之间的某种特定关系:用顶点代表事物,用连接两个顶点的边表示相应两个事物间具有这种关系。这种图提供了一个很自然的数据结构,可以对自然科学和社会科学中许多领域的问题进行恰当的描述或建模,因此图论研究越来越得到这些领域的专家和学者的重视。

基于图论的重要性,目前很多高校课程都涉及到图论知识,如离散数学、数据结构、算法分析与设计、运筹学、组合数学、拓扑学、网络优化等。越来越多的大学将图论单独作为一门课程来开设,作为数学、计算机科学与技术、电子科学与技术、管理学等专业本科生和研究生的必修课或选修课。

图论的教学具有如下特点:

(1) 概念、定理特别多,定理的证明通常都很难,在一定程度上造成教学比较难而且枯燥。

(2) 图论里很多问题都有具体的应用背景,但通常难以转换成图论中的模型,从而求解比较难,所以学生对图论课程有一定的兴趣,但往往会望而却步。

(3) 图论中的算法丰富,几乎每个应用问题都有不同复杂度的算法。例如,最短路径问题常用的算法有Dijkstra算法、Bellman-Ford算法、SPFA算法、Floyd算法,如果要用程序实现这些算法并求解实际问题,对学生的程序设计和算法分析能力有比较高的要求。

(4) 图论课程对锻炼计算机科学与技术等专业学生的算法分析与设计能力有很好的作用。

作者调查发现,国内高校图论课程的教学或者是侧重于完整的图论知识体系介绍、复杂的图论定理证明,或者是侧重于从应用数学的角度介绍图论在各领域的应用。我们在教学中发现,许多学生(特别是计算机专业的学生)在学习图论时,都不满足于图论算法的手工和草稿纸演算,迫切地想知道如何用程序来实现图论中的算法,以及如何用这些算法思想求解实际问题,这就对计算机专业的图论教学提出了新的要求。

2教学改革背景

随着我国的高等教育进入大众化阶段,许多高校将人才培养目标定位成应用型人才的培养。这就要求高校培养的学生不仅具备扎实的专业知识,还要有过硬的应用性知识。

对计算机科学与技术专业来说,应用型人才的培养目标要求注重培养学生软硬件系统的研发能力,强调学生对非计算机学科(专业)知识的融会贯通,学生应具备扎实的计算机基础理论知识和较强的实践能力。

发展应用型教育,培养应用型人才,应该贯穿于整个教学活动中,包括专业设置、教学管理、课程设计、教学手段和方法以及教学制度建设等方面。

在这样的背景下,我们在图论教学中一直在思考以下几个问题:

(1)“图论算法实现及应用”在我校是作为一门选修课开设的,如何让学生在感受到图论知识魅力的同时提高学习兴趣,调动学生的学习积极性。

(2) 如何针对计算机专业学生设计合适的教学方法,以适应他们的专业特点和专业发展方向。

(3) 如何设计新颖的实践教学形式和内容,引导和加强实践教学,让学生真正理解图论算法思想并能编程实现,灵活运用图论算法求解各种应用问题,以适应应用型人才培养的要求。

3图论课程教学改革

3.1改革思路

针对图论课程的教学现状和应用型人才培养的要求,我们尝试按以下思路进行教学改革:以培养学习兴趣入手,引导学生进入丰富的图论知识领域;向学生阐述有具体应用背景的图论算法思想;侧重图论算法的复杂度分析和程序实现;通过在线实践引导学生运用图论算法求解问题。

为此,我们在充分调研和积极探索的基础上,提出以下教学改革措施:(1)以大学生程序设计竞赛这一学科竞赛为驱动,激发学生的学习热情和积极性。(2)以“在线实践”这种新颖的实践方式为导向,丰富课程的实践教学并提高学生的实践能力。(3)加强“程序与算法设计”课程群的建设,构建完整的、系统的知识体系。(4)做好教材建设,编写适合这种教学思路的图论讲义、教材和实验指导书。

3.2以程序设计竞赛激发学生的学习积极性

由美国计算机协会组织的ACM/ICPC国际大学生程序设计竞赛已经有30年的历史了,中国大陆的高校在上世纪90年代中期陆续参赛,很多高校在总决赛中取得了优异的成绩。ACM/ICPC竞赛在公平竞争的前提下,提供了一个让大学生充分展示用计算机分析问题、解决问题的能力与才华的平台。ACM/ICPC竞赛鼓励创造性和团队协作精神,鼓励在编写程序时的开拓与创新。

近十年来,很多高校开始举办全校性的程序设计竞赛,并逐渐发展成为全省(市)性质的比赛,这极大地推动了这项学科竞赛在中国大陆高校的开展。

图论是这项程序设计竞赛中重要的题目类型之一。图的遍历、活动网络、最小生成树、最短路径、图的行遍性问题、网络流问题、匹配问题、图的连通性、图的着色等都有大量经典的题目,几乎涵盖了图论完整的知识体系。

例如,我们在举办竞赛时曾经出了这样一道题:由M×N个方格组成的网格表示敌占区,通讯员要从初始方格S出发,送情报到达目标方格T,其他符号的含义如图1所示。初始时,通讯员具有一定的体力。通讯员从某个方格出发,到达上、右、下、左4个方向上的相邻方格需要花费的时间和消耗的体力如图1所示。另外,从目标方格的相邻方格到达目标方格,花费时间1,消耗体力1。本题要求解的是:通讯员能否到达目标方格?如果能到达,所需最少的时间是多少(只需要保证到达目标方格时,通讯员的体力>0即可)。本题的求解要用到广度优先搜索算法。图1中给出了一条花费时间最少为13的路线(初始体力为8),到达目标方格时剩余体力为1。

我们在教学中以这些题目为例阐述图论算法思想、分析算法的复杂度并用程序实现,让学生切实地理解算法思想、直观地体会到算法的具体应用,同时我们也布置相应的题目作为练习题。这些题目的趣味性和挑战性能吸引学生投入较多的时间和精力去完成,在丰富知识结构的同时提高学生的程序设计和算法分析实践能力。

3.3以在线实践提升学生的程序实践能力

随着ACM/ICPC程序设计竞赛的推广,各种在线程序评判(Online Judge,简写为OJ)网站也应运而生,这为程序设计爱好者提供了一种新的程序实践方法:在线程序实践。

在线程序实践是指由OJ网站提供题目,学生在线提交程序,OJ网站的在线评判系统实时评判并反馈评判结果。这些题目一般具有较强的趣味性和挑战性,评判过程和结果也公正及时,因此能引起学生的极大兴趣。

学生可以根据OJ系统反馈回来的评判结果反复修改程序,直到最终收获Accept(程序正确)。这不仅能培养学生独立分析问题、解决问题的能力,而且每成功解决一道题目都能给学生带来极大的成就感。

在教学中,我们以组织学生开发的OJ系统作为实践教学平台,该平台主要起到了以下作用:(1)作为教学演示平台。对课程中涉及到的算法都尽量用程序实现,并提交到OJ系统进行验证和演示。(2)作为算法分析平台。针对图论算法丰富的特点,我们在教学中对同一个应用问题采用不同算法实现,并提交到OJ系统,以测试程序的运行时间,让学生直观观察到算法的优劣。(3)作为实验教学的平台。在实验课上,学生可以用程序求解练习题并提交到OJ系统验证。(4)作为课程考核平台。对图论课程进行教学改革后,我们认为不适合采用笔试方式考核,因此采用在OJ系统上机考试的形式。这种考核方式过程更直观、结果更客观。

3.4以课程群建设推动知识体系的系统性构建

教学改革后,图论课程的教学目标定位为培养学生图论算法分析、设计和应用能力。这跟我们建设的“程序与算法设计”课程群的知识体系、知识目标、能力目标是吻合的,因此我们将图论课程纳入该课程群。

“程序与算法设计”课程群的知识体系设计为:程序设计思想和方法、数据结构设计与运用、算法分析与设计、面向对象的软件开发、图论算法分析与应用。为此,我们精选了6门课程组成该课程群,如图2所示。

课程群的知识目标为:通过课程群中各门课程的学习,掌握基本的程序设计思想和方法;理解面向对象程序设计的思想并能熟练运用;理解各种数据结构的原理和使用方法;熟练掌握常用算法分析和设计技巧,掌握常用算法的综合运用;掌握系统分析与设计的基本方法。

课程群的能力目标为:掌握基本的程序设计、测试、调试能力;能运用面向对象程序设计思想和方法开发较大规模的软件;能综合运用各种数据结构对软件功能进行描述和建模;具备基本的数据结构和算法分析和设计能力;能针对各种图论应用问题设计合理的算法并用程序实现;在软件开发中运用系统观点,对应用问题进行初步的分析和设计;在实践活动中锻炼毅力,树立克服困难的信心,培养竞争和创新的意识。

图论算法实现及应用课程是第四学期作为选修课开设的。在此之前,学生通过前期课程的学习,已经掌握了基本的程序设计思想、方法以及基本的数据结构使用,该课程与算法分析与设计课程同步开设。

图论课程在课程群中利用其算法丰富、应用问题多而广的特点,给学生提供算法分析与设计的实践机会。通过图论课程的学习,学生不仅能掌握丰富的图论知识,程序设计、算法分析能力也将得到进一步巩固和提高。

3.5完善教材建设,适应新的教学思路

教材建设是课程建设的重要工作,教材包括课堂教学使用的教材或讲义、实验教学使用的实验指导书、辅导教材等。为适应新的教学思路和方法,我们编写了讲义和实验指导教材。讲义立足于图论算法思想的描述及程序实现,并以大量的ACM/ICPC题目阐述图论算法思想在求解这些题目中的应用。该讲义在内容取材、描述上具有如下特点:(1)许多图论教材对图论概念的描述不一致,造成读者的阅读和使用困难,该讲义试图改变这一现状。对每个概念的表述,我们查阅了大量的图论著作并进行比较分析。在讲义中,我们对每个概念采用大多数图论教材采用的名词和描述方式。(2)忽略所有图论定理的证明,着重分析图论算法的思想,重点在于这些图论算法的程序实现和应用。对图论算法的程序实现是以经典的ACM/ICPC例题来阐述的。(3)分析每一个算法的复杂度,并对同一个问题不同算法的复杂度进行对比分析。(4)采用浅显易懂的语言、丰富的图表来描述图论算法思想。

4教学方法

一种新的教学思路必须辅以一套新颖的、有效的教学方法,因此我们注重探索合适的教学方法。

4.1课堂教学

课堂教学是教学的重点,我们在教学中采取以下教学方法加强课堂教学效果。

(1) 上好第一堂课。第一堂课的教学效果会决定学生是否会认真听这门课,特别是选修课。对图论的第一堂课,我们往往从一些有趣的问题入手引入图论的研究内容,如哥尼斯堡七桥问题、中国邮递员问题、周游世界问题、图的着色等。这些问题通俗易懂,比较有趣,更重要的是,这些问题可以把图论里的主要研究内容串接起来,从而让学生对图论研究的概况有一定的了解。

(2) 加强课堂互动。图论的很多问题来自于生产生活,在学生的学习生活中也能找到应用的例子。在课堂上,我们经常邀请学生在黑板上演示算法的求解过程,这能帮助学生理解算法的思想和求解过程。

(3) 加强算法的对比分析和演示。为了让学生对图论算法的复杂度有直观的认识,我们通常在分析完算法的复杂度后,对一些例题进行程序实现,并提交到OJ系统,通过反馈回来的运行时间来验证算法的时间复杂度。

4.2实践教学

这里谈的实践教学不局限于实验课。为提高学生对图论课程的兴趣,并引导学生开展基础的论文阅读和文献综述,为今后的专业发展奠定基础,我们在教学中开展了丰富的实践教学内容。

(1) 在解题时,指导学生阅读相关论文,启迪他们的论文查阅意识和能力。比如学生在求解网络最大流问题时指导他们阅读文献[3],这篇文献综述了网络流算法的研究历史和现状。

(2) 图论里有很多问题至今都没有得到解决,比如汉密尔顿回路、图的着色等,国内外学者对这些问题的研究也一直没有中断。我们指导学生综述这些研究,这对培养学生的探索性思维有很大的帮助。

(3) 指导学生定期对求解过的题目进行总结,以解题报告或小论文的形式提交,作为平时成绩的一部分。

(4) 为了丰富OJ系统的题库,我们采取一系列措施鼓励学生出题,比如在题目中对出题学生进行署名,组织学生的个人专场比赛等。学生出的题目大多来源于平时的学习和解题的积累,因此这些激励措施也能提高学生的学习积极性。

5结束语

图论是一门既有趣又具有较大难度的课程。对计算机专业的学生来说,图论课程不仅丰富了他们的数学知识,更锻炼了他们的算法分析与设计能力。采取新的教学思路后,选修这门课的学生逐年增多,许多学生的程序设计和算法设计能力得到了极大提升,并在程序设计竞赛中取得了很好的成绩。

参考文献:

[1] 徐俊明. 图论及其应用[M]. 2版. 合肥:中国科学技术大学出版社,2004.

[2] 徐俊明. 《图论及其应用》课程建设探索[J]. 教育与现代化,1997(2):41-46.

[3] 张宪超,陈国良,万颖瑜. 网络最大流问题研究进展[J]. 计算机研究与发展,2003,40(9):1281-1292.

[4] 钱建国. 浅谈算法实例在图论教学中的作用[J]. 莆田学院学报,2004,11(3):70-71.

程序设计教学论文第9篇

关键词:JAVA程序;设计教学;形象化教学

所谓的JAVA程序设计教学的形象化教学,实际上就是指在教学中采用生动而形象的教学方式,将复杂化的JAVA程序设计理论知识简单化,然后将其传递给学生,进而帮助学生更好地理解JAVA程序设计理论知识。采用形象化教学法教学,对学生的形象思维激发存在着十分重要的辅助作用,为此,本文对相关研究资料进行汇总分析,对JAVA程序设计教学中的形象化教学手段进行探索研究。

一、形象化教学在JAVA程序设计教学中的重要性

在新课程改革的大背景下,作为JAVA程序设计课程的教师,需要摒弃传统的教学观念,学习先进的教学思想,跟上社会发展的脚步。

新课程改革过程中,将JAVA程序设计教学作为重点改革对象。在新课改相关条例的指引下,进行JAVA程序设计教学改革,不仅需要大量具有专业JAVA程序设计知识的教师,还需要激发学生对JAVA程序设计理论学习兴趣以及欲望的教学手段,如此一来,形象化教学手段就成了首要之选。通过适合的教学手段,教师将JAVA程序设计理论再现出来,传递到学生大脑中,这样不仅使学生视觉上能够形成一定的新鲜感,更能够加深其对JAVA程序设计知识的理解,让JAVA程序设计理论知识深深地烙印在学生的脑海当中,令学生能够更为轻松地听课,学习得到有效提高。

二、JAVA程序设计教学中的形象化教学手段

本文对JAVA程序设计教学中形象化教学手段进行的探索,主要是以OOP思想教学作为研究实例。对于OOP形象化教学来说,有以下组成要素:

组件――比如说在正常运行状态下的一辆汽车当中,包含有油门、刹车、离合等功能,这些功能整合运行才能保证汽车的正常行驶,组件在计算机运行中的作用也是如此。

抽象性――类似于汽车的监测系统。只有对汽车的性能进行自我监督与检测,才能实现对重要信息的关注,而OOP计算机程序恰恰也是如此。该程序对信息主要方面进行关注,实现了“抽象性”的关注。

封装――类似于汽车的操控系统。一项操控指令只能对应操控汽车一部分特定运作状态。在OOP计算机程序中,只有那些供给了内部状态改变方法的组件,该程序才能够对内部状态进行访问,同样也形成了专项的访问状态。

多态性――同样和汽车的操控系统相似,一项操控过程需要不同的部件共同合作完成。在OOP计算机程序中,组件的类集和使用往往会利用到或者是涉及到一些其他类型不同的组件。同时,在集类和引用的过程中,组件其所造成的最终结果,需要实际调用组件的类型进行决定。

继承性――类似于汽车构造中的照明系统,照明系统本身是一个系统的“父类”,其“子类”包含车前照明系统、车后照明系统以及车内照明系统。在OOP计算机程序中,允许在原有的组件基础(父类)上进行子类组件的创建,如此的构成方式,在一定程度上加强了OOP计算机程序的封装性以及多态性。

综上所述,对于JAVA程序设计教学来说,其教学课程的展开必须将提高学生实践应用能力作为第一教学目标,将重心放在培养学生的编程思想上。教学课程中,每一个阶段的教学方法或者教学手段的尝试,都要使得学生对所学知识保持较高的兴趣,这就需要形象化教学手段的融入更为全面化和科学化。在JAVA程序设计教学实践中只有不断探索和完善,才能够令形象化教学手段的最大功效充分发挥出来,进而整体提升JAVA程序设计的教学效果。

参考文献:

[1]刘冬冬,赵正平,王秀友.Java程序设计课程实践教学改革探索[J].阜阳师范学院学报(自然科学版),2014(1):103-107.