外文翻译资料

 2021-12-29 10:12

Proceedings of the Twenty-Eighth International Florida Artificial Intelligence Research Society Conference

Computational Notebooks for AI Education

Keith J. Orsquo;Hara

Computer Science Program

Bard College

Annandale-on-Hudson, NY

kohara@bard.edu

Douglas Blank

Computer Science Department

Bryn Mawr College

Bryn Mawr, PA

dblank@brynmawr.edu

James Marshall

Computer Science Department

Sarah Lawrence College

Bronxville, NY

jmarshall@slc.edu

Abstract

Computational notebooks are documents that serve dual

purposes: they serve as an archive format containing

code, text, images and equations; but they can also be

run like computer programs. This paper explores the use

of these new computational notebooks to teach AI and

introduces tools that we have developed — ICalico and

Calysto — to facilitate that use. Not only do these new

tools broaden the languages and contexts available to

students exploring notebook-based AI computing, but

they offer a new mode of teaching and learning for the

AI classroom.

A computational notebook is a document that can be read

like a journal paper and run like a computer program. Al-

though the idea is not new, the computational notebook ap-

proach has just recently begun to be widely adopted by com-

puter science educators. For example, Peter Norvig recently

shared notebooks on the web presenting topics in Artifi-

cial Intelligence such as the Traveling Salesperson Problem

(TSP, see Figure 1). A new computational notebook system,

called Jupyter (Pacute;erez and Granger, 2007), is being devel-

oped and appears to be an excellent medium for teaching

many topics, especially AI. This paper explores the use of

these new computational notebooks to teach AI and intro-

duces tools that we have developed — ICalico and Calysto

— to facilitate that use. Not only do these new tools broaden

the languages and contexts available to students exploring

notebook-based AI computing, but they offer a new mode of

teaching and learning for the AI classroom.

Jupyter Computational Notebooks

This paper focuses on the use of the Jupyter computa-

tional notebook project. The Jupyter system itself evolved

from the IPython project (Pacute;erez and Granger, 2007). Orig-

inally, IPython was just a better console-based read-eval-

print loop for Python—it had many conveniences for pro-

gramming including command-line history, command com-

pletion, and a set of built-in macros called “magics.” How-

ever, in the last few years, IPython has evolved into a vast

Copyright c 2015, Association for the Advancement of Artificial

Intelligence (www.aaai.org). All rights reserved.

263

client-server architecture for running Python programs. Re-

cently IPython was expanded to allow any language to be

used, and the Jupyter project was born. Jupyter has three

language-agnostic clients, or frontends, in which users can

enter and edit code and text. There is a plain-text frontend,

called “console” and a graphical frontend, called “qtcon-

sole”. However, the frontend of interest to us is the web-

based frontend, called “notebook”. The notebook client al-

lows users to combine code, text, images, videos and math-

ematical equations (via LATEX), in a web browser. In addi-

tion, graphs and plots produced by code appear directly in

the browser. Finally, not only do Jupyter notebooks provide

the live, interactive interface for a running programming lan-

guage, but can also serve as a static, archived view of the

document. In that manner, a notebook can be rendered in a

manner that allows it to be viewed by anyone (see Figure 1).

This makes notebooks serve a dual-purpose: they are the di-

rect interface to the computational engine, and also serve as

a well-formatted archive of that computation.

Although Jupyter has not been released as of this writ-

ing (January 2015) it is slated to be released in the next few

weeks. We have been developing, exploring, and teaching

with a pre-released version of Jupyter, and find it to be a

useful tool in the classroom. To facilitate its use in courses

such as AI, we have developed additional tools. First, we

have expanded the list of languages that can be used to in-

clude Prolog, Java, and Scheme (among others). Secondly,

we have added additional features to these languages to

make their use in the AI classroom especially effective. For

example, we have added non-deterministic backtracking to

Scheme. Finally, we have developed libraries for integra-

tion into projects such as ROS, the Robot Operating System.

These extensions will be discussed below.

Because Jupyterrsquo;s notebook interfaces with a program-

ming language through a web browser, one can run pro-

grams over the web. The Jupyterhub1 project does exactly

that: it allows users to login, create notebooks, and execute

code on a remote server. With some caveats (discussed be-

low), this is a very useful manner of managing classroom

materials. For example, it allows students to begin work-

ing immediately without having to install anything. In ad-

dition, getting all of the packages installed for running AI

1 https://github.com/jupyter/jupyterhub

would need to install and configure all required li

全文共24650字,剩余内容已隐藏,支付完成后下载完整资料


