If you’ve been around me for any amount of time, I’ve probably pushed DrJava on you at some point. Finally, I’ve decided to articulate my reasoning in an article.
What is DrJava?
For those of you that might not know, DrJava is an IDE built by Rice University for students who want to learn Java. Funny story: I applied to Rice for grad school, but I didn’t get in despite my interest in their software.
无论如何,DrJava在IDE中有很多您希望得到的东西:具有语法高亮显示的编辑器以及诸如集成JUnit测试,代码覆盖和Javadoc API生成等一系列功能。
此外,DrJava具有和没有的一些功能使它与众不同,成为教育工作者的绝佳工具。 例如,DrJava没有任何形式的自动完成。 更好的是,DrJava有一个控制台(交互窗格),您可以使用它来运行代码行,就像解释Java一样。
也就是说,您可能从未听说过它,因为该行业倾向于使用Eclipse,IntelliJ和NetBeans。 所有这些工具都很棒,但是DrJava是我进行Java教育的首选IDE(无双关语)。 当然,问题是“为什么?”
DrJava Features
如前所述,作为一名教育工作者,我喜欢DrJava的两个主要功能:“交互”窗格和缺乏自动完成功能。 此外,还有一些针对高级学生的功能。 让我们谈谈它们。
The Interactions Pane
By far, the absolute best feature of DrJava is the interactions pane. This is a feature that I have yet to see implemented in another IDE (though, I recently found out it comes standard with the JDK under jshell), and I think it’s brilliant. Basically, it allows you to treat Java like it were an interpreted language. In other words, you can run commands line-by-line without having to spin up a class with a main method. It’s glorious.
为了使您更直观,这里是您必须在常规IDE中为HelloWorld编写的代码:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
而且,这是“交互”窗格中的代码:
System.out.println("Hello, World!");
要使用传统的编辑器更改消息,您必须编辑源代码,重新编译,然后再次运行解决方案。 在“交互”窗格中,就像按向上箭头,更改消息并按回车一样简单:
Typically, I like to use the interactions pane to teach Java without actually introducing classes. In other words, I like to talk variables, types, methods, and control flow without having to talk too much about public vs. private, static vs. instance, etc. The nature of being able to quickly prototype code is wonderful.
另外一个好处是,学生可以犯很多错误,而不必担心编译/运行循环。 尝试一条线,观察它是否断裂,然后再尝试另一条线。 那样方便。 另外,它使学生习惯于使用命令行。 能够按向上箭头并稍稍修改一行代码,然后再次运行它确实很棒。
总的来说,我认为交互窗格足以在任何其他笨重的IDE上使用DrJava。 刚开始学习编码的学生不需要所有的花招。
The Lack of Autocomplete
尽管仅交互窗格是一个很棒的功能,但我喜欢DrJava没有自动完成功能这一事实。 换句话说,所有代码都必须从内存中键入。 通常,我不会浪费时间将代码提交到内存,但是对于初学者来说,实际编写自己的代码至关重要。 否则,他们将永远不会学习语法。
另外,如果您参加要求学生手写代码的考试(顺便说一句,我讨厌这些),您的学生将感谢您强迫他们学习语法。
也就是说,每个人都知道Java的详细程度,因此在DrJava中手动键入代码可能是一个漫长而痛苦的过程。 因此,我不建议任何知道自己在做什么的人使用该工具。 换句话说,如果您只是想学习语法,请仅使用DrJava。
No Real-time Compilation
使用Eclipse之类的编辑器时,您会注意到您的代码将自行编译。 毕竟,错误会在您的代码中随机出现,并带有红色的下划线。 将鼠标悬停在该错误上,您会确切看到问题所在。
使用DrJava,您将无法获得红色下划线的好处。 相反,在编译代码时,您必须实际读取错误消息。 就我个人而言,我自己并不是受虐狂,但我确实认为,让学生自己弄清事情至关重要。 否则,他们只会在屏幕周围追逐红线,直到一切正常。
Other Features
除了已经提到的所有内容外,DrJava还有其他一些不错的功能。 例如,该工具内置了JUnit,因此学生无需编写依赖项就可以编写测试。 实际上,我喜欢以此为契机,在我教授方法后立即教授测试。
除了JUnit测试之外,DrJava还具有内置的代码覆盖范围。 如果编写JUnit测试,则只需单击一下按钮,即可检查测试覆盖了多少代码。 这三个功能一起使学生可以通过一些良好的软件实践快速上手。
同样,DrJava在构建时就考虑了JavaDoc。 如果您编写JavaDoc注释,则DrJava将使您单击按钮即可轻松呈现自己的文档。 我个人可以说这对学生来说是一个很大的“哇”时刻。 没有什么比观看您的评论作为网页更生动的了。
最后,DrJava具有一个小的可读性功能,当按下Tab键时,该功能会自动在当前行缩进代码。 尽管像Eclipse这样的编辑器通常具有内置的格式化程序,这些格式化程序在保存代码时会激活,但是这些功能可能很难设置。 同时,可以通过选择所有代码并单击选项卡来激活DrJava中的自动缩进。 动臂,适当的压痕。
An Educator’s Perspective
从我个人开始,我一直敦促我的学生使用DrJava。 自然地,我在开始编码时就接触了该工具,我认为很多初学者也可以从中受益。 不幸的是,今天的大多数课程都使学生无法使用Eclipse,但是您能做什么?
作为一名教育工作者,如果我不能将学生转换为DrJava,我至少会在课堂上让他们学习。 在立即将一些代码转储到DrJava的交互窗格中之前,我实际上因回答“好吧,请尝试一下”的问题而臭名昭著。 对于任何教Java的人来说,它确实是一个很棒的工具。
For anyone who is stuck working with Eclipse, there’s actually a DrJava plugin for Eclipse. As far as I can tell, it still works—at least as of Eclipse 2019-03. It adds the interactions pane right into Eclipse, so students can at least start testing code snippets.
无论如何,我希望我今天对新工具睁开你的眼睛。 如果没有,请告诉我您是否喜欢在教室中使用任何东西。 如果您是学生,您是如何学习Java的? 我一直对寻找教授相同材料的新方法很感兴趣。
当我将您带到这里时,请查看其他一些与教学有关的文章:
As always, if you’re enjoying this content, consider becoming a member. Or, at the very least, subscribe to my weekly newsletter! That way, you’ll never miss another article. Until next time!
The post Why I Urge My Students to Use DrJava appeared first on Ťhe Renegade Coder.