Uniform convergence of sequence of convex functions
I hope the following proof is correct.
First, let us show that given $\varepsilon >0$, one can find $N^+\in\mathbb N$ such that $$\forall n\geq N^+\,\forall t\in [a,b]\;:\; f_n(t)\leq f(t)+\varepsilon\, . $$ Since $f$ is uniformly continuous on $[a,b]$, one can find $a=a_0<\dots <a_K=b$ such that for $i=0,\dots ,K-1$, it holds that $$\forall t\in [a_i,a_{i+1}]\;:\;f(t)\geq \max(f(a_i), f(a_{i+1}))-\frac\varepsilon2\cdot$$ Choose $N^+$ such that if $n\geq N^+$, then $\vert f_n(a_i)-f(a_i)\vert\leq\frac\varepsilon2$ for $i=0,\dots ,K$. Since $f_n$ is convex, you then have for $i=0,\dots ,K-1$ and $t\in [a_i,a_{i+1}]$: $$f_n(t)\leq \max(f_n(a_i), f_n(a_{i+1}))\leq \max(f(a_i), f(a_{i+1}))+\frac\varepsilon2\cdot$$ If you compare with the previous inequality, this gives that if $n\geq N^+$, then $f_n(t)\leq f(t)+\varepsilon$ for all $t\in[a,b]$, as required.
Now, let us show that given $\varepsilon >0$, one can find $N^-$ such that $$\forall n\geq N^+\,\forall t\in [a,b]\;:\; f_n(t)\geq f(t)-\varepsilon\, . $$
Towards a contradiction, assume that this is not the case. Then one can find a sequence $(t_k)\subset [a,b]$ and a subsequence $f_{n_k}$ of $(f_n)$ such that $$\forall k\in\mathbb N\; :\; f_{n_k}(t_k)< f(t_k)-\varepsilon\, . $$ By compactness, we may assume that the sequence $(t_k)$ is convergent; and there is no loss of generality in assuming that $t_k\to a$ or $t_k\to b$. Let's assume for example that $$ t_k\to a\, .$$
For each $k$, let $\psi_k$ be the unique affine function such that $f_{n_k}(a)-\psi_k(a)=0=f_{n_k}(b)-\psi_k(b)$. Since $f_{n_k}(a)\to f(a)$ and $f_{n_k}(b)\to f(b)$, one can check easily that $(\psi_k)$ converges uniformly on $[a,b]$ to the unique affine function $\psi$ such that $f(a)-\psi(a)=0=f(b)-\psi(b)$. Replacing $f_{n_k}$ by $f_{n_k}-\psi_k$ and $f$ by $f-\psi$, it follows that without loss of generality, we may assume that $$\forall k\in\mathbb N\; :\; f_{n_k}(a)=0=f_{n_k}(b)\, .$$ Then $f(a)=0=f(b)$. In particular, since $f$ is continuous, we may choose $\delta>0$ such that $f(t)\geq-\frac\varepsilon3$ on $[0,\delta]$. We may of course assume that $\delta\leq \frac{a+b}2$, and since $t_k\to a$ we may also assume that $t_k\in[0,\delta]$ for all $k$.
Now, consider for each $k$ the function $\varphi_k$ defined as follows : $\varphi_k(a)=0=\varphi_k(b)$, $\varphi_k(t_k)=f(t_k)-\varepsilon$, and $\varphi_k$ is affine on $[a,t_k]$ and on $[t_k,b]$. Since $f_{n_k}$ is convex and not greater than $\varphi_k$ at the "node" points, we have $f_{n_k}\leq\varphi_k$ on $[a,b]$. In particular, $$f_{n_k}(\delta)\leq \varphi_k(\delta)=\varphi_k(t_k)+\frac{\varphi_k(b)-\varphi(t_k)}{b-t_k}\, (\delta-t_k)\, ;$$ that is, $$f_{n_k}(\delta)\leq f(t_k)-\varepsilon+\frac{\varepsilon-f(t_k) }{b-t_k }\, (\delta- t_k)\cdot $$ Since $f_{n_k}(\delta)\to f(\delta)$, $t_k\to a $ and $f(t_k)\to f(a)=0$, it follows that $$f(\delta)\leq -\varepsilon +\frac{\delta-a}{b-a}\,\varepsilon\leq -\frac\varepsilon2\, , $$ where we have used the fact that $\delta\leq\frac{a+b}2\cdot$ Since $f(\delta)\geq -\frac\varepsilon3$, this is a contradiction.
Hence, the integer $N^-$ does exist, and the proof is complete.
Suppose that the convergence is not uniform. Then there exists $\epsilon > 0$ and for every $n\in\mathbb{N}$, there exists $x_n\in [a,b]$ such that $|f_n(x_n) - f(x_n)|> \epsilon$. By compactness of $[a,b]$, the sequence $\{x_n\}$ has an accumulation point in $[a, b]$ - call this point $x$ (that is, there is a subsequence $\{x_{n_k}\}$ which converges to $x$). By pointwise convergence of $\{f_n\}$ to $f$, we know that for some $N\in\mathbb{N}$ and all $k\geq N$, $|f_{n_k}(x) - f(x)| < \epsilon/4$.
Since $f$ is continuous, it is uniformly continuous. Let $\delta > 0$ be such that for all $y_1, y_2\in [x - \delta, x + \delta]$, $|f(y_1) - f(y_2)| < \epsilon/2$. Let $\tilde{x}\in[a,b]$ with $\tilde{x} < x$ (assuming $x\neq a$; otherwise, take $\tilde{x} > x$), and $|\tilde{x}-x|< \delta$. Assume also that there are infinitely many terms of the subsequence $\{x_{n_k}\}$ which lie in $[\tilde{x}, x]$. But then we have the following situation: for all $k$ sufficiently large, $|f_{n_k}(x) - f(x)| < \epsilon/4$, $|f_{n_k}(\tilde{x}) - f(\tilde{x})| < \epsilon/4$ and there exists $y\in [\tilde{x}, x]$ with $|f_{n_k}(y) - f(y)| > \epsilon$. This then violates convexity of $f_{n_k}$ (to see this, consider lines connecting $\tilde{x}$ to $x_{n_k}$, one connecting $x_{n_k}$ to $x$, and one connecting $x$ to $\tilde{x}$ - one of these will lie below the graph of $f_{n_k}$).