The projects are a way of consolidating and putting into practice some of the principles covered in the course, including not only programming techniques and language knowledge but also understanding of important computer science concepts and how they are related.