使用Jupyter笔记本教学Java

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

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

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

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的网站

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'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笔记本截图

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

结论

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值