精心铸精品 理念须先行

时间:2022-10-21 06:27:14

精心铸精品 理念须先行

从2001年起我受系主任的委托承担了“程序设计基础”课的教学任务。这是给计算机系大一新生开的第一门涉及计算机的基础课。当年我已65岁,在这之前我一直在讲研究生的学位课“语音信号的数字处理”。

对我来说“程序设计基础”是新课,当然有一定的难度。但从我的经历看却又比较容易上手,因为我有指导中国队参加国际信息学奥林匹克近20年的经验。尽管年过花甲,却仍壮心不已,要做就要做好。我跟当时的系主任周立柱教授说,请他召集一个专家会讨论一下课程改革方案和教学设计,记得王尔乾、林行良、唐龙、王诚等十多位教授参加了讨论,给了我很大鼓励和帮助。

干好一件事光靠热情是不行的,特别是教学工作,需要有正确的教学理念和教学思想的指导。为此,我学习了教育心理学和有关创新学的书及一些资料,结合我在清华40年的教学实践,认真研究课程的目标、定位、内容、教学方法等等。着重开展了两个方面的改革:教学模式的改革和对学生学习评价方式的改革。第一年该课就取得了很好的教学效果,成为清华大学的精品课,学生给予很高评价,认为课程 “授课方式独特新颖,深入浅出,启发式教学,激发学生兴趣,调动学生的积极性,有助于学生独立思考能力的提高。”(引自清华大学2001年下半年教学评估结果查询)

1教育理念最为重要

“大学者,非谓有大楼之谓也,有大师之谓也。”先辈大师为人为学都给我们做出了榜样。回想50年前我在自动控制系求学和当助教时,多次聆听钟士模先生的教诲,深知要想搞好教学最为重要的是学习教育理念。

在新世纪,教育必须培养人的自我决定能力,而不是培养人们去适应传统世界;重要的是要唤醒学生的力量,培养其自我性、主动性、抽象的归纳力和理解力。

在教育的目的和价值的总体看法上,可持续发展教育观的核心是强调要将知识、能力、素质融会贯通于教育的全过程,要求受教育者要关心他人,学会合作、协调,将能力培养与素质教育摆到重要的位置上。认为具有较强能力和良好素质的人,必须掌握丰富的知识; 能力培养与素质教育要部分地通过知识的传授来实施; 能力与素质在许多场合下是通过知识表现出来的。

作为教授,我们应该如何传授知识,怎样培养学生的能力? 我以为应该推崇以探索为本的教学,努力将知识型教学改进为研究型教学,引导学生在不同级别的探索空间学习实践,取得经验,提高能力。

对理工科的大学生,能力是技能化知识的综合体现。培养能力,要把知识运用的综合性、灵活性与探索性作为重要内容。能力作为个性的个别心理特点,不是天赋的,而是在后天的教育与实践中形成和发展起来的。能力是各种社会实践的产物,只能在实践活动中得到提高。能力须以丰富的知识作支撑。实践是能力赖以生长的土壤。

学生的良好素质是知识和能力的升华。

素质教育是以尊重学生的主体作用、主动精神,注重开发人的潜能,形成人的健全人格为根本特征的教育。

我以为素质教育要求学生在学校里学会:“怎样做人,怎样做事,怎样求知,怎样健体。”

作为计算机系的教授还有责任传承信息道德。所谓信息道德,是维护信息资源的真实性与信息处理的社会责任感,也是科学精神与人文精神的结合。信息道德水平体现着人格水平。信息教育过程也是提高思想道德情操,塑造健康人格的过程。

创造性思维活动的基础是理论指导下的实践,有目的的实践。在实践当中积累丰富的经验,取得真知灼见。

创造性思维离不开工具。工具影响思维。“我们所使用的工具影响着我们的思维方式和思维习惯,从而也将影响着我们的思维能力。”(Edsger Dijkstra 1972年图灵奖得主)计算思维是人类借助通用智力工具求解问题的一条途径。涉及理解和运用计算机科学的基本概念、递归思想、抽象化、形式化、枚举、搜索、启发推理等。

创造性思维需要有科学的世界观和方法论来导引。

探索性学习有助于创造性思维的培养。

从思想方法上要摆脱传统偏见,思维定势往往会妨碍无偏见地观察和思考。敢于思考和善于思考应该是创造者的座右铭。

通过学习,我的感悟是:课程改革要以人为本,我们的责任是把学生潜能发掘出来。让人人都能“自信、自立、自尊、自强”。

下面谈谈我对这门程序设计基础课的重要性的认识。

