Difference between CDS and cDNA
The difference boils down to UnTranslated Regions. A CDS or coding sequence is the part of a transcript that is actually translated into protein. Therefore a CDS will (almost) always start with an AUG codon and stop at one of the three STOP codons (UAA,UGA,UAG).

The transcript however (note that I am referring to mature transcripts that have already been spliced so introns have been removed) will also contain the UTRs which are not actually translated into protein. A cDNA sequence is derived from the transcript by reverse transcription and will, therefore, also contain the 5' and 3' UTRs. For example, see this schematic diagram of an unspliced transcript:



The CDS of the gene depicted in image above will only contain the ATG, the STOP and the two green regions (exons). The cDNA will contain all that and, in addition, the two UTRs. Of course, both the cDNA and the CDS will not contain the introns.