Please use Piazza, not email, for all math content related questions to the course staff. If you’d like to reach an individual below, please use email (not Microsoft Teams) unless you hear otherwise from them.
Most new math ideas don’t come to me quickly and I need to give them plenty of time to marinate before I’m ready to make use of them. I’ve found success in reading and studying problem sets as early as possible, even if I don’t plan on completing them, so that I can identify what topics I’m struggling with. This has helped me build a habit of daydreaming about math problems too. Its kind of fun to be surprised by an insight walking down the sidewalk or getting ready in the morning!
Working through different problems, discussing topics with fellow peers, and sharing different approaches of solving the same problem enriches one’s understanding of discrete math. That is mainly what recitations are about! Come ready for fun interactive sessions where all questions are welcome!
One of the great things that discrete structures has to offer is the ability to take a problem that you may already have some intuition about, break it down, and clearly express the problem and its answer. Often in computer science the devil is in the details. Even if you have a rough idea of how something works initially, there may be many “small” factors that have significant impact. Does the algorithm involve a graph? If so, how is the graph represented by the machine? Does this effect how long various sub-routines will take? Are all the algorithms loops going to work correctly? Maybe we can verify this last one with induction before we even run the code! The answers to all of these questions and more are rooted in discrete structures, and I and the rest of the faculty/staff look forward to guiding you in learning these fundamental concepts and skills.