I am working my way through VanDrunen's Discrete Math and Functional Programming. Symbolic logic is dealt with in a single chapter from beginning through multiple quantification. Here are some thoughts.
It took a quarter-long course, Logic I, in college to get through that material. It was a long time ago, and I am glad it has stuck as well as it did. I am breezing through the chapter as if through well-trodden ground.
This chapter is 1/7 of what the author thinks should be covered in a semester-long class with "bright" math and CS undergrads. So I guess about 2 weeks.
The book, as the title suggests, also covers programming. I think the programming aspect helps with the comprehension of logic, so that partly explains how it is squeezed into so much less space.
All the extra how-to-prove-it material would have been really helpful when I got to Logic II. Logic I was way too slow, Logic II, which proved the soundness and consistency of first-order logic, was much too fast.