2

我想使用 Jupyter 笔记本在 ipad 上管理我的高中生的数学测试,我会为每个学生启动一个服务器,并让他们连接到 ipad 上自己的服务器,在那里他们可以找到自己的笔记本测试。我已经使用小部件编写了测试并且效果很好,但我想确保他们除了参加测试之外不能对这个笔记本做任何事情。我有两个想法,我一直无法工作。

想法 1:隐藏菜单栏和工具栏中的所有按钮,并添加一个按钮,该按钮将运行书中唯一具有“%run Exam.py”的单元格,该单元格将启动测试。使用此设置,学生无法进行额外的编码,因为在 ipad 上他们无法使用 Shift+Enter 来启动新单元格。

我的问题是我无法找到隐藏菜单栏或从工具栏中隐藏特定按钮的方法。

想法 2:在 custom.js 中,我注意到您可以使用“IPython.notebook.kernel.execute('code here')”运行 python 代码。所以我希望在加载笔记本时 custom.js 会隐藏标题,然后自动运行我的考试代码。

我似乎无法在加载时运行任何 ipython 代码,我什至不知道这是否可能?

我不知道 javascript,所以我一直在摸索 custom.js 中的示例,但无济于事。

是否有可能和/或是否有更好的方法来使用笔记本来管理考试?

4

1 回答 1

1

1) 你可能想阅读这篇关于为学生大规模部署 IPython 的文章。

2) 如果您不使用 IPython notebook 来运行代码,那么您可能正在使用超出其使用范围的工具,而Flask应用程序可能更适合。

3)您需要包装调用以执行代码,以便仅在内核启动后执行。如果你控制服务器为什么不把东西放进去.ipython/profile_default/startup?否则使用以下内容(可能取决于您使用的确切版本):

require(['base/js/events','base/js/namespace'], function(events, IPython){
    events.on('kernel_ready.Kernel', function () {
        // your code here
    })
});

但总的来说,您似乎在误用这些工具。

于 2015-06-22T09:46:19.517 回答