170 likes | 314 Views
DrJava A lightweight pedagogic environment for Java. Eric Allen, Robert Cartwright, and Brian Stoler Rice University {eallen,cork,bstoler}@rice.edu http://drjava.sourceforge.net. DrJava is:. A Java IDE Free Open source (GPL) An extreme programming project. Teaching Programming is Hard.
E N D
DrJavaA lightweight pedagogic environment for Java Eric Allen, Robert Cartwright, and Brian Stoler Rice University {eallen,cork,bstoler}@rice.edu http://drjava.sourceforge.net
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 forpublic static void main(String[] args)! • Teaching static and arrays can be postponed • Convenient way to runpreliminary tests
Interactions Pane (cont.) • Great for exploring the language
Applications • Introductory CS classes • Great for inclass demos • Upperlevel courses • Distinctive features useful for all developers • We use it in developing DrJava!
Future DirectionsIntegrated testing and debugging • Seamless integration of JUnit • Debugger • Step into/out of/over methods • Use interactions pane at breakpoints, in scope
Future DirectionsLanguage 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! http://drjava.sf.net