The material of part B is better than part A, but the assignments are somewhat disconnected from the material covered. It would be preferable to have a higher number of shorter assignments and have them more focused on particular aspects of the language.
The other main issue is the grading via peer review: plagiarism is rampant, I suspect some people just submit empty files initially (I saw a few of those) to gain access to peer code to review and easily copy. A couple of people I reviewed had submitted my own code a couple of days after I completed the assignment and was waiting for a grade! They just removed my name from the top of the file, not even a serious attempt at covering their tracks. Also peer review is very inconsistent and the grade you get will not necessarily reflect the quality of you work. It would be preferable to have an automated grading like the Algorithm course by Robert Sedgewick (which I highly recommend, but uses Java, not C++).