欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用Jupyter笔记本教学Java

程序员文章站 2022-07-12 20:55:15
...

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

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

  • 更好地了解
  • 知识保留期更长

15年前,我还是学生的时候就开始教学,没有接受任何教学培训。 当我准备新课程时,我会非常注重动手部分。 有时,我最先准备一个研讨会,然后在此基础上进行培训。

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

在黑暗中抓稻草...

之前,我写了关于Word文档的研讨会。 为了分发它们,我首先使用USB**,后来使用Internet和基于云的应用程序普及时使用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的网站

import ipyvolume.pylab as p3
import numpy as np

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笔记本教学Java

尽管Jupyter's是基于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笔记本教学Java

如果您已经安装了Jupyter,则可以将Github Pages上研讨会笔记本进行比较 只需在浏览器中打开后者并播放即可。

结论

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

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