GWU

CS 1111

Introduction to Software Development

GWU Computer Science


Lecture Notes 02: Parts of a Program


Objectives

By the end of this module, for simple HelloWorld-like programs, you will be able to:




Files vs Programs

From your this past week, you should remember:
Rule 1: Verify that your file has the same name as the class it contains.




Multiple Print Instructions

Activity 2: Follow along using a Text Editor and the Terminal.

You can have as many instructions as you like inside the main method. Here, we have two print statements:

public class Hello2 {

    public static void main(String[] args) {
        // generate some simple output
        System.out.println("Hello, World!");
        System.out.println("How are you?");
    }
}
      




Additional Structural Elements

Reserved Words:
We'll Highlight in red some words in HelloWorld which we call reserved words

These words tell Java something about the properties of the block, variable, or method (more on this later).
public class MyHello {

    public static void main(String[] args) {
        // generate some simple output
        System.out.println("Hello, Myself!");
    }
}

  • Words like public and class are called reserved words
    They come defined in the Java language and can only be used in some ways.

  • Reserved Words are CASE SENSITIVE (public is different than Public)

  • Identifiers:
    We'll Highlight in green some words in HelloWorld which we call identifiers

    These words are names that we pick to refer to named elements of the code, like classes, variables, or methods (more on these later). Some are named by us, some have been named by others and are now standard in Java.

    public class MyHello {
    
        public static void main(String[] args) {
            // generate some simple output
            System.out.println("Hello, Myself!");
        }
    }

  • As we'll see, there are many kinds of identifiers. The main two are:
    • Those we choose for things WE created, like MyHello, and
    • Those someone else chose for code that is now standard use in Java, like:
    • System.out.println or String, (which we will explain later).
    • Lastly, the dot means, in Java: "Look Inside and Use". One analogy could be that when you want to use your Phone's calculatorApp to see what is the result for "355/113", you might do:
                      Backpack.Phone.calculatorApp(355/113)

  • Identifiers we pick must:
    • start with a letter and
    • contain only letters, numbers and underscores.

  • Once defined, Identifiers are CASE SENSITIVE (MyHello is different than myhello)

  • Braces:
    We'll Highlight in blue the different types of braces used in Java.

    The different types of brackets define the size and reach of blocks of code, parameters, arguments, or types (more on this later).
    public class FutureExample {
    
        public static void main(String[] args) {
            ArrayList<Integer> mylist = new ArrayList<Integer> ();
            System.out.println("Hello, Past!");
        }
    }

  • Curly Brackets like { } are block delimiters. They always come in pairs.
    They indicate the limits of that particular black box.

  • Parentheses like ( ) are grouping symbols. They always come in pairs.
    They can work as mathematical grouping (like you've used them before), or for indicating the set of arguments or parameters that a method takes (more on this later).

  • A pair of Angle Brackets < > are used to specify a particular type (or flavor) of something.
    One analogy could be that when you order an ice cream, you would do so by requesting:
    Cake<Chocolate>
    We'll cover why we have these at the very end of the semester; you can ignore them for now.

  • Double Quotes " " are used to specify the start and end of a literal string or phrase. They always come in pairs.
    They serve to tell Java not to interpret that section as an instruction but rather to use it as a literal phrase. It is like the use of quotes in prose:

    Martha said “Something I don't want to tell you”

    Without the quotation marks, that would be very confusing!




  • Code Formatting: White spaces and Indentation

    Some code formatting elements are optional but recommended. The code shown below compiles but is very hard to read and understand.

    public
      class Hello2 {public static void main(String
        args [] ) {// generate some simple output
            System.out.
        println("Hello, World!");
    System.out.println("How are you?");
        }}
          

    That is why, in this class, we will follow a strict set of programming style guidelines. One of those will be to indent your code at a new level each time you open a set of curly braces:

    |-- indent Level 1
        |-- indent Level 2
            |-- indent Level 3
    
    public class Hello2 {
    
        public static void main(String[] args) {
            // generate some simple output
            System.out.println("Hello, World!");
            System.out.println("How are you?");
        }
    }
          

    In fact, we will be using (and assigning points for passing) a style checker for all the non-quiz programming assignments you will have this semester. You'll learn about it more in your lab this week. A style checker is an automated way, using a program, that we can check that our code conforms to a pre-defined coding standard. This option is especially useful when you're working on large codebases with many other developers, and for this class, we'll get used to writing clean and legible code using this tool.

    We will download and use the Java CheckStyle command line tool throughout this semester to perform automated style checking. Although there are many common and slightly different opinions on what is good coding style, we're going to pick just one of these during the semester, for the sake of learning to conform to a coding standard and being able to use this tool. More details in lab this week!

    Your homework assignments will grade your solutions based on how many test cases they pass (which you will have access to), and then will provide you with instructions how to call the command line style checker on your code to earn those points.




    Strings and escape sequences

    In Java, we use strings to represent text that is human-readable, rather than code. For example, "Hello, World!" is a string. We use double quotes to indicate what the start and end of a string should be to Java, as we saw above.

    Some things inside a String denote literal text and others try to indicate formatting. Since Strings are surrounded by double quotes like in:
    "How are you?"
    , it would be hard to try to write double quotes as part of a text. like in
    " She said "How are you?", and smiled ".
    In that example, the compiler doesn't know you mean for the two internal quotes to be taken literally.

    That's why, we use a special symbol: \ to tell the compiler that there starts an escape sequence, which is a sequence of characters that the compiler needs to interpret in a different way.
    In Java, these are the most common escape sequences:


    Note that since a single backslash starts an escape sequence, we use two in a row to tell the compiler to interpret the sequence to place a single literal backslash in the String.

    Activity 3 [3 minutes]: Work individually to modify the code below in your Text Editor, compile it, and run it.

    The objective is to correct the internal quotes in this message using only one print statement:

    public class Escape {
    
        public static void main(String[] args) {
            // generate some simple output
            System.out.println("She said "Hello!" to me. ");
        }
    }
          

    Then make it print:

      She said
      "Hello!"
      to me.
          

    When you have finished, submit this code on Blackboard under the "Class participation 02_1" link on Blackboard.




    Reading Programs

    We can't emphasize this enough: reading programs is an all-important skill.

    Start with the class:

    Next, go to main:

    Next, read the one statement inside:

    As we proceed, we will point out good reading habits.




    Reading Exercises

    Activity 4: The following programs might have Syntax errors that will cause the compiler to complain. Try to identify them by eye:

    Program 1:

    Program 2:

    Program 3:

    Program 4:

    Program 5:

    That was tough! Especially before we learned about all of the parts of the code! Fortunately, the compiler will help us to know when we have these syntax errors. Unfortunately, the error messages the compiler gives can often be a little cryptic, especially for the novice!

    Let's go through these examples together, using a "healthy" HelloWorld example, and add in these compilation errors. Then, let's try to run the code and see if we can make sense of the error message. If nothing else note that the compiler gives us a line number of where it thinks the error is. This line number might not always be perfect, but it's a good place to start looking.




    Next class:

    We'll discuss variables and numeric types.