应用于人工智能课程教育的计算笔记本

基斯 J欧哈拉 道格拉斯·布兰克 詹姆斯·马歇尔

计算机科学项目 计算机科学部门 计算科学部门

巴德学院 布林莫尔学院 萨拉劳伦斯学院

摘要

计算笔记本是一种有双重服务目的的文件:它们作为压缩格式的文档包含代码,文本,图像和方程; 但他们也可以像电脑程序一样运行。 本文探讨了使用这些新的计算笔记本教授人工智能课程,同时介绍如何用我们开发的工具 - ICalico和Calysto - 促进这一应用。 这些新的工具不仅仅是拓宽了学生可用于探索基于笔记本的AI计算的语言和环境,而且他们为AI教室提供了一种新的教学模式。

引言

计算笔记本是可以像纸质期刊一样阅读和像电脑程序一样运行的文件。虽然这个想法不是新的,但计算笔记本刚刚开始被计算机科学教育家广泛采用。例如,Peter Norvig最近在网上分享笔记本,介绍人工智能有关的话题比如旅行销售员问题等(TSP,见图1)。一种新的计算笔记本系统,被称为Jupyter(P#39;erez和Granger,2007),正在发展而且似乎是一个适用于很多话题的很好的教学媒介,特别是AI。本文探讨了使用这些新的计算笔记本教授人工智能课程,同时介绍如何用我们开发的工具 - ICalico和Calysto - 促进这一应用。 这些新的工具不仅仅是拓宽了学生可用于探索基于笔记本的AI计算的语言和环境,而且他们为AI教室提供了一种新的教学模式。

Jupyter计算笔记本

本文重点介绍使用Jupyter计算笔记本的项目。 Jupyter系统本身由IPython项目进化而来(P#39;erez和Granger,2007)。从本质上讲,IPython只是python中一个更好的基于控制台的“读取-求职-输出循环”- 它有很多便利语法包括命令行历史,命令完成,以及一组称为“魔法”的内置宏。然而,在过去的几年里,IPython已经发展成为一个运行python程序的庞大客户端 - 服务器架构。近年来,IPlython被扩展为允许使用任何语言,而且由此诞生了Jupyter。 Jupyter有三个用户可以使用的与语言无关的客户端或前端,在其中客户可以输入和编辑代码和文本。它有一个成为“控制台”的纯文本的前端和称为“QT控制台”图形前端。。但是,我们感兴趣的前端是称为“笔记本”的基于浏览器的前端。笔记本客户端允许用户将代码,文本,图像,视频和数学方程式(通过LATEX)结合起来在Web浏览器中运行。另外,代码生成的图形和图表直接显示在浏览器。最后,Jupyter笔记本不仅提供用于运行编程语言的实时交互式界面,而且也可以作为一个静态的,存档的视图文献。以这种方式,笔记本可以以一种允许任何人查看它的方式传递(见图1)。这使笔记本具有双重用途:它们是到计算引擎的直接接口,也作为该计算的格式良好的存档。

图1:Peter Norvig使用计算笔记本进行的TSP探索。该文档可以被任何使用Jupyter的用户下载并运行

尽管Jupyter尚未在本文中发布(2015年1月)它将在未来几周内发布。我们一直在开发,探索和教学预先发布的Jupyter版本,并发现它是一个课堂上有用的工具。为了方便其在课程中的使用比如AI课程,我们开发了其他工具。首先,我们扩大了我们可以使用的语言列表 包括Prolog,Java和Scheme(以及其他)。其次,我们已经为这些语言添加了其他功能使他们在AI课堂中的使用特别有效。例如,我们在Scheme中添加了非确定性回溯方案。最后,我们开发了用于整合进项目的库,比如ROS,机器人操作系统等项目。这些扩展将在下面讨论。

因为Jupyter的笔记本通过浏览器与程序语言打交道,一个人可以在浏览器中运行程序。 Jupyterhub项目完全完全做到了这一点:它允许用户登录,创建笔记本和执行远程服务器上的代码。 有一些警告(将在下文讨论),这是管理课堂材料非常有用的方式。 例如,它允许学生立即开始工作而无需安装任何东西。此外,为运行AI实验安装所有软件包可能会非常棘手。 拥有基于服务器的解决方案表示可以设置一次系统而使所有学生可以使用。 虽然它确实需要服务器,但要求并且设置成本相当低。 但是,对于有大量学生的课程,计算资源可能会是一个问题。 如果计算要求很小,人们可以期待一台标准的台式电脑可以支持数十名学生。 人们也可以考虑让学生使用像SageMathCloud这样的系统(Stein,2014); 但是,你无法控制学生的环境(他们需要安装和配置所有必需的库),并且可能存在广泛的处理滞后。

我们已经探索了这些计算笔记在AI课堂上的四种用途:1)讲座/讨论; 2)阅读/翻转教室; 3)家庭作业;和4)考试。使用笔记本电脑(而不是演示软件)数字投影仪对于讲座和演讲非常有效。这种用途的标准相当低:一个人仅需要在工作的时候创建一个工作的笔记本,并将其用作讲座/讨论的基础。对于讲座有三种选择:使用笔记本的静态版本(例如图一中显示的那样);使用连接到实时语言的笔记本后端输出预先计算;或使用没有显示输出数据的现场笔记本。一个人还可以以HTML幻灯片格式输出笔记本。导出到HTML有两个选择:显示为静态的预呈现HTML页面;或者一种连接到实时计算引擎(称为“核心”)的幻灯片。这些幻灯片拥有所有现代演示软件的闪光点,例如动画过渡。然而,人们也可以在其中运行代码。确保讲座完全可重复能够减少在旧式讲座和代码之间的任何差异,让学生复制讲座很简单

