首页 理论教育 研究型学习在程序设计实践课程中的尝试

研究型学习在程序设计实践课程中的尝试

时间:2022-10-20 理论教育 版权反馈
【摘要】:本文简单介绍了研究型学习的特点,详细介绍了将研究型学习应用于计算机程序设计实践教学——综合程序设计的一个尝试过程。选题是研究型学习过程的核心和关键,综合程序设计研究的课题及内容由学生自己确定,解决问题的办法也是由学生自己设计。但研究型学习强调的是学习过程而不是结果,注重学生在学习过程中所掌握的研究方法、养成的科学严谨的态度和勤于钻研的学习习惯。该实践环节具备采用研究型学习方法的特点。

研究型学习在程序设计实践课程中的尝试

李海文

(东南大学计算机科学与工程学院,江苏南京,210096)

【摘要】 研究型学习是当前教育界的一个热点论题。本文简单介绍了研究型学习的特点,详细介绍了将研究型学习应用于计算机程序设计实践教学——综合程序设计的一个尝试过程。选题是研究型学习过程的核心和关键,综合程序设计研究的课题及内容由学生自己确定,解决问题的办法也是由学生自己设计。研究型学习看重过程,即培养大学生研究能力、创新能力的过程。我们不要求学生编出成熟的软件,但看重这“不成熟”的第一步是自己迈出的。

【关键词】 研究型学习 程序设计 创新能力培养

【中图分类号】 G642.0;TP311         【文献标识码】 A

【文章编号】 1008-0686(2003)06-0015-04

1.研究型学习的特点

研究型学习是指在老师指导下,学生从自然、社会、生活中自行选定专题进行研究,并在研究过程中主动地进行获取知识、运用知识、解决问题的学习的活动。它具有以下特点:

(1)创新性。研究型学习这一概念首先给长期接受传统灌输式教育的学生以耳目一新的感觉,它彻底解放学生受局限的思想,使其思维异常活跃,灵感乍现,有利于培养学生的创新能力和创新意识。

(2)开放性。研究型课程没有事先预定的内容,学生根据本身的兴趣、爱好与特长,考虑已有资源条件来确定研究的问题,排除了很多人做同一个题目,答案千篇一律的弊病。另外,所研究的问题本身具有开发性,研究内容可以根据学习过程中的新发现、新体会而改变,问题的答案往往也不是唯一的,评价的标准具有多元性。研究型学习内容、过程和结果均具有开放性。

(3)自主性。研究型学习将学生的需要、兴趣和目的置于主导地位,以学生的亲身体验为基础,对学科知识进行综合运用。学生自己选择学习的目标、内容、方式及研究结果的呈交形式,整个学习过程也是主动求知、探索的过程。教师在整个学习过程中只是起指导性作用。

(4)过程性。学生选择进行研究的问题也许并不具有严格的科学性,所得出的结论也未必具有严谨性。但研究型学习强调的是学习过程而不是结果,注重学生在学习过程中所掌握的研究方法、养成的科学严谨的态度和勤于钻研的学习习惯。

(5)实践性。研究型学习以学生的现实生活和社会实践作为课程资源的来源,以实践活动为主要展开形式,强调学生的亲身经历,要求学生在参与活动中发现和体验,感受和实践并解决问题,培养学生的实践能力和总结问题能力。

总的来说,研究型学习就是学生自主选择力所能及的题目,采用科学研究的方法去解决所选择的问题。在学习过程中,充分发挥主动性和创造性,通过查阅资料、调查来获取信息,对资料进行分析、讨论、概括总结并最终得出解决问题的结论。通过研究型学习,学生可以了解并学习掌握科学研究方法,提高分析问题、解决问题的能力,在实践中充分体验学习、创造和获取成功的愉悦,进一步促进他们更加积极主动地学习知识、探究问题、深入思考和追求真理。对于大学教育而言,积极研究开发研究型课程,并在教学实践中鼓励运用研究型学习的方法,是培养研究型人才的可行的途径之一。

2.背景介绍

普通高校学生在结束必修课“计算机程序设计”之后,应进行课程设计,以巩固和运用所学知识,培养综合程序设计的能力,为今后的应用打下基础。该实践环节具备采用研究型学习方法的特点。

