Usually, computer scientist abstract from concrete machines and postulate that all computers are concrete instances of abstract (Von Neumann) machines. They are nothing more than machines which consist of a central processing unit and memory (plus auxilliary input/output devices). Instructions are fetched in cycles from memory (the programs), read from memory (the data), and write data back.
An algorithm is an abstract definition of a program which in a concrete form can be defined in a concrete programming language and can be compiled to concrete machine instructions interpretable by a concrete machine (with a Von Neumann architecture).
The study of algorithms is based on the fact that an algorithm is mathematical in nature, that it can be abstractly defined in terms of an abstract mathematical language, and that algorithms defined in that language can be 'run' on an abstract mathematical machine. In general, algorithms can be studied as mathematical entities, and mathematical qualities of specific algorithms tell how any concrete instance of that algorithm on any concrete machine will behave.
Now to your questions:
First, you don't abstract instructions into algorithms. A series of instructions concretely defines a program, and abstractly defines an algorithm.
Second, in an abstract sense, you always use math to define a program since concrete programs are instances of abstract algorithms [which are mathematical entities].
An example: I want to write a program which adds two numbers.
Now you need to define a program. The search for that is a mathematical activity. In your mind, you're trying to figure out the mathematical solution to a mathematical specification. You end up with something, in pseudo code, in your 'mind's eye' like:
procedure add(x, y) : return x + y
Concretely, you now need to 'translate' your abstract notion of an algorithm to a concrete program, defined in a concrete programming language, which can be translated to concrete machine code, which can be run on a concrete machine.
So, you might end up with something in Java, or C, or any other language. For example,
int add_two_numbers(int x, int y) {
return x + y;
}
(Together with the rest of the 'plumbing' you need to turn it into a 'runnable' program like a main procedure, etc.)