因为笔记本也是可执行的,使用良好书面笔记本作为课外阅读材料与“翻转教室”的概念完美契合(Bergmann和萨姆斯,2012年)。 翻转课堂是一种用讲座代替课堂讨论的教学思想,将演讲材料移到课外让学生消化。 通常,课外活动包括准备好视频,或阅读教科书中的章节。课堂时间通常围绕讨论或动手实践。 我们发现计算笔记本可以也可用作课外活动的材料。

要求学生为家庭作业创建笔记本是灌输文学计算的有用方法。 文学计算是Fernando P#39;erez(2013)创造的一个术语。 我们将文学计算视为与它的叔叔“文学编程”(Knuth,1992)完全不同。 文学变成的焦点是为了记录程序。在这种情况下,它是一个面向内部的文件,旨在解释它自己。 另一方面,文学计算旨在关注计算目标,而不是项目的具体细节。文学计算的目标不是向程序员解释程序的工作方式,但是要向广大受众解释计算问题。 文学计算不包括文学编程 - 它是完全不同的东西。 从而文学计算的目标与在大学环境中学生写作的目标非常吻合。

使用笔记本作为考试方法已经有了好坏参半的结果,值得进一步研究。 像任何在线计算考试,学生在任何单一问题的细节中陷入困境。 但是,如果一个人在支持“带回家”考试的环境,可以减轻教室中有限时间的压力。 甚至允许这样做,学生们报告说他们经常以非线性的时尚方式工作,很难跟踪测试中的哪些问题已经完成,剩下哪些有待完成。自动分级代码是一个正在发展的项目而且至少可用于家庭作业。

ICalico 和 Calysto

Calico是一个基于.NET / Mono的软件框架,它包括一个用于以多种语言使用多个库写程序的独立的集成开发环境(IDE)(Blank et al.2012)。 它旨在支持初学者,在学生提升计算机技能的过程中提供合适的平台,继续支持他们随着学生积累跟多的经验,并且为教师提供协助,使他们更有效率。 Calico旨在支持从初学者到专家的这一平稳连续的过程。 ICalicos让Calico语言和库可以在Jupyter中被使用。 ICalico架构如图2中所示。

图2 ICalico的架构:集成了Calico, Robot Operating System (ROS), and IPython/Jupyter

ICalico支持多种语言,包括Python,Java,Scheme,Logo,Basic,Ruby,F#和Boo(类似于Python,但有类型和宏)。所有的这些语言被视为动态语言,允许学生以交互方式输入代码片段并逐步执行程序。除了特定的语言的标准库,ICalico也包含了许多其他与语言无关的库。例如,ICalico附带一个叫做Myrod的丰富的库,用于探索入门机器人。 Myro库允许学生控制真实的或模拟的机器人,拍照,做图像处理,让机器人说话,穿过迷宫,画一张照片等(但是,使用真正的机器人需要学生在本地运行笔记本,而不是在服务器上运行。)ICalico还包含用于制作艺术品的库,创建图形游戏和物理模拟,探索GIS,开发分布式系统,连接到Arduino(Banzi,2008),访问Kinect和许多其他库。