我校设有用于实践教学的短学期,对进校一年的大学生安排了VC++课程设计。传统的做法是教师首先授课,然后给出十个题目,分配给学生,以个人或小组为单位完成一个题目。实践结果发现这样做存在两种弊端:

(1)老师给出的题目已定义了题目的名称、条目、具体内容,甚至规定了完成作业的方法,学生只需按照题目要求按部就班去完成作业。这样严重限制了学生的思维和学习主动性,不利于培养创新能力。

(2)由于学生人数多,而给出的题目少,很多人做同一个题目,学生最后交出的作业大多雷同。

由于短学期主要实施实践性教学,学生有较多的自由支配时间,课程的安排可以给学生更大的自由发展空间,因此在今年8月至9月为期4周的课程设计教学期间,我们对“样本班级”百余名同学进行实践研究型学习的尝试。实践结果证明是可行的,并取得了可喜的结果。

3.实施过程

进入大二的学生已经具有使用Visual C++进行控制台应用程序设计的能力,学习了Windows和MFC程序设计的基本原理。课程设计要求使用MFC进行综合程序设计。因此,课程安排教师首先讲授MFC程序设计的基本方法和具体步骤,使学生具备构造Windows应用程序基本框架的能力,其余的工作都由学生自主完成。下面是具体实施过程。

(1)背景知识。介绍要求学生采用研究型学习方法进行课程学习,首先要让学生认识研究型学习。因此我们在课堂上安排时间,向学生介绍了研究型学习的目的、实质、方法和过程,使他们对研究型学习有一个大概了解。很多学生对这一方法非常感兴趣,有的甚至当天晚上就开始查资料,准备选题工作。

(2)选题。研究型学习中,选题是整个学习过程的关键。首先,学生根据自己的兴趣及特长,通过观察、思考、查资料等选定题目(也可在教师指定范围之外选题),结合各同学的特长进行分组组合;然后与教师进行交流,教师应对学生选定题目进行批阅,在可行性、工作量大小、小组成员及题目意义等方面进行把关评估,及时将意见反馈给学生;学生再针对教师的意见进行调整,最终确定综合程序设计的题目。

教师在选题过程中的指导作用是很重要的。教师可以为学生选题提出总的要求,如贴近学生生活,关注前沿科技的发展,关注社会生活的各个方面等。我们指定的范围很广,包括:校园生活、科技、商业、工厂、娱乐、环保、交通等。

(3)方案设计。选定题目后,就应着手方案设计。每个小组确定一名负责人,做协调配合工作。各小组应对自己所选题目进行分析,通过查阅资料、小组讨论、走访专家或社会调查等调研途径,初步确定程序应具有的功能,并以此为据,采用面向对象的系统分析方法确定程序中的类和对象划分,确定类的属性和接口。然后小组讨论为成员分工。小组成员在统一接口规则后,可分头对各自的任务进行具体方案设计,完成后汇总形成小组的初始方案。

由于设计方案的重要性,教师可以对各小组递交的初始设计方案提出相应的修改建议,还可以考虑课程内容、教学目的等因素,在设计方案的实现方法、表现形式等方面做出调整建议,以避免在方案实施过程中出现不必要的反复。

初始方案只是学生根据调研结果以及自身的感性认识提出的,必然存在不成熟的情况,可以在方案实施过程中再做适当调整。

方案设计在研究型学习过程中的作用是至关重要的。学生在做一般的作业时,总是经过简单的审题就开始作业,而科研工作区别于一般工作的最大差异也在于科研工作需要更多的调研和审题工作,更能体现“磨刀不误砍柴工”的道理。因此在此阶段一定要要求学生有足够的耐心和细心,充分做好调查研究工作,做好准备工作,才能设计出合理的初始方案,为余下的工作打好基础。

(4)方案实施过程。在认真做好选题和方案设计工作后,就可以开始方案实施——编制软件。作为刚刚进入大学二年级的学生来说,掌握的程序设计方法还有限,尤其MFC对于初学者来说,学习的困难还是很大的。我们根据学生的实际情况,编写了适合初学者的教材,安排了一定的授课课时,使学生能够尽快入门。尽管大多数学生仍然感到费劲,但我们认为,适当提高难度是有利于提高研究型学习效果的。

