期刊大全 杂志订阅 SCI期刊 投稿指导 期刊服务 文秘服务 出版社 登录/注册 购物车(0)

首页 > 精品范文 > 程序设计教学论文

程序设计教学论文精品(七篇)

时间:2023-03-22 17:38:50

程序设计教学论文

程序设计教学论文篇(1)

一、学情分析

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

二、教学方法探讨

1.消除学生的畏难情绪

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

2.提高学生的学习兴趣

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

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

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

程序设计教学论文篇(2)

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拓展任务

程序设计教学论文篇(3)

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

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批学生,收效显著。与普通班比较,实验班学生不但熟练掌握了编程语言语法,而且能运用程序设计思想独立完成课堂示例与课后练习,部分学生还编写了宿舍管理、游艇出租管理、出租车计费等实际应用程序,自主学习能力、应用能力、创新能力明显提升。

程序设计教学论文篇(4)

中图分类号: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程序设计理论知识得到了很好的巩固,编程动手能力得到了很大的提高,同时对学生的学习积极性也起到了很好的激励作用。

参考文献

程序设计教学论文篇(5)

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

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

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

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

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卷.

程序设计教学论文篇(6)

[关键词]案例教学 VB 程序设计 教学设计

一、引言

对于文科专业的计算机能力的培养不再局限于办公软件等应用软件的使用技能,拥有严谨的逻辑思维能力,运用计算机技术解决专业问题也成为大学生必备的基本素质。程序设计语言课程的学习对于这些能力的培养具有举足轻重的作用。“Visual Basic”作为文科学生学习面向对象的程序设计语言,具有易学、功能强大、应用广泛的特点。故我校把VB作为程序设计语言课程学习的语言对象。文科学生在学习程序设计语言之前,从主观意识上就不是很重视该课程的学习。或者没有兴趣,或者觉得对其将来就业没有帮助。这就需要在整个课程的教学过程中融入新的教学模式、教学方法,从而激发学生的学习兴趣,激发他们的求知欲,从而才能达到预定的教学效果。

自从1870年美国哈佛大学居于领衔地位的法学院使用案例的方法进行教学以来,案例教学法已经经历了一百多年的历史。其实,追究案例教学发展的历史渊源,可以追溯到我国春秋战国时期以及古希腊哲学家苏格拉底的“问答法”教学[1]。

案例教学具有开放式、互动式的特点。通过选择、组织合适的案例,将理论知识融入其中,使学生通过案例学习、讨论、分析;鼓励学生独立思考,在引导学生学习理论知识的同时,可以更好地培养他们分析问题和解决问题的能力,从而达成教学目的,收到更好的教学效果。

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

目前,程序设计课程主要以“教”为中心。程序设计课程有大量的基础理论和语法格式,同时还要让学生掌握程序设计的理念、结构和算法。传统的讲授模式和学习方法,都是以“教”为中心,先传授理论知识、语法格式,再通过实例进行说明。学生被动地接受知识,使教学效果大打折扣。由于文科学生的逻辑思维模式较为欠缺,在学习程序语言的过程中,难以适应程序设计的设计理念和思维模式,大大削减了学生对知识的驾驭能力,从而降低了他们的成就感,继而导致学习的主动性偏低。不少学生觉得程序设计课程深奥难学,久而久之望而生畏。不少学生甚至认为程序设计课程的学习最终与他们的专业没有太大帮助,将来自己也不可能从事程序员的工作,何苦要花大量的时间学习呢。故而,林林总总,学生在学习程序设计课程中没有高亢的学习兴趣,没有主动性,而传统的教学模式又没有很好地吸引他们进入程序的世界,无法将以“教”为中心转变为以“学”为中心,更无法提及提高教学效果了。因此,如何提高学生学习程序设计课程的激情、提高程序设计的能力,提高教学效果,就变得极为重要而具有深远的意义。本文将探讨如何运用案例教学,改善程序设计课程的教学模式,进而提高教学效果,从而加强文科计算机课程体系的建设。

三、案例教学设计

根据教学目标,教师采用案例教学来组织学生进行讨论、学习等能力,从而改变理论知识枯燥难懂的学习模式。

(一)案例选择原则

