What are basic encoding pros and cons?

I started to attend network class and there we were taught that when checking for encoding methods we should care about these 4 things:
1) Frequency of signal change in order to encode the data
2) Is there a dc component of the signal?
3) Is a separate clock wire required or is the encoding self-clocking?
4) Error Detection(asyÂ
How can I successfully meet these 4 criteria?
