java jupyter_使用Jupyter笔记本教学Java

  • Post author:
  • Post category:java


java jupyter

无论您在培训中遇到过障碍,无论是老师还是学生,我相信我们都有相同的经验:几个小时很难集中精力。 近年来,这种情况只会变得更糟,因为手机是分散注意力的巨大来源。

结果是最重要的部分是实践。 学生需要将刚学到的东西投入应用,以便:


  • 更好地了解

  • 知识保留期更长

15年前,我还是学生的时候就开始教学,没有接受任何教学培训。 当我准备新课程时,我将大量精力放在动手部分上。 有时,我会先准备一个研讨会,然后再在上面进行培训。

这是我多年来使用的一些方法。

在黑暗中抓稻草…

之前,我写了关于Word文档的研讨会。 为了分发它们,我首先使用USB密钥,后来在互联网和基于云的应用程序无处不在时使用Dropbox和Google Drive。

我对解决方案进行了编码,使它们

实时

呈现在观众面前,并在必要时解释和回答问题。 根据要求,我将它们交给了zip归档文件中的解决方案代码。

这种方法显然存在很多问题:

如果没有人要求解决方案怎么办

在这种情况下,没有学生可以使用它。 而且他们无法在以后进行审查。

如果有些学生不参加怎么办

显然可以给他们解决方案。 但是,它处于最终形式:他们看不到步骤。 我认为这是在理解过程和准备考试中的巨大障碍。

如果问题陈述需要更新怎么办

老师必须分别与每个学生联系,以告诉他们有关再次下载文档的信息。

码头工人

我打算在研讨会上使用Docker映像。 我认为这不是一个好主意,原因有几个:


  • 学生将需要学习如何进行设置

  • Docker是设置应用程序服务器的好方法。


    我对

    IDE

    有更多的怀疑。

  • 我的经验告诉我,很难在公共教育组织中安装新软件(例如Docker引擎)

源代码管理和页面托管

几年前,我学习了Git。 我意识到,如果结合使用其他一些技术,它可以解决上述问题。


  1. 讲习班的说明以

    Asciidoctor

    格式编写

  2. 指令和代码在Git中进行管理。



    • master

      分支包含车间的开始状态,而

      solution

      分支包含直到最终状态的每个任务的每个步骤。


      最后,

      documentation

      包含说明和构建脚本(请参见下文)

    • 一切都存储在

      Github上



  3. 每个推送的提交都会触发

    TravisCI

    的构建。


    这会将Asciidoctor源转换为HTML。

  4. 生成HTML在

    Github Pages

    上可用。

如果您想将源保密,Gitlab是一个很好的选择。
它提供了类似于Github的构建功能,但是作为集成的构建工具以及托管功能。

可以看到有关

Java数据结构



Java EE servlet的

样本研讨会(法语)。

我不相信有一个通用的解决方案:这与第二个关于servlet的研讨会非常有效。 Java EE开发需要大量的设置,并且研讨会也不例外。 此外,网站开发需要视觉反馈。

但是,对于Java基础-或任何其他语言基础而言,IDE都是过大的。 它们允许进行调试,但另一方面,它们使事情变得更复杂。

另外,使用测试框架来检查结果是否正确也是很尴尬的。 如果学生不了解注释,很难首先说出TestNG。 这成为狗追尾的情况。

Jupyter笔记本

那个IDE障碍使我开始思考替代方案。


Jupyter项目的存在是为了开发跨多种编程语言的交互式计算的开源软件,开放标准和服务。


Jupyter Notebook是一个开源Web应用程序,允许您创建和共享包含实时代码,方程式,可视化效果和叙述文本的文档。


用途包括:数据清理和转换,数值模拟,统计建模,数据可视化,机器学习等。

— http://jupyter.org/

简而言之,Jupyter笔记本允许在浏览器中执行本地文档中的代码,并在同一页面中查看输出:这都是关于交互性的。 例如,以下内容摘自Jupyter的

网站

importipyvolume.pylabasp3
importnumpyasnp

fig=p3.figure()
q=p3.quiver(*stream.data[:,0:50,:200],color="red",size=7)
p3.style.use("dark")# looks better
p3.animation_control(q,interval=200)
p3.show()


Jupyter Notebook可视化示例

尽管Jupyter的解决方案是基于Python的解决方案,但它允许集成

其他“内核”

-语言。 这样的内核提供了Java功能

-IJava

这个需要:


  1. Java 9

  2. Jupyter笔记本

现在可以使用

记录的过程

来安装内核。

要测试新安装的内核,请使用以下命令:

jupyter console--kernel= java

这应该输出以下内容:

Jupyter console 5.1.0

Java 9.0.4+11 :: IJava kernel 1.1.0-SNAPSHOT
Protocol v5.0 implementation by jupyter-jvm-basekernel 2.2.1-SNAPSHOT

In [1]:

尝试键入任何有效的Java命令,

例如


System.out.println("Hello world!");

要启动笔记本,请在要创建(或使用)笔记本文件的文件夹中使用以下命令:

jupyter notebook

我玩了一些游戏,使用Jupyter笔记本重新创建了上面提到的Java研讨会。

这是结果的一部分:

jupyter笔记本截图

如果您已安装Jupyter,则可以将

Github Pages上



研讨会



笔记本进行比较

。 只需在浏览器中打开后者并播放即可。

结论

有几种免费工具可以帮助教师和培训师完成任务。 对于涵盖基础知识的编码课程,Jupyter笔记本是一项重要资产,消除了设置IDE的麻烦。

翻译自:

https://blog.frankel.ch/teaching-java-jupyter-notebooks/

java jupyter