首页 > 文章中心 > 鸡兔同笼问题的解决方案

鸡兔同笼问题的解决方案

开篇:润墨网以专业的文秘视角,为您筛选了八篇鸡兔同笼问题的解决方案范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

鸡兔同笼问题的解决方案范文第1篇

【中图分类号】G 【文献标识码】A

【文章编号】0450-9889(2016)10A-0015-01

新课改教学理念将研究性策略应用在小学数学课堂教学中,已经成为当前较为推崇的一种教学形式。在传统的课堂教学中,教师常常包办了学生的思维,学生跟着教师后面亦步亦趋,这样的教学并不能提升学生的数学能力,相反还给学生带来了学习行为上的误区。那么,该如何进行研究性策略的渗透和应用呢?笔者谈三点教学体会。

一、积极创设情境,激活学生探究欲望

每一个学生都有强烈的好奇心和求知欲,都想从探究中得到答案。此时教师不要主动将答案授予学生,而是要积极创设情境,让他们自主寻找、自主探究,由此产生求知欲并主动展开课堂探究。

在教学苏教版数学五年级下册《圆的认识》时,笔者没有直接告诉学生圆是什么,而是出示了教学视频:在一个神奇的国度里,小猫驾着一辆奇怪的马车在路上行驶,它的车轱辘是长方形的;还有一只小兔子也驾着一辆奇怪的马车,车轱辘是正方形的。不过这两辆马车都无法启动,小动物们非常着急。此时一只小猴子也驾驶着一辆马车,这辆马车和前两辆车有所不同,它的车轱辘是圆形的,走起来特别快。学生根据这个视频,很快就找到了问题的根源:原来圆形车轱辘的车行驶起来是非常快的,而且非常平稳。为什么呢?学生由此打开了思考的匣子,想要找到其中的答案。

此时笔者提问:想一想,你认为圆有什么特点呢?学生认为圆有一个中心点,从轮子的边到中心点的距离都相等。由此,学生通过自主探究,发现了圆心、圆的半径,并对圆有了初步的感知。又如,在教学《圆和面积单位》时,为了让学生对圆有直观的感知和体验,笔者设计了这样的教学环节:拿出两张大小不一的长方形纸让学生思考:想一想,该如何比较这两个面的大小?学生从生活经验出发,认为要将这两个平面重叠,如果重合在一起,说明两个平面一样大;反之,则可以看出两个平面的大小。笔者引导学生思考:如果通过重叠也不能比较出结果怎么办?学生认为,可以采用数格子的方法来比较。但有学生提出:如果格子的大小不一致,也没法比较。由此,通过一系列的情境设置,学生在冲突中主动探究,不断深入问题实质之中,不但对单位的面积大小比较有了解决方案,而且对面积单位的统一也有了深刻的认识,收到了预期的效果。

二、引导问题发现,训练学生自主探究能力

对于学生来说,能否主动发现问题,并以此作为学习探究的主要内容是一节课中的重要环节,教师要善加引导,给学生提供足够的空间和时间,引导学生发现问题,训练学生的自主探究能力。

在教学“鸡兔同笼”这一知识点时,为了培养学生的自主研究能力,笔者特意让学生从自己的视角出发,找到问题解决的方法。由此,不同层次的学生想到了不同的方法,其中有画图法、列表法、假设法,也有学生想到了要用方程来解决。此时笔者引导学生先从最简单的画图法入手展开探究。学生由此经历了不同的发展层次,从画图中发现可以将抽象的文字转变为图画,这样就可以一目了然地将数量关系表达出来,有利于问题的解决;接着学生自主发现,通过列表法,能够看到随着鸡的只数的调整,脚的只数也在发生变化。经过这样的自主研究,学生认为,画图和列表看似有效,但都比较复杂。那么到底有没有更为简单直接的方法呢?学生继续深入,很快找到了另外一种方法――假设法,可以先假设全部都是鸡或全部都是兔,这样就能够发现两者之间的关联。这样,学生在逐步探究中找到了思维的方向,提高了学生的抽象思维能力。

三、引导课堂实践,提高学生实践能力

数学教学的根本目的是要培养学生的实践能力,因此,教师要加强课堂实践的引导,让学生在实践中展开探究,进一步提升实践能力。

