《面向过程的程序设计》教师教学心得.docx
《《面向过程的程序设计》教师教学心得.docx》由会员分享,可在线阅读,更多相关《《面向过程的程序设计》教师教学心得.docx(17页珍藏版)》请在三一办公上搜索。
1、面向过程的程序设计教师教学心得我也是一名高校教师,常期从事“C/C+程序设计”这门课的教学,每年都低着脑袋认真地按既定的结构规律去进行这门课程的教学,但偶然地抬起头反思,觉得很多习惯了的方法不一定就是完美无缺的,所以个人觉得当教学中遇到了困难,放下来,认真地进行教学反思是很有必要的。下面,我将我的一些反思与同仁们交流,先谈总体思路,再逐步介绍“学思行”三步曲如何有效开展。一、总体思路1教学目标的重新审查任何一门有效地课程教学,都应该让学生在知识与能力、过程和方法、态度与情感三个方面得到相应的锻炼。作为计算机类相关专业的最核心一门语言课“C/C+程序设计”应该做到:知识与能力:通过理论和实践教学
2、,使学生较好地掌握结构化编程的基础知识,能够用所学的知识解决简单的实际问题(考虑到课时安排和学生的实际);培养学生面向过程的编程的思想和编程的能力,初步培养用面向对象的思想去分析问题和解决问题的能力(考虑到课时安排和学生的实际),初步培养用系统思想规范设计和模型建构的能力(考虑到课时安排和学生的实际)。过程和方法:通过不同形式的训练过程,如上机、笔记、交流、答辩等逐步培养学生掌握编程的方法和自我学习的方法。态度与情感:培养良好的学习习惯和学习兴趣;养成良好的的规范编程的习惯,掌握调试的技术调试,养成通过调试来解决问题的习惯,养成合作编程的习惯;培养做事认真细致的态度和勇于探索、独立思考的精神。
3、这些目标并非是空泛之谈,它确实是我们要努力实现的,同时这些目标的部分实现会有一种催化作用,它会更加有效地帮助你达到目标,比如说:合作编程方法的培养和习惯的养成,哪怕还没有完全形成,都会强力地吸引学生相互合作完成一个看起来不可能实现的任务。2教学重点的确定(1)重点一般都认为这门课程的教学重点是“指针”概念及其用法,但如果从培养目标重新审视,我们发现这门课的最重的重点就不是那么一个重要的概念和用法(或者这可以算作知识层面上的一个重点),而是这门课程要带给我们什么,它要带给我们最重要的东西,这个最重要的东西就是我们的重点。当然很多人都会这样认为,这门课程不仅是学会编程,学习完这门课的最大成功就是能
4、够编写出简洁高效,算法优越的代码,这种观点也是有问题的。追求算法优越的代码当然没有错,这是编程者追求的完美阶段,但放在这门计算机语言课程的教学中作为重点就是有问题的,它忽视了一个最大的问题:人的思想、认识的提高是需要时间的,人的思维能力的进步是有过程的,人的解决问题的能力是要不断训练提高的,人头脑中智能网络的形成是有阶段性,脱离这个最真实的背景而谈完美,这不是唯物主义的做法。有这种观点的人其实并没有掌握这门课程的本质特点,其实也就没有相应的方法、措施去真正地教学会学生编程,也就没有了突破口,认为只要教授相应的知识点并辅助于相应的练习就能够达到或者基本达到教学目标,至于学生学的好坏只能是学生的潜
5、质问题了。这门课程不是让你掌握多少的精妙的技巧编写优美的程序,而是让你能够编写出程序,能够编写出规范的程序,不是求巧,是求实、求拙。编程思想和规范化编程能力及调试能力,是这门课程里要掌握的最核心的因子,这就是重点。结构化编程思想、面向过程的编程思想是我们做事的一个准则,这门课程里就是要将这种思想揭示出来,让我们做事编程井井有条而不是乱成一团。(2)突破口这门课程的本质就是智能技能的训练课,既然是技能,教学的重点的突破口就是规则和训练,这个规则就是将客观世界的问题域转成算法,进而转化成语句代码的方法步骤。学会编程的突破口就是学习规则并不断地演练规则,反复凝练解决问题的一般方法,从而转化为智力技能
6、并内化为能力。3结构与解构我始终认为结构最重要,一个好的结构可以让一个系统完美地运行下去,如果没有好的结构和运行模式,即使消耗了大量各种资源,也是浪费。那么,C/C+”这门课程也存在这样一个结构,这个结构要综合权衡各知识点的位置、顺序,先讲什么,后讲什么,根据是什么,如何协调合作,如何反应这门课程的实质。要找到这个结构,我以为要体现五个方面的特征:一,要有明确的哲学指导思想;二,要明确知识体系的核心;三,保证理论与实践的统一;四,必须兼顾到学生的特点;五,必须建立合理清晰编程规则。(1)要有明确的哲学指导思想这种哲学思想当然是辩证唯物主义的指导思想,辩证唯物主义认为世界上一切事物都是相互联系和
7、相互制约的,所有的事物都是内因和外因相互作用的产物,不能只看到内因,不看到外因,不要一切绝对化。这些思想对于我们认识教学内容,规划教学结构有巨大的指导意义。比如说,从相互联系和相互制约的观点来看,“数组”和“指针变量”这两个概念并没有绝对的不同,都是代表了内存空间的地址,都可以代表一段空间,只不过一个可以变化,另一个是固定的而己,所以教学中并不能够刻意将它们区分,甚至是截然分开,事实上,通过对比的方式给出这两个概念不仅不会混淆思维,反而有助于认清事物的本来面目。再比如说:数据和数据的存放位置,一个看成内因一个看成是外因,内因和外因结合在一起才是一个整体,所以将“指针”放在教材中离“基本数据类型
8、”那么遥远显示违背了辩证唯物主义的思想。(2)要有明确知识体系的核心这门课程的核心价值就在编程思想(无论是面向过程还是面向对象),面向过程的编程思想的具体体现就是函数。函数的思想是最应该掌握的思想,同时也应该是能够顺理成章接受的内容(这跟中学的函数思想并没有太大的改变),但教学中却也是我们屡屡失败的地方。函数是我们程序框架的基石,应该从教学开始就逐步引入,在教学中反复强调。如果不明确这个核心,是主观上认为这个部分的内容难,不能讲,有了一定的语言基础、编程基础后,留在最后再讲,可不知道我们从头到尾又都在用这个半遮半隐的函数,从一开始就对程序编写的框架不清楚,一味地深入到细节,实际效果并没有达到“
9、水到渠成”却落下个“只在此山中,云深不知处”的结局,极大的伤害了学生的学习热情,学生的学习变得很无力,也很无助。(3)保证理论与实践的统一在教学中理论与实践的统一是必须做到的,在你的教学内容设计上就要遵循这个原则,如果不是为了使用,可能这门语言根本就没有产生的必要,从实践中来当然也要到实践中去,这是一条永远不变的真理。所以,教学中不要为讲概念而讲概念,讲述每一个概念的时候要旗帜鲜明地提出一个“阳谋”,为了这个“阳谋”去使用这个概念,为了这个“阳谋”在规则中体现这个概念。如何做到统一呢?第一点就是部分的案例来源于解决实际的问题,比如说,我们去处理一下图片,图片的颜色就变了,比如说给你一段声音数据
10、,你简单地倒序一下就可以将声音反过来,这是直接能够感知到的,学生的印象能够不深刻吗?第二点,作为教材的解决实际问题案例要有系统性,让学生感知随着知识的积累解决实际问题的能力不断地加强。(4)必须兼顾到学生的特点兼顾学生的特点要从以下几个方面来认识:第一,兼顾中国学生的意识形态;第二,兼顾学生(人类)的共同认知特点;第三,兼顾不同学生的实际情况兼顾中国学生的意识特点其实就是关注中国人的认知特点。中国人的文化符号是水,中国的文字、书法、绘画、经义讲究的是润,比如说中国国画是山水画,沾上墨在宣纸上点撒宣连,墨自动连成一体构成非常奇妙的意境,在绘画书法之前心中早已有了意象,而这些意象来源于悟(先悟理,
11、可能从本质上中国人是最讲理的国家)。中国人喜欢悟,中国的教育崇尚启(孔子的不愤不启,不徘不发),这些是非常有益的思维。而西方人喜欢实验,崇尚探索探险,从实践中得出真理。这两种思维不能说哪种思维更好,或者说特定的阶段某种思维更加适用(从工业社会发展到现代社会,显示光是悟是解决不了大问题的,但从现代社会发展到文明社会就可能会更好地体现出中国人思维的优势),但我想,还是应该遵循本民族的特质,否则会不伦不类。计算机语言学科是西方人创建的,但我们研究他们的教材结构大多是以应用案例来表达某种语法的用处,教材大都没有严格的知识体系,或许老外本来就觉得语言课不应该还有知识体系这一说,但到了中国,中国的专家就必
12、须要创造一种根据知识的难度、重点而建立的课程教材体系,这一点确实是中国特色,但这种特色必不可少,非常重要,因为这是中国人固有的思维方式。也就是说我们设计的课程结构体系不能回避中国人的特点而盲目地追寻西方人的足迹,所以我们的教材在编写结构上采用了知识点章节划分结构,而绝对不能以案例来划分。需要注意的是,我们对章节知识点的划分上是遵循学生的共同认知规律,遵循应用系统的发展完善规律,而不是依照专家所设定的难度顺序来定义的,更不是呈现一个知识点之后,然后再出示这种知识点是如何应用的,我们希望打破一直以来,我们的教材中的范例只是语法、句法的复现和载体这样一个惯例,体现出更科学地知识呈现结构,这或许就是我
13、们确定教材内容结构的重要根据。兼顾学生的共同认知特点根据认知心理学的观点,人的知识包括陈述性知识和程序性知识,陈述性知识是回答“是什么”的知识,陈述性知识是回答“怎么办”的知识,陈述性知识主要以例题网络的形式表征,而程序性知识以产生式系统表征。记取陈述性知识,并力促陈述性知识向程序性知识转化是我们教学的核心。一般来说学习的过程包括三个阶段:新知识的习得阶段、知识的巩固和转化阶段、知识的迁移和应用阶段。这三个阶段都有一些专门的策略来引导(在后面的教学方法和策略里,我们还要讲到,这里要讲的是在我们的教材结构中如何体现出教学策略),而尤其重要的是第二个阶段向第三个阶段的转化,我们采用的方法是通过变式
14、练习,精心地设计不同类型的题目,促进知识的迁移和运用。根据这个特点,我们的教材结构中应该在每个教学内容之后设计这种变式练习。兼顾学生的实际情况事实上,不同学生的情况是不同的,倒并不是某位同学比其他同学聪明多少,而是思维方向、兴趣爱好或者其他情况决定了学习的进程,有的学生遇到困难多些,有的学生遇到困难少些。但不可否认的是每个同学都会遇到困难。我们希望出现的困难不致于让学生产生“学习无力感”,如果常时间出现了这种不良感觉,那么这门课程的学习对于学生来说就会比登天还难。要消除这种隐患,至少要做到两点:首先,教学内容就不能够过难,让绝大多数同学跳一跳摘得桃子;其次,而出现的思维上的障碍之后,就必须有解
15、决困难的措施,当然,也不能够出现一点小的困难就轻松地找到答案。确保教学内容不难,学生容易接收,无认从教材的角度还是具体教学的角度来看,都要精心筹划。本教材内容确实不少,涵盖面较广,有些问题进行了较为深入的探讨,进行了扩展,这些部分都已经做了*号标记,可不作为教学内容,而只做为学生自己兴趣钻研的依据。在教学备课的时候,应保证非*号部分的精心准备,点拨一些扩展知识,尽量精化内容,要让大多数的学习都能够顺利掌握,而自然一部分学生就会有“学习饥饿感”,这种感觉会转化为研究的动力。需要说明的是,本教材中*号部分不讲,并不会影响教学的核心,只是见识认知的范围缩小。让不同学生得到不同的发展就是因材施教。学习
16、中遇到了困难,怎么办?要从教学模式和教学方式上考虑,配合本教材的“学思行”教学模式中的“思维训练课”就是解惑的时机,要抽出专门的时间来解决困难,另外,在“实验课”中也有专门的时间对个人进行辅导。(5)必须建立合理清晰编程规则前面分析过,教学重点的突破口就是保证有一个合理清楚的编程规则结构,编程规则的制订要符合思想(面向过程或者面向对象),同时要有明确的步骤,一定要可操作性。对于面向过程的程序设计最重要的就是模型和模块的设计,模块是具体的解决单元,模型是指这个解决单元在整个系统中的位置,模块与模型其实是相互融合的,模块的设计中要考虑环境,而模型的设计其实就是模块的有机组合。模块对整个系统来说是小
17、世界,但对于其下的内容又是一个大世界,所以真正会设计一个模块,就会设计一个系统。这样看来,如果确定了模块的设计规则和模型的设计规则,通过引申、变式等手段来训练、巩固、转化成技能,进而培养出计算机程序编程能力是水道渠成了。在本教材中,我们给出模块、模型的规则如下:明确问题域及输入、输出:模块设计的依据是问题域,也就是模块功能,而模块设计的形式取决于问题域,这一点不难理解,虽然知道这一点,但表达出来还是需要训练的,这要求对事物关键的洞察能力和文字组织能力和提炼能力,在教材中设计一个模块时我们给出了模块图的画法要求,就是从规则上体现,从整体考虑。明确模块的归属关系:根据模块的功能放置模块于整体的环境
18、中。明确模块的解决思路:具体地实现这个模块,这在规则设计时是一个难点。许多人不会编程,即使对程序语言已经熟悉也不会编程(当然语言都不熟悉肯定是无法编程的),关键因素在于没有解决思路,这个解决思路与选择什么计算机语言来编程根本就是两码事情,这一步是不考虑具体的计算机语言的,这是一种逻辑判断能力与计算能力的等能力的综合应用,这虽然不是一朝一夕能够解决的,但确实也是可以培养的。更关键的是要清楚,规则设计的时候,解决思路一定要清晰了呈现出来,为了体现这种思路,简单的问题可以直接写出方案,较复杂的问题可以主动地提供假设数据,手动演算直到问题解决。明确模块的算法步骤:这一步其实也不涉及到具体的语言。而是将
19、第三步的解决过程进行梳理,总结成可顺序执行的步骤,以便于转化成具体的语言代码。在具体表达这些步骤的时候,即可以用自然语言来表达,也可以用流程图表达,也可用伪代码表达,只要能够表达清楚步骤,便于向语言转化即可。以上的四步规则就是:模块功能和结构、模块归属、解决思路、算法步骤。在教材里大多数例子里都已经得到体现,这是要让学生充分掌握并不断训练的规则(不管是思维训练还是实验),训练的次数越多,越标准,那么每步之间间隙就会越来越小,以致于最后达到自动化程度,真正地掌握模块模型设计,真正地学会编程。除此之外,还有一些具体知识点使用过程中的规则,比如说指针作为函数参数的使用规则就是:传地址、类型匹配、使用
20、指针运算符三步曲(抛绣球、门当户对、芝麻开门)等。4教法研究首先要明确教学方法不是唯一的,而所有的教学方法都应当坚持启发性,针对不同的课程的特点,甚至是不同的内容、不同的学生的教学方法是不同的。另外,教学方法一定要与课程的特点相适应,“C/C+程序设计”这门语言课程,教学的内容大多都是概念、语法、规则。概念和规则属于陈述性知识,如果能够利用概念对事物分类,利用规则解决问题,则表明概念和规则已经转化为程序性的知识。可以说概念和规则的教学是语言课程教学的一个核心,这门课程其实质是一门智能技能课,而非一门高深玄奥的理论课。比如说:指针作为函数参数就是一套规则,比如说面向过程的程序设计思想也是一套规则
21、,这些规则里包括的众多的概念。在教学过程中,我们先后在不同的环境里使用了多种教学方法。(1)基于认知理论的讲授教学法这是我们本门课使用最多的教学方法,每个“理论教学课”我们都使用,其最大特点可以发挥教师的主导作用,教师可以由易到难、由浅入深地传递消息,利于学生接受,易于教师控制所传递的内容,单位时间的效率最高。这种方法有优势,同时也存在着不足局限,强调了知识的结论性,但削弱了技能的教学,勾通方式单调,教学如果准备的不好,气氛沉闷,也不利于学生的主动能动性。这种教法的理论基础是:奥苏伯尔的认知理论。这种教学理论首先强调激活学生认知结构中原有的与新的学习相关的知识,紧接着呈现要学习的上位概念或者原
22、理,使之起组织作用,然后再呈现下位例证。这种理论认为人的认识过程往往是先认识事物的一般属性,然后逐步认识其具体细节,强调学生认知结构中的新旧知识相互作用,以达到认知结构不断分化和融会贯通的目的。比如说:字符的上位是整数,指针可以看成是变量(数据)的下位。(2)基于认知理论的发现教学法发现法讲究的是通过情境的创设,让学生自己发现问题并解决问题,这当然非常有利于学生能力的提高,环境的创设在发现中尤其重要,所以我们在教学中使用的是“引导发现法”。这种教法的理论基础是:布鲁纳的发现法。通过这种方法可以有效地培养学生的操作技能、观察技能、想像技能以及符号运演技能。比如说:我们在做部分案例教学的时候(指针
23、数组来完成图书馆书籍的存贮),我们就可以提供相应的环境,让同学们自己发现应该可以有那么一种数据类型,而事实上确实如此,学生的发现得到了验证,学习的兴趣会空前高涨。(3)基于情感主义的研讨式教学方式这是一种非常强调个人参与的教学方法,每个人(包括情感和认知)都积极地投入到学习活动之中,学生是发起活动者,同时也是自我评价人。这种教法的理论基础是罗杰斯的情感主义教学理论,这种理论认为,应该探讨完整的人,而不是将人分割成行为、认知等从属方面,一个人的大多数行为都是他对自己看法的结果,真正的学习涉及到个人,真正的学习经验能够让学习者发现他独特的品质,从这个意义上讲,学习即“成为”,教学即“促进”。如,我
24、们在教学的第二个环节安排的“思维训练课”就是让学生自由地到讲台上来演讲,自己给自己做一个客观的评价。在这种活动中,他自己最清楚自己想要表达什么,自己想知道什么,因此他也会去做充分的准备。5学法指导(1)鼓励学生自主探索和合作交流。引导学生自主地从事观察、分析、交流等活动,培养学生自主学习的能力、合作的能力、交流的能力等。(2)鼓励与提倡解决问题的多样性,引导学生在与他人的交流中去选择合适的策略,丰富自己的思维方式,获得成功的体验和不同的发展。培养学生的逻辑推理能力和发散思维能力。(3)督促学生用三色笔记笔记,强调记录心得的重要性,培养学生良好的学习习惯和掌握有效的学习策略。(4)从教材的结构和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向过程的程序设计 面向 过程 程序设计 教师 教学 心得
链接地址:https://www.31ppt.com/p-6871971.html