我正在考虑将IPython 笔记本用于教育目的。这个想法是为学生提供基于网络的演示来说明讲座的一些主题。我希望学生能够更改代码的参数,以便他们可以研究其影响甚至创建自己的示例。
我了解到可以设置公共 Ipython 笔记本服务器。据我了解,它提供了笔记本的全部功能(不仅仅是显示它们),而是向公众公开。那正确吗?
额外问题:如何防止用户持续更改笔记本但提供“会话副本”?
我正在考虑将IPython 笔记本用于教育目的。这个想法是为学生提供基于网络的演示来说明讲座的一些主题。我希望学生能够更改代码的参数,以便他们可以研究其影响甚至创建自己的示例。
我了解到可以设置公共 Ipython 笔记本服务器。据我了解,它提供了笔记本的全部功能(不仅仅是显示它们),而是向公众公开。那正确吗?
额外问题:如何防止用户持续更改笔记本但提供“会话副本”?
至于第二点,我在本地机器上有一个工作设置。我没有在服务器上测试过,所以你的里程可能会有所不同。简单的解决方案:我将 *.ipynb 文件设为只读。快速测试表明我可以通过在线笔记本访问它,进行修改,运行代码,尝试保存(“笔记本保存失败”),将修改后的文件下载为 *.ipynb 文件,因为保存不起作用,并从另一个本地笔记本继续。我希望这符合您的用例。
编辑:我觉得我应该澄清一下这种行为。基本上,每个用户都有他们的临时会话,该会话几乎一直持续到他们离开页面为止。如果这是在大学演讲厅,我相信你会偶尔听到“哦&%$#!” 当有人错误地关闭了他们的浏览器,但笔记本在允许您导航离开之前确实会提示,所以我觉得这应该是相当罕见的。一旦他们离开页面,他们所有的工作就消失了。我认为这符合非持久会话副本的标准。
是的,这是正确的。公共 iPython 笔记本服务器为通过浏览器连接到它的每个人提供完整的功能。所以每个拥有服务器密码的人都可以在这个服务器上编辑/创建/删除笔记本。
据我所知,没有可能阻止用户持续更改服务器上的笔记本。一个肮脏的解决方法是:每个学生都复制您的中央笔记本(文件->制作副本)并仅在复制的笔记本中工作。但是,这并不能防止中央笔记本中的学生滥用/无意更改。