Projects and assignments are each valuable in a variety of scenarios. Before choosing whether to use one format over the other, it's important to first compare the features of each type to your coursework requirements:
If the above doesn't make your choice easier, consider the benefits of using each format for different types of coursework:
Homework
Assignments are especially useful when an instructor wants to focus on memorization and knowledge of basic programming concepts.
Projects are an ideal format for practicing and iterating on concepts learned in class. We recommend introducing your students - especially those new to programming - to the IDE in class before assigning a project that requires an IDE for homework.
Quizzes
Assignments are an ideal coursework type for a quiz, since they can test a student's knowledge using a variety of question types including code questions (using one or more files), multiple choice, checkbox, short answer, and long answer. Read about quiz mode here.
Projects are also a useful medium for quizzes, especially in the case where an instructor wants to evaluate students' ability to apply their knowledge of a concept.
Exams
Much like in the case of quizzes, assignments are well suited for exams due to their various question types.
A project can be a good choice for an exam where an instructor wants to test for a specific takeaway or skill learned in the course.
Tip: For the most robust testing option, you might assign a two part exam using both coursework types.