Sequence of simple functions nonnegative that converge to measurable function $f$
The sequence as given,
$$s_n = \sum_{k=0}^{2^{2n}} \frac{k}{2^n} \chi_{f^{-1}( [ \frac{k}{2^n}, \frac{k +1}{2^n} ] ) }$$
contains an insidious error. It will not converge pointwise to $f$ if $f$ takes on a value of the form $\frac{k}{2^n}$ at all, and it will not even converge to $f$ almost everywhere if $f$ attains values of that form on a set of positive measure. One must choose half-open intervals. Let
$$E_{n,k} = f^{-1}\left(\left[\frac{k}{2^n}, \frac{k+1}{2^n}\right) \right),$$
and
$$s_n = \sum_{k=0}^{2^{2n}-1}\frac{k}{2^n}\chi_{E_{n,k}}.$$
A small change, but now it works ;)
For every $n \in \mathbb{N}$, the family $\mathscr{E}_n = \{ E_{n,k} : k \in \mathbb{N}\}$ is a partition of the space, since they are preimages of disjoint sets, hence disjoint, and every point lies in some $E_{n,k}$, since the intervals $\left[\frac{k}{2^n},\frac{k+1}{2^n}\right)$ cover the entire range $[0,\infty)$ of $f$.
Let us see that $s_n$ converges monotonically pointwise to $f$. For that, fix an arbitrary $x$ and check how $s_n(x)$ behaves.
First, while $2^n \leqslant f(x)$, we have $s_n(x) = 0$: Since $f(x) \geqslant 2^n$, we have $k_{x,n} = \lfloor 2^n\cdot f(x)\rfloor \geqslant 2^{2n}$, and $x \in E_{n,k_{x,n}}$, but since $k_{x,n} \geqslant 2^{2n}$, the characteristic function of $E_{n,k_{x,n}}$ does not yet appear in $s_n$, so $s_n(x) = 0$.
Once $n$ is so large that $2^n > f(x)$, we have $k_{x,n} = \lfloor 2^n\cdot f(x)\rfloor < 2^{2n}$, and since $x \in E_{n,k_{x,n}}$, we have
$$s_n(x) = \sum_{k=0}^{2^{2n}-1}\frac{k}{2^n}\chi_{E_{n,k}}(x) = \frac{k_{x,n}}{2^n}\chi_{E_{n,k_{x,n}}}(x) = \frac{k_{x,n}}{2^n}$$
since the $E_{n,k}$ are disjoint. Since $k_{x,n} \leqslant 2^n\cdot f(x) < k_{x,n}+1$, we have $s_n(x) = \dfrac{k_{x,n}}{2^n} \leqslant f(x) < \dfrac{k_{x,n}+1}{2^n}$, and hence
$$0 \leqslant f(x) - s_n(x) < \frac{1}{2^n},$$
which shows that $s_n(x) \to f(x)$. To see that $s_{n+1}(x) \geqslant s_n(x)$, note that $k_{x,n} \leqslant 2^n\cdot f(x) < k_{x,n}+1$ implies $2k_{x,n} \leqslant 2^{n+1}\cdot f(x) < 2k_{x,n}+2$, and so we have either $k_{x,n+1} = \lfloor 2^{n+1}\cdot f(x)\rfloor = 2k_{x,n}$ - if $2^{n+1}\cdot f(x) < 2 k_{x,n}+1$ - or $k_{x,n+1} = \lfloor 2^{n+1}\cdot f(x)\rfloor = 2k_{x,n}+1$. In the first case, we have
$$s_{n+1}(x) = \frac{k_{x,n+1}}{2^{n+1}} = \frac{2k_{x,n}}{2^{n+1}} = \frac{k_{x,n}}{2^n} = s_n(x),$$
and in the second, we have
$$s_{n+1}(x) = \frac{k_{x,n+1}}{2^{n+1}} = \frac{2k_{x,n}+1}{2^{n+1}} = \frac{k_{x,n}}{2^n} + \frac{1}{2^{n+1}} = s_n(x) + \frac{1}{2^{n+1}}.$$
In either case, $s_{n+1}(x) \geqslant s_n(x)$, so the sequence $s_n(x)$ is nondecreasing. Since $x$ was arbitrary, the entire sequence of simple functions is nondecreasing, and converges pointwise to $f$ (assuming all values of $f$ are real; if $f$ takes $+\infty$ as a value, we must modify $s_n$ if we want pointwise convergence everywhere, for example by adding $2^n\cdot \chi_{F_n}$ to $s_n$, where $F_n = \{x : f(x) \geqslant 2^n\}$).
Daniel Fischer is right in that the intervals must be half open. You will need the fact that they are disjoint. First, take an arbitrary point x. Show that for every n, there is some $k_n$ such that $\frac{k_n}{2^n}\leq x < \frac{k_n+1}{2^n}$. Now you have a sequence $k_n$ that satisfies $s_n=\frac{k_n}{2^n}$ because the intervals are disjoint. All that's left to show is that $\frac{k_n}{2^n} \rightarrow x$ as $n$ goes to infinity (using the above inequality).