NOTE: If in doubt about how to submit your project, read SUBMISSION_GUIDELINES
Combinatorics is a fascinating branch of mathematics that every programmer should have at least a working knowledge of. In this exercise, you'll research the topic as a group, and then produce some code that serves as an interesting example of what you learned.
This is primarily a research exercise, but in order to get credit for working on it, each student is expected to produce working code that either does something useful on its own or alternatively serves as a tool for other projects to use.
While working on this assignment, please keep the following guidelines in mind:
You can research any area of combinatorics of interest to you, but in particular, you should look into graph theory because it is most directly applicable to programming problems and is fairly accessible without too much background information. In addition to the tremendous amount of information on wikipedia, there is a free book on Graph Theory that might be a good place to start.
You should actively share resources with your fellow students in the session, as well as discuss your ideas and questions as they arise. This will make it possible to sift through the information much faster, and also help with figuring out what areas might be worth focusing on. The open-endedness of this exercise is intentional, so don't let it overwhelm you: Work together!
Once you've gained a basic understanding of what combinatorics is about, you should think of either a program you can write that uses some combinatorial concepts, or think about building some library code that will make it easier for others to use combinatorial structures and algorithms in their own code. Be sure to include some practical examples no matter which approach you choose.
Don't spend too much time on concepts that feel far outside of your reach, and similarly, don't worry about picking a very advanced concept to demonstrate in your programs. Instead, stick to the things that seem most fundamental, and work with us to figure out whether what you have in mind will be a good fit for this assignment. You can submit your project ideas via university-web for feedback at any time during the course, and it's recommended to do so before putting a lot of work into any particular idea.