Sometimes the talk is given during the term following the formal enrollment. The answer to this depends on the individual student. We hope that the project will be a lot of fun, that it will be something in which you take pride, and that it will be challenging, but attainable. We also like to see projects that bring to bear many of the computer science concepts and skills that have been covered in the core courses, projects that require you to access the computer science literature, and projects that will require you to learn more about fundamental computer science concepts and applications. By far the most common source of difficulty is not getting started on the project and not working on it week by week.
Many students underestimate the amount of work involved.
It is also easy to let your other courses take precedence over the project and in this way, let the project fall behind schedule. It is also important to prioritize the features of the project. Be sure that the basic features are working well before spending a lot of time on fancy, but non-essential features. As mentioned earlier, it is also easy to let the project become so broad in scope that it can not be completed on time.