想要一个编程的思路,如下?

利用思维导图提升学生scratch项目编程能力

吴巨亚 乐清市教师教育论文联评二等奖

摘要本文主要介绍学生在scratch项目式编程过程中,通过思维导图,能够更快捷的理清思路,规划布局,发挥创想,即使脚本复杂也能化繁为简,实现编程能力的提升。

由美国麻省理工大学(MIT)研制开发的趣味编程软件-Scratch,具有操作简易、内容丰富、共享便捷的优点。自推行以来,倍受广大师生的喜爱。学生通过scratch语言制作有趣的程序,学会创新和分享,同时也锻炼其逻辑思维能力和创新思维能力,在项目探究过程中逐步培养计算思维,提升解决问题的能力。我们也能切身感受到,学生在创作中真正体验到了自由编程、自由创作的快乐。

近年来,笔者在scratch教学中,经常遇到瓶颈,那就是无法提高学生使用scratch完成综合性项目的能力。很多学生经常做着做着就半途而废,并不是不想做,而是做不下去了。究其原因,才发现,原来是学生的思维逻辑混乱,与原设想冲突,制作过程中随意删减、增添或修改原计划,导致很多脚本需要改动,由于综合性项目内容多,脚本繁琐,一旦修改不到位,脚本无法按心中设想实现效果,学生就会产生放弃心理。这让笔者产生了思考,于是想到用思维导图帮助学生理清思路,梳理思维,从而提升编程能力,实现难度更高的编程项目。

思维导图是一种培养创新思维方式的工具,即利用一个关键词从不同特性导出其他具有相关性的关键词,引发其他关键词的导出,按照发散性思维的特征,从主干到各分支的发散。对于每一分支可以使用不同的颜色标识,线条的大小由粗到细,提示着由主干到枝叶的推导关系,思维导图在表现形式上是树状发散结构的。

三、基于思维导图培养学生项目式编程策略探究

思维导图为问题解决的可行性提供支撑,为确定项目提供方向和动力。

Scratch编程的项目主题,需要学生发挥创意,大胆设想,甚至进行头脑风暴的过程,这个过程的思维极其散乱,但能迸发出各种意想不到的创意。思维导图正是一种表达发散性思维的有效图形工具,简单却有效。

结合小学生身心特点,他们能够且擅长从自己的兴趣或生活中所面临的问题中提出问题,从而提出项目出发点。例如,我给学生提供的大方向是“环保”,学生就能从这个大主题中想到许多与环保相关的方向,如下图。利用思维导图,学生不但没有丢失他们闪现的灵感,而且还能通过思维导图,联系事件的前因后果,整理思路,确定项目主题:《戴上口罩之后》:通过故事让人知道雾霾给生活带来的影响;《环保小卫士》:通过游戏引导人们将垃圾扔到垃圾桶内。

Scratch项目的确定源自兴趣,取自生活,其必然建立在对所学知识良好建构的基础上,思维导图直观清晰,为学生确定项目主题导航起步,共同讨论帮助学生增进知识,锻炼思维,最终获得学习成就感。

思维导图有助于整理解决问题的逻辑思路,引领和监督整个项目式学习,具有至关重要的核心地位。在scratch项目中,绘制思维导图主要有以下三个方面的作用:

1、整理项目的逻辑思路

对于整个项目的整体思路,一般习惯性使用流程图的方法,但是流程图的各种形状容易让学生混淆。利用思维导图的优势,可以帮助学生理清整个项目的逻辑,还能使用不同的颜色和支干粗细,区分重要性和差异性。

项目式编程大多需要用到10个以上的角色,有的角色属于同一类,有的角色只是很次要的配角。因此可以通过思维导图,画出各角色,同一类为同一种颜色,不同类用不同的颜色,主角用粗线条,配角线条渐细,以此区分各角色的分工。

