Jeliot – A powerful Java tutor for beginners Boro Jakimovski Institute of Informatics Faculty of...

Post on 17-Jan-2016

215 views 0 download

Transcript of Jeliot – A powerful Java tutor for beginners Boro Jakimovski Institute of Informatics Faculty of...

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