GWU

CS 1111

Introduction to Software Development

GWU Computer Science


Lecture Notes 0: Welcome to CS1111


Objectives

By the end of this module, you will be able to:




Before Starting

If you do not have your Codio course ready, simply follow along on the BBUltra lecture with this Lecture Notes 0 as the class notes. Please also contact the instructional team (through Piazza, ideally) to get help accessing Codio.




The Course Information

The class information is located in the Class Info link of the navigation bar. We will go over it now. When you are done checkcing it out, make sure to continue here.
The Most Important Point: This course is designed so that anyone can learn to program and do well even without any prior experience!




Using Piazza (repeated from Lab 1)

We will use Piazza as our main communication hub.
Please join Piazza and read the following Piazza Turorial: PiazzaTutorial-cs1111-f20.pdf.




Using BBUltra (repeated from Lab 1)

We will now do three simple activities to get the hang of using BBUltra and breakout Groups.




Where is this class with respect to your Program?

We'll make a rough analogy with learning a foreign language:

This course is for the novice => Absolutely no background needed.




The HelloWorld program

This is the classic basic example (the colors are just highlighting):

public class Hello {

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

This program is written in a programming language called Java. After it gets processed and executed by the computer, the result is that a phrase is printed in the Terminal (more on this later):
"Hello, World!"

The program-to-print process (in simplified form) looks like this: Program-To-Print




What is in the Hello.java program?

The parts of this simple program:
Code Pars

We'll talk more about these parts and why they are organized like this in a later class.
For now, think of these parts as:

Activity:[2 minutes] You will be assigned to a random Breakout room. In your breakout groups, come up with an Entity that has a specific Behavior which is composed of Actions which could be potentially translated to a Java Class, Method, and Statements.




First Question: Why not just use English?

Solution: Use an unambiguous form of the language, even if it is a little less expressive.


In this case, we will be using the high-level programming language called Java.




What is a High-Level Language?

A computer works like a water-pipe system with a million valves. The water (electricity) courses through the system and activates sprinclers, flotation devices, etc, depending on how the valves are set.

In this example, the water represents electricity, and the valves are the electrical switches that determine if we have running current (1) or not (0).

A Low-Level language (like Bytecode or Machine-code) is composed of the set of instructions that can be directly executed by the computer's central processing unit (CPU). It is "Machine-speak" and it is very distant from English.

A way of letting humans read and write programs that then get executed is to write them using an unambiguous language that is closer to English and then converting these to Bytecode or Machine-Code that the computer can execute.

These programming languages that are closer to English and that allow you to use abstract terms and instructions are called High-Level Languages. Some of these are (C, C++, java, Python, etc).

The conversion of a program (written in a High-Level language) into an executable (written in machine code) is called Compilation.




Programming, Compilation, and Execution

How do we use the program so that the computer does what we want it to do?

Compiling
  • A Program is a set of instructions for building an executable (something that when run, tells the computer how to move information around).
  • A Compiler is a program whose purpose is to convert these instructions into a file (bytecode) that can be executed by the computer.
  • Executing a compiled program (the executable) means that the computer processor follows the sequences of instructions to complete a specified task.

Next Class we'll see which files are involved in the writing, compiling, and execution of a program.




Your first Assignments!


We will use Codio as our main coding hub but it is a good idea to get familiar with your computer's Terminal.
Terminal Turorial:

Please open and read this tutorial: TerminalAndCompilation.pdf.

Codio reading

Go to the class schedule and open Week 1. Check and complete the task under the column: "Prepare for Next Lecture".