## Fundamentals

This is a list of all of the articles relating to the category of Fundamentals.

## Go Tips

### What You are Going to Learn

This lesson is a little different. We want to show you some tips, that you can use to make programming just a little bit simpler.

## Further Repetition

### What You are Going to Learn

In the last lesson we looked at how computers repeat a sequence of instructions. Something that programmers more commonly call a loop.

Now we want to look at a extension of the loop pattern to show you a quick way to loop a fixed number of times.

## Lesson Plan for Repetition

### Lesson Objective

To learn what loops are and the pattern for repetition in Go programs

## Lesson Plan for If and Else

### Lesson Objective

To learn how to use `if else` statements to make alternative decisions

## Lesson Plan for If Only

### Lesson Objective

To learn how to use `if` statements to make decisions

## Lesson Plan for Keyboard Input

### Lesson Objective

To learn how to use variables to read input from the keyboard

## Lesson Plan for More Variables

### Lesson Objective

To practice using the patterns for integer and string type variables in Go.

## Lesson Plan for Variables

### Lesson Objective

To introduce variables for integers and strings in Go.

## Repetition and Loops

### Objective

To introduce the concept of repetition and show how this can be used in computer programs.

To learn that repetition is more commonly called a loop.

To learn the different types of loops; to introduce the pattern for a loop that repeats while a condition is true.

The class will practice loops by adapting the previous `timesquestion` program.

Creating these program will require the class to use the text editor (either Atom or LiteIDE) to create and save the source code file and the terminal/command line to run their program.

## Lesson Plan for Words

### Lesson Objective

To learn what a syntax error is and how to correct them.

## If and Else

### Objective

To extend the pupil’s knowledge of `if` selection statements by introducing the closely related `if else` statement.

The lesson also introduces the concepts of boolean, negation and not equals to.

The class will learn the pattern for an `if else` statement in Go.

The class will practice using an `if else` statement and see the effect with the `timesquestion` program.

Creating these program will require the class to use the text editor (either Atom or LiteIDE) to create and save the source code file and the terminal/command line to run their program.

## Repetition

### What You are Going to Learn

In the last two lessons we have looked at how computers programs make decisions.

Now we want to investigate how and why we want computers to repeat small parts of a computer program.

We will introduce the pattern for repetition or `loops` as they are more commonly known.

## Lesson Plan for Words

### Lesson Objective

To learn that each character is represented by a number and that a string is a sequence of characters.

## Selection

### Objective

To learn what selection statements are and how to use them.

The class will learn that selection statements are how computer programs make decisions.

The class will learn the pattern for an `if` statement in Go.

The class will practice using an `if` statement and see the effect with the `worldtemperature` program.

Creating these program will require the class to use the text editor (either Atom or LiteIDE) to create and save the source code file and the terminal/command line to run their program.

## More Selection

### What You are Going to Learn

In the last lesson we introduced the concept of selection. Selection is how a computer program makes a decision.

In this lesson we want to extend the concept to selection to show you how a computer program can make a choice between two or more alternatives.

## Keyboard Input

### Objective

To learn how to use variables to read input from the keyboard.

The class will learn one pattern for reading strings and numbers that have been typed at the keyboard by the user.

The class will then practice these patterns with the `hellostranger` program.

Creating these program will require the class to use the text editor (either Atom or LiteIDE) to create and save the source code file and the terminal/command line to run their program.

## Lesson Plan for Further Numbers

### Lesson Objective

To introduce brackets and the evaluation order in Go.

## Selection

### What You are Going to Learn

In the last lesson we introduced the concept of keyboard input and showed you how the input can be stored in a variable.

But what if you wanted the computer to make a decision, based on what you had typed? How do you do this?

In this lesson we are going to show you how you can tell a computer program to make a decision. We will introduce the pattern for `if` statements as selection is more commonly known.

## More Variables

### Objective

