* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Folie 1
Scala (programming language) wikipedia , lookup
Java syntax wikipedia , lookup
Library (computing) wikipedia , lookup
Structured programming wikipedia , lookup
Go (programming language) wikipedia , lookup
Java (programming language) wikipedia , lookup
Design Patterns wikipedia , lookup
Name mangling wikipedia , lookup
Corecursion wikipedia , lookup
Class (computer programming) wikipedia , lookup
Object lifetime wikipedia , lookup
Java performance wikipedia , lookup
Object-oriented programming wikipedia , lookup
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