看点:中小学科创实践展播受到全国各地广大孩子、家长和老师的欢迎和支持,我们会陆续推出优秀作品的展播,传播孩子和老师们对于科创实践的热爱和公益之心。请大家关注STEAM在线公众号,点击服务菜单—交流投稿,上传自己的作品,或直接发送制作视频和介绍文字,实践文章给我们,欢迎大家积极展示自己的成果,并为各地小朋友的作品点赞、加油!

打开网易新闻 查看更多图片

本期我们推荐北京育英学校航初一年级刘沐轩同学的编程实践活动,他从身边问题出发,提出解决思路,到学习新技能之后的实践,遇到困难不放弃,边学习边实践,终于一步步开发出解决问题的应用程序!

今天就让我们跟着刘沐轩同学一起去回顾下他的整个实践过程,看看他是如何一步步克服困难,通过自己的努力实现目标的,并为他点赞加油!

作者:北京育英学校 航初一年级 刘沐轩

推荐/张建老师、野雪莲老师

编辑/野雪莲老师

统筹/梁秋颖老师

初一上学期,我们班经常进行小组之间的评比,班主任吴老师经常需要在黑板上记录每个组的分数,并对这些数据进行增减,频繁的更新数据需要擦除和修改,显得非常的麻烦。我想到这种简单而且重复的事情用电脑来处理那是再好不过了,于是,我大胆向老师提出:可以用一个小程序来解决这个问题。没想到吴老师也支持这个想法,并赞同我的想法,把这个开发“班级各小组计分表”的任务交给我来完成。

当时提想法的时候觉得没有什么困难,也想了一下数据的存储和算法。基本的解决方案是这样的:使用8个变量分别存储8个小组的得分,初始化每个小组的成绩为0,得分就给小组增加相应的分数,扣分就给小组减少相应的分数,最后,显示每个小组的成绩就可以了。

回到家后,跟爸爸提起这个事情,爸爸指出了我当前不足的地方。虽然我现在C++语言用得不错了,但也是仅限于用来解决算法竞赛题,基本上没有涉及到应用程序的开发,对应用程序的开发完全没有概念。就这个计分表程序来说,除了基本的算法外,还需要解决以下几个问题:

首先,是使用者的需求问题。对于开发应用程序来说,必须要了解使用者的需求,才能寻找到适合的解决方案。因为这个开发任务来得比较偶然,自己也没有需要深入了解使用者需求的意识,所以在这个方面有所欠缺。只能根据以前手工计分的过程来自己整理出来程序的开发需求,打算先做出来一个简单版,再找老师商量,更新版本来解决这个问题。

其次,是程序的交互式界面问题。我用C++做算法题,用的只是控制台窗口(黑窗口),在应用程序中使用这个非常的不方便,要想输入数据必须要程序运行到等待输入的状态,并用键盘来键入相应的数字才行。在使用中,老师不可能频繁使用键盘来输入,她理想的输入方式是只使用鼠标做点击最好。另外,听爸爸说在windows中做界面对C或C++语言并不是一个简单的事情,要学习的东西有很多很多(其实爸爸也不会)。

第三,是数据存储问题。做算法题的时候,只需要从屏幕上看计算结果是否正确就行,并不要把结果保存到硬盘上,但是对于各个小组的成绩,显然是需要进行持久化保存的。今天记录了小组的得分成绩,不能因为要关闭电脑就丢弃这个分数,那显然是不对的。所以如何存储和读取成绩也是需要解决的问题。

面对这几个问题,我手足无措,毫无头绪。这可怎么办呢?后悔在老师面前夸下海口,瞬间被打脸吗?无奈只能求助于知识渊博的爸爸。要想短时间做出能实现这些功能应用程序,使用C或C++需要学习的东西太多,不太可能完成,因此爸爸向我推荐了一款国产的编程软件——“快手aauto”,它的语法跟C语言类似,基本上看看就可以使用,而且它带有自己的界面开发环境,程序小巧精炼,最适合用来完成当前这个项目。

我迫不及待地在网上搜到相关的教程并按照步骤,一步一步地完成了安装并更新到最新版本。在这个过程中我发现,这个软件已经更名为“aardio”,对这个软件感兴趣的同学可以去它的官方网址:http://www.aardio.com了解详细情况。

打开网易新闻 查看更多图片

对照教程迅速熟悉了一下这门编程语言的语法和范例文件,对制作我的第一个应用程序充满了信心。

第一步:学习界面制作,做出可满足需要的界面形式。挑选了可能用到的控件,包括按钮、标签、文本框、组合框这四类控件,把他们的功能都熟悉了一遍。

相应代码:

第二步:设计程序原型,制作相应的界面并编写代码。为了减少键盘的使用,在原型设计中把增减数值设计在相应的按钮上,使得按钮的功能得到增强,代替了输入框,避免使用键盘输入的不便。文本框用来显示结果,也可以在必要的时候手工更改得分数据,也达到了一框两用的效果。

打开网易新闻 查看更多图片

相应代码:

我把这个简化的程序发给老师征询她的意见,获得认可后继续后续开发。

第三步:完成应用程序。把八个组全部按照这个模式进行编写,在每个按钮上都增加了存盘功能,任何一次的增减分数的操作都能保存下来,防止分数数据的丢失。考虑到使用过程中各组成绩有重新计分的需求,还增加了另外两个功能:1、全部数据清零 2、手动保存数据。

部分相应代码:

第四步:交付使用并获取用户意见进行进一步的开发。我自己考虑的后续功能包括对各组的成绩进行排序,标记成绩最高的组,标记成绩最低的组。后续可能要更改数据结构,会使用数组或者列表之类的来组织数据,方便排序操作。

我的第一个应用程序就这么诞生了,在这个过程中我学会了许多新知识和技能,我感到非常地兴奋,很有成就感。

把我的编程过程记录下来,分享给大家,希望你能喜欢。如果你也有一定的编程基础,尝试着做一个自己的应用程序吧。

教师说:

从行文即可见,刘沐轩同学的思考逻辑非常清晰、缜密。从遇到的问题梳理,到学习新技能之后的实践步骤,都有理有序,扎实、详实。可以说是有很强的逻辑思维能力的。

在这个应用的诞生过程里,他从技术角度、应用角度分别做了周密的思考,技术上遇到困难就去查阅资料,学习不熟悉的技术点,终于一步步开发出了这款非常实用的应用程序!老师们都为他感到骄傲!

其实生活中这样的需求非常多,像沐轩同学一样,从发现问题到最后通过技术手段解决问题,一方面要善于观察生活、发现问题,一方面还要积极思考,设计合适的解决方案。而对于实现解决方案时遇到的种种问题,不要灰心,坚持探索,边学习边实践,你就会成为开拓者!

(声明:除STEAM在线原创文章外,STEAM在线分享和转载的文章皆为促进STEAM教育在中国的传播,仅做学习交流,非商业用途,都会注明来源,如文章、照片的原作者有异议,请联系后台快速处理或删除,谢谢支持。)