在教学《通分》一课时,笔者先让学生自主思考:如何比较和的大小?有多少种方法?学生根据已有经验,认为可以通过折纸来比较,也有的认为可以通过画画来比较。通过讨论和交流,学生得出了四种方案:一是用两张大小相等的长方形纸分别折出和进行比较。二是画一根线段来标注,通过比较长短来比较。三是根据分数的基本性质,将两个分数分别化为同分母的分数,根据整数大小的比较得到结果。四是将这两个分数化成分子相同的分数。到底哪一种更简便呢?学生进行自主研究和实践,认为比较异分母分数,最好的办法就是通分,将两个分数化成分母相同的分数。

鸡兔同笼问题的解决方案范文第2篇

以下是我在小学数学新教材教学实践中,运用教学评价促进学生学习数学的点滴体会。

一、借助评价,营造和谐的氛围

外面的世界丰富多彩,学生的内心世界也多姿多彩。他们有自己的生活经验,对同一问题有不同的想法。在数学教学活动中,培养学生独立思考与合作交流,营造自信和相互尊重的学习氛围,十分有利于学生进行学习及非智力因素的发展。因此,教师要为学生创造一个宽松的数学学习环境,使他们积极自主地学习、平等尊重地交流。教师要做学生的知心朋友,是“平等中的首席”,而不是高高在上、无所不知的严师。这就要求教师要面向学生,在课堂教学中关注每一个学生,对学习有困难的学生给予切实的帮助及鼓励,用发展的眼光看待每一个学生,在充分肯定学生的学习能力、呵护学生的自尊、自信的前提下进行教学评价,形成激励向上的学习氛围,使数学学习趣味性成为学生健康成长的重要精神支柱。如学习比较困难的学生回答问题后,我常微笑着对他说:“你很勇敢,大胆地回答了问题。谢谢你能把自己的想法与大家交流。”这些激励的话,使他们不感到窘迫;对正确回答问题的学生,我常说:“同学们觉得他回答怎样?”“哪个同学有不同的看法或者补充?”从而激发学生不断地思考,使其思维得到培养和发散;对不能回答或回答错的学生,我常说“不要紧,好好想,想好了下次继续说,好吗?老师和同学们都期待着你。”“你想请谁来帮助你?”……这平和、朴素的语言是发自内心的,以这样的评价为媒介体现了教师既是平易近人和充满关心情怀的忠厚长者,又是学生值得信赖的朋友,表现了师生真实的学习过程,拉近了师生之间的距离,对促进学生数学学习起到“催化剂”的作用,使师生的心扉彼此敞开,学生的个性得到了张扬,激发了学生的学习潜能,从而调动了学生学习的积极性。

二、适时评价,改善学生思考

教学活动中,教师既要引导学生对学习目标、学习过程进行思考,也要引导学生对其他同学的学习结果进行思考,引发生生间必要的“知识冲突”,帮助学生对自己的认知结构进行调整。如教学“鸡兔同笼”时,我听了学生们的多种解决方案后,提问:“同学们对这些方案有什么看法吗?请提出你的意见。”一话激起了学生们的思考。有位学生就针对在纸上用画图的方法找到了答案的解决方案并提出了不同的看法:“这种方法太古老了。如果题目中给出的数据很大很大,用画图的方法就很麻烦,甚至无法进行。”之后,他还列举例子进行说明。其他学生听后,都赞成他的观点。通过生生间的不断评价和思考,学生最终一致认为用列算式的方法解决这个问题较简便。由此可见,学生的自我评价和思考将为他们拓宽思路,为提高思维能力创造积极的条件。同时,能充分发挥学生的主体作用,促使学生对自己的学习进行积极思考。学生数学能力的提高来自于不断的学习对比和思考,在正确认识学习结果的过程中可以促进学生思维的发展,使其及时总结经验和教训,加深其对知识的理解和掌握。

三、善用评价,促使创新

鸡兔同笼问题的解决方案范文第3篇

关键词:程序设计基础课;问题求解方法;教学改革

程序设计基础主要培养学生运用程序设计语言求解问题的基本能力,包括让学生了解高级程序设计语言的结构、掌握计算机问题求解的基本思想方法以及基本的程序设计过程和技巧、熟悉并适应计算机的问题求解模式,从提出问题、模型建立、数据表示、算法设计到编写程序代码、测试和调试程序、分析结果的过程中,培养学生将问题抽象化、设计与选择解决方案的能力,以及用程序设计语言实现方案并进行测试和评价的能力。

