有趣的编码问题机器人–迅捷老师–中

我和我12年级的学生最近在“ Swift应用程序开发入门”课程(教师)(学生)中完成了本年度最有趣,最愉快的课程:第13课-问题机器人。 这是我学生创造应用程序的第一个机会,其作用远不止是展示图片或类似内容的单一视图,就像我们在第5课中所做的那样。第5课很重要,因为它允许我的学生开始学习如何使用Xcode; 但是,我们实际上并没有创建具有任何实际功能的应用程序。 Bot问题使我的学生有机会创建[1]功能齐全的应用程序,他们喜欢它!

课程介绍

我主要按照《 Swift老师指南应用程序开发入门 和《 Swift Student的应用程序开发入门》一书中的教学计划和课程指导进行学习 。 首先,让我的学生们告诉我他们最喜欢的应用,然后在他/她的iPad上的Classic Explain Everything中写下该应用的名称。 然后,我们讨论了模型视图控制器(MVC)应用程序设计架构/模式。 然后,我让每个学生创建一个图表,说明他们最喜欢的应用程序的各个部分适合MVC模式的位置。 我使用了建议的示例,说明了Apple Notes应用程序如何在图表中使用MVC设计。 然后,我的一些学生决定选择另一个更易于绘制的应用程序。 我们对控制器如何真正成为许多应用程序的“大脑”以及如何处理从模型到视图提供大量数据的“繁重工作”进行了非常精彩的讨论。 然后,我们的讨论着眼于如何将AI引入该模型中,以扩展和自动处理对用户请求的回复。 总的来说,我认为这是我本学年与这些学生一起使用的最好的课程介绍。 他们喜欢分析自己喜欢的应用程序的MVC模型,并在此过程中获得了很多知识。

进入守则

接下来,我们打开questionbot.xprodproj文件,并查看了所有文件。 然后,我们打开QuestionAnswerer.swift文件,因为这是我们应用程序的控制器或“大脑”文件。 我让学生看了一个非常简单的结构,该结构包含responseTo(question: String)函数,该函数将为用户提供对他/她的问题的响应。 然后,我让我的学生在模拟器中运行该应用程序,然后问他们想问的任何三个问题。 我们发现,对于每个询问的问题,应用程序均返回“?”的答案。 我问我的学生,如果我们都得到相同的简单答案,那么这是否一定是该应用程序当前状态的限制。 我希望我的学生可以直接转到QuestionAnswerer.swift文件,并发现responseTo(question: String)函数包含单个return语句,该语句始终对所问的任何问题给出“?”。 几乎每个学生都直接进入该确切的文件和功能,并发现应用程序在其当前状态下的“?”返回限制。

现在是时候为我们的应用程序创建一些自定义答案了。 我们启动了QuestionAnswerer.playground文件,并一起完成了该课程。 这是我最喜欢的带有Swift的应用程序开发入门课程的一部分-学习,探索和制作Swift操场文件中的代码原型。 通过让学生在Swift Playground中创建responseTo(question: String)函数,我们能够比在Xcode项目文件中更快地创建可以正常工作的函数。 Swift操场文件立即编译并为我们提供代码结果; 因此,我的每个学生都能够立即看到代码的结果,以便他们可以决定自己需要做什么才能获得给出预期结果的功能。 我相信这是本课程的最大优势–能够将复杂的项目呈现在简单的学习环境中,使学生更容易理解。

整理机器人

一旦我的学生完成了他们的responseTo(question: String)函数并粘贴到QuestionBot Xcode项目的QuestionAnswerer.swift文件中,我们便可以做出一些设计决策。 我向学生展示了如何更改背景和按钮的颜色(提示:属性检查器)以及QuestionBot的表情符号。 然后每个人都在模拟器中运行该应用程序以检查以确保我们获得了预期的功能。 我们做到了。 然后我问我的学生,“更改您的QuestionBot以对其进行自定义有多困难?”我这样做是为了扩展本课,以便学生们想返回到QuestionAnswerer.swift文件来创建该应用程序的新版本。创建一些有趣,有趣或有用的东西,我们可以将它们加载到各自的iPad上,向他们的朋友展示。 这是本课中最好的部分。 我所有的学生立即进入代码中,以创建自定义版本的QuestionBot,以回答有关视频游戏,琐事或海绵鲍勃方形裤子(ugh)的问题。 我什至让一个学生记下她的笔记并创建一个QuestionBot来帮助她复习即将进行的政府考试。 对本部分课程的反应令人难以置信! 我们所有人创建和共享Bot都很开心。 我创建了一个AngryBot,它会向愤怒的人发出回复,包括默认答案“退出,问我问题! 现在下车,孩子们!

扩展课程

由于Siri本质上仅是类固醇上的QuestionBot型应用程序,因此我在本课程[2]中讨论了Siri。 我告诉我的学生问Siri他们可能想到的所有问题。 几分钟后,每个人都向Siri问了很多问题,我们得出的结论是,尽管Siri与QuestionBot类似,但它也有所不同, 而且更加复杂。 然后,我们讨论了QuestionAnswerer.swift文件,因为Siri是某种服务器端的人工智能,可以解析以多种方式询问的不同问题,然后找到最合适的响应,这可能也由某些AI或机器学习组件。 Siri比较是一个有趣且发人深省的练习,我将确保以后进行比较。 但是,明年我要做出的最大改变是,我将根据QuestionBot课程为我的学生提供一个后续项目。 我将与我们的学术老师合作,​​提出一个典型的英语,数学,科学或政府项目,我的学生可以为所选的英语,数学,科学或政府课程创建和自定义项目。 我很高兴看到我现在的11年级学生明年将创建什么样的应用程序。 知道了这堂课后,我们将分享一些真正有趣,有趣,有趣和有创意的应用程序。 此外,如果允许的话,我将允许我的学生与我们学区中的所有学生和员工共享他们的应用程序。 我的学区拥有Apple Enterprise Developer Program会员资格,该会员资格使我们能够通过移动设备管理软件(我们使用JAMF Pro)将内部应用程序分发到我们的iPad。 我的同事Mike和我将充当App Review的本地版本,我们将使用实用的App Store指南来审查学生的应用,以便他们获得模拟的App Store提交过程,并附上批准和拒绝电子邮件(我正在努力在模板上)。 我认为,允许我们的学生与学区中的每个人共享他们的应用程序将为我的学生提供一个展示他们所学知识的机会。 此外,我希望这个QuestionBot扩展项目能上好一堂课,并将其变成一个变革性的学习项目,他们不会很快忘记。

最初发布在The Swift Teacher Blog