Introduction to Software Development
GWU Computer Science
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 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!
We will use Piazza as our main communication hub.
Please join Piazza and read the following Piazza Turorial: PiazzaTutorial-cs1111-f20.pdf.
We will now do three simple activities to get the hang of using BBUltra and breakout Groups.
Breakout rooms are side sessions where subsets of the whole class can go meet and exchange ideas. By Default, BBUltra does not allow sharing video/audio if you are not a moderator or presenter. Since the Breakout rooms are used for interacting with others, you will be able to (and asked to) enable your cameras and microphones.
Breakout rooms can be assigned randomly or manually, and we may allow you to switch between them. Note that you need to be ready to be called back (I usually send out a chat message).
Please open and read this tutorial: tutorialBBUltra.pdf.
We'll make a rough analogy with learning a foreign language:
This course is for the novice => Absolutely no background needed.
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:
The parts of this simple program:
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:
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.
How do we use the program so that the computer does what we want it to do?
Next Class we'll see which files are involved in the writing, compiling, and execution of a program.
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.
Go to the class schedule and open Week 1. Check and complete the task under the column: "Prepare for Next Lecture".