程序设计强调数学基础,这是因为“任何事物都是量和质的统一体,都有自身的量的方面的规律,不掌握量的规律,就不可能对事物的质获得明晰的认识。数学是研究‘量’的科学,数学不断地在总结和积累各种量的规律性,因而必然成为人们认识世界的有力工具。”数学文化是人类文化中最基本的文化,马克思说:“一门科学只有当它达到了能够成功地运用数学时,才算真正发展了。”电子计算机的出现标志着数学已进入了机器时代,数学文化的进步是信息时代科学技术发展的基础。

程序设计是将数学应用于解决实际问题的技术,是让计算机听命于人的最直接的技术,也可以说是自己主宰自己的人脑延伸的技术。这样的认识可能高度还不够,因为在有了通用智力工具之后,人们会适应性地改变思维方式。学会计算思维是学生在信息社会大展宏图的需要。因此,我提出程序设计是大学生的一个看家本领。不会编程的人,只能局限在别人划定的圈内工作,对于那些划在圈外,计算机能够胜任,而你又渴望去做的工作,不会编程的人只能‘望圈兴叹’。“不能让我们的孩子输在起跑线上”。“我们有责任让那些有理想有抱负有灵气又肯吃苦的中国孩子在起跑时就能占有先机。”

以上是我通过学习在教育、教学方面的一些思想认识。也是我进行课程改革的思想与心理基础。

2教学改革,选定目标,创出新路

教师是教学活动的直接组织者和实施者,在教学中发挥着极其重要的作用。要把课程改好,我认为最主要的是教师教育观念的转变。实践证明,教学内容的选择,教学方法的采用都会直接影响教学效果和教学目标的实现。

目前有些学校的程序设计课程仍停留在传统的教学模式上,过于注重语句、语法和一些细节,基本上是以高级语言自身的体系为脉络展开的,没有把逻辑与编程解题思路放在主体地位上。如何分析问题和解决问题的思路讲的很少,对学生编程的能力,上机解题的能力训练不够,更谈不上在教学中引导学生研究和探索了。这样就给后续课程及研究生阶段的课题研究留下了很多麻烦。很多学生在学习这门课时感到枯燥难学,学过之后,又不能用之解决问题。

我个人的经历有些不同,20年来一直在参与辅导中学生和大学生参加有关计算机的各种比赛,包括国际信息学奥林匹克和ACM世界大学生程序设计竞赛,通过对这些编程能手成长过程的认真思考和研究,使我感到很有必要改变我们的课程教学模式,用先进的教学理念和方法培养一流人才。对这一问题,我和系领导谈了自己的想法,他们非常支持。从2001年9月起,我承担了程序设计基础课的教学任务,并开始对程序设计基础课程教学模式进行改革。

首先要分析传统方法的毛病:

(1) 语句、语法讲的太多、太细;

(2) 忽视基本问题的求解过程;

(3) 课程中算法意识淡薄;

(4) 不能激发学生的学习兴趣;

(5) 教学目标存在问题。学了但不会用,有人很快就忘了。

我们把程序设计基础的目标定位为:

(1) 借助程序设计的知识载体,传授基本问题的求解过程和基本思路;

(2) 建立算法意识,培养良好的思维习惯;

(3) 从学科方法论上打基础,培养计算思维能力和分析问题解决问题的能力。

我们认为学科教育必须走内涵发展道路,在课程中应该强调计算思维能力、抽象思维能力和逻辑思维能力,注重理性思维和理性实践。在解决问题的实践中训练观察能力、思维能力和实践能力。

我们分析了教学设计中的几个难点:

(1) 对“构造性”和“能行性”的把握。“构造性”和“能行性”是计算机学科的独有的特点,在教学内容的选择和教学方法的设计上都要顾及这个特点。

(2) 如何培养计算思维能力?引出什么问题、通过什么方式来培养计算思维能力。

(3) 抽象第一与动手编程实践的关系。抽象第一是计算机学科教育的一个基本要求,涉及逻辑思维、形式化、构建数学模型和算法等等,如果不能顾及学生的认知规律,无视初学者的感受,可能就会难倒学生或吓倒学生。正确处理好理论与动手编程实践的关系是十分重要的。

(4) 尽量超越具体语言,又不能没有上机的语言环境。

(5) 初学者的难点在哪儿?

(6) 怎样激发学生的学习兴趣?

针对难点和学生刚刚入学的实际,我们的做法是:

(1) 提出课程的定位是培养学生利用计算机编程手段分析问题和解决问题的能力

(2) 提出强化实践的教学设计;

(3) 提出理性思维和理性实践的导学要求;

(4) 提出“抱西瓜,不捡芝麻”的教学策略 ;