案例的选取应该充分贴合授课对象的实际情况。如学生的兴趣爱好、学习生活、专业特色等等。当我们选择的案例一旦让学生感受到程序设计和他们休戚相关,一定会引起他们极大的学习兴趣,从而激发他们的求知欲。

例如,在讲授选择控件时,就可以设计“麦当劳套餐收银系统”程序来模拟普通快餐的收银。界面参考如下:

当用户输入顾客姓名,选择性别和套餐后,点击“总计”按钮,可以快速显示该用户的实际用餐费用。这样的例子与学生生活想贴近。案例一演示,立即引起学生兴趣,让他们有跃跃一试的冲动。实例中还可考虑用户输入信息完整性的检测。该实例不仅可以让学生学习选择控件的基本属性与事件,还可学习巩固选择结构以及作为一个程序员在设计程序时,要有程序设计完整性的理念。

(二)典型案例演变

在讲解数组的定义、应用这部分知识时,我们通常会选择对10个学生的成绩求最高分,最低分这样的典型案例。我们知道对于10个学生的成绩进行上述处理一定需要存放在数组中,这关乎数组的定义;而求最高分以及最低分都属于数组的应用。

其实我们仔细观察生活,我们可以选择奥运会比赛项目的评分实例,可以为我们的传统案例注入新鲜“血液”。如像奥运会十米跳台跳水项目的评分规则中规定,每位运动员出场后,评委根据运动员的助跑(即走板、跑台)、起跳、空中动作和入水动作来评定分数。裁判不管是5人制还是7人制。裁判员打出分数后,都要去除最高和最低分,并将余下裁判员的分数求和并乘以运动员所跳动作的难度系数,变得出该动作的实得分。若我们引用奥运会的比赛评分作为实际案例,其中去除最高分、最低分属于求出最大值、小值的知识点,求最终得分部分让学生可以了解数组的简单统计,同时该案例还具有一定的新颖性。我们也可以选择中国某一位跳水冠军在参加某一次奥运会决赛中,评委给出的分数作为具体数据,加强案例的真实性。这样的案例在让学生学习知识的同时,又可以让他们了解跳水比赛的评分标准。

(三)教学案例实施

案例教学模式的特点是,教师通过设置具体案例,引导学生参与分析、讨论、表达等活动,让学生在具体的问题情境中积极思考、主动探索,以提高教学质量和效果。[2]案例教学法可以按下图进行操作:

四、小结

教学实践表明,案例教学法不但解决了程序设计课时少、知识点多、实效差、与应用相脱离等问题,充分调动了学生学习的积极性、提高了计算机应用能力,不少学生通过该课程的学习后[3],还学着利用程序来解决专业中的问题。案例教学将程序设计课程的授课模式从传统的以“教”为主慢慢向以“学”为主进行改变,在某种程度上,极大地提高了学生的学习主动性的同时,也提高了学生分析问题、解决问题的能力。

项目资助:上海海关学院教改项目资助课题(No.2014JG-011)。

[参考文献]

[1]杨光富,张宏菊.案例教学:从哈佛走向世界―案例教学发展历史研究. 外国中小学教育,2008年第6期

[2]李桂芝,周长胜.VB程序设计课程案例教学模式研究.计算机时代,2014年第1期

程序设计教学论文篇(7)

关键词:程序设计基础; 教学理念; 教学改革; 课程体系建设

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)31-0148-03

1 引言

《程序设计基础》是计算机相关专业的基础必修课,旨在培养学生基本程序设计思想和程序设计能力。它是一门理论与实践相结合、具有很强的实践性的课程,同时是后续课程《数据结构》、《面向对象程序设计》、《操作系统》、《计算机网络》等专业课的前导课,该课程掌握的好坏直接影响到许多后继课程的学习。

针对程序设计基础课程的教学改革已有一些研究成果,文献1结合程序设计基础课程教学改革与实践经验,提出一种新的教学模式;文献2针对"C语言程序设计"课程传统教学模式中存在的问题,并结合学校对该课程,改革的实际情况,探讨新的C语言教学模式;文献3提出了一种新的课程改革思路以提高教学质量和教学效果;文献4就如何开展综合性实践性实验做了探讨;文献5探讨了一种教学改革的思想和方法;文献6对C语言中的教与学方法改革进行了探讨。针对以往教学过程中存在的问题,经过认真的分析、总结,并参考了国内重点院校和同等院校的好的经验,结合安阳师范学院计算机与信息工程学院的实际情况,提出了“强基础、重实践、激创新”的教学理念,并应用于教学中。

