You'll spend a large part of the course becoming familiar with these concepts. In Java and most other languages, a variable has a type that indicates what sort of data it can hold. Programming languages always have commands for getting data into and out of variables and for doing computations with data. These building blocks are combined into complex programs using control structures and subroutines. A program is a sequence of instructions.
Control structures are special instructions that can change the flow of control.
A program needs some way of expressing this type of decision. Loops are used when the same task has to be performed more than once. A loop can be used in a program to express such repetition. Subroutines provide one way to do this. A subroutine consists of the instructions for performing some task, grouped together as a unit and given a name.