I have got the rules from elsewhere:
#1.# #"The oxidation number of a free element is always 0."#
#2.# #"The oxidation number of a mono-atomic ion is equal"# #"to the charge of the ion."#
#3.# #"For a given bond, X-Y, the bond is split to give "X^+# #"and"# #Y^-#, #"where Y is more electronegative than X."#
#4.# #"The oxidation number of H is +I, but it is -I in when"# #"combined with less electronegative elements."#
#5.# #"The oxidation number of O in its"# compounds #"is usually -II, but it is -I in peroxides."#
#6.# #"The oxidation number of a Group 1 element"# #"in a compound is +I."#
#7.# #"The oxidation number of a Group 2 element in"# #"a compound is +II."#
#8.# #"The oxidation number of a Group 17 element in a binary"# #"compound is -I."#
#9.# #"The sum of the oxidation numbers of all of the atoms"# #"in a neutral compound is 0."#
#10.# #"The sum of the oxidation numbers in a polyatomic ion"# #"is equal to the charge of the ion."#
As always the oxidation number is the charge left on the given atom, when all the bonding pairs of electrons are removed, with the charge, the electrons, assigned to the most electronegative atom.
We could do this for #Na_2CO_3# and the sum of the individual oxidation numbers must be #0# (why?). So we gots #2xxNa^+ + 1xxCO_3^(2-)#. And clearly we gots #Na(+I)#. For #CO_3^(2-)# we have to know that oxygen generally assumes #-II# oxidation state, and it does here.....
So #C_"oxidation number"+3xx(-2)=-2#...
Clearly, #C_"oxidation number"=+IV# (typically we use Roman numberals for oxidation numbers).