CPE 102 Lab 1 
    
    This lab is to be completed individually. You are permitted to seek assistance from a peer if you get stuck.
    
Prerequisites:
You must have a working account on the CSL workstations.
You must be able to login to CentOS and navigate the menu system
to launch a text editor (gedit). 
You should have basic familiarity with using the Terminal program
and issuing simple Unix commands such as ls and 
more.
Part 1
    Login to CentOS with your Cal Poly username and complete this short
    tutorial: Compiling
      & Running a Simple Java Program from the command line.  (You can skip the section about installing Java; the Java compiler is already installed on the lab computers.)
    
    Download the source code for NumberDemo.java
    to your account.
    Compile and run NumberDemo.java at the command line. 
    Run it with several times with different inputs. 
    What happens if you enter a letter instead of a number? 
    
    
Part 2
    Make
      a launcher for BlueJ. 
    
    Compile and run NumberDemo.java using BlueJ:
    
    
      - From the "Project" menu select "New Project". (You may name it
        "Lab1".) 
- Click the "New Class" button to create a new Java class named
        NumberDemo. 
- Right-click on the newly created NumberDemo class in
        the diagram and select "Open Editor". Observe that BlueJ creates
        the skeleton code for a class. You may select all (Ctrl-A) and
        delete the skeleton code. 
- Copy and paste the source code for NumberDemo.java into
        the editor window. 
- From the "Options" menu, select "Preferences" and in the
      preferences dialog, check "Display line numbers".  Click OK, and observe
      the line numbers displayed in the left margin.
      
- Click the "Compile" button. In the status window you
        should see the message "Class compiled - no syntax errors."
- In BlueJ's main window, right click on the NumberDemo
        class in the diagram and select "void main(String[])". In the
        dialog which appears, click "OK".
- BlueJ's terminal should appear in which you can interact with
        the program.
- Exit BlueJ.
    
    Open a terminal window and navigate to the project folder you
    created for your BlueJ project in the previous step. 
    Use a text editor such as nano, vi, or gedit, to modify the program
    so it checks if the number is negative and if so, prints an appropriate
    message.
    Compile and run the program at the command line.
    Repair any errors until the program runs correctly.
    
Part 3
    Correct coding standard violations:
    
- Download the 
Checkstyle extension for BlueJ 
that contains the custom checks for our class coding standard.
The extension is installed by placing the extension jar file into an extensions directory.  /home/yourusername/.bluej/extensions
 (In the file manager, View -> Show hidden files will reveal "dot" folders.
You should create the extensions directory if it doesn't exist.
)
 Restart BlueJ.
- 
        From the Tools menu, select Preferences. The preferences dialog
        appears.
        Click on the Extensions tab. Locate the Checkstyle panel. For
        Configuration
        File enter the location of the class configuration XML file: /home/graderjd/bin/bluej/lib/extensions/102styleBlueJ.xml
      
- Launch BlueJ and open the previous project.
- From the main window (not the editor) open the Tools menu
        and select Checkstyle. In the window that appears, click on
        "NumberDemo"
        in the left-hand panel. A list of checkstyle violations appears
        along with the corresponding line number. 
- Your assignment is to learn about the class coding standard by
        correcting the errors that Checkstyle has identified. Leave both
        the Checkstyle window and the editor window open. When you make
        a
        a change in the editor and click "Compile" the Checkstyle window
        will automatically refresh itself. The following strategy
        is suggested:
        - Look for errors whose message is immediately obvious. For
          example, "'{' should be
            on a
            new line" needs no further explanation. 
- Consult the 
            coding standard checklist
          or coding
            standard
            definition
          if you aren't sure how to fix the error or what
          the correct standard requires. 
- Read an explanation for a few of the most
            common errors.
- If the error message doesn't make sense to you, consult the
          
            Checkstyle documentation
          for an explanation of the error message.
- As a last resort, consult the instructor.
Summary
    Since maintenance accounts for 80% of most organizations software
    budget, writing readable code can produce significant cost savings
    for
    a software team.  You may find that correcting Checkstyle
    violations is somewhat
    tedious.  To avoid this, familiarize yourself with the class coding
      standard and
    write your code in the correct style at the outset.  That will
    save a lot of time because you won't have to go back and correct it
    when you are finished.
    
Submission
At the top of the source code, change "@author J. Dalbey" to your name,
and change the version to 1.1.
Submit the source code file to PolyLearn for Lab 1.
    
    For Home Use:
    
    Here are directions for installing BlueJ and Checkstyle on your personal
    computer.
    
    
    Also, on Unix, Checkstyle is installed in the grader account. 
    To run the command line version:
    ~graderjd/bin/stylechecker myprogram.java