在Myro模块的基础上,ICalico包括支持一个叫做MyROS的机器人操作系统(ROS)的原型(如下所述)。 MyROS提供两个主要功能:它使所有ICalico都可以使用ROS语言,它处理开始基于ROS的服务器的大部分复杂性。 效果是用户可以访问复杂的机器人(真实的和模拟的)和很多预先打包的复杂的功能(如面部识别)),无需克服无关的系统细节。

Calysto项目采用了所有基于Python的来自Calico的产品,无需提供.NET / Mono框架。这允许基于Calysto的语言和库能够使用标准的基于CPython的库,如numpy和matplotlib。 为了使我们的基于Calysto的语言与基于Python的语言在Ipython中具有相同的实用性,我们与其他开源软件开发人员共同工作创建了metakernel。 Metakernel添加了魔法,命令完成,命令历史,shell访问,并行处理等支持,以及更多基于Calysto的语言。 因此,学生可以使用Calysto并行处理lysto Scheme和Calysto Prolog。 以下部分描述如何通过Jupyter探索AI中的主题。

非决定论和搜索

作为Calico项目的一部分,我们开发了一个版本的Scheme编程语言。我们的Scheme是用Scheme写的而且可以转换为在.NET / Mono上运行或者Python。.NET / Mono版本(Calico Scheme)可以使用本机公共语言运行(即Windows)库,而Python版本(Calysto Scheme)可以使用本机CPython库(例如,numpy,matplotlib)。我们计划的一个有趣的方面是它有一个非确定性选择功能内置于语言中(参见图3)。 另外,我们已经合并了一个版本Prolog(用Python编写)到ICalico和Calysto。Scheme的选择功能和Prolog都允许学生轻松探索基于逻辑的声明性编程。

图3:解决所述约束满足问题所必需的Scheme代码(Abelson等,1996)。

机器学习

因为机器学习很大程度上基于统计而且很多统计学家已经接受了基于计算的笔记本,有很多机器学习的例子(见图5)。可以看出,这些机器学习的可视化描述分析使笔记本成为一个向学生介绍ML的概念和过程的很好的中继工具。

机器人与计算机视觉

虽然Myro可以控制Scribbler,Finch,Humming-bird和Arduino机器人,Calico包括一个面对机器人操作系统(ROS)的原型。机器人操作系统(Quigley et al。,2009)是一个开源系统用于构建端到端机器人应用的环境。 ROS正在迅速成为机器人研究的标准和发展社区。 ROS抽象了硬件接口的细节,并提供许多标准算法。我们的ROS模块可以让学生轻松学习从Windows,Mac和 Linux操作系统中访问和配置ROS节点。传统上,ROS程序的开发意味着学生必须在Linux中使用C ,Common Lisp或者Python。除了各种各样的机器人硬件平台,ROS提供更高级别的软件功能,像计算机视觉例程,机器人本地化和导航和3D点云库。 ROS可以在ICalico中以三个不同级别被使用,这取决于用户的背景和预期的应用程序。

ROS机器人可通过Myro接口获得。 ROS完全隐藏在这个级别。 学生们在CS1课程中,想要通过简单的地面机器人和商业四轴飞行器像ARDrone(见图6)探索计算。 ROS机器人可以通过提供了Python包装器的ROS被访问。 但是,仅此选项适用于Linux。 虽然这不会使用ICalico,但有些用户可能想要只使用Jupyter和ROS。计算笔记本在这种情况下仍然有用即使不使用Calico后端。 或者在一些中间过程中,通过MyROS(一个完整的可见ROS模块)访问ROS机器人。 虽然比Myro更复杂,MyROS仍然为用户提供了广泛的编程语言和配置并维护ROS节点的实用性。 各种可能性如图4所示。

图4 ICalico的不同组件之间的协同作用

Calico在一门叫(De)Coding the Drone 的课程中被使用。 在本课程中,学生可以使用相同的Python API与三种不同的类型机器人实现交互。 学生们开始使用Arduino,然后转移到Scribbler,最后到Parrot ARDrone。 学生们用Arduino来建造一个简单的路灯和电报。 使用Scribbler和ARDrone学生探索自主和远程操作。 其他非机器人任务包括基于Eliza的聊天机器人和图形化身。 学生使用相同的机遇python的环境探索所有这些不同的场景。

笔记本也非常适合计算机视觉应用程序,特别是作为OpenCV的接口。OpenCV,一个先进的计算机视觉C 库,提供Java和Python的API。 在一个包含300个学生的计算机视觉的课程中学生使用笔记本探索相机校准和增强现实。 在线教程散文,数

全文共7487字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[3094]

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。