在学生参赛作品《垃圾分类我先行》的脚本中,含有23个角色,另外还有舞台。而四个垃圾桶角色为同一层次,四种垃圾为同一层次,像“污染图片”角色只为宣传片中出现一下而已,学生制作的思维导图如下图,可以清晰的看出各角色的重要性,以及类别。

通过对重要角色的脚本分支,能更清晰的理清编程思路,即使需要修改也不会产生过多的冲突。借助思维导图,能让学生更有计划的编写脚本,将复杂的程序化分为一个个简单的模块,逐步实现完整程序,从而实现原先设想。

思维导图指导学生有目的,有规划地开展实践操作,任务分工明确,方向清晰。通过解决问题的过程,学生可进一步补充和完善思维导图中的不足之处。此时,学生自己绘制的思维导图成为了他们实践操作的“指导员”和“监督员”,学生的主体性得到了良好的体现,也让老师在帮助学生解决问题时有了更好的凭据。

思维导图为调试评估提供依据,并验证问题解决方式和方法。学生也可以通过思维导图自检和反思实践过程,总结心得体会,从而构建知识迁移,提升思维能力和操作能力。

通过自查、互查、答辩等方式,与思维导图的对照,验证问题解决的方式和方法。还可记录调试过程中出现的问题,方便同伴或教师提供帮助。

2、根据思维导图进行展示与评价,让学生对自己的作品有更清晰的思路,可以借助思维导图向他人讲解自己的设计与实现效果。有助于教师对学生作品完成情况有更好的评价方向,比如能力好的学生可以在原有思路上增添更多的创意,思维导图更加丰富;而编程能力不够好,但想法创意丰富的学生,在实践过程中由于遇到困难,由于时间有限,为实现项目的完整性,删减原来的思路,可能导致思维导图变得越来越简洁。

最后根据思维导图的预设,教师和项目学员共同对项目学习的过程,学习的经历和经验,结果达成情况进行讨论评估。过程中注意引导学生记录项目实施过程中解决问题的经验,以及面对疑难问题所采取的行动等,从而实现编程能力的提升。

在这里我推荐几款非常好用的思维导图工具,让读者能够快速探索思路,与同伴协作和编辑你的程序。

1、XMind 是一个开源项目,这意味着它可以免费下载并自由地使用。 XMind 也有 Plus/Pro 版本,提供更专业的功能。除了地图结构, XMind 同时也提供树,逻辑和鱼骨图,具有内置拼写检查,搜索,加密,甚至是音频笔记功能。

2、Coggle 是一个免费的在线协作思维导图工具,让您直观地用一个精美的呈现分支结构定义的连接。它可以让你制作出漂亮的笔记,方便快捷。与朋友和同事分享,和他们协同工作,展现你的想法。

3、MindMaple lite让您尽快掌握思维导图,这个能打开大脑潜能的强有力的图解工具。它能同时让您运用大脑皮层的所有智能,包括词汇,图象,数字,逻辑,韵律,颜色和空间感知。它可以运用于生活的各个层面,帮助您更有效地学习,更清晰地思维,让您的大脑最佳表现。

这是一个开源的应用程序,使任何人都可以轻松地创建好看的思维导图。它可以创建分支(子想法)与无限层级,其中所有这些都互相连接。它是完全基于 HTML5,CSS3 和JavaScript 实现的。

4、Mindmaps,这是一个开源的应用程序,使任何人都可以轻松地创建好看的思维导图。它可以创建分支(子想法)与无限层级,其中所有这些都互相连接。它是完全基于 HTML5,CSS3 和JavaScript 实现的。

通过在社团和比赛中对scratch编程者尝试和实践思维导图,虽然学生刚开始接触思维导图,觉得好像多了一些繁琐的事情,产生厌弃心理,敷衍了事,做的并不精细。但随着项目的复杂程度加大,学生因为有之前对思维导图的认知,慢慢开始主动使用思维导图创想主题,规划角色和脚本,遇到与原计划不同的时候,学生也会主动去修改原来的思维导图,逐渐完善。学生的思维更加缜密,逻辑也更加清晰有条理,看似复杂的脚本越来越得心应手。我将在信息技术课堂教学中继续尝试使用思维导图,发掘其更多的功效。

