Yes, completeness is exactly right, but not just for computer science. It's true for learning a programming language, a protocol, a database, really anything. Learning just enough to push over the finish line by the seat of your pants inevitably leaves gaps, and often leads to deficiencies causing unexpected breakdowns in the future. It's a widespread problem.
The value in doing projects is learning to do... projects - not a trivial thing, actually.
The value in doing projects is learning to do... projects - not a trivial thing, actually.