程序设计基础课程在大学一年级开设,是大学生认识和应用计算机的入门课程,是计算机及相关专业的一门重要基础课程,对后续课程的学习乃至学生的整个职业生涯都有至关重要的作用;而如何讲好这门课程,更需要广大计算机专业教师不断地探索、改革和创新。

1、课程改革的必然性

目前,国内程序设计基础课程名称较多,如C语言程序设计、高级语言程序设计、程序设计基础等。纵观这些课程的开设情况,我们可以发现教学内容大多都是以某个具体的程序设计语言(如C语言)知识及其自身体系为脉络,教学模式以课堂讲解和学生上机练习为主。按照这一模式组织教学,产生的副作用主要有以下几个方面。

(1)学生在课程学习过程中,面对程序设计语言中繁杂的语法规则,会产生严重的厌学情绪,使得课堂逃课率较高;还有不少学生通过抄袭他人作业或考试作弊的方式完成课程学习。

(2)一些能够完成课程学习的学生自认为掌握了程序设计方法,但是在解决实际问题时却发现对问题求解毫无头绪,由此产生心理落差,严重挫伤学习热情,没有学习成就感。

(3)另外一些能够完成课程学习的学生认为他们满怀希望来学习,但没有从该课程的学习中获得编程的愉。

这种模式在我国计算机教育事业中曾经发挥过极其重要的作用,但它是从“狭义工具论”的思想出发,过于注重语句、语法等语言细节的教学,没有把问题求解方法和计算思维能力培养置于首要位置,对于如何分析问题和解决问题的思路讲得很少,对学生编程能力的训练不够。这一模式没有很好地为课程开设目标服务,课程的开设只能起到事倍功半的效果,同时也成为制约计算机及相关专业教学质量提高的一个瓶颈。

2、更新课程教学理念

理念更新是教学改革的思想保证,正确合理的课程教学理念是课程改革成败的关键。为了破除“狭义工具论”的课程建设观念,秉承“授之以鱼不如授之以渔”的理念,我们将以语言知识为主线的教学模式转变为以语言知识为基础、以问题求解方法为主线的教学模式,确立了程序设计基础课程面向应用,让学生学会分析问题、设计算法、运用语言知识编写程序的教学基本原则,而不是让学生一味地研究语言本身。按照这一思想,陕西理工学院将传统的C语言程序设计课程更名为程序设计基础,并确立以下教学理念。

(1)淡化语言,强化程序设计方法,帮助学生树立正确的程序设计观念和思想方法。

(2)淡化编码,强化算法运用与分析,训练学生的抽象思维及建模能力。

(3)案例驱动,强化实践,引导学生获取正确的问题解决方案。

(4)由易到难,贯通案例,满足学生的学习成就感,激发学生的学习兴趣。

3、课程教学改革方案

3.1 课程内容的优化安排

依据程序设计基础课程的开设目标和根本任务,课程内容应包含问题求解的基本方法和实现这些方法的计算机语言基础知识等,因此课程内容的优化安排原则是以语言知识为基础,以程序设计的基本理论和基本方法(含问题求解方法)为核心。据此原则,课程教学组对课程内容按照程序设计的应用需求进行合理取舍,将知识点分成门槛跨越、体系拓展、创新应用3个部分。

(1)门槛跨越主要解决的是程序设计入门必需的语言知识学习问题。教师通过讲解语言体系核心集合,让学生在很短的时间内完成语言知识的学习并将其应用于实践,学生学习语言知识获得的成就感与愉悦感能够激发并延长学生的学习热情。

(2)体系拓展主要是在门槛跨越的基础上围绕程序设计的基本方法展开。教师通过一些常用且典型的算法,让学生初步掌握算法的基本知识,并为后续的教学埋下伏笔,以激发学生的求知欲。

(3)创新应用是在前2个体系基础上实现的以问题为中心的阶段性实践训练。此处的问题规模较大,程序代码有相应要求,学生通过多人合作完成对问题的分析、建模及程序实现。

3.2 课程教学策略

要实现知识点3个部分所达到的教学目标,教师必须采用适当的教学策略,综合应用课堂讲授、案例穿插、启发诱导等多种教学方法;从程序设计的角度出发,按照分析建模、算法设计、程序编码、测试与维护等环节,培养学生从能够遵守程序设计准则到习惯成自然地按照程序设计准则完成创新应用问题的程序设计。此外,教师还需在教学过程中针对教学内容的组织处理好以下关系。