[2]博赞;思维导图学习宝典[M];化学工业出版社;2014[1]

[4] 谢美君;思维导图在小学scratch项目式教学中的应用探究[J];教育科学;2018(4)

}

首先,让我们回顾几个有意思的经典互联网公司的面试题目,热热身。

1、给你一个长度为 n 的数组,其中只有一个数字出现了奇数次,其他均出现偶数次,问如何使用优秀的时空复杂度快速找到这个数字。

2、给你一个长度为 n 的数组,其中只有一个数字出现了大于等于 n/2 次,问如何使用优秀的 时空复杂度快速找到这个数字。

3、给你一个 n*m 的二维数组,每行元素保证递增,每列元素保证递增,试问如何使用优秀的时间复杂度找到某个数字(或者判断不存在)。

4、给你两颗二叉搜索树,如何使用线性的时间复杂度,将它们合并成一颗二叉搜索树。

5、假设有 100 层的高楼,给你两个完全一样的鸡蛋。请你设计一种方法,能够试出来从第几层楼开始往下扔鸡蛋,鸡蛋会碎。 当然,这个问题还有推广版本,有兴趣的同学可以思考一下。 假设有 n 层楼,给你 k 个完全一样的鸡蛋,请问最坏情况下,至少需要试验多少次才能知道从第几层楼开始往下扔鸡蛋,鸡蛋会碎。


接下来,再认真回答一下这个问题。先划重点:面试算法题。作为在电话 / 现场面试中短短不到一个小时时间内,提供给面试者白板编程解决的算法题目,它与笔试上机、编程竞赛中的题目在难度与形式上还是有一些不同的。

这里有一张互联网公司面试中经常考察的问题类型总结的思维导图,我们可以结合图片中的信息分析一下。

可以明确的一点是,面试算法题目在难度上(尤其是代码难度上)会略低一些,倾向于考察一些基础数据结构与算法,对于高级算法和奇技淫巧一般不作考察。

代码题主要考察编程语言的应用是否熟练,基础是否扎实,一般来会让面试者写出代码完成一些简单的需求或者使用递归实现某些功能,而数学题倾向于考察概率相关的问题。以上这两类问题,出现的频率不会很高,即使出现了也应该是面试中的简单部分,相信一定难不倒在座的给位同学们。

算法与数据结构是面试考察的重中之重,也是同学们日后刷题时需要着重训练的部分。简单的总结一下,大约有这些内容:

  1. 排序算法:快速排序、归并排序、计数排序
  2. 搜索算法:回溯、递归、剪枝技巧
  3. 图论:最短路、最小生成树、网络流建模
  4. 动态规划:背包问题、最长子序列、计数问题
  5. 基础技巧:分治、倍增、二分、贪心
  1. 数组与链表:单 / 双向链表、跳舞链
  2. 树与图:最近公共祖先、并查集
  3. 堆:大 / 小根堆、可并堆
  4. 字符串:字典树、后缀树

对于上面的总结的这部分内容, 已经为大家准备好了相关专题,等待同学们来练习啦。

算法部分,我们开设了 、 、 三个不同的栏目,包含:数组、字符串、搜索、排序、动态规划、数学、图论等许多内容。同学们可以针对自己当前的基础与能力,选择相对应的栏目进行练习。为了能够达到较好的效果,建议大家将所有题目都练习 2~3 遍,吃透每一道题目哦。

数据结构部分,我们开设了一个 ,其中包含:队列与栈、数组与字符串、链表、哈希表、二叉树等丰富的内容。每一个章节都包含文字讲解与生动的图片演示,同时配套相关题目。相信同学们只要认真练习,一定能受益匪浅。


