Transcript Folie 1
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
Code
Editor
Theatre
Output
Toolbar
Editor
Compilation
- After compiling
the code the show
is started
- If there are any
compilation errors
that is shown once
the simulation
starts
Execution
Methods invoked
Method variables
Current
execution
point
Memory space
(instances)
Evaluation of
expressions
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 frontend 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
Runtime command
execution
Memory (Object instances)
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 use
Simple but still very powerful tools