(1)处理好该课程与后续课程的关系。程序设计基础不仅是一门独立的课程,而且是后续课程的基础,因此教学内容的安排既要考虑对后续课程的铺垫作用,又不能过多涉及算法与数据结构的内容,避免超出课程的内容范围。

(2)突出重点,分散难点,淡化细节。教师对于语言基础知识的教学应以应用为目的,对于一些语言细节可一带而过。例如,指针既是结构化程序设计语言的难点,又是后续课程的一个应用重点,教师可避免像传统教学那样集中讲解指针的概念,而是将这些难点提前并分散到相关章节进行处理,以逐步降低指针内容的难度并减少学生的心理压力。

(3)程序设计方法的讲解主要通过案例来实现。例如,教师在讲解C语言基础知识各章节内容时,可以“快递运费计价问题”为例,逐步扩展,加入条件,从分析问题、建立模型、设计算法、进行程序设计等方面进行讲解,贴近实际,不断激发学生对知识的探索欲望。

(4)以常用算法为纽带,实现逻辑思维与程序设计方法的有效融合。例如,针对递推法、倒退法、迭代法、穷举法可以不同的有趣实例,如兔子繁殖问题、猴子吃桃问题、牛顿迭代法解方程、鸡兔同笼问题、逻辑问题等,对其进行总结和应用,让学生体验程序设计的实现过程,既反映问题的难度及求解规模的变化,又彰显知识和求解方法的多样性。

4、课程实践环节建设

程序设计是高强度的脑力劳动,不是听会的,也不是看会的,而是练会的。只有让学生动手,学生才会有成就感,进而对课程产生兴趣,学起来才比较从容。在“狭义工具论”思想指导下,传统的实践环节内容比较单一,以课程实验为主,内容基本上是程序设计语言的语法验证,实验项目与实际应用问题结合不紧密,学生做完实验没有成就感。因此,课程的实践教学应遵循以应用为目的,以任务驱动,循序渐进。我们将课程完整的实践环节分为课程实验、课程实训和课程设计3大部分。

4.1 课程实验

课程实验由基础实验和综合实验组成。基础实验与课程讲授内容同步,形成配套的实验项目,加深学生对相关语言知识及某个主题领域知识的理解和应用;综合实验主要是针对多个知识点进行综合训练,加强学生对课程内容的整体认识。

1)基础实验。

基础实验项目按照程序跟踪、改错调试、设计实现3个递进层次,从多角度培养学生的程序设计能力。前2个层次的基础实验项目训练学生对语言知识的运用能力,后1个层次的基础实验项目训练学生求解问题的能力。

程序跟踪是依据项目的主题给出完整的程序,让学生利用调试工具跟踪并观察程序的运行结果,并对结果进行分析,回答给定问题,画出程序流程图,这些题目主要是为了加强和巩固学生的语言知识。改错调试是在给定功能的程序中设置几个语法或算法错误,让学生上机进行调试并除错,主要目的是训练学生在理解程序主要功能及整体框架的基础上进行程序调试的能力。设计实现是按照项目的主题给出几个可选的题目,让学生根据自己的能力选择完成。这一层次的题目主要是让学生掌握从提出问题、模型建立、数据表示、算法设计、编写代码到测试调试程序等开发过程和方法,培养学生将问题抽象化、设计与选择解决方案、用程序设计语言实现方案并进行测试和评价的能力。

2)综合实验。

综合实验的目的是使学生综合应用复杂数据类型实现复杂数据处理与存储,培养学生根据给定问题编写具有多个模块程序的能力。实验内容都是一些与实际应用结合紧密且具有较复杂数据结构的问题。

4.2 课程实训

课程实训在课程结束后进行,主要是给出一些典型问题,要求学生运用特定的数据结构及算法编程实现,其综合程度要高于实验项目。例如,针对x∈A、A n B及A u B等集合问题的运算,要求每个学生分别用数组和链表2种数据结构实现,而且对于每种结构都要求用一些指定的编程方法。教师要按照问题实现的方法与步骤,根据学生的语言知识运用情况制订严格的实现要求和标准,按照标准当场对学生编写的程序进行评价并给出成绩。

4.3 课程设计