2 课程分析

2.1课程地位

C语言是一种常用的软件设计语言,同时是其它面向对象程序设计语言的基础,熟练掌握了C语言,那么其他语言就触类旁通,学习起来也比较容易,它是计算机专业课程和相P语言类课程的基础,是和学生未来的发展息息相关的一门重要的专业基础课程。无论是准备考研的学生还是准备就业的学生,只要能够很好的掌握这门课程,就可以为以后的发展打下良好的基础。因此可以毫不夸张地说,C语言掌握的程度可以直接影响学生四年的学习,甚至对学生毕业以后的深造和发展也会有着深远的影响,该课程在本学科体系中的作用由此可见一斑。

2.2存在的问题

本课程所针对的教学对象是大学一年级的新生,新生入学以后,其学习方法和思维模式还停留在中学阶段,学习主动性比较差。且由于在中学阶段接触计算机知识比较少,造成学生在接触计算机知识比较少,程序设计能力几乎为0,结果造成对于课堂上老师讲述的基本语法和编程思想都是被动地接受,对于教材上的习题或者验证性的实验,掌握相对较好,但是对于要解决的实际问题,不知道如何下手,创新能力更无从谈起,导致在以后的教学过程中,不断有学生因畏难、缺乏兴趣、被动学习而掉队,这就影响了后续相关课程深入学习。

2.3课程目标

C语言的课程目标是以程序设计方法为主线,以语法和程序结构为核心,培养学生的基本编程能力,并不断提高学习兴趣,变应试教学为应用教学。在教学过程中,教学目标分为以下四个方面。

知识目标:在教学过程中,注重培养学生分析问题的能力,解决问题时,会定义合适的数据类型或数据结构存储数据,并且能够选择合适的控制结构并写成一个独立的功能函数。从而能够掌握基本语法和三种基本控制结构,掌握数组和函数的运用,掌握指针和结构体类型的应用。

技能目标:学生会编写简单的程序,能够积累一定的算法,如枚举法、贪心法、选择排序等常用的算法,初步具有算法分析和设计能力。在实验和实践过程中充分利用开放性教学资源与实验平台,提高学生的自主学习能力。

素质目标:通过学习,能够形成独立思考、具有解决实际问题的能力;可将学生分为若干个小组,课堂讨论和课程实践均以小组为单位,逐步培养学生的团队合作意识,达到同学之间互相帮助、共同学习和进步的目的。

情感目标:希望同学们能在自主和谐的气氛中学习,能够在学习过程中感受到乐趣,激发学生们的学习兴趣。采取的主要措施有:采用灵活的教学方法,吸引学生的注意。在授课中注意和实际问题的结合,激发学生的学习兴趣。组织一批比较有趣好玩的程序,比如俄罗斯方块、打字练习程序等,由老师完成其中的大部分内容,学生只有写出其中的一段代码,即可使程序运行,从而更好的激发学生自主学习编程的兴趣。

3教学理念

为了达到以上的教学目标,针对以往教学中存在的问题,结合安阳师范学院的实际情况,经过认真的分析、总结和研究,并参考了国内重点院校和同等院校的好的经验,确立了基于“强基础、重实践、激创新”的教学理念,改革了C语言的理论教学和实践教学。

1)“强基础”;改革传统的理论教学模式,分学期进行,前期在讲课过程中淡化语法,偏重基本知识点和基本编程能力的培养,并强调算法分析和程序的调试,后期偏重应用知识解决问题,从而帮助学生形成正确的程序设计思维方式。

2)“重实践”;改革传统的只有实验的教学模式,在教学过程中引入实践课,采用实验和实践并行的方式。目的可以提升学生的动手能力,并在课程建设过程中建立一些课程资源平台,如引入ACM在线评测平台、建立课程网站等,激发学生的学习竞争意识。

3)“激创新”;在实践的基础上,拓展出问题规模较大的一些问题,并引入教师的一些科研子课题,让感兴趣的学生参与其中,学院每年都会有一些大学生创新基金项目,让有想法的学生申请,目的是为了培养学生的团队合作精神和创新能力的。

