Ian, this post is for you.
I've written recently about why we teach 1st year philosophy students logic; in this post, I'm going to talk about how to do so. We've just reached the end of the first term of my Intro Logic course this year, and my students have a take-home exam due at the beginning of next term. I am (as is clear from my post above) quite optimistic about the prospects for the students in my tutorial group, and at the urging of a friend, I'm going to reflect on the things that I've done that I feel have had positive impact.
First, a bit about the course: The course runs from Michaelmas term all the way through the start of Easter term, and has 1 hour lectures once a week and 1 hour tutorial groups (of 12-13 students) once a week. Thus, we get 44 contact hours over the course of the year. The course this year has six tutorial groups, of which I am in charge of one, and most of my comments in this post are going to be directed at things I do in my tutorials, because the one on one contact students get with me I think is just as valuable, if not more so, than what they learn from me in lectures.
Barriers to learning logic: Two common barriers to learning logic are (a) laziness and (b) fear. (a) Logic is a cumulative endeavour that cannot be done without regular practice. It cannot. A lot of undergraduate students do not have much experience with working hard, over and over, at something until they learn how to do it, and so do not realize just how important this is. A lot of people who do poorly at undergraduate level do so because they simply never devoted enough time to it. Because we have weekly tutorials in my class, there are correspondingly weekly assignments that students are expected to do, giving them ample opportunity to practice. But while you can lead a student to water, you cannot necessarily make them drink...We'll come back to this below. (b) Many undergraduate are negatively predisposed to anything that smacks of math. Maybe they haven't done math since GSCEs, or did poorly in math in high school. The method of learning something via definitions and rules is very foreign to the usual practice of philosophy, a practice which undergraduate students are predisposed to, because otherwise they wouldn't be doing philosophy at the university level. The use of unfamiliar symbols and things from the Greek alphabet can be very off-putting. (I made a point of telling all my students to go look up the Greek alphabet on wikipedia the first week of lecture, and to start learning how to recognize and draw the letter forms.) Both laziness and fear need to be counteracted in order for students to be able to succeed in a logic course.
Fear is a tricky one to tackle, and I have no bullet-proof methods for doing so. A few things that I do that I find useful: I regularly remind students that I am not a mathematician. In high school, I never got further than trigonometry: Geometry was (and still is) my nemesis, and I basically failed calculus (it's hard to fail a class when you're home-schooled, but eventually my parents just gave up and that class quietly fell by the wayside). The first actual course labeled "mathematics" that I ever took was when I was a grad student at UW-Madison and I took Math 770: Foundations of Arithmetic from the amazing Prof. Ken Kunen. Even that hardly count as a "math" course. In 6 years at Madison, I took precisely one "proper" math course: Abstract Algebra (also taught by Prof. Kunen, after he had already had me in 770, so he was aware of this weird anomaly in his midst. Somehow, abstract algebra didn't require linear algebra as a prereq, so he very kindly took any question about matrix multiplication off the mid-term exam, because I'd never learned that. He was an amazing teacher. But I digress.) So: One does not need to be a mathematician to be a successful logician, and it's worth reminding students of that. Also, the type of logic that is done in an introductory course is quite mechanistic in fashion: It can be done even if one doesn't exactly understand what they are doing. I also emphasize this over and over. It is about rules and definitions. If they are capable of learning definitions and following rules at a level at which they can play Monopoly or Clue (or even Clue-do, for my UK peeps), then they can pass an introduction to logic course. I will personally guarantee it (with the caveat that they come to all the lectures, come to all the tutorials, and do all the tutorial exercises...).
Regarding leading the student to water and actually getting them to drink it, it's all about the pay-off structures: You have to make it cost more for them not to do the work than to do it. They need to have the right motivation to it and they can get this from two things: care and expectation.
Care: You've got to care. It helps if you care about what you're teaching -- if you are enthusiastic about what you are doing, it will infect them. My students are in no doubt about my enthusiasm (a tutorial exercise on identifying whether English sentences are atomic, negations, conjunctions, disjunctions, or conditionals contained the example sentence "Sara does not like logic". When asked "What kind of sentence is this?" from the back of the room a voice answered: "A lie".) Even interesting content can be rendered awful by a teacher who doesn't care about their subject (as an undergrad I experienced this with Biblical Poetry in Translation, taught by a professor, whose name I've long since forgotten, who appeared to so viscerally hate her subject that we all felt sort of sorry for her having to teach it). And for many people, logic hardly counts as "interesting content". Now, unfortunately, a lot of times the people teaching introductory logic are not themselves career logicians, and they may not care about the subject as deeply and passionately as I do. But that's okay, because the subject matter is not the only thing you can care about. You can also care about your students. If they know that you are truly rooting for them to do well in this class, they will be more motivated to prove you right. (They'll also be more comfortable asking you questions, coming to your office hours, etc.) There is one very easy way to show you care about your students: Learn their names. In a class of 70, that may be difficult. But if you've got a group of 13, that's doable (even if it takes a few weeks). And don't just use those names in tutorial: Use them in lecture. When someone asks a question or volunteers an answer, call on them by name. Even if you don't know every student's name, they will see that you at least know some of them. They will see that you cared enough to learn them.
My method for learning the names of those in my tutorial groups is closely related to my method for motivating them to do the tutorial exercises. Each week, I assign at least as many exercises as there are people in the biggest tutorial group, sometimes with an exercise or two left over, ending up with ~13-15 per week. That's a huge amount of practice, especially since the exercises are cumulative and often repeat and build on what was done the previous week, and anyone who does all of them will become pretty proficient pretty quickly. So, how do you get them to do them?
Expectation. Make clear from the very first day your expectation that they do the work each week. How? By making a clear expectation that each week each person is expected to give their answer to one exercise on the board in front of everyone else. The first few weeks, I called on people randomly -- sometimes I went around the room, sometimes I went down my attendance list alphabetically, sometimes I picked names randomly. I did this until I had learned everyone's names, after which point the expectation was well enough established that I'd start letting them volunteer to answer; one advantage of this (which they quickly realized) was that they could volunteer to answer a question they were confident they had an answer to -- or which they had a specific question about their answer or their method -- and thus I basically never lacked for ready volunteers.
One extremely important thing to note: This expectation has to be tempered with another expectation, or rather, a lack thereof: your expectation that not everyone is going to be able to answer every question every week. Some questions may be harder than others. Some students may have external contributing factors some weeks and not others. They have to know that it is okay to fail and that it is okay to fail in front of their peers. This is a tremendously scary thing to do, and many have probably never done it before. My goal as the teacher is to ensure that no one ever feels uncomfortable for having tried but still failing to come up with the correct answer. The only time they should feel uncomfortable is if they never tried at all. When people are comfortable with the idea that it is not the end of the world to stand up in front of class and bumble around (heck, when it comes to my advanced course, I'll probably do that myself at least twice over the course of the year), they will become much more comfortable with attempting difficult things that they would otherwise have maybe thought previously "too hard". Thus, not only are they learning logic, they are learning how to go about doing something difficult, knowing that this is difficult, that I don't expect them to find this easy, and that I expect them to go wrong-headed sometimes because that's how you learn. One week I accidentally set them an unaswerable question. I told them to prove that a particular syllogism could be reduced to another, and the question had an error in it. I didn't know this until too late, but I turned it into a nice teachable moment. I asked them how long they spent working on it before they gave up. Answers ranged from "10 minutes" to "until I'd exhausted all the possibilities" to "until I heard from one of the other students that his tutor said it couldn't be done". And I let them know that my usual rule of thumb is 20-30 minutes. If I'm trying to prove something and after 20-30 min. of solid work I'm not getting anywhere, that's where I reverse and start trying to find a counterexample.
Today was our last tutorial of term. The exercises involved determining validity and invalidity of arguments and then deriving the conclusions from the premises of those which were valid. Before I could even ask if anyone had any general questions to start with, one student was at the board, marker in hand, saying "I think I have something that works but I don't know how to annotate it, can we go over it?" And for the next, uh, hour and 10 minutes (whoops. Tutorials are only supposed to be an hour long) I had numerous different people at the board, others working unprompted in groups with each other, and when half-way through I had to take an errant five year old to the toilet, they continued working extremely productively with each other. My clear expectations from the start have translated into their being motivated each week to have the work done, and that itself has translated into a deeper understanding of what they're doing, which in turn means that they care about it, too. They are beginning to understand the satisfaction that logic done well can give.