课程设计安排在课程结束后的下一个学期初,大约2周时间,将3~5人分为一个小组。小组成员在教师的指导下,分工协作完成有较大实际价值的程序设计项目。课程设计重在培养学生对程序设计课程所学知识的创新应用能力,让学生深刻体会软件工程方法,初步掌握大型程序设计思想和开发方法,训练学生的团队协作精神以及集体责任感。

5、课程改革成效

以问题求解为主线的教学改变了程序设计基础课程的教学重点,教学内容强调程序设计思想和方法,摒弃过去以语言知识为主的做法。教学策略的改变强化了学生独立思考和动手的能力,提高了学生的实际程序设计能力。

学生在对课程评价时,认为“老师从多方面对一个问题进行阐述,激发学生的学习兴趣”“老师讲课很好,本来枯燥的语言课在老师的讲述下一下子有了趣味性,给我们留下很大的思考空间,更一步激发我们的学习兴趣”“通过本学期的学习,我学到看书的方法和程序设计思维,深刻地理解‘程序设计=算法+数据结构’的思想内涵”。

2008-2011级近4届计算机科学与技术系学生的程序设计基础课程考试成绩逐年提高,其成绩统计如表1所示。

从试卷分析可以看出,学生较以前各届学生程序分析、调试、查错及知识的综合应用能力明显提高;后续课程的主讲教师也反映学生能将该课程中学到的基本方法和技能运用到后续课程的学习中。

由于该课程为学生打好了程序设计的基础,大多数学生程序设计的信心较前有大幅度提升,因此申报校级创新实验项目并获得立项的人数正在逐年增长,参加“挑战杯”大学生课外科技作品竞赛的人数也逐渐增多,并且连续2届计算机科学与技术系的学生在省级“挑战杯”竞赛中获得奖励。

鸡兔同笼问题的解决方案范文第4篇

关键词:程序设计课程;计算思维;教学改革;教学方法与实践

0引言

程序设计课程属于高校非计算机专业的必修公共课,主要基础课程有“C语言程序设计”、“VisualBasic程序设计”、“VisualFoxPro程序设计”、“VisualC++程序设计”等,对于培养大学生的逻辑思维、抽象思维、创新精神与创新能力,以及提高综合素质起着十分重要的作用。在我校,非计算机专业学生占全体学生比例约为90%,其程序设计课程一般采取大班上课,学生刚开始对程序设计课程颇有兴趣,但随着知识点的增多,难以理解和记忆的新概念、新术语、新规则大量出现后,逐渐感觉课程难度加大,且认为与后续专业课程结合不够紧密,未正确认识到计算科学在本专业领域中的重要作用,所以学习的主动性、自觉性不断下降,学习效益低。最终导致学生实践能力不足,综合分析能力及创新能力欠缺,难以满足当今社会对人才的要求。因此,程序设计课程的教学改革势在必行。

1计算思维

目前,计算思维的培养成为国际和国内计算机教育界关注的热点。计算思维概念的提出,国际上广泛认同的是2006年美国卡内基梅隆大学计算机系主任JeannetteM.Wing教授在ACM上发表的《ComputationalThinking》(计算思维,简称CT),她提出:“CT是运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动[1]”,她认为计算思维是除阅读、写作、算数外,每个人必须掌握的技能之一。在我国,2010年《九校联盟(C9)计算机基础教学发展战略联合声明》的核心要点也强调“需要把培养学生的‘计算思维’能力作为计算机基础教学的核心任务[2]”。从国家层面上讲,大学计算机基础教育这门课程的定位就是基础课程,也就是与数学、物理同等地位。既然是基础课程,其教学方法和教学理念就应该像数学与物理一样,将学科的基本理论、基本思维教授给学生。计算和计算思维是计算机基础课程的基本理论和基本思维,科学家已将计算思维和理论思维、实验思维并列为人类三大科学思维。因此,在大学计算机基础教育中强调和深化“计算思维”的培养,既有助于计算机基础教育学科的健康、持续发展,又有助于国家战略型人才的培养。程序设计课程是大学计算机基础课程的重要分支,也是许多高校非计算机专业进行计算机基础教育的重要课程之一。程序设计课程的学习主要有二个内容:第一,算法学习,即学习问题求解的方法;第二,编程实现,即理解计算机是如何实现算法的,利用计算机编程实现算法。课程学习不只是编写程序,而是算法思想与问题求解的思路。总之,要教会学生使用计算机编程,逐步形成计算思维。

