Sale!
Placeholder

Lava – An IDE for Learning Java

10,000 3,000

Topic Description

Summary
IDEs (integrated development environments) are software tools typically used by professional
software engineers. They provide all the necessary tools required for producing a program in
a particular programming language, and a simple interface for using them.
This report investigates the features required in an IDE that is designed for novice Java
programmers, and describes the design and implementation of such an IDE.
The final IDE presented consists of the standard features expected, such as integrated
compilation and execution, and also some innovations with regards to meeting the needs of
novice Java programmers.
Perhaps the most interesting parts of the IDE are the two provided plug-ins that allow for
coding style checking and common mistake checking, both of which are features that are
intended to hone the user’s Java programming capabilities.

Table of Contents
Summary …………………………………………………………………………………………………………………… I
Acknowledgements …………………………………………………………………………………………………….II
Table of Contents …………………………………………………………………………………………………….. III
Table of Figures……………………………………………………………………………………………………….. VI
1 Project Introduction…………………………………………………………………………………………….. 1
1.1 Aims…………………………………………………………………………………………………………. 1
1.2 Objectives …………………………………………………………………………………………………. 1
1.3 Minimum Requirements ……………………………………………………………………………… 1
1.4 Deliverables ………………………………………………………………………………………………. 2
2 Background Research………………………………………………………………………………………….. 3
2.1 Java ………………………………………………………………………………………………………….. 3
2.2 Why Teach Java? ……………………………………………………………………………………….. 3
2.3 Difficulties in Teaching Java ……………………………………………………………………….. 4
2.4 Environments in General and the Problems They Present………………………………… 4
2.4.1 Integrated Development Environments ……………………………………………………… 4
2.4.2 Disconnected Environments …………………………………………………………………….. 5
2.5 Fundamental Aspects of an Appropriate Teaching Environment ………………………. 5
2.5.1 Integrated ………………………………………………………………………………………………. 5
2.5.2 Easily Available……………………………………………………………………………………… 5
2.5.3 Style Checking……………………………………………………………………………………….. 6
2.5.4 Highly Sensitive Error Messages………………………………………………………………. 6
2.5.5 Examples ………………………………………………………………………………………………. 6
2.6 Existing ‘Teaching’ Environments for Java……………………………………………………. 6
2.6.1 JGIDE …………………………………………………………………………………………………… 6
2.6.2 BlueJ …………………………………………………………………………………………………….. 7
2.7 Existing ‘Commercial’ Environments for Java……………………………………………….. 7
2.7.1 Netbeans ……………………………………………………………………………………………….. 8
2.7.2 JBuilder…………………………………………………………………………………………………. 8
3 Requirements Gathering and Analysis …………………………………………………………………… 9
3.1 Questionnaire …………………………………………………………………………………………….. 9
3.1.1 Intended Audience ………………………………………………………………………………….. 9
3.1.2 Structure and Deployment ……………………………………………………………………….. 9
3.1.3 Validity of Findings………………………………………………………………………………. 10
3.2 Comparison of Existing IDEs …………………………………………………………………….. 10
3.2.1 Which IDEs to Compare………………………………………………………………………… 11
3.2.2 Criteria for Comparison…………………………………………………………………………. 11
IV
3.2.3 Validity of Findings………………………………………………………………………………. 11
3.2.4 Results ………………………………………………………………………………………………… 11
3.3 Features of Final Topic / IDE ………………………………………………………………….. 12
3.3.1 Essential Features …………………………………………………………………………………. 12
3.3.2 Desired Features …………………………………………………………………………………… 15
3.3.3 Unique Features……………………………………………………………………………………. 16
4 Design and Implementation………………………………………………………………………………… 17
4.1 Development Platform ………………………………………………………………………………. 17
4.1.1 Python…………………………………………………………………………………………………. 18
4.1.2 Java …………………………………………………………………………………………………….. 19
4.1.3 Conclusions …………………………………………………………………………………………. 20
4.2 Development Methodology………………………………………………………………………… 21
4.3 Structure of Software ………………………………………………………………………………… 21
4.3.1 Overview …………………………………………………………………………………………….. 22
4.3.1.1 GUI …………………………………………………………………………………………….. 22
4.3.1.2 Help…………………………………………………………………………………………….. 26
4.3.1.3 Syntax Engine ………………………………………………………………………………. 26
4.3.1.4 Plug-ins Engine…………………………………………………………………………….. 27
4.3.1.5 Utilities………………………………………………………………………………………… 28
4.3.2 Compilation and Execution ……………………………………………………………………. 29
4.3.3 Plug-ins……………………………………………………………………………………………….. 30
4.3.3.1 Style Checking Plug-in ………………………………………………………………….. 30
4.3.3.2 Happy Helper Plug-in ……………………………………………………………………. 30
5 User Testing …………………………………………………………………………………………………….. 33
5.1 Usability Testing………………………………………………………………………………………. 33
5.1.1 Intended Audience ………………………………………………………………………………… 33
5.1.2 Formulation of Tests……………………………………………………………………………… 33
5.1.3 Validity of Findings………………………………………………………………………………. 33
5.2 Extensibility Testing …………………………………………………………………………………. 34
5.2.1 Intended Audience ………………………………………………………………………………… 34
5.2.2 Formulation of Tests……………………………………………………………………………… 34
5.2.3 Validity of Findings………………………………………………………………………………. 34
5.3 Conclusions……………………………………………………………………………………………… 34
6 Project Evaluation …………………………………………………………………………………………….. 37
6.1 Project Aim ……………………………………………………………………………………………… 37
6.2 Project Objectives …………………………………………………………………………………….. 37
6.3 Project Minimum Requirements …………………………………………………………………. 38
V
6.4 Solution Produced …………………………………………………………………………………….. 39
6.5 Project Management …………………………………………………………………………………. 39
6.6 Conclusions……………………………………………………………………………………………… 39
7 Further Work ……………………………………………………………………………………………………. 41
7.1 Extending the Project ………………………………………………………………………………… 41
7.1.1 UML Generator ……………………………………………………………………………………. 41
7.1.2 Generic Learning IDE……………………………………………………………………………. 41
7.2 Extending the Software……………………………………………………………………………… 41
7.2.1 Possible Extensions Made Apparent From User Testing ……………………………. 41
7.2.2 Specific Envisaged Extensions ……………………………………………………………….. 41
Bibliography……………………………………………………………………………………………………………. 43
Appendix A – Project Reflection ………………………………………………………………………………… 45
Planning………………………………………………………………………………………………………………. 45
Software Development ………………………………………………………………………………………….. 45
Writing the Report………………………………………………………………………………………………… 45
The Questionnaire ………………………………………………………………………………………………… 45
Appendix B – Further Analysis of Questionnaire Results

GET COMPLETE PROJECT