A function $f : A\rightarrow B \space$ can be characterized according to how elements of its domain $A$ map to elements in its codomain (the set of all possible outputs), $B$.
$$ \text{$f$ is injective (one-to-one) } \iff \forall x, y\in A, f(x) = f(y) \rightarrow x=y \\ \text{$f$ is surjective (onto)} \iff \forall b \in B, \space \exists a \in A \space | \space f(a) =b \\ \hspace{63pt}\text{$f$ is bijective} \iff \text{$f$ is both injective and surjective} $$
More often, we talk about the image and pre-image (or domain) of $f$ being the set of outputs and inputs of $f$, respectively**.** When $f$ is surjective, the codomain equals the image, since each element in the codomain corresponds to at least one element in the domain.
The cardinality of a set is the number of items it contains. For two sets $A$ and $B$, $f : A \rightarrow B$ characterizes their relative cardinality as follows,
$$ f \text{ is injective } \iff |A| \leq |B| \\ f \text{ is surjective } \iff|A| \geq |B| \hspace{5pt} \\ f \text{ is bijective } \iff|A| = |B| $$
The rough idea is that if $f$ is injective, there must be enough elements in $B$ to map each element of $A$ to and vice versa for a surjective $f$. If both conditions hold, then both bounds must hold as well, hence for a bijective $f$ the two sets must be equal in cardinality.
If there exists injections $f : A \rightarrow B$ and $g : B \rightarrow A$, there must exist a bijection between $A$ and $B$
A set $S$ is countable if there exists a bijection $f : S \rightarrow T$, where $T$ is any subset of $\N$.
Argument used to disprove the countability of a set $S$ by showing that a bijection between $S$ and $T$ cannot exist. The rough idea is best shown by example,