(* First program *)
b[n_, k_]:= If[k==n, 2, If[k==n-1 || k==n+1, -1, 0]];
M[d_]:= Table[b[n, k], {n, d}, {k, d}];
p[x_, n_]:= If[n==0, 1, CharacteristicPolynomial[M[n], x]];
f= Table[p[x, n], {n, 0, 20}];
t[n_, k_]:= If[k==0, n!, Product[f[[j]], {j, n}]/.x->(k+1)];
T[n_, k_, m_]:= If[n==0, 1, t[n, m]/(t[k, m]*t[n-k, m])];
Table[T[n, k, 7], {n, 0, 12}, {k, 0, n}]//TableForm (* modified by
G. C. Greubel, Jun 25 2021 *)
(* Alternative: *)
t[n_, k_]:= t[n, k]= If[n==0, 1, If[k==0, (n-1)!, Product[(-1)^j*Simplify[ChebyshevU[j, x/2 - 1]], {j, 0, n-1}]/.x->(k+1)]];
T[n_, k_, m_]:= T[n, k, m]= t[n, m]/(t[k, m]*t[n-k, m]);
Table[T[n, k, 7], {n, 0, 12}, {k, 0, n}]//Flatten (*
G. C. Greubel, Jun 25 2021 *)