Weil, denn, and da
My best, shortest explanation attempt of the difference between these three "because"s.
Weil means the kind of "because" that says "reason being", "the reason for which is". It's causal; something has directly caused something else.
Das Baby ist im Schlaf, weil ich ihm lange vorgelesen habe. The baby is asleep as a direct result of having read to it for a long time.
Da and denn both mean "since", "seeing as", "as". It's correlative; the da/denn clause is not necessarily the direct cause for the other clause, but more of an assertion that something has had an effect or is followed by something else.
Das Baby ist im Schlaf, da ich es seit langem nicht gehört habe. Das Baby ist im Schlaf, denn ich habe es seit langem nicht gehört. We're asserting that because/since I haven't heard it in a while, it's asleep, but it's not asleep as a direct result of having not heard it.
Keep in mind two more bits of grammar: 1) Weil and da are subordinate conjunctions, so they send the main verb to the end, AND if it's the Hauptsatz, the Nebensatz's main verb is swapped into first position. 2) You cannot start a sentence with denn. Denn can only be used in the Nebensatz.
Unfortunately, your explanations are not completely correct. The conjunctions "weil" and "da" can be used the same way and are mostly interchangeable. Both state a reason for something that happens in the main clause.
Das Baby schläft, weil es müde ist.
Das Baby schläft, da es müde ist.
These conjunctions introduce a subclause which causes the conjugated verb to come last in the sentence.
Das Baby schläft, denn es ist müde.
As one can see the conjunction "denn" also gives the reason for something which is happening in the main clause. The difference appears in the word order since "denn" introduces another main clause where the conjugated verb comes after the subject.