Download sigcse-presentation-2002

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

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

Parsing wikipedia , lookup

C Sharp syntax wikipedia , lookup

C++ wikipedia , lookup

Java performance wikipedia , lookup

Go (programming language) wikipedia , lookup

Java ConcurrentMap wikipedia , lookup

Cross compiler wikipedia , lookup

Compiler wikipedia , lookup

Interpreter (computing) wikipedia , lookup

C Sharp (programming language) 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