在方案实施过程中,我们提倡通过模仿来学习。在对待模仿与创新的问题上,应鼓励创新,支持模仿。程序设计的学习本身就是方法的学习,只有多模仿才能掌握方法,才有可能创新。

学生根据初始方案,通过各种途径查找与自己题目类似的范例,再模仿范例来实现自己的程序。有的学生在范例中看到自己感兴趣的内容,通过适当修改,应用到自己的程序中,使程序更合理,或使程序内容更丰富。学生之间的合作在这一阶段显得尤为重要。小组成员之间经常性的讨论和交流,可以使得“山重水复疑无路”的问题,得到“柳暗花明又一村”的解决效果。学生之间的互相帮助,不仅使被帮助者解决了问题,也使帮助者本身得到了提高。

学生在掌握了基本方法和解决问题的途径后,对感兴趣的内容,自然愿意努力去寻找答案,这比从老师那里得到答案要强得多。如果小组成员搭配合理,基础较差的同学也可以跟上进度,至少有一次全过程的学习机会。教师在此阶段只需提醒学生合理分配时间,注意小组成员间的沟通,帮助把握进度。

(5)实践结果。“样本班级”包含三个自然班101名学生,经自愿组合加上教师作的个别调整,共分成37个小组,一般是二三人一组,有个别组是一人或四人。各组选择的不同的题目共30个,见下表。

img30

学生所提交的37份程序的执行情况统计结果表明,35个小组(ABCD类)独立正确地完成了综合程序设计的任务,其中有8个组(A类)的程序选题新颖,方案合理,考虑全面,运用的程序设计方法较多,取得较好的效果。经事后了解,有一个组(D类)程序不能执行,可能跟提交程序的方式有关系,还有一组(E类)没有完成自己的程序,拷贝了另一组的程序后上交,影响了该组的成绩。从总体来看,对这样的结果,我们还是比较满意的。与往年相比,变化是多方面的。

研究型学习对结果的评价也不同于传统的考试方式,并不将学生的作业成绩按照从高到低排队,只要学生认真实施了学习过程的各个环节,体会到学习的乐趣,掌握科学研究的基本方法,其研究的结果并不是最重要的评价方式。

当然,作为一门必修课程,最后还是要给每个学生一份成绩。教师根据学生选题内容、方案设计及程序的执行结果,给每个小组一个程序分数,见下表:

img31

小组成员得到相同的程序分数后,根据每人上交的分析文档、平时的学习积极性等进行上下5分的浮动,组内成员间分数差异可以达到10分。

4.结语

学生开始研究时对完成任务的困难往往估计不足,会有好高骛远的思想。而当他们开始工作发现困难重重后,一部分同学会丧失信心,降低要求,匆匆结题。大部分(B类)小组出现这样的情况,他们有能力做出正确的程序,但遇到挫折后也容易放弃。作为教师,一方面要鼓励学生提出较高的目标,并付诸行动;另一方面,当遇到克服不了的困难时,还要适时地开导学生,让他们明白学无止境,不要丧失信心,更不要丧失了对科学研究工作的热爱。这一次研究型学习尝试结束时,我们要求每个学生随软件交一份记录他们学习过程中的思路的文档,很多同学在文档中还写出了学习过程中的感受和体会。我们以学生的感受作为本文的小结:

“这次综合程序设计从一开始没有一点基本概念,到后来开始掌握程序结构,逐渐往程序中添加各种资源和代码,到最后完成程序,我都不敢相信这是自己的杰作。”

“这一次我们组的选题不是很正确,和我们在课堂上学的东西相差太远,感觉很困难。但最后通过我们的共同努力,加上老师的鼓励帮助,最终总算完成。程序虽不是特别好,但我们自己是满意的,感谢老师给了我们这样一次机会。让我们体会到通过自主工作与合作,完成一个项目所带来的乐趣。”

参考文献

[1] 刘树仁.关于研究性学习课程的理性思考[J].学科教育,2001(9)

[2] 张喜琴.“研究性学习”课程初探[J].太原师范专科学校学报,2001(3)

[3] 李炜.关于研究型课程开发的构想[J].中国教育学刊,2001(1)

(原载于《电气电子教学学报》,2003年第6期)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