This course is about presenting a set of techniques and tools for solving combinatorial problems. For example, a Sudoku puzzle is a combinatorial problem where you need to place distinct digits from 1 to 9 in each row, column and 3x3 squares. Other examples include scheduling, planning, molecular biology, finance, linguistics, and so on.
This course combines theoretical foundations with hands-on experience in modeling and solving combinatorial problems.
You can find this course interesting if you like apply logic, reasoning and optimization. It’s not like any of those backgrounds are necessary for taking the course but it is that kind of course. If you are also interested in research you’ll really enjoy it. On the other hand, if you are more industry-oriented you can also find it useful but you need to give it a try. There are many examples during the course about how this is being used in industry and there is a guest lecture from a company working with CT that will try to attract you to work there.
In order to pass the course you will need to do 2 assignments with a partner and one final project by yourself. There is also a final exam. The assignments can take time if you are playing with them and testing different concepts. I think that really helps to understand better the theory. For the final exam is important that you manage all the concepts in the class. There are not so many concepts and everything is related, but you need to be sure you know how things work. If you go to class, do the assignments and solve some old exams you’ll be fine. But you really need to understand the class! If you feel like nothing makes sense and you don’t start understanding by the time you are working on the second assignment then the exam is going to be really hard!
Notice that it is just my personal opinion mixed with some comments I heard in order to give you an idea. If you like it, don’t let anyone tell you it’s too hard!