4课程改革

4.1教材建设

本课程所选用的教材是由清华大学出版社出版,由谭浩强主编的《C语言程序设计》(第三版),之所以选择这本教材,是因为该教材比较符合初学者的特点以及认知规律,在内容选择,章节层次结构等方面的安排做得较好,同时作者将难点分散到各个章节中,例题也较为丰富,学生学习起来通俗易懂。且此教材以应用为目的和出发点,具有很强的实用性。这本教材也是目前国内各高等院校选用率最高的教材之一,目前国内的很多考试都是指定此教材作为参考书的。

教材从整体上可以分为两大部分,其中的一到九章为第一部分,是C语言的语法基础,偏重于基本知识的掌握和基本编程能力的培养;十到十三章为第二部分,是应用基础,偏重于应用所学的基础知识来解决实际编程中的问题。其中语法基础中的一到三章是基本语法,四到七章为程序控制基础,八、九两章为程序的组织方法。

4.2课程体系建设

该课程教学内容上包含有理论教学和实践教学两大部分,在理论教学中,主要内容包含有基本的语法知识,三种基本结构的使用,以及数组、函数、指针和结构体的应用;在理论教学过程中,注重把握重点,分散难点。实践教学分为实验教学和实践教学两部分。在实验教学中,主要注重培养学生基本理论知识的应用和基本编程能力的提高;在实践教学中,侧重用理论解决实际问题,培养学生的综合运用能力。为了达到“强理论、重实践”的教学目标,在课程的开设模式上,本课程分为两学期进行开设。大学一年级第一学期为《C语言程序设计基础》,主要学习教材中的第一到九章,偏重于基本知识和基本编程能力的培养,第二学期为《程序设计基础课程设计》,主要学习指针、结构体、链表、文件的知识点,偏重于应用知识解决实际问题,同时为后续课程打下良好的基础。为了达到以上目的,两个学期采用不同的教学模式:

第一学期,4+2模式;每周4节理论课、2节实验课。在具体教学内容的处理上,基本语法要少讲、精讲,而控制结构和程序组织为重点,要多讲多练。实验课程主要是包含有基础实验,综合实验,基础实验包含验证性的实验、程序的跟踪调试、设计实现等;通过实验,一方面加强学生对程序组织结构、控制语句的掌握和理解,另一方面促进学生对算法的认识,掌握如何调试程序,提高学生的编程能力。

第二学期,2+2+2模式;每周两节理论课、两节实验课和两节实践课。在第一学期的基础上,加强实践,注重应用理论知识解决实际问题的应用能力的培养。第二学期的实验安排和实践主要和后续课程《数据结构》中的内容相结合,为学生后期学习《数据结构》做好铺垫,打好基础;实践课分为两个阶段,前10周主要结合《河南省大学生程序设计大赛》的比赛形式,给出各种具体的问题,要求学生利用学过的知识自主解决,每周一个实践题目。后8周给出一个具体的比较大的综合性的题目,然后根据学生的程度对学生进行分组,每组3~5人,在教师的指导下,合作完成一个复杂的问题,整个实践课程的安排主要侧重于应用能力的培养,让学生初步具有大型程序设计的思想,并培养学生的团队合作精神,为以后学习其他面向对象的编程语言打好基A。同时实践课程中突出了对学生创新能力的培养,强化“激创新”的理念。

4.3教学方法的改革

针对教学对象的特点和达到的教学目标,采用了不同的教学方法应用于不同的教学内容中,在所选用的教学方法中,主要有以下几种:

案例导入法:把要讲授的知识点与实践案例相结合,揭示知识点和实际问题的联系,加深学生对知识点的印象,使得学生体会到知识的实用性,提高学习兴趣。

任务驱动法:通过理解问题,提出明确任务,以该任务为目标,讲授知识点;在引导学生解决的任务的过程中,要注意突出重点、分散难点。

对比教学法:将新知识和旧知识作对比,展示其异同;在具体的使用中,可以应用学生学过的比较熟悉的知识,或是前边章节中学过的学生掌握的比较好的知识点来和新的知识点进行对比,加深学生对所学习的新知识的理解。

