Computer Science - final year project of undergraduate degree (individual vs teamwork) I'm in the final year of my undergraduate degree in Artificial Intelligence. Thus, I have to choose between individual project or teamwork. In both cases, I believe that I can do well.

However, I'm going to apply to MPhil in Advanced Computer Science at the University of Cambridge later. So, my questions are:


Which choice gives a complete thought of my abilities?
What are the advantages and disadvantages of each choice in this case?
This answer will be just one sided. If you don't have experience working with a team, do that, and do it well. Modern software systems are built by teams and experience in working cooperatively is extremely important as well as valuable. 

But make sure that the team works as a team, not just dividing up requirements into individual tasks. Take a leadership role if you have to in order to assure this. If you haven't investigated Agile Software Development in the past, nor applied it appropriately, then I suggest you take a look at it. It supports a tightly integrated team in which all members have knowledge of all parts of the system. In an industrial environment this means that the firm isn't at risk of knowledge disappearing if a team member leaves. But in an educational environment it can also mean that the team members (students) become educational resources for one another. 

If you have a lot of such experience with effective teams already, then it is a bit of a tossup. Otherwise, it is an experience that can serve you well. 



If the project is primarily building software, then I'll make a further recommendation. I generally suggest that new teams use XP Extreme Programming for their first agile project, not because it is necessarily better, but because it gives you a lot of advice on what to do day-to-day while you get used to the philosophy. It requires certain practices that need to be done faithfully. Otherwise it will fail like any other methodology.