(5) 提出上课同时养成良好的编程习惯;

(6) 提出上机解题的考试方法;

(7) 提出创设进行因材施教的探索空间。

对程序设计教学模式进行改革,以强调动手实践上机编程为切入点;以任务驱动方式,通过实例讲授程序设计的基本概念,基本方法。重点放在思路上,即:在C/C++语言的环境下,针对问题进行分析,构建数学模型,理出算法并编程实现,同时要求养成良好的编程习惯,在此过程中培养学生的思维能力和动手能力,鼓励学生探索、研究和创新。

在课堂教学中我们采用了如下的教学思路:

课堂教学思路

下面着重谈教学方式与评价方式的改革。

(1) 教学方式的改革

① 强化实践

鉴于程序设计课是高强度的脑力劳动,不是听会的、也不是看会的,而是练会的。只有让学生动手,他才会有成就感,进而对课程产生兴趣,学起来才比较从容。因此,我们的基本思想是在理论指导下,让学生动手、动脑,更多地上机实践。因为学生只有在编写大量程序之后,才能获得真知灼见,感到运用自如。注重学生动手能力的培养是这门课和以往课程最大的不同之处。

② 鼓励和引导探索式学习

按照建构主义的学习理论、学生作为学习的主体在与客观环境(指所学内容)的交互过程中构建自己的知识结构。教师应引导学生在解题编程的实践中探索其中带规律性的认识,将感性认识升华到理性高度,只有这样,学生才能举一反三。在这一过程中教师起着很大的引导作用。

③ 突出重点

这门课授课的原则是要学生“抱西瓜”而不是“摘芝麻”,重点放在思路、算法、编程构思和程序实现上。语句只是表达工具,讲一些最主要的,细微末节的东西根本不讲。在教学设计中注重最大限度地调动学生的积极性,选择少而精,又能引发兴趣的典型问题,作为开篇,要求学生带着问题学,积极思考,与教师互动,尽量当堂学懂。突出上机训练,在编写程序的过程中,提高利用计算机这个智力工具来分析问题和解决问题的能力。

④ 培养良好的编程习惯

在课上我们非常注意让学生养成良好的编程习惯,即强调程序的可读性、规范性;要求变量必须加注释;程序构思要有说明;学会如何调试程序;尽量使程序优化;还要求对程序的运行结果作正确与否的判断与分析。

⑤ 注重培养学生“自学、动手、应用、上网”的学习习惯

我们认为 在本科阶段就应该注意培养学生的自学能力。很多东西完全是可以自学的,尤其是计算机。计算机是实践性极强的学科,所学的内容和要实践的东西是一个整体,所以可以自己动手来学,书上看不懂的在机器上动手试试,往往就弄懂了。上网是指充分利用网络平台,提高获取信息、处理信息和交流信息的能力。

(2) 对学生学习评价方式的改革

考试是检验学生学习效果、评价学生学习业绩的重要环节。考试作为“指挥棒”对教学目标、教学过程有着相当大的影响。我一直在思考如何进行考试改革,如何借助考试环节调动和激发学生自主学习的积极性、创造性等问题。

① 不纸上谈兵,不考笔试,不考死记硬背的东西

开学之初,就向学生宣布考试方式―上机解题,判分也是由计算机来完成,对就是对,错就是错。我们平时比较注意对学生学习方式的引导,让学生明白:理论很重要,要在理论指导下,动手动脑、有条有理地进行实践。而实践才能出真知,动手才能学到真本事。

② 利用资源,补充助教的不足

我系每年都有十多位保送生,他们都是计算机竞赛方面的高手,是“国家集训队队员”。与此相反,每年所招新生中有30%的学生没有摸过计算机。我们把这些“高手”组织起来,给他们起名为“小教员”。在开学的第一天就把他们介绍给其他同学,并把他们分到各班,让他们对该班同学的学习负起责任,帮助同学学习。这部分“小教员”真正发挥了作用,这样既弥补了师资的不足,同时也使他们受到了锻炼,增强了责任感和团队精神。

3仍须努力,没有最好,只有更好。

经过7年的实践,我们感到在一些方面还要进一步努力。譬如:

要进一步加大学生训练环节的力度;

要加强对基础较差学生的辅导;

要建立一个因材实教的机制,创造条件,让学生能有更广阔的发展空间;

要建立平时的督促机制,让每一个学生真正落实动手实践;

要考虑与后续课程的衔接。

改革是没有止境的,一流大学要有一流的课程,没有最好,只有更好。

上一篇:浙江大学“高等院校计算机专业课程综合实验系... 下一篇:推进专业建设的切入点:明确培养目标