讨论教学法:在已学习的知识的基础上,对已解决的问题进行扩充,提出问题新的问题,引导学生进行讨论或是要求学生自己讨论并加以解决,使学生加深对所学知识理解。

下面是针对程序设计基础中数组的定义与应用这一章节进行的教学过程的设计,在这一节的教学内容中,融入了多种教学方法:

数组是学生学习的C语言中的第一种复杂的数据类型结构,主要作用是用来做批量数据的处理,同时数组也是指针和动态分配内存的基础,在本节的教学过程中,主要分为以后6个环节:创设情景->观察归纳->解决任务->讨论探究->即时训练->总结反思。

1) 创设情景:为了避免直接介绍数组这样一种抽象的结构,使学生容易理解,在引入的过程中,用与学生紧密相关的奖学金评定问题,进行进入。

2) 观察归纳:通过对问题归纳分析,提出任务:如何在计算机内部存放学生成绩,以及如何对存放好的学生成绩进行排序;在讲述的过程中采用对比分析法,并借助于多媒体教学设备呈现。

3) 解决任务:对任务的分析,提出解决任务的方法为使用数组:知识讲授:主要介绍数组的定义,以及数组元素的引用,在讲授中解决任务,在讲授过程中注意把握重点,知识点讲授完毕,加强应用,解决提出的第二个任务,完成排序,进行算法分析,解决观察归纳过程中提出的学生成绩排序问题,在讲排序方法的过程中,采用形象的排序过程进行动画演示,使同学们可以在和谐的气氛中掌握整个排序方法。

4) 讨论探究:学生们对任务继续进行讨论,是否还有一些其他的解法。

5) 即时训练:提出新任务,如果想在已经排好序的学生成绩中插入一个新的学生成绩,使得数组还是有序的,应该如何做?

6) 总结反思:老师对学生所完成的任务进行点评,指出其容易错误的地方,同时,学生进行自评。

5考核方式改革

传统的课程考核方式主要是笔试环节,对于程序设计这样一门实践性非常强的课程,显得非常太合理,学院针对这种情况,改革了课程考核方式,对于第一学期,考核主要分以下三个部分:平时成绩占总成绩的20%,主要考查学生的出勤、作业、课堂表现等;实验环节占总成绩的20%,主要考查学生的程序调试能力、实验报告等;期末考试采用机试,占总成绩的60%,其中机试题采用安阳师范学院ACM在线评测系统,由学院老师出题,给出8到机试题目。按照难度给出分值。

第二学期增加课外实践,考核主要分为平时成绩20%和实验成绩20%以及期末成绩30%和课外实践成绩30%,课外实践主要考查学生的团队协作能力,在学期结束时单独考核,采用答辩的方式,分为以下几个部分:演示、答辩、创新、团队、报告编写等,根绝答辩的情况打分。课程评价体系中和以前的评价体系相比,最大的不同之处在于突出了对实践部分的考核,以考核为指挥棒,引导学生主动加强动手能力的培养。

6教学资源建设

学院主要建立了程序设计基础(C语言)精品网站,在网站中包括有课程大纲、课件、习题资料、实验设计指导等,并引入了教学辅助平台ACM在线评测平台,学生在学院的机房或者是外网都可以通过学号登陆练习一些基本的ACM大赛题目。结合这些结合ACM竞赛,可以培养主动式学习模式,激发兴趣,同学们在登录网站时也可以看到周围的同学的做题情况以及自己的排名,在学生中间可以建立竞争机制。

7结语

通过分析程序设计基础的课程特点和教学对象的特点,在课程的建设过程中,提出以上的教改思路,并将以上教改思路在学生的教学过程逐步的加以实践。从教学效果看,教学质量确实有了很大的提高,主要表现在学生整体素质、水平的提高和后续课程中老师的反馈。

参考文献:

[1] 李军,曹记东,林勇,等.程序设计基础课教学内容及模式改革[J].计算机教育,2013(8):34-37.

[2] 储岳中,秦锋,刘宏申.“C语言程序设计”理论与实践一体化教学的几点实践[J].计算机教育,2012(12):22-25.

[3] 于延,崔艳玲.“程序设计基础”课程改革实践[J].计算机教育,2012(20):47-49.

[4] 刘丹,刘德山.C语言程序设计课程综合性和设计性实验研究[J].计算机教育,2012(9):75-77.