Dr Java A lightweight pedagogic environment for Java

  • Slides: 17
Download presentation
Dr. Java A lightweight pedagogic environment for Java Eric Allen, Robert Cartwright, and Brian

Dr. Java A lightweight pedagogic environment for Java Eric Allen, Robert Cartwright, and Brian Stoler Rice University {eallen, cork, bstoler}@rice. edu http: //drjava. sourceforge. net

Dr. Java is: ' A Java IDE ' Free ' Open source (GPL) '

Dr. Java is: ' A Java IDE ' Free ' Open source (GPL) ' An extreme programming project

Teaching Programming is Hard Three complimentary concerns ' ' Concepts ' Syntax ' Tools

Teaching Programming is Hard Three complimentary concerns ' ' Concepts ' Syntax ' Tools

Editor/command prompt ' Learning curve ' Editing, compiling, executing separated ' Frustrating!

Editor/command prompt ' Learning curve ' Editing, compiling, executing separated ' Frustrating!

Standard IDEs (JBuilder, Forte/Netbeans, etc. ) ' Learning curve (too many features!) ' Hide

Standard IDEs (JBuilder, Forte/Netbeans, etc. ) ' Learning curve (too many features!) ' Hide the language ' Cost/availibility

Solution: Dr. Java ' Simple and intuitive ' Leverages students' understanding of language '

Solution: Dr. Java ' Simple and intuitive ' Leverages students' understanding of language ' ' Don't hide the code, embrace it! ' Allow students to interactively evaluate expressions and statements Small (800 k. jar file!)

Editor ' Transparent interface ' Consistent, automatic indenting ' Correct syntax highlighting ' Updated

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

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

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

Interactions Pane (cont. ) ' Great for exploring the language

Applications Introductory CS classes ' ' Great for in class demos ' Upper level

Applications Introductory CS classes ' ' Great for in class demos ' Upper level courses ' Distinctive features useful for all developers ' We use it in developing Dr. Java!

Future Directions Integrated testing and debugging ' Seamless integration of JUnit ' Debugger '

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

Future Directions Language levels ® incremental presentation of syntax ' Tailor environment to support teaching language constructs in stages (like in Dr. Scheme) ' 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)

Implementation ' 30, 000 lines of Java code (Java 1. 3 or 1. 4) ' Incorporates Dynamic. Java (open source) ' Runs on any Java 1. 3 or 1. 4 VM (Windows, Mac. OS X, Linux, Solaris)

A case study in XP software development ' Pair programming ' Unit tests '

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

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 Dr. Java! http: //drjava. sf. net

Download Dr. Java! http: //drjava. sf. net