2程序设计教学与计算思维

程序设计课程是训练学生思维能力的一个最直接最重要的平台,而计算思维则提供了重新审视程序设计教学的视角,将计算思维融入到程序设计教学中是改革的必然趋势。计算思维的本质是抽象和自动化,计算思维的抽象是使用符号代替实际问题中的各种变量,每个程序包括各种标识符、常量、变量、数组、函数和结构体等符号语言,这些组合在一起就构成了程序设计语言。计算思维的自动化则体现在程序的机械式执行,这也是冯诺伊曼计算机体系的本质特征。要实现自动化,就必须要设计精确的算法和严格的程序语言体系。计算思维的主要特征有三点。⑴严谨规整。完备的算法是计算机程序解决问题的基本要求,它的实现必然要使用严格的数学符号描述。计算思维要求用确定、形式化并且无二义性的语言描述问题,这就要求在程序设计课程教学过程中强化计算思维训练。例如学生在编写程序时使用了错误的符号或者语法,都会在编译或运行时提示错误,教师要引导学生纠正自己的错误,培养他们严谨的科学实证精神和编程的良好习惯,这些都属于强化计算思维严谨性的范畴[3]。⑵目标明确。计算思维是用来解答问题的,它将实际生活中的问题以抽象化和程序化的形式表示出来。通常解答问题的过程如下:发现问题—分析问题—思考问题—解决问题—反思。程序设计课程要注意培养学生依据已有的知识体系,提出问题、解决问题的能力,着重强化利用计算思维的方式描述问题和使用机器语言解决问题的训练。例如,成绩5级计分制就是我们在日常生活中感受到的问题,学生可根据自己对成绩等级计分的理解写出数学式,然后用多分支结构算法进行描述,最后上机实现。⑶机械化。用来描述问题和解决问题的算法有三种形式[4]。①生活算法:完成某项任务的计划,例如一个学期的学习计划。②数学算法:对一类计算问题确定统一的求解方法,例如一元二次方程组的求解公式。③计算思维算法:精确描述问题和求解问题的自动化形式语言,比如高级程序设计语言。计算思维算法强调利用计算机的速度和存储优势,通过严格机械化的操作时序解决实际问题。比如“鸡兔同笼”问题可以使用两个二元方程组进行数学求解,但是计算机算法则可以使用穷举法进行简单重复的操作求解,充分利用了计算机的计算速度优势。在程序设计课程中强化计算思维训练,可以让学生掌握使用机械化思维进行信息处理的能力[5]。

3基于计算思维的程序设计课程教学实践

对于非计算机专业的学生来说,学习程序设计的目的是学会用计算机去分析问题和解决问题的思维方法,因此计算思维可以贯穿于程序设计课程的整个教学过程。

3.1计算思维视角下的课程引入

首先,在引入程序设计类课程之前告诉学生编程能力是计算思维的具体表现。学生不仅要掌握计算机语言的相关知识,而且要能够应用程序设计的思想与方法分析和解决问题。例如,VisualBasic程序设计基础就是VisualBasic语言。正像自然语言的产生是人类社会活动发展的客观要求和必然结果,同样,计算机语言的产生和发展则是人类使用计算机的客观要求和必然结果。从计算机语言的基本语法到其整体结构,都渗透着许多计算思维。因此,将“计算思维”引入“VisualBasic程序设计”教学就是:在讲解相关知识点的同时,也要讲授其中所反映的计算思维,通过思维强化知识,通过知识培养思维。人们利用计算机就是为了处理信息数据,而不同类型的信息数据,其表达方式不尽相同,其处理方式也会有所不同,那么,计算机是如何实现信息数据的表示、存储和处理的,这其中蕴含的计算思维又是什么。首先,根据冯诺依曼计算机体系结构:从软件方面考虑,可通过声明或定义不同类型数据以表示不同类型的信息;从硬件方面考虑,可通过存储元件可实现信息数据的存储,不同类型的数据占用不同长度的存储单元。但仅仅完成信息数据的表示和存储是远远不够的,而要真正实现数据处理,由此便产生了计算机语言,即利用计算机语言编写的数据处理程序指挥CPU(中央处理器)完成相应的数据处理。这个通过人、机共同努力完成的“问题求解”过程,就是一个计算思维的实现过程。显然,实现这样一个信息处理的计算思维,是需要计算机语言的技术支持即:数据表示(数据类型)、数据存储(变(常)量)和数据处理(表达式和控制结构),并由此引出VisualBasic语言基础知识的学习。

