DrJava A lightweight pedagogic environment for Java Eric Allen, Robert Cartwright, and Brian Stoler Rice University
DrJava is: A Java IDE Free Open source (GPL) An extreme programming project
Teaching Programming is Hard Three complimentary concerns Concepts Syntax Tools
Editor/command prompt Learning curve Editing, compiling, executing separated Frustrating!
Standard IDEs (JBuilder, Forte/Netbeans, etc.) Learning curve (too many features!) Hide the language Cost/availibility
Solution: DrJava Simple and intuitive Leverages students' understanding of language Don't hide the code, embrace it! Allow students to interactively evaluate expressions and statements Small (800k.jar file!)
Editor Transparent interface Consistent, automatic indenting Correct syntax highlighting Updated at keystroke granularity Automatic paren balancing
Integrated Compiler List of errors integrated with editor Compiler is a plugin javac 1.3 javac 1.4 JSR-14 prototype gjc
Interactions Pane Supports a read/eval/print loop No need for public static void main(String[] args) ! ' Teaching static and arrays can be postponed ' Convenient way to run preliminary tests
Interactions Pane (cont.) Great for exploring the language
Applications Introductory CS classes Great for in class demos Upper level courses Distinctive features useful for all developers We use it in developing DrJava!
Future Directions Integrated testing and debugging Seamless integration of JUnit Debugger Step into/out of/over methods Use interactions pane at breakpoints, in scope
Future Directions Language levels incremental presentation of syntax Tailor environment to support teaching language constructs in stages (like in DrScheme) Prevents generating bogus error messages, e.g., accidental definition of inner clases
Implementation 30,000 lines of Java code (Java 1.3 or 1.4) Incorporates DynamicJava (open source) Runs on any Java 1.3 or 1.4 VM (Windows, MacOS X, Linux, Solaris)
A case study in XP software development Pair programming Unit tests 31% of code in tests Must pass all tests to commit code Incremental specification and implementation Frequent releases (>1 daily) Program has advanced substantially since we wrote the paper
A case study in XP software development (cont.) Developed first generation system in three months with 5 students Continuing development in a software engineering class New students contributed within three weeks Benefits of open source Everyone welcome to propose source code changes (but they better have unit tests!) sourceforge.net helps manage open-source projects
Download DrJava!