Top Interview Questions 里比较新的题目按照类别进行了整理,以供大家按模块练习。

最后,力扣君特别为大家总结了“高频算法面试题汇总”卡片,在力扣探索频就可以找到,希望对各位即将面试的程序员小伙伴有帮助。最后,祝各位刷题愉快,早日拿到属于自己的Dream Offer。


欢迎各位知友关注力扣官方微信公众号:「LeetCode力扣」,更多关于程序员面试、技术干货的内容等你来啃!

}

一.首先,什么是编程思想?

编程思想是一种指导思想,这个指导思想,将会诱发你如何写代码的行为。

如果我理解这话的意思呢? 例如,千百年来,中华文明在民众心中形成了“一统天下”的思想。 这一思想是挑起各混乱时期的诸侯军阀,争取统一中国,而不是像欧洲那样分裂中国,各自独立,各自称帝。

编程思想有哪些种类呢?

1)面向过程编程。这是我国大多数程序员的思想。 这个思想会诱发像他们写代码时那样的现象。 写的是在一种方法中混合了很多业务逻辑,或者从ui层(点业务逻辑层)点)数据库访问层的路径的写法。

2)函数编程。典型的是很多人写的javascript的function函数。 各种各样的业务都是用各种各样的很多功能写的。

3)面向对象编程。这是一个比较高级抽象的思想,具有三个特性五项原则。 即密封、继承、多态性、单一、开关、更换清淡便当、倒置依赖、接口隔离。

话外:有些人会告诉你数据结构、算法,我要跟你说的是,那不是编程思想,是编程能力,测试你的逻辑运算能力。 你越优秀,你对应的复杂科技领域就越深,最终你就能达到科学家的范畴。

二、编程思想的优劣和选择。

面向过程和函数编程是刚刚毕业的毕业生所能形成的原始思想。即,只要学习了编程,那么他一开始写的代码,就是这种思想,不需要教,就会的。

面向对象的编程是高度抽象的。本质上来说,一个程序员的进化,实际上是面向对象编程思想的培养、形成、发展、成熟的过程。

所以,你现在应该知道最优秀的思想是什么。没错:面向对象。

/始终牢记面向对象的三个特性的五个原则。 那几句话是你熟悉的,首先,,也就是说你认字是一回事,理解和运用是另一回事。

但你绝对不认识他里面所蕴含的恐怖威力,你在实际操作中必须经常思考你是否使用了它的特性和原则。

然后不断尝试修改和更改您的代码。 渐渐地,你的面向对象编程思想开始确立。

如果大家对抄送感兴趣的话,可以添加我们的学习交流q群: 637 935 295,免费领取一套学习资料和视频课程哦~

四、如何练习、训练和提高编程思想

yxdqq,你自己有对象思想的可能性很低。 要说为什么,那是因为你还没有形成对象思维。 此时,需要借助前人模式的总结,不断练习,通过为模式写模式的训练来提高。

1.通过学习设计模式。这需要很多实践,让他觉得你自己符合三个特性的五个原则。

2.通过不断的重构已编写好的业务逻辑代码

你的方法体删除评论。 如果你把你的每个方法的逻辑写出来,而他的方法体代码行数不超过30行,你就会觉得写得很有效。 如果你能发现你的许多方法体,代码行数只有10行以内的位数代码,那么你的面向对象编程思想就成熟了。

3.评判一个代码你写得好不好,符不符合对象编程思想,有一个非常简单和粗暴的标准:

通过不断的实践练习,改变你原本就有的过程性编程思想,需要一个漫长的过程。 根据我的实践经验,至少需要三年以上的实践训练,所以从这个意义上说,当4.将代码思维持之以恒。yldxy不再为模式写模式的时候,当你随手写的代码如此简洁优美的时候,啊

}

我要回帖

更多关于 最经典高效的PLC编程思路 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信