For 2)
It seems that you almost have the answer written !
Maybe you're missing 2 facts :
(*) dim U = dim U' and dim W' = dim W
(**) dim U' ⊕ W' = dim U' + dim W'
For (*) :
let (a1...an) a basis for U : for every vector u in U, there exists a unique list of scalars (k1...kn) in K^n such that u = k1.a1 + ... + kn.an
-> let u' in U' : u' can be written, in a unique way, as : u' = (u ; 0), with u in U. Hence u' = ( k1.a1 + ... + kn.an ; 0 ) = k1.( a1;0 ) + ... + kn.( an;0 ).
->> let s1...sn in K such that s1.( a1;0 ) + ... + sn.( an;0 ) = ( 0;0 ). Then ( s1.a1 + ... + sn.an ; 0 ) = ( 0;0 ), from which you can see that s1.a1 + ... + sn.an = 0 : this is an equality in U, and since (a1...an) is a basis for U, every s1...sn is zero.
This shows that ( (a1;0)...(an;0) ) is a basis for U', and consequently : dim U' = n = dim U.
For (**) :
if ( (a1;0)...(an;0) ) is a basis for U', and if ( (0;b1)...(0;bm) ) is a basis for W', then ( (a1;0)...(an;0),(0;b1)...(0;bm) ) is a basis for U' ⊕ W'.
Indeed, every Y in U' ⊕ W' can be written in a unique way as Y = u' + w', with u' in U' and w' in W'.
u' can be written in a unique way as u' = k1.(a1;0) + ... + kn.(an;0)
w' can be written in a unique way as w' = s1.(0;b1) + ... + sm.(0;bm)
As a result, Y can be written in a unique way as Y = k1.(a1;0) + ... + kn.(an;0) + s1.(0;b1) + ... + sm.(0;bm)
For 4)
This comes directly from the rules of multiplication between matrices (and the fact that K is commutative) :
tr(AB) is the sum of all diagonal elements of AB.
Let i,j integers of [1;n] : (AB)ij = Σ Aik.Bkj, for k=1...n
So, when i=j : (AB)ii = Σ Aik.Bki, for k=1...n
Hence tr(AB) = Σ (Σ Aik.Bki, for k=1...n) for i=1...n
tr(AB) = ΣΣ Aik.Bki, for i,k = 1...n
Do the same for tr(BA) :
tr(BA) = ΣΣ Buv.Avu, for u,v = 1...n
use the fact that K is commutative :
tr(BA) = ΣΣ Avu.Buv, for u,v = 1...n
Compare with tr(AB) : v plays the role of i, and u plays the role of j.