You need to know Discrete mathematics.
Informally, an algorithm is a series of computational steps that takes an input and returns an output in a finite amount of time. The input and output relationship is a way to describe a computational problem. So, you use algorithms because you have a problem, but no upside down.
A mathematical reader can think is a little floppy definition and maybe you thought “Your definition is not the correct way to find any science” —what the heck is a computational step?— and you are right, it is an easy way to definite an algorithm, but it is not the full answer. A more accurate definition will be given to you later.
Different ways to describe an algorithm:
# Notation 1
f: x: T -> y: T1 -> z: T2 ... -> output: TN
f = computational steps
# Notation 2
f(x: T, y: T1, ...): output: TN = computational steps
# Notation 3
f(x: T, y: T1, ...): output: TN {
computational steps
}
Some authors don’t write types when they write algorithms, but we do since they give precision.
We say with $x:T$ that x is a term with type T. A type has values and operations —interface. We explain more later.
Perhaps you are here to build a Skynet —Artificial intelligence, to solve the problem NP=P —Research, work in a Big Tech company —Industry.
Algorithms are foundations for building great systems and for research too.
Quality of algorithms.