Jeliot – A powerful Java tutor for beginners
Boro Jakimovski
Institute of Informatics
Faculty of Natural Sciences and Mathematics
University “Ss Cyril and Methodius”
Skopje, Macedonia
Jeliot
Jeliot family is designed to aid students to learn programming in Java
Useful for teaching Java as first course Uses ”Program Animation” – shows the
execution of a program by means of a multimedia display.
Executes the program step by step with adjustable speed
Displays every step in very understandable way
Jeliot usage
The tool can be used for: For lectures Assessment Interactive laboratory sessions Virtual courses
Environment
CodeEditor
ToolbarEditor
Theatre
Output
Compilation
- After compiling the code the show
is started - If there are any compilation errors that is shown once the simulation
starts
ExecutionCurrent
execution point
Methods invokedMethod variables
Evaluation of expressions
Memory space(instances)
Execution
Advantages
Jeliot animated execution enables students to: Better understand program execution Execution of programming structures:
Sequence If-else statements Loops
Understand the concept of a pointers and memory
Call tree
Call tree shows the operation
execution steps
Good for recursion
explanation
Recursive Fibonacci
Recursive Fibonacci
Java issues
All classes must be in a single source file.
For I/O, import the package jeliot.io.*; which provides the methods
void Output.println(), int Input.readInt(), double Input.readDouble(), char Input.readChar(), String Input.readString().
Jeliot uses DynamicJava (http://koala.ilog.fr/djava/) as a front-end and thus accepts almost all Java features that you would want to use for introductory programming, however, the implementation of the animation might not animate all features.
Currently, the implementation includes Values of type String all primitive types and one-dimensional
arrays. Expressions including all unary and
binary operations except instanceof. All the control statements (if, while,
etc.). Method invocation, including recursive
invocation. Allocation of objects, constructors,
invocation of methods on objects. Not implemented are:
Static variables. Calls to super(…), except for super() at
the beginning of a constructor. Arrays with components of reference
type (except String). Conditional expressions exp?
exp1:exp2. Array initializers.
Jeliot extensions
Jeliot supports extensions to be built for collaboration
Very good extension is BlueJ BlueJ is an interesting editor for Java Consists of:
UML Class diagram Editor Object inspection and testing
BlueJ
UML Class diagram
Toolbox
Memory (Object instances)
Runtime command execution
BlueJ
Pop-up menu on selected class or object gives opportunity: Invoke methods Instantiate objects Inspect objects Remove objects and classes Invoke the editor Compile the class
Object inspection
- Allows students to test certain methods from the classes (outside of the program)- In a way they test the classes without writing an Java application (main method)
Debugger
Students can stop an execution of a method and inspect the values of internal variables and execute it step by step
Jeliot and BlueJ
Students can also execute their programs in Jeliot
BlueJ Capabilities
Students can do the following using BlueJ: Edit the code Compile the code Get more explanatory error messages Debug their programs (breakpoints, watches) Inspect object content Create applications and applets Incorporate existing classes in the projects
Conclusion
Jeliot and BlueJ can significantly increase students understanding of both structural and especially object-oriented programming
Easy and fun to useSimple but still very powerful tools
Top Related