* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download sigcse-presentation-2002
Survey
Document related concepts
Comment (computer programming) wikipedia , lookup
Scala (programming language) wikipedia , lookup
Object-oriented programming wikipedia , lookup
Program optimization wikipedia , lookup
Structured programming wikipedia , lookup
Name mangling wikipedia , lookup
Java (programming language) wikipedia , lookup
GNU Compiler Collection wikipedia , lookup
C Sharp syntax wikipedia , lookup
Java performance wikipedia , lookup
Go (programming language) wikipedia , lookup
Java ConcurrentMap wikipedia , lookup
Cross compiler wikipedia , lookup
Transcript
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 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 inclass demos ' Upperlevel 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! http://drjava.sf.net