I'm a 4th year computer science major. I feel my proof skills are lacking and being able to prove things in first-order logic (algorithm correctness, run time, time complexity) would really help me as a professional. However, when I attempt to learn, the introductory materials are very imposing. Is there a tutorial for proofs for CS students? One that is gentle, simple and then gradually builds in complexity? Preferably, I'd love one with lots of practice questions and full answers to the questions. That way, I can learn from my mistakes.