How to handle theoretical side of computer science?
At school, I'm rocking my programming classes. Following a set of instructions to code something? Easy. Learning to write a proof however? Oh boyyy
How can I get better at writing proofs in classes like discrete mathematics and algorithm analysis?
Logically, I understand what's going on, but for me to prove it on paper in a step-by-step way using things like induction, proof by contradictions and whatnot, it doesn't seem intuitive anymore. How can I practice to become good at these things?
Posted Apr 6, 2016, 8:23 PM UTC
12
Pragmatically speaking: do your homework.
Theoretically speaking: Reading various proofs helps you get an understanding for how they're constructed and what mechanisms are used. Otherwise, looks for example problems in your textbook and just practice writing proofs. It sounds cliche, but not much you can do but practice.
And keep in mind that some things are just inherently more difficult to prove/disprove, like P != NP. So make sure you're working at your level. If I recall, the proof of the Pigeon Hole Principle isn't terribly difficult; take a whack at that one.