无论您在培训中遇到过障碍,无论是老师还是学生,我相信我们都有相同的经验:几个小时很难集中精力。 近年来,这种情况只会变得更糟,因为手机是分散注意力的巨大来源。
结果是最重要的部分是实践。 学生需要将他们刚刚学到的东西投入应用,以便:
- 更好地了解
- 知识保留期更长
15年前,我还是学生的时候就开始教学,没有接受任何教学培训。 当我准备新课程时,我会非常注重动手部分。 有时,我最先准备一个研讨会,然后在此基础上进行培训。
这是我多年来使用的一些方法。
在黑暗中抓稻草...
之前,我写了关于Word文档的研讨会。 为了分发它们,我首先使用USB**,后来使用Internet和基于云的应用程序普及时使用Dropbox和Google Drive。
我对解决方案进行了现场编码,并在必要时解释和回答问题。 根据要求,我将它们交给了zip归档文件中的解决方案代码。
这种方法显然存在很多问题:
- 如果没有人要求解决方案怎么办
在这种情况下,没有学生可以使用它。 而且他们无法在以后进行审查。
- 如果有些学生不参加怎么办
显然可以给他们解决方案。 但是,它处于最终形式:他们看不到步骤。 我认为这是在理解过程和准备考试中的巨大障碍。
- 如果问题陈述需要更新怎么办
老师必须分别与每个学生联系,以告诉他们有关再次下载文档的信息。
码头工人
我打算在研讨会上使用Docker映像。 我认为这不是一个好主意,原因有几个:
- 学生将需要学习如何进行设置
- Docker是设置应用程序服务器的好方法。 我对IDE有更多疑问。
- 我的经验告诉我,很难在公共教育组织中安装新软件(例如Docker引擎)
源代码管理和页面托管
几年前,我学习了Git。 我意识到,如果结合使用其他一些技术,它可以解决上述问题。
- 讲习班的说明以Asciidoctor格式编写
- 指令和代码在Git中进行管理。
-
master
分支包含车间的开始状态,而solution
分支包含每个任务的每个步骤,直至最终状态。 最后,documentation
包含说明和构建脚本(请参见下文) - 一切都存储在Github上 。
-
- 每个推送的提交都会触发基于TravisCI的构建。 这会将Asciidoctor源转换为HTML。
- 生成的HTML在Github Pages上可用。
如果您想将源保密, Gitlab是一个不错的选择。 它提供了类似于Github的构建功能,但作为集成的构建工具以及托管功能。 |
可以看到有关Java数据结构和Java EE servlet的样本研讨会(法语)。
我不相信有一个通用的解决方案:这与第二个关于servlet的研讨会非常有效。 Java EE开发需要大量的设置,并且研讨会也不例外。 此外,网站开发需要视觉反馈。
但是,对于Java基础-或任何其他语言基础而言,IDE都是过大的。 它们允许进行调试,但另一方面,它们使事情变得更复杂。
另外,使用测试框架来检查结果是否正确也是很尴尬的。 如果学生不了解注释,很难首先说出TestNG。 这成为狗追尾的情况。
Jupyter笔记本
那个IDE障碍使我开始思考替代方案。
Jupyter项目的存在是为了开发跨多种编程语言的交互式计算的开源软件,开放标准和服务。
Jupyter Notebook是一个开源Web应用程序,允许您创建和共享包含实时代码,方程式,可视化效果和叙述文本的文档。 用途包括:数据清理和转换,数值模拟,统计模型,数据可视化,机器学习等。
简而言之,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 ()
这个需要:
- Java 9
- 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,则可以将Github Pages上的研讨会与笔记本进行比较 。 只需在浏览器中打开后者并播放即可。
结论
有几种免费工具可帮助教师和培训师完成任务。 对于涵盖基础知识的编码课程,Jupyter笔记本是一项重要资产,消除了设置IDE的麻烦。
翻译自: https://blog.frankel.ch/teaching-java-jupyter-notebooks/