Team 3 - Jython programming Environment for Students
The purpose of this project is to create a Jython programming environment for students. The environment will be put to use in the 2002 academic year in a new Introduction to Computing class at Georgia Tech. The target students for the class are those that are not engineering or computer science majors. Therefore the user interface for the development environment must be easy for people with little programming experience to use. The user interface must be clearly labeled and free of excess clutter. The system should be contained inside one window for maximum clarity. Also, the user will only be allowed to edit one file at a time. The system will have two text areas, one for editing a file, and the other for access to the interpreter. The intended use is for a student to write a function in the top editor, then load it and execute it by typing the name of the function in the interpreter window. The system will attempt to keep novice users from making obvious mistakes. The system will catch errors thrown by the interpreter and provide comprehensible error messages. Also, the main debugging option available to users will be a function call that opens a separate window to display the values of the current variables. The system will provide a “Help” menu that links to external html help files provided by the client. These tools should provide the student with the basic things needed to learn how to program in Jython.
The project will be continually revised during its use in class. Professor Guzdial will maintain the software, and as a result the code must be well documented and extremely readable. The code must also execute reliably. The IDE will be implemented in Jython, which runs on a Java Virtual Machine. This allows the system to be platform independent. Error messages, as well as other default settings, will be included in a constants file so that they can be easily modified after the release of the project. The system will provide the basic tools an inexperienced user needs to succeed in the class. The system will be expandable, since people other than the original authors will modify it at a later date. The system should be as error free as possible, since many different people will use it on many different platforms. The final product will be an IDE that is slightly simpler than commercial ones, but will be easier to understand and use for students specifically taking this class.
A. Interacting with Jython files:
The system must allow users to create new Jython files.
The system must be usable by first time programmers.
JES will be primarily used by students who are non-CS freshmen and who do not have any programming experience. The user interface will be kept as simple as possible so as not to confuse these students.
The system must be portable to major operating systems.
JES will need to run on Windows, Macintosh, and Unix systems.
The code should be readable and maintainable.
JES will be maintained and enhanced by Mark Guzdial after it has been completed. The code will be readable and maintainable so that its functionality can be easily extended.
The system must be written in Jython.
The GUI must be implemented in Swing.
The system should indicate areas in the code for the client’s later use.
In the future, JES will be enhanced with some additional functionality. The area where these modifications must be made will be clearly indicated in the code. These enhancements include:
Ability to encode and turn-in files from JES
Log user events with timestamps and include that in turn-in
Multiple sizes of text to make use in lecture easier