Blog 记录生活
我们的成长
If you want to learn more about us, you’re in the right place. Read to learn how we grow.
Our story
We are invited to offer summer camps and after school programs at Zionsville School District. We taught students coding in our classes. Students learned a lot in our classes and had fun. 我们被邀请去zionsville学区提供夏令营和课后班, 教同学们编程。孩子们在课上学了很多。
Students love creating games using Unity and C#. We have created many fun games using them in our classes this week. 学生喜欢使用Unity和C#创建游戏。 我们这周在课堂上使用它们制作了很多有趣的游戏。
July 2020: The theme of this week is Mobile Apps Design and Development. Students made all kinds of mobile apps. 这周学习的主题是移动应用程序设计和制作。学生们制作了各种移动应用程序。
June 2020: The theme of this week is Mobile Apps Design and Development. Mobile applications are programs designed to run on mobile devices such as mobile phones, tablets, or watches. They can be downloaded in the App Store (iOS) or Google Play store, such as WeChat, email, calendar, and images editor, shopping app, games, map navigation app, etc.
This week students first learned to use MIT App Inventor to make some simple applications. App Inventor is convenient to use and good for children with little programming experience. (It’s a great tool, and it’s free. Thanks, MIT!). Since then, people have developed App Inventor Java Bridge, which can directly generate Java programs equivalent to the application program.
Here are some mobile apps we have made:
这周的主题是Mobile Apps移动应用程序设计和制作。 移动应用程序是设计为在手机,平板电脑或手表之类的移动设备上运行的程序,例如App Store(iOS) 或Google Play商店里可以下载的各种程序, 包括微信,电子邮件,日历, 图像编辑, 购物, 游戏, 地图导航等等。
这周我们首先教同学们用MIT App Inventor 来做一些简单的应用程序。 App Inventor 用起来比较方便,对于编程经验不多的孩子来说很好,容易上手。(给MIT点个赞,很好的产品,而且免费, 谢谢开发这款产品的老师和同学们)。 而且后来人们又做了App Inventor Java Bridge, 可以直接生成应用程序等效的Java程序。
下面是我们做的一些应用程序:
The corresponding Java code can be generated immediately by App Inventor Java Bridge. It is very effective for beginners to learn and understand programming.
在App Inventor Java Bridge里面就能立即生成出相应的Java 代码, 这对于初学者学习和理解编程效果非常好。
The first application the students wrote, click on the photos of cats and dogs to make a sound.
同学们写的第一个应用程序, 点击猫猫和狗狗的照片,让它们发出声音。
Maxwell Gootee 同学作品
Elizabeth Guo
Edward Chen
Che Yu
Then, we made another App – Magic 8
然后,我们又做了一个Magic 8 Ball的App
Alex Zhao
Maxwell Gootee
Edward Chen
We also learned to make a golfing app.
接着我们学习了做一个打高尔夫球的 App
Joseph Zhu 同学作品
Aiden Zeigler 同学的Golf game
同学们还自己创作了一些 Apps
Joseph Zhu 同学的动物App
Aiden Zeigler 同学的抓蝴蝶App
Che Yu同学的抓蝴蝶App
Eric Zhu's Catch App
我们也学习制作了画画Paint的App
Alex Zhao's Paint
同学们还学习制作了Fidget Spinner App
Bright Zhang's Fidget Spinner
我们还学习了做一个翻译机Interpreter的App
students also made an online ordering app
同学们还做一个简易网上点餐的App
6/8/2020: The theme of this week continues to be game design and development. Students have gradually become familiar with the development environment of Roblox Studio, and learned to make some games. For example, in a virtual farm game, a player starts from scratch, looking for something that can be harvested, and then sells it for money. After selling it, he can buy farm tools and plant more crops, and then have the money to buy agricultural machinery, poultry, livestock, lands, etc., grow the farm business bigger and bigger. The same process can also be used in battle type of games to kill enemies, and then accumulate points to buy better guns and equipment, and continue to upgrade. Students are very creative, and made many great games.
这周主题还是游戏设计和开发。 同学们渐渐熟悉了Roblox Studio整套工具的使用和开发环境, 可以制作一些常见的游戏了。 比如虚拟农场,player白手起家, 寻找一些可以收割的东西,收割了去卖钱, 卖了以后可以逐步买农具,种植更多庄稼, 然后有钱来买农用机械,家禽家畜,土地等, 慢慢的把农场生意越做越大。 同样的游戏也可以用打仗的场景, 杀敌人,然后积分增长,可以买更好的枪炮设备,不断升级。 同学们做的虚拟农场游戏很有意思。
Aiden的庄园, 牛羊马,南瓜西红柿,苹果品种繁多
进去玩一下,水果品质优良,硕大无比
Elizabeth的糖果园 Candy Land 和番茄园
Minghan同学的蛋糕园
Nathaniel 同学的胡萝卜园
Tianle的菜地和凉棚
Che Yu 的菠萝园
Kyle的番茄园
Eric同学的园子经常有敌人入侵, 因此种植之余还要武装自己,不断杀敌,保卫家园
Jayden同学的金币农场
Jayden去收割金币的时候,背后还披着一袭长纱,看动图很有大侠风范
Maxwell 同学的海岛农场,风景如画
同学们还做了赛车的游戏。 赛车是一款经典游戏,同学们设计的赛车游戏各式各样。
Nathaniel的赛车场
Kyle的赛车场还有陡坡,开起来难度很高
Elizabeth的豪华加长车, 赛车不重要,舒服更重要
Eric同学的赛车场上各种车都有
Allen同学的新款跑车,跑得实在太快,一不留神就冲草地上了
Maxwell的跑车很简单,但对跑道要求很高, 跑道制作精良
同学们也很有兴趣地学习了怎样在游戏里卖游戏通行证,怎么写一段程序制作炸弹等等。
6/1/2020: This week we learned how to design and develop games with Roblox Studio. Roblox is a multiplayer online game creation platform. Many children like to play games on Roblox, but they have never created or released games on this platform by themselves. This week’s classes will make students go from game consumers to game producers.
The Roblox course places great emphasis on the concept of learning through games. Learning to design and make games can grow students’ creativity in art and science. In the process of making games, students all realized that a good game requires not only well-designed scenes, characters, equipment, fascinating storylines and rules, but also perfect programs to ensure that it runs without errors, no sense of delay, with good visual effects, etc.
From a business perspective, designing a game also needs to consider how to make money so that your hard work can be rewarded. In fact, students are usually interested in making money and are very business-minded. On the first day of class, several students asked how to make money by selling equipment in their games, and how to sell game passes to make money. Everyone knows that publishing a good game has the potential to make a lot of money and they hope to do that.
The students learn very fast and quickly learned to use Roblox Studio to build various game scenes and props this week.
这周我们学习了用Roblox Studio 来设计制作开发游戏。 Roblox是一个大型多人在线创作游戏平台。 很多孩子都喜欢玩Roblox上的游戏, 却从来还没有自己在这个平台上制作和发布游戏。 咱们的summer camp就是希望帮同学们从游戏的消费者变成生产者。
Roblox课程中非常注重透过游戏学习的概念。 学习设计制作游戏, 可以让学生在艺术和科学方面的创造力都得到锻炼。同学们在制作游戏的过程中都纷纷意识到, 一款好的游戏, 不仅要设计制作精良的场景,人物,设备, 引人入胜的故事情节,规则, 还需要写出完美的程序,保证运行无误并且高效,没有延迟感, 视觉效果好等等。
设计游戏从商业角度,还需要考虑怎么样赚到钱, 让自己的劳动得到回报。 事实上,我发现同学们对赚钱的兴趣很高,很有商业头脑,第一天上课就有好几个同学问怎么可以在他们的游戏里卖设备赚钱, 怎么卖游戏通行证赚钱, 大家都知道在Roblox上发布一款好的游戏会收入颇丰,也希望成为中的一员。
同学们学习速度很快,很快学会了用Roblox Studio搭建各种游戏场景和道具。 比如一步步地建一个帕特农神庙。
神庙建好后, 请同学们测试运行了一下,进神庙里看一看怎么样。 同学们测试后表示,神庙里一片漆黑, 啥也看不见,所以需要安装一点灯,于是又开始设计灯。 神庙里的灯,要风格古朴一点。
Many students made their own game scenes and share with others. There are cities, villages, water cities, dream cities, Japan’s Rabbit Island, pyramids, London Bridge, and so on.
紧接着, 很多同学纷纷做出了自己游戏场景跟大家分享, 有城市,有乡村, 有水城,有梦幻之城, 有日本的兔子岛,有金字塔, 有伦敦桥等等。
Kyle的金字塔之城
Elizabeth的粉红梦幻之城
Che Yu同学的Bunny Island
Aiden同学的Big Ben
Maxwell 同学的London Bridge
很多同学接着又做出了自己的第一个翻越障碍赛游戏并且发布在Roblox平台上。
Alex Qu
Che Yu
Eric Zhu
Maxwell Gootee
Elizabeth Guo
Minghan Hu
同学们做出了很多精彩的游戏, 大家也一起学习了Lua 编程, 用来制造游戏中的各种机关。
感谢 Allen Qian, Austin Lu, Che Yu, Jerry Cai, Kyle Yang, Lucas Li, Maxwell Gootee, Michael Yuan, Nathaniel Zhang, William Du, Eric Zhu, Aiden Zeigler, Elizabeth Guo, Alex Qu, Minghan Hu, Bright Zhang, Tianle Liang,Evan Zhang, Katy Guo,Grant Mu 跟大家分享你们做得projects。 期待着下周做出更多好玩的游戏。
Thank Asian American Newspaper for the report on our students’ project presentation and demonstration.
感谢亚美导报对我们学生项目演示的报道。
5/24/2020
It was our last class of the school year yesterday. As usual, we held a project introduction and demonstration in the last class. We asked the students to do a course project. Students can do a solo project or a team project with 1-2 teammates.
This year, due to Covid19, we had to hold the event online. As a consequence, we were not able to enjoy the gourmet food brought by every family after the project demonstration. However, everyone still enjoyed the whole process, and many students made high-quality projects. Below are some of them.
昨天是本学年最后一次课, 按惯例我们举行了学期末的项目介绍和演示。 请同学们做一个课程设计的项目, 可以一个人做,也可以找1-2个队友一起做。
今年稍有遗憾的是因为在网上举行,没法享受项目演示结束后各家带来的美食。但是大家还是很enjoy整个过程, 有不少同学都做出了质量很不错的projects. 下面跟大家分享其中的一部分。
Chutian和Derek Yang同学用Python写了一个scheduler, 可以管理to-do list, 还有闹钟的功能
Chutian and Derek Yang wrote a Scheduler in Python, which can manage a to-do list, and also offers the function of an alarm clock.
Eric 同学做了一个PyPhone, 有八大功能。 Eric 的presentation非常棒.
Eric made a PyPhone with eight functions. Eric’s Presentation is awesome.
Matthew 同学用python做了一个 paint editor, 用户可以选择画笔颜色,尺寸, 在白板上画画
Matthew made a Paint Editor in Python. Users can choose the color and size of the brush and draw on the whiteboard.
Ava 和 Maxwell同学做了两个游戏,做得不错
Ava and Maxwell made two games. Great job.
Edward 和Kaden 同学写了一个递归recursive程序,
可以画出谢尔宾斯基曲线, 雪花分形, 毕达哥拉斯递归三角形, 二叉树等
Edward and Kaden wrote a recursive program which
can draw Sierpinski curve, snowflake fractal, Pythagorean recursive triangle, binary tree, etc.
Justin同学写了一个固体下落的游戏, 有难度哦
Justin wrote a solid cube falling game, which is harder that it looks.
Katy 和 Elizabeth姐妹俩写了一步步制作蛋糕的动画,还配了乐,很cute
Katy and Elizabeth wrote a step-by-step animation of making cakes. It also comes with music, very cute.
Prudence 同学写了一个 游戏叫“what warrior cat are you?” Warrior cats在孩子们中很流行,不少同学看了都喜欢
Prudence wrote a game called “What Warrior Cat Are You?” Warrior Cats are very popular among children, and many students like the game.
Alan同学做了一个叫fireball dragon的游戏。七岁的小朋友,很了不起
Alan made a game called Fireball Dragon. He is only 7 years old. Great job, Alan!
Sophia同学很Artistic, 设计了多款不同的dragons
Sophia is artistic and designed several different kinds dragons.
Grace Liu 同学写了一个很复杂的关于猫的游戏,有很多关卡, 很多场景, 很有挑战
Grace Liu wrote a very complicated game about cats. There are many levels, many scenes, very challenging.
Joseph同学做了一个炮弹打飞机, 飞机躲炮弹的游戏。
Joseph made a game in which bombs try to hit airplanes and airplanes try to dodge bombs.
Dean 同学写了一个枪手和弓箭手交战的游戏,演示的时候邀请他的爸爸友情出镜,跟他决战了一局, 结果呢,儿子无悬念胜老爸。
Dean wrote a game in which the gunman and the archer battled each other. During the demonstration, he invited his dad to have a battle with him, and the result ? Son Won!
Holden同学做了一个设计车的程序, 可以选择想要的车形,颜色, 引擎, 为您定制汽车。
Holden made a program to design a car. It allows you to choose the car shape, color and engine you like and customize the car for you.
Jessica 和 Megan同学用Javascript写了一个Pong 的游戏。 小姑娘们做事情很认真, 程序和presentation都做得很好
Jessica and Megan wrote a Pong game using Javascript. Both the program and the presentation are well done!
Howard 同学用CSS/HTML写了一个三位动画的程序,用的都是课上没有讲过的知识。这一点让我很欣慰,当同学们上了课之后,会自己去寻找和获取新的知识。 上完课不是学习的结束,而是开始。
Howard wrote a three-digit animation program using CSS/HTML, using knowledge that was not taught in the class. I am so glad he did that. After taking the course, students learn to self-study and acquire new knowledge by themselves. Finishing the course is not the end of the study, but the beginning.
Amy同学写了一个制作动画然后跳转到minecraft的程序
Amy wrote a program to make an animation and then jump to Minecraft.
Kevin, Tobi 和 Ethan 一起做了经典的蛇吃苹果游戏。
Kevin, Tobi and Ethan made the classic snake-eating apple game together.
Vincent同学写了一个网上在线考试的程序
Vincent wrote an online examination program.
Melinda同学写了一个animation的程序
Melinda Wrote an Animation Program.
Andre 写了一个能画出各种图形图案的程序, 写得不错
Andre wrote a program that can draw various graphics and patterns. Well done!
Andre同学还在程序里感谢了老师. So nice.
Andre thanked the teacher in his program. So nice.
其他还有很多同学都做得很好, 请同学们继续努力,谢谢各位家长的支持。祝大家暑假愉快!
5/12/2020
Last month, some parents requested us to offer a course to guide high school students to do some projects. Maybe the projects could enrich their experience and be helpful for college application, or it simply opens up their ideas and visions. So we offered a Python web data crawler class, and many students signed up for it soon. Most of the students are in grade 8 and above. The youngest in the class is Edward, who is only 10 years old. He is a child prodigy. He has superb understanding and learns everything fast. No need to worry if he will have trouble keeping up.
Web crawlers, also known as web spiders, or web robots, are essential techniques for obtaining large amounts of data from the internet today. The Google search engine uses web crawlers. When users enter a search keyword, their web crawlers will search around to help users retrieve the information and present them in order of relevance from high to low. Many other sites such as expedia, orbitz, hotels, etc. also use web crawler extensively. So learning this technique is very useful.
Before the class, we told the students the rules: you should always check the terms of the website and carefully read the statement about the legal use of data before crawling the website. Please do not request data from any website too aggressively
with your program (also known as spamming), as this may break the website. Make sure your program behaves in a reasonable manner. One request for one webpage per second is good practice. After all, you don’t want to write a web crawler and cause trouble for themselves, right? The students expressed their understanding and agreement.
OK, let’s start writing a web crawler.
Nowadays, Python offer comprehensive functions. A variety of modules, packages, and standard libraries are available. So, whatever you want, you don’t need to do any dirty work. To write the simplest crawler, you just need to use several modules, requests, beauifulsoup, urllib and so on. Download and install them all, then import them in your own program.
We introduced the basic commonly used functions to the students, and the students were all eager to try them. Therefore, we assign everyone a challenge – write a crawler program to retrieve info. from Wikipedia to collect the names, information and photos of the last 45 presidents of the US.
上个月有家长要求开一门课, 指导高中生做点像样的project, 也许在他们申请大学的时候能起点帮助作用, 或者就是开拓一下思路和视野也是好的。于是我们开了一门网络数据爬虫课, 很快就有不少学生报了名。 大多数是8年级和以上的学生。 班上最小的是Edward Chen, 才10岁,是个小神童,理解力超强,学啥都快,完全不担心他会跟不上。
网络爬虫,又称网络蜘蛛,或网络机器人. 是如今获取大量网络数据的必备本领。 Google搜索引擎归根到底用的就是网络爬虫,当用户输入一个搜索的关键词的时候,他们的网络爬虫便会四处探寻,帮你把信息取回来,并且按相关度从高到低排好序呈现给用户。其他诸如expedia, orbitz, hotels等等很多网站也大量使用网络爬虫技术。所以学会了这门技术,是大有用武之地的。
上课之前,先给同学们讲讲规矩: 抓取网站之前,应先查看网站的条款,仔细阅读有关合法使用数据的声明。 不要太频繁地从网站请求数据造成网络瘫痪,一般不要超过每秒一次, 等等。总之,谁不想写个网络爬虫给自己带来麻烦不是? 同学们纷纷表示理解,明白。
OK, 下面就开始写爬虫了。
如今的 python功能齐全,各种模块,包,标准库一应俱全, 要啥有啥, 基本不用你干什么脏活。 写个最简单的爬虫,需要用几个模块, requests, beauifulsoup, urllib 等等。 把它们都下载安装好, 然后在自己的程序里import一下就行了。
基本常用的函数和功能给同学介绍熟悉了半天,同学们都跃跃欲试, 那好, 给大家布置了一个任务, 写个爬虫程序, 到维基百科的网站上把美国迄今为止的四十多位总统和名字, 信息和照片抓回来
The students called the functions using the standard format, and soon some students like Harry, Maxwell, Justin, etc. finished the program.
Some other students had different kinds of problems, but then they solved the problems pretty fast.
Seeing more than forty image files being automatically downloaded to their computers, the students were very excited.
“Wow, this is amazing!” Some students said.
“Can these photos be combined into one?” Some students then asked.
No problem, Python has a standard library PIL for image processing. All you need do is to write a few lines of code, open the files one by one, and then merge them into one file. After a second, a new image file was created, and all the 45 images were combined into one.
同学们用按照标准函数的格式调用, 很快就有同学 Harry, Maxwell, Justin 等都把程序写了出来。
有的同学有这样那样的问题, 但慢慢也都解决了。
看着四十多个图像文件一个个的自动下载到了自己的计算机上,同学们很激动。
“Wow, this is amazing!(这好神奇啊!) ” 有同学说。
“ 能不能把这些照片合并成一张? ” 又有同学提问。
没问题, Python有图像处理的标准库。 只需写几行代码,把文件一个个打开,然后合并到一个文件就行了。一秒钟之后,一个新的图像产生了,所有的图像合成了一张。
“It’s fun!” Students said.
Let’s do another exercise.
We asked everyone to write a web crawler to capture photos of all national parks in the United States, and then automatically merge them together.
This time, the students were familiar with the process, and they just needed change the parameters in the original program. It was quickly completed.
“这很好玩 !” 同学们说。
学会了吗?让我们再做一个练习巩固一下吧。
我们请大家写一个网络爬虫把美国各个国家公园的照片抓回来,然后自动合并到一起。
这一次同学们驾轻就熟,照着原来的程序改一改参数, 很快就完成了。
Some students felt great, as if they were empowered with a magical sword. No wonder people say that “knowledge is power”.
Well, all we have done are only the most basic functions, and there are still many problems that have not been solved, for example, what if the content on the webpage is not in HTML, and there are Javascript programs instead?
We will learn about that next time. As long as we are eager to learn and explore, all problems will be solved.
同学们纷纷有一剑在手, 叱诧风云, 挥斥方遒的感觉了。
要不怎么说知识就是力量呢?
好吧,这些只是最基本的功能,还有很多问题没有解决,比如网页上的内容不在HTML里,而是有javascript脚本怎么办?
以后再学吧。 只要有一颗好学和探索的心, 一切问题都会迎刃而解。