3.2梳理内容,加强基于计算思维的关联案例库建设,创新教学方法

笔者在深入研究非计算机专业学生认知规律、思维模式和专业背景后,站在计算思维的层面上按照课程知识的内在体系结构梳理教学内容,突出“案例化、实用化”,强调基于计算思维的关联案例库的建设。关联案例,一方面是指案例中的知识点相互关联,另一方面是指案例和生活、专业领域中的应用相关联。例如,在“VisualBasic程序设计”课程中,可以根据课程知识点,按代表性、实用性、趣味性原则来设计关联案例,如计算器、字幕、闹钟、文本编辑器、菜单、数据库管理系统等,将设计全过程呈现在大屏幕上,让学生亲身感受并参与其中,激发了学生的求知欲。笔者在“VisualBasic程序设计”课程第一堂课中就展示经典案例及上届学生的优秀作品,使学生对本课程产生浓厚的兴趣,接着以一个简单实用的例子展示了“VB”小程序的制作,介绍了VB编程环境和VB编程四部曲,说明VB编程上手的容易,克服学生的畏难情绪,帮助学生更快地入门。在课堂教学中,笔者贯穿“案例引导,精讲多练,教学互动”的教学原则,探索和自创出一套适合程序设计课程的关联案例式教学方法(“关联案例展示—案例剖析—讲解相关知识点-知识点在实践中的应用”),即在传统教学方法的基础上,将关联案例式教学法引入到课堂教学中来。例如,在VisualBasic程序设计课程教学中,可以用案例“登陆界面的制作”讲解基本控件(form、label、text、command等),用案例“出租车计费问题”讲解分支结构,用案例“计算器”讲解控件数组,用案例“成绩管理系统”讲解菜单和多重窗体程序制作等。这些实例渗透了“知识来源于生活”的教学思想,能使学生意识到学习知识的目的是为了解决生活中的实际问题。此外,还可以尝试从社会实际、学生实际出发,采取多种直观、具体、多样化的教学方法,去激发、调动学生的学习热情和兴趣。比如讲授for循环语句时,尽量采用启发式教学,老师多提问,引导学生积极思考答案,自己得出结论,最后再由老师补充完善。例如,我们可以从最简单的计算1+2+3+……+10这个问题开始,然后让学生计算10!=1×2×3×……×10,再让学生计算1!+2!+……+10!,这样不断地制造问题,让学生不断地想办法去解决问题,用改变循环体的方法,化特殊为一般;用比喻的方法降低学生对累加器的理解难度,化抽象为具体,不断地感觉到学习程序设计的用途和乐趣,积极地思考、分析、归纳,从而使计算思维得到训练。又如讲到数组中对数据的排序问题时,可以采用启发式、游戏法和课件演示教学法,游戏法是让几个同学上来,站成一排,然后按身高进行排序,课件演示教学法师则用Flash动画把排序过程详细展示,帮助学生更好地理解,促使学生利用自己已有的知识结构和逻辑思维对问题进行分析和归纳。通过这样的思维训练,让学生在思考中学习,在学习中运用新的方法破解难题,培养学生分析问题、解决问题的能力,锻炼学生数学建模能力,巩固知识的同时拓展技能和技巧。

3.3以上机实验为重点,思维多样化的计算思维强化训练

