code.cs61a.org是本课程中教授的所有三种语言(Python 3.9、61A Scheme 和 SQLite – SQL 的变体)的在线解释器。使用此解释器,您可以编辑、运行、调试、可视化和与课程人员分享代码。

入门

开始使用 61A Code 的最简单方法是访问code.cs61a.org并使用解释器。点击启动屏幕上的Start Python Interpreter,并开始与python交互!

请注意,该站点首次加载可能需要几秒钟的时间,因为它会将 Python、Scheme 和 SQL 的解释器下载到您的浏览器。在大多数现代浏览器中,这些解释器都被缓存了,所以后续的加载速度应该会快很多!此外,解释器在进入您的缓存后都会脱机运行,因此您即使没有互联网连接也可以工作!

创建文件

您可能希望编辑文件中代码,而不是直接在解释器中运行程序。为此,您可以

  • 点击顶部菜单栏的New
  • 点击启动屏幕上的Create new file
  • 在交互式解释器中调用函数editoreditor()在 Python、(editor)Scheme 和.editorSQL 中)

要运行文件中程序,请点击窗口右上角的绿色图标Run。一个交互式解释器将被打开,显示您的代码的打印输出,这将允许您进一步与您的程序进行交互。您可以使用交互式解释器左侧的红色Stop图标来停止长时间运行的程序。

要保存文件,请点击Ctrl/Cmd + S或单击顶部菜单栏中的Save/Save As选项。您可以选择将代码副本下载为文件,或将其保存在本地浏览器中。如果您选择将其保存在浏览器中,则应为其指定一个有意义的名称。如果你给两个文件同名,旧的文件将被静默覆盖,所以要小心!

打开编辑器后,您可以使用三种语言中的任何一种编写代码,编辑器会自动检测该语言。如果要覆盖检测到的语言,请在文件顶部添加lang注释:

  • #lang python 将强制解释器使用 python
  • ;lang scheme 将强制解释器使用 scheme
  • --lang sql 将强制解释器使用 sql

或者,您可以用.py.scm.sql扩展名保存一个文件,迫使它用相应的语言运行。

加载文件

您可能希望使用 61A Code 与在别处编写的程序进行交互。为此,有多种选择:

  • 单击顶部菜单栏的Open,通过将文件拖入放置区域或手动选择将文件上传到 61A Code
  • 单击启动屏幕上的Open existing file,然后使用前面说的对话框上传文件。
  • Recent Local FilesOKPy Backups中选择一个文件。
  • 从课程主页打开一个文件。

打开文件时,在cs61a目录中查找当前学期的 OKPy 备份。首次尝试执行需要 OKPy 身份验证的操作时,系统将提示您登录。您可以打开、编辑、运行和保存备份,它们将在 OKPy 上和您的合作伙伴同步。但是,您不能运行 OKPy 测试用例。

文件夹home中的文件存在本地浏览器存储中。某些浏览器可能会定期清除此存储(已知 Safari 会执行此操作),因此请不要依赖它!存储在cs61a文件夹中的文件作为 OKPy 备份被保存,因此即使您清除浏览器数据也可以访问,但在学期结束后将无法从 61A Code 访问(尽管它们将保留在 OKPy 上)。

要打开已保存在 61A Code 中的文件,您可以使用前面描述的Open对话框打开以前保存的文件,或访问文件的直接链接(例如课程主页上的链接)。请注意,可公开访问的直接链接只能由课程工作人员创建。

格式化代码

要使您的代码更具可读性,请单击窗口右上角的蓝色Format图标。特别是对于 Scheme,这可以使您的代码更易于阅读和调试,并且还会捕获简单的语法错误。

可视化数据结构

要可视化数据结构,请使用传入的数据结构作为其唯一参数调用draw函数(draw(...)在 Python 中或(draw ...)在 Scheme 中)。列表和链表将绘制为盒指针图,而(两种类型的)树将以标准方式绘制。该LinkTree数据结构,以及标准的树ADT功能,已经宣布在Python解释器使用。

您还可以调用该autodraw函数来绘制交互式解释器中返回的所有数据结构。呼吁disable_autodraw停止这种行为。

可视化程序

要可视化在编辑器中编写的代码,请单击右上方Run图标旁边的黄色Debug图标。

  • 如果您正在编写 Python,可视化工具将使用 Python Tutor 绘制您代码的环境图。
  • 如果您正在编写 Scheme,可视化工具将显示代码的树递归执行以及环境图。
  • 如果您正在编写 SQL,可视化工具将让您与代码生成的表进行交互,并逐步执行大多数SELECT 语句。

要可视化在交互式解释器中运行的代码,请调用visualize 函数(Python 中的visualize() 或 Scheme 中的(visualize))以查看所有代码在交互式解释器中运行的类似可视化。在 SQL 中,您可以单击控制台中的Step-By-Step按钮来查看特定SELECT语句的逐步运行结果。

讲座中的表格已预加载到 SQL 解释器中,因此您不必自己创建它们。运行.tables.schema查看所有当前可用的表,运行.open --new以删除所有的表。

请注意,虽然大多数代码在您的本地机器上运行,但 Python 和 Scheme 程序可视化工具在服务器上运行您的代码,因此存在一些限制,使您无法可视化运行时间非常长的程序。

分享代码

请记住,与您的项目合作伙伴之外的任何学生(即使是没有参加 CS 61A 的学生!)分享与 61A 作业相关的代码是违反课程政策的。

但是,您可能希望与工作人员分享代码以帮助调试。为此,请单击顶部菜单栏中的Share按钮,为您的代码生成唯一的 URL,教职员工可以访问该 URL,但学生不能访问该 URL。工作人员应登录与学生共享文件。从共享菜单共享文件时,所有协作者都可以看到编辑内容。

高级

要摸索解释器的内部结构,请单击顶部菜单栏的Console。您将能够与最小的终端式界面进行交互。键入 help查看已启用的命令。特别要注意的是,您可以使用rm删除文件.

要将文件保存在目录中,请在Save As对话框中写入完整路径,而不仅仅是文件名。

故障排除/报告错误

如果您遇到错误,请尝试使用其他浏览器。此工具在 Google Chrome 中进行了最广泛的测试,但应该可以在大多数现代浏览器中使用。您还应该考虑清除浏览器的缓存和 本地存储。如果错误仍然存在,请在 Piazza 上发帖或联系课程工作人员。

最后修改日期: 2021年9月12日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。