Title: Jeliot
1Jeliot A powerful Java tutor for beginners
- Boro Jakimovski
- Institute of Informatics
- Faculty of Natural Sciences and Mathematics
- University Ss Cyril and Methodius
- Skopje, Macedonia
2Jeliot
- 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
3Jeliot usage
- The tool can be used for
- For lectures
- Assessment
- Interactive laboratory sessions
- Virtual courses
4Environment
Theatre
Code Editor
Output
Toolbar Editor
5Compilation
- After compiling the code the show is started
? - If there are any compilation errors that is
shown once the simulation starts ?
6Execution
Methods invoked Method variables
Current execution point
Evaluation of expressions
Memory space (instances)
7Execution
8Advantages
- 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
9Call tree
Call tree shows the operation execution
steps Good for recursion explanation
10Recursive Fibonacci
11Recursive Fibonacci
12Java 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/djav
a/) 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?exp1exp2.
- Array initializers.
13Jeliot 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
14BlueJ
UML Class diagram
Toolbox
Runtime command execution
Memory (Object instances)
15BlueJ
- 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
16Object 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)
17Debugger
Students can stop an execution of a method and
inspect the values of internal variables and
execute it step by step
18Jeliot and BlueJ
Students can also execute their programs in Jeliot
19BlueJ 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
20Conclusion
- 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