⑴以上机实验为重点笔者在讲授程序设计课程的教学过程中,采用以上机实验为重点的计算思维训练模式,让学生在动手实践中掌握知识、消化知识,强化计算思维。实验内容采用“验证-调试-设计”的形式进行设计;上机实验采用流程化管理的方式,对于任何实验内容,都要求学生按照“阅读题目-分析总结-设计算法-编写实现代码-上机调试-优化程序”的顺序进行,引导他们养成良好的思维能力和编程习惯;在实验过程中遇到困难和错误,不轻易否定和批评学生,而是指导他们分析难点和错误,自己解决。同时,给学生提出新的解决方案或排除未知问题的满足感,激发他们的学习积极性,大胆创新。强化计算思维,实验内容的设计非常重要。教师要不断学习和创作适合学生知识和心理特点的实验内容。实验内容不应是课堂内容的简单复习,要给学生提供计算思维的创新空间。课堂内容要符合实验内容,要给学生留问题,让他们自己分析总结,在实验上机时解决,提高自主思维能力。例如,实验案例:公主出嫁。美丽的公主伊丽莎白长大成人,邻国的六个王子来提亲,公主有三位侍女,她们猜测哪位王子会得到公主的芳心。侍女一说:“我认为公主会嫁给科尔王子,或者是威廉王子。”侍女二说:“我想公主一定不会选择亚瑟王子,因为他的身材实在太矮了。”侍女三说:“不管怎么说,公主肯定不会嫁给菲利普、查理、路易斯三位王子,因为他们的国家正准备和我们打仗。”事实上,三个侍女中只有一人猜对了。试编写程序,找出哪位王子能与公主喜结良缘。为了找出伊丽莎白的白马王子,从计算思维的角度进行逻辑推理。首先引入逻辑运算符和逻辑表达式,规定一些符号变换规则,将三个侍女的话分别转换成逻辑表达式,给出综合判断条件,再借助这些符号和规则将逻辑推理过程在形式上变得像代数演算一样。比如定义6个整型变量——A、B、C、D、E、F分别代表6位男嘉宾,变量取值为0表示不是伊丽莎白的白马王子,为1表示是白马王子。每位男嘉宾都有两种可能:“是(1)”或者“不是(0)”,6位男嘉宾按A、B、C、D、E、F顺序,有64种取值:000000,000001,…,111111。对案例分析的目的是让学生懂得:①掌握解题的重要一步是将人的想法写成计算机能够处理的表达式或操作步骤,要用到关系运算、逻辑运算和算术运算;②用计算机解题经常需要从多种可能性中寻找其中的一种或几种,因此,要用“枚举法”,当遇到大量重复计算时,自然就引出了循环结构;③分支是计算思维的重要方式。笔者借助这个案例题把程序设计的基本概念和方法传授给学生,当学生建立起这种认识之后,在潜移默化中也就培养了逻辑思维和计算思维。学生通过上机实践可以体会到计算思维的精髓[6]。上机实践要有目的地训练五种能力:①分析题目,找到问题,并将其抽象为数学模型;②构思算法;③编写程序;④调试程序;⑤分析运行结果,一旦出错,应该仔细认真找出原因,提出改正的意见。大多数学生对许多问题的看法是在实验课的讨论中逐渐清晰和升华,对思想启发、计算思维的培养起到推动作用。依据非计算机专业学生认知的规律,我们设计了生活化、趣味化的实验内容,如俄罗斯方块游戏、计算器、打字游戏等。⑵以思维多样化为核心点由于学生认知方式和心理特征存在个体差异,在程序设计课程的教学过程中必然会出现思维多样化的现象。教师要尊重这种认知方式的差异,倡导多样化的算法思维,即“一题多解”,鼓励学生根据自己的兴趣,从不同角度发现问题和分析问题,用不同的算法解决问题,用不同的程序实现算法,培养学生的探索精神和创新意识。强调多样化的算法思维,可以有效地强化计算思维,让学生明白“条条大路通罗马”的道理。好的算法不一定适用于每个问题和每个学生,并且几乎所有的算法都有局限性。在设计上机实验内容时,教师要考虑给出一些可供学生重构的程序片段,培养他们的思维创新能力。所谓重构,就是在已有的程序基础上衍生出的新的解决问题算法实现。这种通过分析已有程序的优缺点,修改并把自己的思维融入新程序的过程,就是最好的锻炼计算思维的训练手段。教师还应引导学生进行反思和创新联系,达到简化和优化算法的目的。这个简化和优化算法的过程可以很好地强化计算思维训练,帮助学生举一反三地学好程序设计课程。比如“百鸡百钱”问题,大多数学生都采用三重循环的算法实现。我们就可以提出改进方案,鼓励学生积极思考如何采用二重循环的方式实现,然后再比较两种算法的性能,三重循环的次数达到了100万次,而二次循环是1万次,性能提升了99%。一个简单的循环就可以让学生认识算法优化的魅力,这就可以让他们继续思考如何简化问题,公鸡数量不可超过32,就可以在循环中把公鸡数量由100降到32,同理,母鸡也降到98,这样循环又降低了10000-32×98=6864次,比之前的二重循环又减少了70%左右,这一系列的简优化处理,对于增强计算思维能力有极大的促进作用。