To practice using the patterns for integer and string type variables in Go.

The objective is to get the class to write a Go program that use variables.

Creating these program will require the class to use the text editor (either Atom or LiteIDE) to create and save the source code file and the terminal/command line to run their program.

## Lesson Plan for Numbers

### Lesson Objective

To introduce programming in Go and carry out simple mathematics using a program written in Go

## Keyboard Input

### What You are Going to Learn

In the last two lessons we introduced variables. Now we are going to put variables to work.

In this lesson we are going to show you how to use variables to remember what you have typed at the keyboard. We will introduce the pattern for going this.

## Variables

### Objective

The objective is to introduce the concept of a variable to the class.

The objective is to get the class to write a Go program to print strings to the terminal using the two different approaches that Go provides.

Creating this program will require the class to use the text editor (either Atom or LiteIDE) to create and save the source code file and the terminal/command line to run their program.

## More Variables

### What You are Going to Learn?

You are going to practice declaring and assigning values to variables in this lesson. This will help you learn the patterns for variable declaration and variable assignment.

## Further Words

### Objective

The objective is to reinforce the classes knowledge of strings and how they are printed in Go. This is achieved by correcting a program that will not run. This is used to introduce the concept of a syntax errors. Syntax errors are a prelude to debugging.

The example program will again require the class to use the text editor (either Atom or LiteIDE) to create and save the source code file and the terminal/command line to run their program.

## Words

### Objective

The objective is to get the class to write a Go program to print strings to the terminal.

Creating this program will require the class to use the text editor (either Atom or LiteIDE) to create and save the source code file and the terminal/command line to run their program.

## Variables

### What You are Going to Learn

In this lesson we are going to introduce variables. Computer programs use variables to remember things. Think of a word processor. The computer has to remember the words that you type. The word processor program uses variables for this.

We are going to show you the rules for variables and the patterns you need to use them in your programs.

## More Words

### What You are Going to Learn?

In the last lesson you learned what a string was and the pattern that all strings must follow in Go.

In this lesson you are going to practice fixing some mistakes in programs that use strings. You will also learn an approach to fixing syntax errors.

## Words

### What You are Going to Learn?

In the last lesson we showed you how to use numbers in your programs. Now we want to talk about letters and words.

## More Numbers

### Objective

The objective is to reinforce the class knowledge of numbers and simple sums in Go and to reinforce the skills needed to create and run a Go program.

The pupils are introduced to brackets and shown how to use them to group terms. The pupils are also introduced to the idea of operator precedence.

Creating this program will require the class to use the text editor (either Atom or LiteIDE) to create and save the source code file and the terminal/command line to run their program.

## Numbers

### Objective

The objective is to get the class to write a Go program to solve simple mathematical problems. The program will only use addition (typed `+`), subtraction (typed `-`), multiplication (typed `*` not ×) and division (typed `/` not `\` or ÷). Creating this program will require the class to use the text editor (either Atom or LiteIDE) to create and save the source code file and the terminal/command line to run their program.

Each subsequent lesson will require the class to use both the text editor and the terminal.

## More Numbers

### What You are Going to Learn

You saw in the last lesson how to do simple sums using Go. Now we want to show you that sums in Go follow the same mathematical rules that you already understand.

Maths is a universal language, even for computers.

Lastly we are going to show you the pattern you need to print a sum and its answer to the screen.

## Numbers

### What You are Going to Learn?

Computers are used to process data. All data is made up of numbers. Yes, really! Everything is just a bunch of numbers to a computer. These are the only things they understand.

We are going to explain how numbers are used in Go programs. Then we are going to show you how to do type sums in Go.

## Numbers

### What You are Going to Learn?

Computers are used to process data. All data is made up of numbers. Yes, really! Everything is just a bunch of numbers to a computer. These are the only things they understand.

We are going to explain how numbers are used in Go programs. Then we are going to show you how to do type sums in Go.