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